@godscene/web 1.7.11

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 (129) hide show
  1. package/README.md +7 -0
  2. package/bin/midscene-playground +3 -0
  3. package/bin/midscene-web +2 -0
  4. package/dist/es/bin.mjs +14 -0
  5. package/dist/es/bridge-mode/agent-cli-side.mjs +135 -0
  6. package/dist/es/bridge-mode/browser.mjs +2 -0
  7. package/dist/es/bridge-mode/common.mjs +41 -0
  8. package/dist/es/bridge-mode/index.mjs +4 -0
  9. package/dist/es/bridge-mode/io-client.mjs +99 -0
  10. package/dist/es/bridge-mode/io-server.mjs +218 -0
  11. package/dist/es/bridge-mode/page-browser-side.mjs +119 -0
  12. package/dist/es/cdp-proxy-constants.mjs +7 -0
  13. package/dist/es/cdp-proxy-manager.mjs +217 -0
  14. package/dist/es/cdp-proxy.mjs +151 -0
  15. package/dist/es/cdp-target-store.mjs +26 -0
  16. package/dist/es/chrome-extension/agent.mjs +8 -0
  17. package/dist/es/chrome-extension/cdpInput.mjs +172 -0
  18. package/dist/es/chrome-extension/cdpInput.mjs.LICENSE.txt +5 -0
  19. package/dist/es/chrome-extension/dynamic-scripts.mjs +36 -0
  20. package/dist/es/chrome-extension/index.mjs +5 -0
  21. package/dist/es/chrome-extension/page.mjs +733 -0
  22. package/dist/es/cli-options.mjs +97 -0
  23. package/dist/es/cli.mjs +26 -0
  24. package/dist/es/common/cache-helper.mjs +26 -0
  25. package/dist/es/common/viewport.mjs +36 -0
  26. package/dist/es/index.mjs +8 -0
  27. package/dist/es/mcp-server.mjs +33 -0
  28. package/dist/es/mcp-tools-cdp.mjs +164 -0
  29. package/dist/es/mcp-tools-puppeteer.mjs +246 -0
  30. package/dist/es/mcp-tools.mjs +81 -0
  31. package/dist/es/platform.mjs +37 -0
  32. package/dist/es/playwright/ai-fixture.mjs +364 -0
  33. package/dist/es/playwright/index.mjs +36 -0
  34. package/dist/es/playwright/page.mjs +42 -0
  35. package/dist/es/playwright/reporter/index.mjs +178 -0
  36. package/dist/es/puppeteer/agent-launcher.mjs +172 -0
  37. package/dist/es/puppeteer/base-page.mjs +830 -0
  38. package/dist/es/puppeteer/index.mjs +35 -0
  39. package/dist/es/puppeteer/page.mjs +7 -0
  40. package/dist/es/static/index.mjs +3 -0
  41. package/dist/es/static/static-agent.mjs +10 -0
  42. package/dist/es/static/static-page.mjs +123 -0
  43. package/dist/es/utils.mjs +6 -0
  44. package/dist/es/web-element.mjs +57 -0
  45. package/dist/es/web-page.mjs +272 -0
  46. package/dist/lib/bin.js +20 -0
  47. package/dist/lib/bridge-mode/agent-cli-side.js +172 -0
  48. package/dist/lib/bridge-mode/browser.js +36 -0
  49. package/dist/lib/bridge-mode/common.js +105 -0
  50. package/dist/lib/bridge-mode/index.js +44 -0
  51. package/dist/lib/bridge-mode/io-client.js +133 -0
  52. package/dist/lib/bridge-mode/io-server.js +255 -0
  53. package/dist/lib/bridge-mode/page-browser-side.js +163 -0
  54. package/dist/lib/cdp-proxy-constants.js +50 -0
  55. package/dist/lib/cdp-proxy-manager.js +273 -0
  56. package/dist/lib/cdp-proxy.js +179 -0
  57. package/dist/lib/cdp-target-store.js +66 -0
  58. package/dist/lib/chrome-extension/agent.js +42 -0
  59. package/dist/lib/chrome-extension/cdpInput.js +206 -0
  60. package/dist/lib/chrome-extension/cdpInput.js.LICENSE.txt +5 -0
  61. package/dist/lib/chrome-extension/dynamic-scripts.js +86 -0
  62. package/dist/lib/chrome-extension/index.js +58 -0
  63. package/dist/lib/chrome-extension/page.js +767 -0
  64. package/dist/lib/cli-options.js +131 -0
  65. package/dist/lib/cli.js +54 -0
  66. package/dist/lib/common/cache-helper.js +66 -0
  67. package/dist/lib/common/viewport.js +88 -0
  68. package/dist/lib/index.js +66 -0
  69. package/dist/lib/mcp-server.js +73 -0
  70. package/dist/lib/mcp-tools-cdp.js +208 -0
  71. package/dist/lib/mcp-tools-puppeteer.js +296 -0
  72. package/dist/lib/mcp-tools.js +115 -0
  73. package/dist/lib/platform.js +71 -0
  74. package/dist/lib/playwright/ai-fixture.js +401 -0
  75. package/dist/lib/playwright/index.js +89 -0
  76. package/dist/lib/playwright/page.js +76 -0
  77. package/dist/lib/playwright/reporter/index.js +212 -0
  78. package/dist/lib/puppeteer/agent-launcher.js +240 -0
  79. package/dist/lib/puppeteer/base-page.js +876 -0
  80. package/dist/lib/puppeteer/index.js +85 -0
  81. package/dist/lib/puppeteer/page.js +41 -0
  82. package/dist/lib/static/index.js +50 -0
  83. package/dist/lib/static/static-agent.js +44 -0
  84. package/dist/lib/static/static-page.js +157 -0
  85. package/dist/lib/utils.js +38 -0
  86. package/dist/lib/web-element.js +94 -0
  87. package/dist/lib/web-page.js +322 -0
  88. package/dist/types/bin.d.ts +1 -0
  89. package/dist/types/bridge-mode/agent-cli-side.d.ts +49 -0
  90. package/dist/types/bridge-mode/browser.d.ts +2 -0
  91. package/dist/types/bridge-mode/common.d.ts +74 -0
  92. package/dist/types/bridge-mode/index.d.ts +4 -0
  93. package/dist/types/bridge-mode/io-client.d.ts +10 -0
  94. package/dist/types/bridge-mode/io-server.d.ts +27 -0
  95. package/dist/types/bridge-mode/page-browser-side.d.ts +21 -0
  96. package/dist/types/cdp-proxy-constants.d.ts +4 -0
  97. package/dist/types/cdp-proxy-manager.d.ts +53 -0
  98. package/dist/types/cdp-proxy.d.ts +37 -0
  99. package/dist/types/cdp-target-store.d.ts +26 -0
  100. package/dist/types/chrome-extension/agent.d.ts +4 -0
  101. package/dist/types/chrome-extension/cdpInput.d.ts +52 -0
  102. package/dist/types/chrome-extension/dynamic-scripts.d.ts +3 -0
  103. package/dist/types/chrome-extension/index.d.ts +5 -0
  104. package/dist/types/chrome-extension/page.d.ts +120 -0
  105. package/dist/types/cli-options.d.ts +8 -0
  106. package/dist/types/cli.d.ts +1 -0
  107. package/dist/types/common/cache-helper.d.ts +20 -0
  108. package/dist/types/common/viewport.d.ts +17 -0
  109. package/dist/types/index.d.ts +9 -0
  110. package/dist/types/mcp-server.d.ts +26 -0
  111. package/dist/types/mcp-tools-cdp.d.ts +23 -0
  112. package/dist/types/mcp-tools-puppeteer.d.ts +23 -0
  113. package/dist/types/mcp-tools.d.ts +14 -0
  114. package/dist/types/platform.d.ts +10 -0
  115. package/dist/types/playwright/ai-fixture.d.ts +133 -0
  116. package/dist/types/playwright/index.d.ts +13 -0
  117. package/dist/types/playwright/page.d.ts +11 -0
  118. package/dist/types/playwright/reporter/index.d.ts +28 -0
  119. package/dist/types/puppeteer/agent-launcher.d.ts +59 -0
  120. package/dist/types/puppeteer/base-page.d.ts +123 -0
  121. package/dist/types/puppeteer/index.d.ts +11 -0
  122. package/dist/types/puppeteer/page.d.ts +6 -0
  123. package/dist/types/static/index.d.ts +2 -0
  124. package/dist/types/static/static-agent.d.ts +5 -0
  125. package/dist/types/static/static-page.d.ts +46 -0
  126. package/dist/types/utils.d.ts +6 -0
  127. package/dist/types/web-element.d.ts +48 -0
  128. package/dist/types/web-page.d.ts +69 -0
  129. package/package.json +173 -0
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ AgentOverChromeBridge: ()=>AgentOverChromeBridge,
28
+ getBridgePageInCliSide: ()=>getBridgePageInCliSide
29
+ });
30
+ const agent_namespaceObject = require("@godscene/core/agent");
31
+ const utils_namespaceObject = require("@godscene/shared/utils");
32
+ const external_web_page_js_namespaceObject = require("../web-page.js");
33
+ const external_common_js_namespaceObject = require("./common.js");
34
+ const external_io_server_js_namespaceObject = require("./io-server.js");
35
+ function _define_property(obj, key, value) {
36
+ if (key in obj) Object.defineProperty(obj, key, {
37
+ value: value,
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true
41
+ });
42
+ else obj[key] = value;
43
+ return obj;
44
+ }
45
+ const sleep = (ms)=>new Promise((resolve)=>setTimeout(resolve, ms));
46
+ const getBridgePageInCliSide = (options)=>{
47
+ const host = options?.host || external_common_js_namespaceObject.DefaultBridgeServerHost;
48
+ const port = options?.port || external_common_js_namespaceObject.DefaultBridgeServerPort;
49
+ const server = new external_io_server_js_namespaceObject.BridgeServer(host, port, void 0, void 0, options?.closeConflictServer);
50
+ server.listen({
51
+ timeout: options?.timeout
52
+ });
53
+ const bridgeCaller = (method, timeout)=>async (...args)=>{
54
+ const response = await server.call(method, args, timeout);
55
+ return response;
56
+ };
57
+ const page = {
58
+ showStatusMessage: async (message)=>{
59
+ await server.call(external_common_js_namespaceObject.BridgeEvent.UpdateAgentStatus, [
60
+ message
61
+ ]);
62
+ }
63
+ };
64
+ const proxyPage = new Proxy(page, {
65
+ get (target, prop, receiver) {
66
+ (0, utils_namespaceObject.assert)('string' == typeof prop, 'prop must be a string');
67
+ if ('toJSON' === prop) return ()=>({
68
+ interfaceType: external_common_js_namespaceObject.BridgePageType
69
+ });
70
+ if ('interfaceType' === prop) return external_common_js_namespaceObject.BridgePageType;
71
+ if ('actionSpace' === prop) return ()=>(0, external_web_page_js_namespaceObject.commonWebActionsForWebPage)(proxyPage);
72
+ if (Object.keys(page).includes(prop)) return page[prop];
73
+ if ('mouse' === prop) {
74
+ const mouse = {
75
+ click: bridgeCaller(external_common_js_namespaceObject.MouseEvent.Click),
76
+ wheel: bridgeCaller(external_common_js_namespaceObject.MouseEvent.Wheel),
77
+ move: bridgeCaller(external_common_js_namespaceObject.MouseEvent.Move),
78
+ drag: bridgeCaller(external_common_js_namespaceObject.MouseEvent.Drag)
79
+ };
80
+ return mouse;
81
+ }
82
+ if ('keyboard' === prop) {
83
+ const keyboard = {
84
+ type: bridgeCaller(external_common_js_namespaceObject.KeyboardEvent.Type),
85
+ press: bridgeCaller(external_common_js_namespaceObject.KeyboardEvent.Press)
86
+ };
87
+ return keyboard;
88
+ }
89
+ if ('destroy' === prop) return async (...args)=>{
90
+ try {
91
+ const caller = bridgeCaller('destroy');
92
+ await caller(...args);
93
+ } catch (e) {}
94
+ return server.close();
95
+ };
96
+ if ('connectNewTabWithUrl' === prop) return async (url, options)=>{
97
+ const timeout = options?.timeout;
98
+ const caller = bridgeCaller(prop, timeout);
99
+ return await caller(url, options);
100
+ };
101
+ if ('connectCurrentTab' === prop) return async (options)=>{
102
+ const timeout = options?.timeout;
103
+ const caller = bridgeCaller(prop, timeout);
104
+ return await caller(options);
105
+ };
106
+ return bridgeCaller(prop);
107
+ }
108
+ });
109
+ return proxyPage;
110
+ };
111
+ class AgentOverChromeBridge extends agent_namespaceObject.Agent {
112
+ async setDestroyOptionsAfterConnect() {
113
+ if (this.destroyAfterDisconnectFlag) this.page.setDestroyOptions({
114
+ closeTab: true
115
+ });
116
+ }
117
+ async connectNewTabWithUrl(url, options) {
118
+ await this.page.connectNewTabWithUrl(url, options);
119
+ await sleep(500);
120
+ await this.setDestroyOptionsAfterConnect();
121
+ }
122
+ async getBrowserTabList() {
123
+ return await this.page.getBrowserTabList();
124
+ }
125
+ async setActiveTabId(tabId) {
126
+ return await this.page.setActiveTabId(Number.parseInt(tabId));
127
+ }
128
+ async connectCurrentTab(options) {
129
+ await this.page.connectCurrentTab(options);
130
+ await sleep(500);
131
+ await this.setDestroyOptionsAfterConnect();
132
+ }
133
+ async aiAct(prompt, options) {
134
+ if (options) console.warn('the `options` parameter of aiAct is not supported in cli side');
135
+ return await super.aiAct(prompt);
136
+ }
137
+ async destroy(closeNewTabsAfterDisconnect) {
138
+ if ('boolean' == typeof closeNewTabsAfterDisconnect) await this.page.setDestroyOptions({
139
+ closeTab: closeNewTabsAfterDisconnect
140
+ });
141
+ await super.destroy();
142
+ }
143
+ constructor(opts){
144
+ const host = (0, external_common_js_namespaceObject.getBridgeServerHost)({
145
+ host: opts?.host,
146
+ allowRemoteAccess: opts?.allowRemoteAccess
147
+ });
148
+ const page = getBridgePageInCliSide({
149
+ host,
150
+ port: opts?.port,
151
+ timeout: opts?.serverListeningTimeout,
152
+ closeConflictServer: opts?.closeConflictServer
153
+ });
154
+ const originalOnTaskStartTip = opts?.onTaskStartTip;
155
+ super(page, Object.assign(opts || {}, {
156
+ onTaskStartTip: (tip)=>{
157
+ this.page.showStatusMessage(tip);
158
+ if (originalOnTaskStartTip) originalOnTaskStartTip?.call(this, tip);
159
+ }
160
+ })), _define_property(this, "destroyAfterDisconnectFlag", void 0);
161
+ this.destroyAfterDisconnectFlag = opts?.closeNewTabsAfterDisconnect;
162
+ }
163
+ }
164
+ exports.AgentOverChromeBridge = __webpack_exports__.AgentOverChromeBridge;
165
+ exports.getBridgePageInCliSide = __webpack_exports__.getBridgePageInCliSide;
166
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
167
+ "AgentOverChromeBridge",
168
+ "getBridgePageInCliSide"
169
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
170
+ Object.defineProperty(exports, '__esModule', {
171
+ value: true
172
+ });
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ ExtensionBridgePageBrowserSide: ()=>external_page_browser_side_js_namespaceObject.ExtensionBridgePageBrowserSide
28
+ });
29
+ const external_page_browser_side_js_namespaceObject = require("./page-browser-side.js");
30
+ exports.ExtensionBridgePageBrowserSide = __webpack_exports__.ExtensionBridgePageBrowserSide;
31
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
32
+ "ExtensionBridgePageBrowserSide"
33
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
34
+ Object.defineProperty(exports, '__esModule', {
35
+ value: true
36
+ });
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ BridgeCallTimeout: ()=>BridgeCallTimeout,
28
+ BridgeErrorCodeNoClientConnected: ()=>BridgeErrorCodeNoClientConnected,
29
+ BridgeEvent: ()=>BridgeEvent,
30
+ BridgePageType: ()=>BridgePageType,
31
+ BridgeSignalKill: ()=>BridgeSignalKill,
32
+ DefaultBridgeServerHost: ()=>DefaultBridgeServerHost,
33
+ DefaultBridgeServerPort: ()=>DefaultBridgeServerPort,
34
+ DefaultLocalEndpoint: ()=>DefaultLocalEndpoint,
35
+ KeyboardEvent: ()=>KeyboardEvent,
36
+ MouseEvent: ()=>MouseEvent,
37
+ getBridgeServerHost: ()=>getBridgeServerHost
38
+ });
39
+ const DefaultBridgeServerHost = '127.0.0.1';
40
+ const DefaultBridgeServerPort = 3766;
41
+ const DefaultLocalEndpoint = `http://${DefaultBridgeServerHost}:${DefaultBridgeServerPort}`;
42
+ const BridgeCallTimeout = 30000;
43
+ function getBridgeServerHost(options) {
44
+ if (options?.host) return options.host;
45
+ if (options?.allowRemoteAccess) return '0.0.0.0';
46
+ return DefaultBridgeServerHost;
47
+ }
48
+ var BridgeEvent = /*#__PURE__*/ function(BridgeEvent) {
49
+ BridgeEvent["Call"] = "bridge-call";
50
+ BridgeEvent["CallResponse"] = "bridge-call-response";
51
+ BridgeEvent["UpdateAgentStatus"] = "bridge-update-agent-status";
52
+ BridgeEvent["Message"] = "bridge-message";
53
+ BridgeEvent["Connected"] = "bridge-connected";
54
+ BridgeEvent["Refused"] = "bridge-refused";
55
+ BridgeEvent["ConnectNewTabWithUrl"] = "connectNewTabWithUrl";
56
+ BridgeEvent["ConnectCurrentTab"] = "connectCurrentTab";
57
+ BridgeEvent["GetBrowserTabList"] = "getBrowserTabList";
58
+ BridgeEvent["SetDestroyOptions"] = "setDestroyOptions";
59
+ BridgeEvent["SetActiveTabId"] = "setActiveTabId";
60
+ return BridgeEvent;
61
+ }({});
62
+ const BridgeSignalKill = 'MIDSCENE_BRIDGE_SIGNAL_KILL';
63
+ var MouseEvent = /*#__PURE__*/ function(MouseEvent) {
64
+ MouseEvent["PREFIX"] = "mouse.";
65
+ MouseEvent["Click"] = "mouse.click";
66
+ MouseEvent["Wheel"] = "mouse.wheel";
67
+ MouseEvent["Move"] = "mouse.move";
68
+ MouseEvent["Drag"] = "mouse.drag";
69
+ return MouseEvent;
70
+ }({});
71
+ var KeyboardEvent = /*#__PURE__*/ function(KeyboardEvent) {
72
+ KeyboardEvent["PREFIX"] = "keyboard.";
73
+ KeyboardEvent["Type"] = "keyboard.type";
74
+ KeyboardEvent["Press"] = "keyboard.press";
75
+ return KeyboardEvent;
76
+ }({});
77
+ const BridgePageType = 'page-over-chrome-extension-bridge';
78
+ const BridgeErrorCodeNoClientConnected = 'no-client-connected';
79
+ exports.BridgeCallTimeout = __webpack_exports__.BridgeCallTimeout;
80
+ exports.BridgeErrorCodeNoClientConnected = __webpack_exports__.BridgeErrorCodeNoClientConnected;
81
+ exports.BridgeEvent = __webpack_exports__.BridgeEvent;
82
+ exports.BridgePageType = __webpack_exports__.BridgePageType;
83
+ exports.BridgeSignalKill = __webpack_exports__.BridgeSignalKill;
84
+ exports.DefaultBridgeServerHost = __webpack_exports__.DefaultBridgeServerHost;
85
+ exports.DefaultBridgeServerPort = __webpack_exports__.DefaultBridgeServerPort;
86
+ exports.DefaultLocalEndpoint = __webpack_exports__.DefaultLocalEndpoint;
87
+ exports.KeyboardEvent = __webpack_exports__.KeyboardEvent;
88
+ exports.MouseEvent = __webpack_exports__.MouseEvent;
89
+ exports.getBridgeServerHost = __webpack_exports__.getBridgeServerHost;
90
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
91
+ "BridgeCallTimeout",
92
+ "BridgeErrorCodeNoClientConnected",
93
+ "BridgeEvent",
94
+ "BridgePageType",
95
+ "BridgeSignalKill",
96
+ "DefaultBridgeServerHost",
97
+ "DefaultBridgeServerPort",
98
+ "DefaultLocalEndpoint",
99
+ "KeyboardEvent",
100
+ "MouseEvent",
101
+ "getBridgeServerHost"
102
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
103
+ Object.defineProperty(exports, '__esModule', {
104
+ value: true
105
+ });
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ overrideAIConfig: ()=>env_namespaceObject.overrideAIConfig,
28
+ AgentOverChromeBridge: ()=>external_agent_cli_side_js_namespaceObject.AgentOverChromeBridge,
29
+ killRunningServer: ()=>external_io_server_js_namespaceObject.killRunningServer
30
+ });
31
+ const external_agent_cli_side_js_namespaceObject = require("./agent-cli-side.js");
32
+ const env_namespaceObject = require("@godscene/shared/env");
33
+ const external_io_server_js_namespaceObject = require("./io-server.js");
34
+ exports.AgentOverChromeBridge = __webpack_exports__.AgentOverChromeBridge;
35
+ exports.killRunningServer = __webpack_exports__.killRunningServer;
36
+ exports.overrideAIConfig = __webpack_exports__.overrideAIConfig;
37
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
38
+ "AgentOverChromeBridge",
39
+ "killRunningServer",
40
+ "overrideAIConfig"
41
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
42
+ Object.defineProperty(exports, '__esModule', {
43
+ value: true
44
+ });
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ BridgeClient: ()=>BridgeClient
28
+ });
29
+ const utils_namespaceObject = require("@godscene/shared/utils");
30
+ const external_socket_io_client_namespaceObject = require("socket.io-client");
31
+ const external_common_js_namespaceObject = require("./common.js");
32
+ function _define_property(obj, key, value) {
33
+ if (key in obj) Object.defineProperty(obj, key, {
34
+ value: value,
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true
38
+ });
39
+ else obj[key] = value;
40
+ return obj;
41
+ }
42
+ class BridgeClient {
43
+ async connect() {
44
+ return new Promise((resolve, reject)=>{
45
+ const forceWebSocket = "u" < typeof XMLHttpRequest;
46
+ this.socket = (0, external_socket_io_client_namespaceObject.io)(this.endpoint, {
47
+ reconnection: false,
48
+ ...forceWebSocket ? {
49
+ transports: [
50
+ 'websocket'
51
+ ]
52
+ } : {},
53
+ query: {
54
+ version: "1.7.10"
55
+ }
56
+ });
57
+ const timeout = setTimeout(()=>{
58
+ try {
59
+ this.socket?.offAny();
60
+ this.socket?.close();
61
+ } catch (e) {
62
+ console.warn('got error when offing socket', e);
63
+ }
64
+ this.socket = null;
65
+ reject(new Error('failed to connect to bridge server after timeout'));
66
+ }, 5000);
67
+ this.socket.on('disconnect', (reason)=>{
68
+ this.socket = null;
69
+ this.onDisconnect?.();
70
+ });
71
+ this.socket.on('connect_error', (e)=>{
72
+ console.error('bridge-connect-error', e);
73
+ reject(new Error(e || 'bridge connect error'));
74
+ });
75
+ this.socket.on(external_common_js_namespaceObject.BridgeEvent.Connected, (payload)=>{
76
+ clearTimeout(timeout);
77
+ this.serverVersion = payload?.version || 'unknown';
78
+ resolve(this.socket);
79
+ });
80
+ this.socket.on(external_common_js_namespaceObject.BridgeEvent.Refused, (e)=>{
81
+ console.error('bridge-refused', e);
82
+ try {
83
+ this.socket?.disconnect();
84
+ } catch (e) {}
85
+ reject(new Error(e || 'bridge refused'));
86
+ });
87
+ this.socket.on(external_common_js_namespaceObject.BridgeEvent.Call, (call)=>{
88
+ const id = call.id;
89
+ (0, utils_namespaceObject.assert)(void 0 !== id, 'call id is required');
90
+ (async ()=>{
91
+ let response;
92
+ try {
93
+ response = await this.onBridgeCall(call.method, call.args);
94
+ } catch (e) {
95
+ const errorContent = `Error from bridge client when calling, method: ${call.method}, args: ${call.args}, error: ${e?.message || e}\n${e?.stack || ''}`;
96
+ console.error(errorContent);
97
+ return this.socket?.emit(external_common_js_namespaceObject.BridgeEvent.CallResponse, {
98
+ id,
99
+ error: errorContent
100
+ });
101
+ }
102
+ this.socket?.emit(external_common_js_namespaceObject.BridgeEvent.CallResponse, {
103
+ id,
104
+ response
105
+ });
106
+ })();
107
+ });
108
+ });
109
+ }
110
+ disconnect() {
111
+ this.socket?.disconnect();
112
+ this.socket = null;
113
+ }
114
+ constructor(endpoint, onBridgeCall, onDisconnect){
115
+ _define_property(this, "endpoint", void 0);
116
+ _define_property(this, "onBridgeCall", void 0);
117
+ _define_property(this, "onDisconnect", void 0);
118
+ _define_property(this, "socket", void 0);
119
+ _define_property(this, "serverVersion", void 0);
120
+ this.endpoint = endpoint;
121
+ this.onBridgeCall = onBridgeCall;
122
+ this.onDisconnect = onDisconnect;
123
+ this.socket = null;
124
+ this.serverVersion = null;
125
+ }
126
+ }
127
+ exports.BridgeClient = __webpack_exports__.BridgeClient;
128
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
129
+ "BridgeClient"
130
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
131
+ Object.defineProperty(exports, '__esModule', {
132
+ value: true
133
+ });