@sqaitech/playground 0.30.10

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 (92) hide show
  1. package/dist/es/adapters/base.mjs +131 -0
  2. package/dist/es/adapters/base.mjs.map +1 -0
  3. package/dist/es/adapters/local-execution.mjs +140 -0
  4. package/dist/es/adapters/local-execution.mjs.map +1 -0
  5. package/dist/es/adapters/remote-execution.mjs +308 -0
  6. package/dist/es/adapters/remote-execution.mjs.map +1 -0
  7. package/dist/es/common.mjs +148 -0
  8. package/dist/es/common.mjs.map +1 -0
  9. package/dist/es/index.browser.mjs +9 -0
  10. package/dist/es/index.browser.mjs.map +1 -0
  11. package/dist/es/index.mjs +8 -0
  12. package/dist/es/launcher.mjs +95 -0
  13. package/dist/es/launcher.mjs.map +1 -0
  14. package/dist/es/sdk/index.mjs +102 -0
  15. package/dist/es/sdk/index.mjs.map +1 -0
  16. package/dist/es/server.mjs +385 -0
  17. package/dist/es/server.mjs.map +1 -0
  18. package/dist/es/types.mjs +0 -0
  19. package/dist/lib/adapters/base.js +165 -0
  20. package/dist/lib/adapters/base.js.map +1 -0
  21. package/dist/lib/adapters/local-execution.js +174 -0
  22. package/dist/lib/adapters/local-execution.js.map +1 -0
  23. package/dist/lib/adapters/remote-execution.js +342 -0
  24. package/dist/lib/adapters/remote-execution.js.map +1 -0
  25. package/dist/lib/common.js +200 -0
  26. package/dist/lib/common.js.map +1 -0
  27. package/dist/lib/index.browser.js +73 -0
  28. package/dist/lib/index.browser.js.map +1 -0
  29. package/dist/lib/index.js +77 -0
  30. package/dist/lib/index.js.map +1 -0
  31. package/dist/lib/launcher.js +140 -0
  32. package/dist/lib/launcher.js.map +1 -0
  33. package/dist/lib/sdk/index.js +136 -0
  34. package/dist/lib/sdk/index.js.map +1 -0
  35. package/dist/lib/server.js +435 -0
  36. package/dist/lib/server.js.map +1 -0
  37. package/dist/lib/types.js +20 -0
  38. package/dist/lib/types.js.map +1 -0
  39. package/dist/types/adapters/base.d.ts +20 -0
  40. package/dist/types/adapters/local-execution.d.ts +31 -0
  41. package/dist/types/adapters/remote-execution.d.ts +38 -0
  42. package/dist/types/common.d.ts +9 -0
  43. package/dist/types/index.browser.d.ts +7 -0
  44. package/dist/types/index.d.ts +9 -0
  45. package/dist/types/launcher.d.ts +97 -0
  46. package/dist/types/sdk/index.d.ts +31 -0
  47. package/dist/types/server.d.ts +75 -0
  48. package/dist/types/types.d.ts +49 -0
  49. package/package.json +51 -0
  50. package/static/favicon.ico +0 -0
  51. package/static/index.html +1 -0
  52. package/static/static/css/index.60c69390.css +2 -0
  53. package/static/static/css/index.60c69390.css.map +1 -0
  54. package/static/static/js/931.dc961e99.js +620 -0
  55. package/static/static/js/931.dc961e99.js.LICENSE.txt +146 -0
  56. package/static/static/js/931.dc961e99.js.map +1 -0
  57. package/static/static/js/async/173.9cf6b074.js +3 -0
  58. package/static/static/js/async/173.9cf6b074.js.map +1 -0
  59. package/static/static/js/async/212.e243c338.js +158 -0
  60. package/static/static/js/async/212.e243c338.js.map +1 -0
  61. package/static/static/js/async/329.f888b505.js +26 -0
  62. package/static/static/js/async/329.f888b505.js.map +1 -0
  63. package/static/static/js/async/364.1821e74b.js +30 -0
  64. package/static/static/js/async/364.1821e74b.js.map +1 -0
  65. package/static/static/js/async/544.b73fa603.js +2 -0
  66. package/static/static/js/async/544.b73fa603.js.map +1 -0
  67. package/static/static/js/async/582.5dccae2d.js +21 -0
  68. package/static/static/js/async/582.5dccae2d.js.map +1 -0
  69. package/static/static/js/async/624.45ee2b2c.js +3 -0
  70. package/static/static/js/async/624.45ee2b2c.js.map +1 -0
  71. package/static/static/js/async/644.6bdc4065.js +1 -0
  72. package/static/static/js/async/659.9afd03db.js +21 -0
  73. package/static/static/js/async/659.9afd03db.js.map +1 -0
  74. package/static/static/js/async/702.60261735.js +231 -0
  75. package/static/static/js/async/702.60261735.js.map +1 -0
  76. package/static/static/js/async/920.7d9a9aa8.js +2 -0
  77. package/static/static/js/async/920.7d9a9aa8.js.map +1 -0
  78. package/static/static/js/async/983.8b91303f.js +1 -0
  79. package/static/static/js/index.5cccbdaf.js +10 -0
  80. package/static/static/js/index.5cccbdaf.js.LICENSE.txt +7 -0
  81. package/static/static/js/index.5cccbdaf.js.map +1 -0
  82. package/static/static/js/index.8a10896b.js +10 -0
  83. package/static/static/js/index.8a10896b.js.LICENSE.txt +7 -0
  84. package/static/static/js/index.8a10896b.js.map +1 -0
  85. package/static/static/js/index.f21bb1df.js +10 -0
  86. package/static/static/js/index.f21bb1df.js.LICENSE.txt +7 -0
  87. package/static/static/js/index.f21bb1df.js.map +1 -0
  88. package/static/static/js/lib-react.f566a9ed.js +3 -0
  89. package/static/static/js/lib-react.f566a9ed.js.LICENSE.txt +39 -0
  90. package/static/static/js/lib-react.f566a9ed.js.map +1 -0
  91. package/static/static/svg/server-offline-foreground.3113df3c.svg +36 -0
  92. package/static/static/wasm/9e906fbf55e08f98.module.wasm +0 -0
@@ -0,0 +1,200 @@
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 ('undefined' != 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
+ formatErrorMessage: ()=>formatErrorMessage,
28
+ validateStructuredParams: ()=>validateStructuredParams,
29
+ parseStructuredParams: ()=>parseStructuredParams,
30
+ validationAPIs: ()=>validationAPIs,
31
+ dataExtractionAPIs: ()=>dataExtractionAPIs,
32
+ executeAction: ()=>executeAction,
33
+ noReplayAPIs: ()=>noReplayAPIs
34
+ });
35
+ const ai_model_namespaceObject = require("@sqaitech/core/ai-model");
36
+ const yaml_namespaceObject = require("@sqaitech/core/yaml");
37
+ const dataExtractionAPIs = [
38
+ 'aiQuery',
39
+ 'aiBoolean',
40
+ 'aiNumber',
41
+ 'aiString',
42
+ 'aiAsk'
43
+ ];
44
+ const validationAPIs = [
45
+ 'aiAssert',
46
+ 'aiWaitFor'
47
+ ];
48
+ const noReplayAPIs = [
49
+ ...dataExtractionAPIs,
50
+ ...validationAPIs
51
+ ];
52
+ const formatErrorMessage = (e)=>{
53
+ const errorMessage = (null == e ? void 0 : e.message) || '';
54
+ if (errorMessage.includes('of different extension')) return 'Conflicting extension detected. Please disable the suspicious plugins and refresh the page. Guide: https://midscenejs.com/quick-experience.html#faq';
55
+ if (errorMessage.includes('NOT_IMPLEMENTED_AS_DESIGNED')) return 'Further actions cannot be performed in the current environment';
56
+ return errorMessage || 'Unknown error';
57
+ };
58
+ async function parseStructuredParams(action, params, options = {}) {
59
+ if (!(null == action ? void 0 : action.paramSchema) || !('shape' in action.paramSchema)) return [
60
+ params.prompt || '',
61
+ options
62
+ ];
63
+ const schema = action.paramSchema;
64
+ const keys = schema && 'shape' in schema ? Object.keys(schema.shape) : [];
65
+ const paramObj = {
66
+ ...options
67
+ };
68
+ keys.forEach((key)=>{
69
+ if (void 0 !== params[key] && null !== params[key] && '' !== params[key]) paramObj[key] = params[key];
70
+ });
71
+ if (schema) {
72
+ const locatorFieldKeys = (0, ai_model_namespaceObject.findAllMidsceneLocatorField)(schema);
73
+ locatorFieldKeys.forEach((locateKey)=>{
74
+ const locatePrompt = params[locateKey];
75
+ if (locatePrompt && 'string' == typeof locatePrompt) {
76
+ const detailedLocateParam = (0, yaml_namespaceObject.buildDetailedLocateParam)(locatePrompt, {
77
+ deepThink: options.deepThink,
78
+ cacheable: true
79
+ });
80
+ if (detailedLocateParam) paramObj[locateKey] = detailedLocateParam;
81
+ }
82
+ });
83
+ }
84
+ return [
85
+ paramObj
86
+ ];
87
+ }
88
+ function validateStructuredParams(value, action) {
89
+ if (!value.params) return {
90
+ valid: false,
91
+ errorMessage: 'Parameters are required'
92
+ };
93
+ if (!(null == action ? void 0 : action.paramSchema)) return {
94
+ valid: true
95
+ };
96
+ try {
97
+ var _action_paramSchema;
98
+ const paramsForValidation = {
99
+ ...value.params
100
+ };
101
+ const schema = action.paramSchema;
102
+ if (schema) {
103
+ const locatorFieldKeys = (0, ai_model_namespaceObject.findAllMidsceneLocatorField)(schema);
104
+ locatorFieldKeys.forEach((key)=>{
105
+ if ('string' == typeof paramsForValidation[key]) paramsForValidation[key] = {
106
+ midscene_location_field_flag: true,
107
+ prompt: paramsForValidation[key],
108
+ center: [
109
+ 0,
110
+ 0
111
+ ],
112
+ rect: {
113
+ left: 0,
114
+ top: 0,
115
+ width: 0,
116
+ height: 0
117
+ }
118
+ };
119
+ });
120
+ }
121
+ null == (_action_paramSchema = action.paramSchema) || _action_paramSchema.parse(paramsForValidation);
122
+ } catch (error) {
123
+ const zodError = error;
124
+ if (zodError.errors && zodError.errors.length > 0) {
125
+ const errorMessages = zodError.errors.filter((err)=>{
126
+ const path = err.path.join('.');
127
+ return !path.includes('center') && !path.includes('rect') && !path.includes('midscene_location_field_flag');
128
+ }).map((err)=>{
129
+ const field = err.path.join('.');
130
+ return `${field}: ${err.message}`;
131
+ });
132
+ if (errorMessages.length > 0) return {
133
+ valid: false,
134
+ errorMessage: `Validation error: ${errorMessages.join(', ')}`
135
+ };
136
+ } else {
137
+ const errorMsg = error instanceof Error ? error.message : 'Unknown validation error';
138
+ return {
139
+ valid: false,
140
+ errorMessage: `Parameter validation failed: ${errorMsg}`
141
+ };
142
+ }
143
+ }
144
+ return {
145
+ valid: true
146
+ };
147
+ }
148
+ async function executeAction(activeAgent, actionType, actionSpace, value, options) {
149
+ const action = null == actionSpace ? void 0 : actionSpace.find((a)=>a.interfaceAlias === actionType || a.name === actionType);
150
+ if (action && 'function' == typeof activeAgent.callActionInActionSpace) if (value.params) {
151
+ const parsedParams = await parseStructuredParams(action, value.params, options);
152
+ return await activeAgent.callActionInActionSpace(action.name, parsedParams[0]);
153
+ } else {
154
+ const detailedLocateParam = value.prompt ? (0, yaml_namespaceObject.buildDetailedLocateParam)(value.prompt, {
155
+ deepThink: options.deepThink,
156
+ cacheable: true
157
+ }) : void 0;
158
+ return await activeAgent.callActionInActionSpace(action.name, {
159
+ locate: detailedLocateParam,
160
+ ...options
161
+ });
162
+ }
163
+ {
164
+ const prompt = value.prompt;
165
+ if ('aiAssert' === actionType) {
166
+ var _activeAgent_aiAssert;
167
+ const { pass, thought } = await (null == activeAgent ? void 0 : null == (_activeAgent_aiAssert = activeAgent.aiAssert) ? void 0 : _activeAgent_aiAssert.call(activeAgent, prompt || '', void 0, {
168
+ keepRawResponse: true,
169
+ ...options
170
+ })) || {};
171
+ return {
172
+ pass: pass || false,
173
+ thought: thought || ''
174
+ };
175
+ }
176
+ if (activeAgent && 'function' == typeof activeAgent[actionType]) return await activeAgent[actionType](prompt, options);
177
+ throw new Error(`Unknown action type: ${actionType}`);
178
+ }
179
+ }
180
+ exports.dataExtractionAPIs = __webpack_exports__.dataExtractionAPIs;
181
+ exports.executeAction = __webpack_exports__.executeAction;
182
+ exports.formatErrorMessage = __webpack_exports__.formatErrorMessage;
183
+ exports.noReplayAPIs = __webpack_exports__.noReplayAPIs;
184
+ exports.parseStructuredParams = __webpack_exports__.parseStructuredParams;
185
+ exports.validateStructuredParams = __webpack_exports__.validateStructuredParams;
186
+ exports.validationAPIs = __webpack_exports__.validationAPIs;
187
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
188
+ "dataExtractionAPIs",
189
+ "executeAction",
190
+ "formatErrorMessage",
191
+ "noReplayAPIs",
192
+ "parseStructuredParams",
193
+ "validateStructuredParams",
194
+ "validationAPIs"
195
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
196
+ Object.defineProperty(exports, '__esModule', {
197
+ value: true
198
+ });
199
+
200
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sources":["webpack://@sqaitech/playground/webpack/runtime/define_property_getters","webpack://@sqaitech/playground/webpack/runtime/has_own_property","webpack://@sqaitech/playground/webpack/runtime/make_namespace_object","webpack://@sqaitech/playground/./src/common.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { DeviceAction } from '@sqaitech/core';\r\nimport { findAllMidsceneLocatorField } from '@sqaitech/core/ai-model';\r\nimport { buildDetailedLocateParam } from '@sqaitech/core/yaml';\r\nimport type {\r\n ExecutionOptions,\r\n FormValue,\r\n PlaygroundAgent,\r\n ValidationResult,\r\n} from './types';\r\n\r\n// APIs that should not generate replay scripts\r\nexport const dataExtractionAPIs = [\r\n 'aiQuery',\r\n 'aiBoolean',\r\n 'aiNumber',\r\n 'aiString',\r\n 'aiAsk',\r\n];\r\n\r\nexport const validationAPIs = ['aiAssert', 'aiWaitFor'];\r\n\r\nexport const noReplayAPIs = [...dataExtractionAPIs, ...validationAPIs];\r\n\r\nexport const formatErrorMessage = (e: any): string => {\r\n const errorMessage = e?.message || '';\r\n\r\n if (errorMessage.includes('of different extension')) {\r\n return 'Conflicting extension detected. Please disable the suspicious plugins and refresh the page. Guide: https://midscenejs.com/quick-experience.html#faq';\r\n }\r\n\r\n if (errorMessage.includes('NOT_IMPLEMENTED_AS_DESIGNED')) {\r\n return 'Further actions cannot be performed in the current environment';\r\n }\r\n\r\n return errorMessage || 'Unknown error';\r\n};\r\n\r\n// Parse structured parameters for callActionInActionSpace\r\nexport async function parseStructuredParams(\r\n action: DeviceAction<unknown>,\r\n params: Record<string, unknown>,\r\n options: ExecutionOptions = {},\r\n): Promise<unknown[]> {\r\n if (!action?.paramSchema || !('shape' in action.paramSchema)) {\r\n return [params.prompt || '', options];\r\n }\r\n\r\n const schema = action.paramSchema;\r\n const keys =\r\n schema && 'shape' in schema\r\n ? Object.keys((schema as { shape: Record<string, unknown> }).shape)\r\n : [];\r\n\r\n const paramObj: Record<string, unknown> = { ...options };\r\n\r\n keys.forEach((key) => {\r\n if (\r\n params[key] !== undefined &&\r\n params[key] !== null &&\r\n params[key] !== ''\r\n ) {\r\n paramObj[key] = params[key];\r\n }\r\n });\r\n\r\n // Check if there's a locate field that needs detailed locate param processing\r\n if (schema) {\r\n const locatorFieldKeys = findAllMidsceneLocatorField(schema);\r\n locatorFieldKeys.forEach((locateKey: string) => {\r\n const locatePrompt = params[locateKey];\r\n if (locatePrompt && typeof locatePrompt === 'string') {\r\n // Build detailed locate param using the locate prompt and options\r\n const detailedLocateParam = buildDetailedLocateParam(locatePrompt, {\r\n deepThink: options.deepThink,\r\n cacheable: true, // Default to true for playground\r\n });\r\n if (detailedLocateParam) {\r\n paramObj[locateKey] = detailedLocateParam;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return [paramObj];\r\n}\r\n\r\nexport function validateStructuredParams(\r\n value: FormValue,\r\n action: DeviceAction<unknown> | undefined,\r\n): ValidationResult {\r\n if (!value.params) {\r\n return { valid: false, errorMessage: 'Parameters are required' };\r\n }\r\n\r\n if (!action?.paramSchema) {\r\n return { valid: true };\r\n }\r\n\r\n try {\r\n const paramsForValidation = { ...value.params };\r\n\r\n const schema = action.paramSchema;\r\n if (schema) {\r\n const locatorFieldKeys = findAllMidsceneLocatorField(schema);\r\n locatorFieldKeys.forEach((key: string) => {\r\n if (typeof paramsForValidation[key] === 'string') {\r\n paramsForValidation[key] = {\r\n midscene_location_field_flag: true,\r\n prompt: paramsForValidation[key],\r\n center: [0, 0],\r\n rect: { left: 0, top: 0, width: 0, height: 0 },\r\n };\r\n }\r\n });\r\n }\r\n\r\n action.paramSchema?.parse(paramsForValidation);\r\n return { valid: true };\r\n } catch (error: unknown) {\r\n const zodError = error as {\r\n errors?: Array<{ path: string[]; message: string }>;\r\n };\r\n if (zodError.errors && zodError.errors.length > 0) {\r\n const errorMessages = zodError.errors\r\n .filter((err) => {\r\n const path = err.path.join('.');\r\n return (\r\n !path.includes('center') &&\r\n !path.includes('rect') &&\r\n !path.includes('midscene_location_field_flag')\r\n );\r\n })\r\n .map((err) => {\r\n const field = err.path.join('.');\r\n return `${field}: ${err.message}`;\r\n });\r\n\r\n if (errorMessages.length > 0) {\r\n return {\r\n valid: false,\r\n errorMessage: `Validation error: ${errorMessages.join(', ')}`,\r\n };\r\n }\r\n } else {\r\n const errorMsg =\r\n error instanceof Error ? error.message : 'Unknown validation error';\r\n return {\r\n valid: false,\r\n errorMessage: `Parameter validation failed: ${errorMsg}`,\r\n };\r\n }\r\n }\r\n\r\n return { valid: true };\r\n}\r\n\r\nexport async function executeAction(\r\n activeAgent: PlaygroundAgent,\r\n actionType: string,\r\n actionSpace: DeviceAction<unknown>[],\r\n value: FormValue,\r\n options: ExecutionOptions,\r\n): Promise<unknown> {\r\n const action = actionSpace?.find(\r\n (a: DeviceAction<unknown>) =>\r\n a.interfaceAlias === actionType || a.name === actionType,\r\n );\r\n\r\n if (action && typeof activeAgent.callActionInActionSpace === 'function') {\r\n if (value.params) {\r\n const parsedParams = await parseStructuredParams(\r\n action,\r\n value.params,\r\n options,\r\n );\r\n return await activeAgent.callActionInActionSpace(\r\n action.name,\r\n parsedParams[0],\r\n );\r\n } else {\r\n // For prompt-based actions, we need to build the detailed locate param\r\n const detailedLocateParam = value.prompt\r\n ? buildDetailedLocateParam(value.prompt, {\r\n deepThink: options.deepThink,\r\n cacheable: true,\r\n })\r\n : undefined;\r\n\r\n return await activeAgent.callActionInActionSpace(action.name, {\r\n locate: detailedLocateParam,\r\n ...options,\r\n });\r\n }\r\n } else {\r\n const prompt = value.prompt;\r\n\r\n if (actionType === 'aiAssert') {\r\n const { pass, thought } =\r\n (await activeAgent?.aiAssert?.(prompt || '', undefined, {\r\n keepRawResponse: true,\r\n ...options,\r\n })) || {};\r\n return { pass: pass || false, thought: thought || '' };\r\n }\r\n\r\n // Fallback for methods not found in actionSpace\r\n if (activeAgent && typeof activeAgent[actionType] === 'function') {\r\n return await activeAgent[actionType](prompt, options);\r\n }\r\n\r\n throw new Error(`Unknown action type: ${actionType}`);\r\n }\r\n}\r\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","dataExtractionAPIs","validationAPIs","noReplayAPIs","formatErrorMessage","e","errorMessage","parseStructuredParams","action","params","options","schema","keys","paramObj","undefined","locatorFieldKeys","findAllMidsceneLocatorField","locateKey","locatePrompt","detailedLocateParam","buildDetailedLocateParam","validateStructuredParams","value","_action_paramSchema","paramsForValidation","error","zodError","errorMessages","err","path","field","errorMsg","Error","executeAction","activeAgent","actionType","actionSpace","a","parsedParams","prompt","pass","thought"],"mappings":"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"}
@@ -0,0 +1,73 @@
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 ('undefined' != 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
+ RemoteExecutionAdapter: ()=>remote_execution_js_namespaceObject.RemoteExecutionAdapter,
28
+ PlaygroundServer: ()=>PlaygroundServer,
29
+ formatErrorMessage: ()=>external_common_js_namespaceObject.formatErrorMessage,
30
+ executeAction: ()=>external_common_js_namespaceObject.executeAction,
31
+ noReplayAPIs: ()=>external_common_js_namespaceObject.noReplayAPIs,
32
+ validateStructuredParams: ()=>external_common_js_namespaceObject.validateStructuredParams,
33
+ PlaygroundSDK: ()=>index_js_namespaceObject.PlaygroundSDK,
34
+ LocalExecutionAdapter: ()=>local_execution_js_namespaceObject.LocalExecutionAdapter,
35
+ dataExtractionAPIs: ()=>external_common_js_namespaceObject.dataExtractionAPIs,
36
+ BasePlaygroundAdapter: ()=>base_js_namespaceObject.BasePlaygroundAdapter,
37
+ validationAPIs: ()=>external_common_js_namespaceObject.validationAPIs
38
+ });
39
+ const external_common_js_namespaceObject = require("./common.js");
40
+ const index_js_namespaceObject = require("./sdk/index.js");
41
+ const base_js_namespaceObject = require("./adapters/base.js");
42
+ const local_execution_js_namespaceObject = require("./adapters/local-execution.js");
43
+ const remote_execution_js_namespaceObject = require("./adapters/remote-execution.js");
44
+ const PlaygroundServer = void 0;
45
+ exports.BasePlaygroundAdapter = __webpack_exports__.BasePlaygroundAdapter;
46
+ exports.LocalExecutionAdapter = __webpack_exports__.LocalExecutionAdapter;
47
+ exports.PlaygroundSDK = __webpack_exports__.PlaygroundSDK;
48
+ exports.PlaygroundServer = __webpack_exports__.PlaygroundServer;
49
+ exports.RemoteExecutionAdapter = __webpack_exports__.RemoteExecutionAdapter;
50
+ exports.dataExtractionAPIs = __webpack_exports__.dataExtractionAPIs;
51
+ exports.executeAction = __webpack_exports__.executeAction;
52
+ exports.formatErrorMessage = __webpack_exports__.formatErrorMessage;
53
+ exports.noReplayAPIs = __webpack_exports__.noReplayAPIs;
54
+ exports.validateStructuredParams = __webpack_exports__.validateStructuredParams;
55
+ exports.validationAPIs = __webpack_exports__.validationAPIs;
56
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
57
+ "BasePlaygroundAdapter",
58
+ "LocalExecutionAdapter",
59
+ "PlaygroundSDK",
60
+ "PlaygroundServer",
61
+ "RemoteExecutionAdapter",
62
+ "dataExtractionAPIs",
63
+ "executeAction",
64
+ "formatErrorMessage",
65
+ "noReplayAPIs",
66
+ "validateStructuredParams",
67
+ "validationAPIs"
68
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
69
+ Object.defineProperty(exports, '__esModule', {
70
+ value: true
71
+ });
72
+
73
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.js","sources":["webpack://@sqaitech/playground/webpack/runtime/define_property_getters","webpack://@sqaitech/playground/webpack/runtime/has_own_property","webpack://@sqaitech/playground/webpack/runtime/make_namespace_object","webpack://@sqaitech/playground/./src/index.browser.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Browser-safe version of playground exports (excludes server)\r\nexport {\r\n dataExtractionAPIs,\r\n noReplayAPIs,\r\n validationAPIs,\r\n formatErrorMessage,\r\n validateStructuredParams,\r\n executeAction,\r\n} from './common';\r\n\r\n// SDK exports (all browser-safe)\r\nexport { PlaygroundSDK } from './sdk';\r\nexport { BasePlaygroundAdapter } from './adapters/base';\r\nexport { LocalExecutionAdapter } from './adapters/local-execution';\r\nexport { RemoteExecutionAdapter } from './adapters/remote-execution';\r\n\r\n// PlaygroundServer is not available in browser environments\r\nexport const PlaygroundServer = undefined;\r\n\r\nexport type {\r\n ExecutionOptions,\r\n FormValue,\r\n PlaygroundAgent,\r\n ValidationResult,\r\n PlaygroundConfig,\r\n ExecutionType,\r\n PlaygroundAdapter,\r\n} from './types';\r\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","PlaygroundServer","undefined"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;;;;;;;;;;;;;ACWO,MAAMI,mBAAmBC"}
@@ -0,0 +1,77 @@
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 ('undefined' != 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
+ RemoteExecutionAdapter: ()=>remote_execution_js_namespaceObject.RemoteExecutionAdapter,
28
+ PlaygroundServer: ()=>external_server_js_namespaceObject.PlaygroundServer,
29
+ formatErrorMessage: ()=>external_common_js_namespaceObject.formatErrorMessage,
30
+ playgroundForAgent: ()=>external_launcher_js_namespaceObject.playgroundForAgent,
31
+ executeAction: ()=>external_common_js_namespaceObject.executeAction,
32
+ noReplayAPIs: ()=>external_common_js_namespaceObject.noReplayAPIs,
33
+ validateStructuredParams: ()=>external_common_js_namespaceObject.validateStructuredParams,
34
+ PlaygroundSDK: ()=>index_js_namespaceObject.PlaygroundSDK,
35
+ LocalExecutionAdapter: ()=>local_execution_js_namespaceObject.LocalExecutionAdapter,
36
+ dataExtractionAPIs: ()=>external_common_js_namespaceObject.dataExtractionAPIs,
37
+ BasePlaygroundAdapter: ()=>base_js_namespaceObject.BasePlaygroundAdapter,
38
+ validationAPIs: ()=>external_common_js_namespaceObject.validationAPIs
39
+ });
40
+ const external_common_js_namespaceObject = require("./common.js");
41
+ const external_server_js_namespaceObject = require("./server.js");
42
+ const external_launcher_js_namespaceObject = require("./launcher.js");
43
+ const index_js_namespaceObject = require("./sdk/index.js");
44
+ const base_js_namespaceObject = require("./adapters/base.js");
45
+ const local_execution_js_namespaceObject = require("./adapters/local-execution.js");
46
+ const remote_execution_js_namespaceObject = require("./adapters/remote-execution.js");
47
+ exports.BasePlaygroundAdapter = __webpack_exports__.BasePlaygroundAdapter;
48
+ exports.LocalExecutionAdapter = __webpack_exports__.LocalExecutionAdapter;
49
+ exports.PlaygroundSDK = __webpack_exports__.PlaygroundSDK;
50
+ exports.PlaygroundServer = __webpack_exports__.PlaygroundServer;
51
+ exports.RemoteExecutionAdapter = __webpack_exports__.RemoteExecutionAdapter;
52
+ exports.dataExtractionAPIs = __webpack_exports__.dataExtractionAPIs;
53
+ exports.executeAction = __webpack_exports__.executeAction;
54
+ exports.formatErrorMessage = __webpack_exports__.formatErrorMessage;
55
+ exports.noReplayAPIs = __webpack_exports__.noReplayAPIs;
56
+ exports.playgroundForAgent = __webpack_exports__.playgroundForAgent;
57
+ exports.validateStructuredParams = __webpack_exports__.validateStructuredParams;
58
+ exports.validationAPIs = __webpack_exports__.validationAPIs;
59
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
60
+ "BasePlaygroundAdapter",
61
+ "LocalExecutionAdapter",
62
+ "PlaygroundSDK",
63
+ "PlaygroundServer",
64
+ "RemoteExecutionAdapter",
65
+ "dataExtractionAPIs",
66
+ "executeAction",
67
+ "formatErrorMessage",
68
+ "noReplayAPIs",
69
+ "playgroundForAgent",
70
+ "validateStructuredParams",
71
+ "validationAPIs"
72
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
73
+ Object.defineProperty(exports, '__esModule', {
74
+ value: true
75
+ });
76
+
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["webpack://@sqaitech/playground/webpack/runtime/define_property_getters","webpack://@sqaitech/playground/webpack/runtime/has_own_property","webpack://@sqaitech/playground/webpack/runtime/make_namespace_object"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ playgroundForAgent: ()=>playgroundForAgent
37
+ });
38
+ const external_node_child_process_namespaceObject = require("node:child_process");
39
+ const constants_namespaceObject = require("@sqaitech/shared/constants");
40
+ const external_cors_namespaceObject = require("cors");
41
+ var external_cors_default = /*#__PURE__*/ __webpack_require__.n(external_cors_namespaceObject);
42
+ const external_server_js_namespaceObject = require("./server.js");
43
+ var external_server_js_default = /*#__PURE__*/ __webpack_require__.n(external_server_js_namespaceObject);
44
+ function playgroundForAgent(agent) {
45
+ return {
46
+ async launch (options = {}) {
47
+ const { port = constants_namespaceObject.PLAYGROUND_SERVER_PORT, openBrowser = true, browserCommand, verbose = true, id, enableCors = false, corsOptions = {
48
+ origin: '*',
49
+ credentials: true
50
+ } } = options;
51
+ const webPage = agent.interface;
52
+ if (!webPage) throw new Error('Agent must have an interface property');
53
+ if (verbose) {
54
+ console.log("\uD83D\uDE80 Starting Midscene Playground...");
55
+ console.log(`\u{1F4F1} Agent: ${agent.constructor.name}`);
56
+ console.log(`\u{1F5A5}\u{FE0F} Page: ${webPage.constructor.name}`);
57
+ console.log(`\u{1F310} Port: ${port}`);
58
+ if (enableCors) console.log("\uD83D\uDD13 CORS enabled");
59
+ }
60
+ const server = new (external_server_js_default())(agent, void 0, id);
61
+ if (enableCors) server.app.use(external_cors_default()(corsOptions));
62
+ const launchedServer = await server.launch(port);
63
+ if (verbose) console.log(`\u{2705} Playground server started on port ${port}`);
64
+ const url = `http://127.0.0.1:${port}`;
65
+ if (openBrowser) await openInBrowser(url, browserCommand, verbose);
66
+ return {
67
+ server: launchedServer,
68
+ port,
69
+ host: '127.0.0.1',
70
+ close: async ()=>{
71
+ if (verbose) console.log("\uD83D\uDED1 Shutting down Midscene Playground...");
72
+ try {
73
+ await launchedServer.close();
74
+ if (verbose) console.log("\u2705 Playground shutdown complete");
75
+ } catch (error) {
76
+ if (verbose) console.error("\u274C Error during playground shutdown:", error);
77
+ throw error;
78
+ }
79
+ }
80
+ };
81
+ }
82
+ };
83
+ }
84
+ async function openInBrowser(url, customCommand, verbose = true) {
85
+ return new Promise((resolve, reject)=>{
86
+ let command;
87
+ let args;
88
+ if (customCommand) {
89
+ command = customCommand;
90
+ args = [
91
+ url
92
+ ];
93
+ } else switch(process.platform){
94
+ case 'darwin':
95
+ command = 'open';
96
+ args = [
97
+ url
98
+ ];
99
+ break;
100
+ case 'win32':
101
+ command = 'start';
102
+ args = [
103
+ '',
104
+ url
105
+ ];
106
+ break;
107
+ default:
108
+ command = 'xdg-open';
109
+ args = [
110
+ url
111
+ ];
112
+ break;
113
+ }
114
+ if (verbose) console.log(`\u{1F310} Opening browser: ${command} ${args.join(' ')}`);
115
+ const child = (0, external_node_child_process_namespaceObject.spawn)(command, args, {
116
+ detached: true,
117
+ stdio: 'ignore'
118
+ });
119
+ child.on('error', (error)=>{
120
+ if (verbose) {
121
+ console.warn("\u26A0\uFE0F Failed to open browser automatically:", error.message);
122
+ console.log(`\u{1F310} Please open manually: ${url}`);
123
+ }
124
+ resolve();
125
+ });
126
+ child.on('close', ()=>{
127
+ resolve();
128
+ });
129
+ child.unref();
130
+ });
131
+ }
132
+ exports.playgroundForAgent = __webpack_exports__.playgroundForAgent;
133
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
134
+ "playgroundForAgent"
135
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
136
+ Object.defineProperty(exports, '__esModule', {
137
+ value: true
138
+ });
139
+
140
+ //# sourceMappingURL=launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.js","sources":["webpack://@sqaitech/playground/webpack/runtime/compat_get_default_export","webpack://@sqaitech/playground/webpack/runtime/define_property_getters","webpack://@sqaitech/playground/webpack/runtime/has_own_property","webpack://@sqaitech/playground/webpack/runtime/make_namespace_object","webpack://@sqaitech/playground/./src/launcher.ts"],"sourcesContent":["// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { spawn } from 'node:child_process';\r\nimport type { Agent, Agent as PageAgent } from '@sqaitech/core/agent';\r\nimport { PLAYGROUND_SERVER_PORT } from '@sqaitech/shared/constants';\r\nimport cors from 'cors';\r\nimport PlaygroundServer from './server';\r\n\r\nexport interface LaunchPlaygroundOptions {\r\n /**\r\n * Port to start the playground server on\r\n * @default 5800\r\n */\r\n port?: number;\r\n\r\n /**\r\n * Whether to automatically open the playground in browser\r\n * @default true\r\n */\r\n openBrowser?: boolean;\r\n\r\n /**\r\n * Custom browser command to open playground\r\n * @default 'open' on macOS, 'start' on Windows, 'xdg-open' on Linux\r\n */\r\n browserCommand?: string;\r\n\r\n /**\r\n * Whether to show server logs\r\n * @default true\r\n */\r\n verbose?: boolean;\r\n\r\n /**\r\n * Fixed ID for the playground server instance\r\n * If provided, the same ID will be used across restarts,\r\n * allowing chat history to persist\r\n * @default undefined (generates random UUID)\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Whether to enable CORS (Cross-Origin Resource Sharing)\r\n * @default false\r\n */\r\n enableCors?: boolean;\r\n\r\n /**\r\n * CORS configuration options\r\n * @default { origin: '*', credentials: true } when enableCors is true\r\n */\r\n corsOptions?: {\r\n origin?: string | boolean | string[];\r\n credentials?: boolean;\r\n methods?: string[];\r\n allowedHeaders?: string[];\r\n };\r\n}\r\n\r\nexport interface LaunchPlaygroundResult {\r\n /**\r\n * The playground server instance\r\n */\r\n server: PlaygroundServer;\r\n\r\n /**\r\n * The server port\r\n */\r\n port: number;\r\n\r\n /**\r\n * The server host\r\n */\r\n host: string;\r\n\r\n /**\r\n * Function to gracefully shutdown the playground\r\n */\r\n close: () => Promise<void>;\r\n}\r\n\r\n/**\r\n * Create a playground launcher for a specific agent\r\n *\r\n * @example\r\n * ```typescript\r\n * import { playgroundForAgent } from '@sqaitech/playground';\r\n * import { SampleDevice, Agent } from '@sqaitech/core';\r\n *\r\n * const device = new SampleDevice();\r\n * const agent = new Agent(device);\r\n *\r\n * // Launch playground for the agent\r\n * const server = await playgroundForAgent(agent).launch();\r\n *\r\n * // Launch with CORS enabled\r\n * const serverWithCors = await playgroundForAgent(agent).launch({\r\n * enableCors: true,\r\n * corsOptions: {\r\n * origin: ['http://localhost:3000', 'http://localhost:8080'],\r\n * credentials: true\r\n * }\r\n * });\r\n *\r\n * // Later, when you want to shutdown:\r\n * server.close();\r\n * ```\r\n */\r\nexport function playgroundForAgent(agent: Agent) {\r\n return {\r\n /**\r\n * Launch the playground server with optional configuration\r\n */\r\n async launch(\r\n options: LaunchPlaygroundOptions = {},\r\n ): Promise<LaunchPlaygroundResult> {\r\n const {\r\n port = PLAYGROUND_SERVER_PORT,\r\n openBrowser = true,\r\n browserCommand,\r\n verbose = true,\r\n id,\r\n enableCors = false,\r\n corsOptions = { origin: '*', credentials: true },\r\n } = options;\r\n\r\n // Extract agent components - Agent has interface property\r\n const webPage = agent.interface;\r\n if (!webPage) {\r\n throw new Error('Agent must have an interface property');\r\n }\r\n\r\n if (verbose) {\r\n console.log('🚀 Starting Midscene Playground...');\r\n console.log(`📱 Agent: ${agent.constructor.name}`);\r\n console.log(`🖥️ Page: ${webPage.constructor.name}`);\r\n console.log(`🌐 Port: ${port}`);\r\n if (enableCors) {\r\n console.log('🔓 CORS enabled');\r\n }\r\n }\r\n\r\n // Create and launch the server with agent instance\r\n const server = new PlaygroundServer(\r\n agent as unknown as PageAgent,\r\n undefined, // staticPath - use default\r\n id, // Optional override ID (usually not needed now)\r\n );\r\n\r\n // Register CORS middleware if enabled\r\n if (enableCors) {\r\n server.app.use(cors(corsOptions));\r\n }\r\n\r\n const launchedServer = (await server.launch(port)) as PlaygroundServer;\r\n\r\n if (verbose) {\r\n console.log(`✅ Playground server started on port ${port}`);\r\n }\r\n\r\n const url = `http://127.0.0.1:${port}`;\r\n\r\n // Open browser if requested\r\n if (openBrowser) {\r\n await openInBrowser(url, browserCommand, verbose);\r\n }\r\n\r\n return {\r\n server: launchedServer,\r\n port,\r\n host: '127.0.0.1',\r\n close: async () => {\r\n if (verbose) {\r\n console.log('🛑 Shutting down Midscene Playground...');\r\n }\r\n\r\n try {\r\n await launchedServer.close();\r\n if (verbose) {\r\n console.log('✅ Playground shutdown complete');\r\n }\r\n } catch (error) {\r\n if (verbose) {\r\n console.error('❌ Error during playground shutdown:', error);\r\n }\r\n throw error;\r\n }\r\n },\r\n };\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Open URL in browser using platform-appropriate command\r\n */\r\nasync function openInBrowser(\r\n url: string,\r\n customCommand?: string,\r\n verbose = true,\r\n): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n let command: string;\r\n let args: string[];\r\n\r\n if (customCommand) {\r\n command = customCommand;\r\n args = [url];\r\n } else {\r\n // Detect platform and use appropriate command\r\n switch (process.platform) {\r\n case 'darwin':\r\n command = 'open';\r\n args = [url];\r\n break;\r\n case 'win32':\r\n command = 'start';\r\n args = ['', url]; // Empty string for title\r\n break;\r\n default:\r\n command = 'xdg-open';\r\n args = [url];\r\n break;\r\n }\r\n }\r\n\r\n if (verbose) {\r\n console.log(`🌐 Opening browser: ${command} ${args.join(' ')}`);\r\n }\r\n\r\n const child = spawn(command, args, {\r\n detached: true,\r\n stdio: 'ignore',\r\n });\r\n\r\n child.on('error', (error) => {\r\n if (verbose) {\r\n console.warn('⚠️ Failed to open browser automatically:', error.message);\r\n console.log(`🌐 Please open manually: ${url}`);\r\n }\r\n // Don't reject, just continue - browser opening is optional\r\n resolve();\r\n });\r\n\r\n child.on('close', () => {\r\n resolve();\r\n });\r\n\r\n // Don't wait for the browser process\r\n child.unref();\r\n });\r\n}\r\n"],"names":["__webpack_require__","module","getter","definition","key","Object","obj","prop","Symbol","playgroundForAgent","agent","options","port","PLAYGROUND_SERVER_PORT","openBrowser","browserCommand","verbose","id","enableCors","corsOptions","webPage","Error","console","server","PlaygroundServer","undefined","cors","launchedServer","url","openInBrowser","error","customCommand","Promise","resolve","reject","command","args","process","child","spawn"],"mappings":"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"}