@godscene/visualizer 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 (221) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/dist/es/component/blackboard/highlights.mjs +47 -0
  4. package/dist/es/component/blackboard/index.css +118 -0
  5. package/dist/es/component/blackboard/index.mjs +122 -0
  6. package/dist/es/component/config-selector/index.mjs +251 -0
  7. package/dist/es/component/context-preview/index.mjs +37 -0
  8. package/dist/es/component/env-config/index.mjs +237 -0
  9. package/dist/es/component/env-config-reminder/index.css +30 -0
  10. package/dist/es/component/env-config-reminder/index.mjs +27 -0
  11. package/dist/es/component/form-field/index.mjs +158 -0
  12. package/dist/es/component/history-selector/index.css +237 -0
  13. package/dist/es/component/history-selector/index.mjs +197 -0
  14. package/dist/es/component/index.mjs +1 -0
  15. package/dist/es/component/logo/index.css +19 -0
  16. package/dist/es/component/logo/index.mjs +20 -0
  17. package/dist/es/component/logo/logo.mjs +2 -0
  18. package/dist/es/component/misc/index.mjs +96 -0
  19. package/dist/es/component/nav-actions/index.mjs +14 -0
  20. package/dist/es/component/nav-actions/style.css +35 -0
  21. package/dist/es/component/player/index.css +296 -0
  22. package/dist/es/component/player/index.mjs +702 -0
  23. package/dist/es/component/player/playback-controls.mjs +4 -0
  24. package/dist/es/component/player/report-download.mjs +61 -0
  25. package/dist/es/component/player/scenes/StepScene.mjs +194 -0
  26. package/dist/es/component/player/scenes/derive-frame-state.mjs +229 -0
  27. package/dist/es/component/player/scenes/export-branded-video.mjs +360 -0
  28. package/dist/es/component/player/scenes/frame-calculator.mjs +149 -0
  29. package/dist/es/component/player/scenes/playback-frame.mjs +6 -0
  30. package/dist/es/component/player/scenes/playback-layout.mjs +12 -0
  31. package/dist/es/component/player/scenes/pointer-layout.mjs +36 -0
  32. package/dist/es/component/player/use-frame-player.mjs +87 -0
  33. package/dist/es/component/playground/index.css +930 -0
  34. package/dist/es/component/playground/playground-demo-ui-context.json +290 -0
  35. package/dist/es/component/playground-result/index.css +92 -0
  36. package/dist/es/component/playground-result/index.mjs +232 -0
  37. package/dist/es/component/prompt-input/index.css +832 -0
  38. package/dist/es/component/prompt-input/index.mjs +959 -0
  39. package/dist/es/component/screenshot-viewer/index.css +237 -0
  40. package/dist/es/component/screenshot-viewer/index.mjs +319 -0
  41. package/dist/es/component/service-mode-control/index.mjs +107 -0
  42. package/dist/es/component/shiny-text/index.css +107 -0
  43. package/dist/es/component/shiny-text/index.mjs +15 -0
  44. package/dist/es/component/universal-playground/empty-state.mjs +5 -0
  45. package/dist/es/component/universal-playground/index.css +619 -0
  46. package/dist/es/component/universal-playground/index.mjs +558 -0
  47. package/dist/es/component/universal-playground/providers/context-provider.mjs +90 -0
  48. package/dist/es/component/universal-playground/providers/indexeddb-storage-provider.mjs +280 -0
  49. package/dist/es/component/universal-playground/providers/storage-provider.mjs +279 -0
  50. package/dist/es/component/universal-playground/universal-playground-electron.mjs +668 -0
  51. package/dist/es/hooks/useMinimalTypeGate.mjs +47 -0
  52. package/dist/es/hooks/usePlaygroundExecution.mjs +435 -0
  53. package/dist/es/hooks/usePlaygroundState.mjs +278 -0
  54. package/dist/es/hooks/useSafeOverrideAIConfig.mjs +20 -0
  55. package/dist/es/hooks/useServerValid.mjs +55 -0
  56. package/dist/es/hooks/useTheme.mjs +25 -0
  57. package/dist/es/icons/action-chevron.mjs +61 -0
  58. package/dist/es/icons/avatar.mjs +70 -0
  59. package/dist/es/icons/close.mjs +61 -0
  60. package/dist/es/icons/global-perspective.mjs +58 -0
  61. package/dist/es/icons/history.mjs +72 -0
  62. package/dist/es/icons/magnifying-glass.mjs +81 -0
  63. package/dist/es/icons/player-setting.mjs +68 -0
  64. package/dist/es/icons/prompt-history.mjs +70 -0
  65. package/dist/es/icons/setting.mjs +62 -0
  66. package/dist/es/icons/show-marker.mjs +58 -0
  67. package/dist/es/index.mjs +26 -0
  68. package/dist/es/static/image/logo.png +0 -0
  69. package/dist/es/store/history.mjs +128 -0
  70. package/dist/es/store/store.mjs +277 -0
  71. package/dist/es/types.mjs +73 -0
  72. package/dist/es/utils/action-label.mjs +15 -0
  73. package/dist/es/utils/color.mjs +35 -0
  74. package/dist/es/utils/constants.mjs +99 -0
  75. package/dist/es/utils/device-capabilities.mjs +13 -0
  76. package/dist/es/utils/empty-state-scroll.mjs +8 -0
  77. package/dist/es/utils/highlight-element.mjs +62 -0
  78. package/dist/es/utils/index.mjs +13 -0
  79. package/dist/es/utils/playground-utils.mjs +43 -0
  80. package/dist/es/utils/progress-action-icon.mjs +30 -0
  81. package/dist/es/utils/prompt-input-utils.mjs +49 -0
  82. package/dist/es/utils/prompt-placeholder.mjs +19 -0
  83. package/dist/es/utils/replay-scripts.mjs +428 -0
  84. package/dist/lib/component/blackboard/highlights.js +84 -0
  85. package/dist/lib/component/blackboard/index.css +118 -0
  86. package/dist/lib/component/blackboard/index.js +169 -0
  87. package/dist/lib/component/config-selector/index.js +295 -0
  88. package/dist/lib/component/context-preview/index.js +82 -0
  89. package/dist/lib/component/env-config/index.js +271 -0
  90. package/dist/lib/component/env-config-reminder/index.css +30 -0
  91. package/dist/lib/component/env-config-reminder/index.js +61 -0
  92. package/dist/lib/component/form-field/index.js +204 -0
  93. package/dist/lib/component/history-selector/index.css +237 -0
  94. package/dist/lib/component/history-selector/index.js +243 -0
  95. package/dist/lib/component/index.js +58 -0
  96. package/dist/lib/component/logo/index.css +19 -0
  97. package/dist/lib/component/logo/index.js +67 -0
  98. package/dist/lib/component/logo/logo.js +24 -0
  99. package/dist/lib/component/misc/index.js +152 -0
  100. package/dist/lib/component/nav-actions/index.js +48 -0
  101. package/dist/lib/component/nav-actions/style.css +35 -0
  102. package/dist/lib/component/player/index.css +296 -0
  103. package/dist/lib/component/player/index.js +747 -0
  104. package/dist/lib/component/player/playback-controls.js +38 -0
  105. package/dist/lib/component/player/report-download.js +98 -0
  106. package/dist/lib/component/player/scenes/StepScene.js +228 -0
  107. package/dist/lib/component/player/scenes/derive-frame-state.js +266 -0
  108. package/dist/lib/component/player/scenes/export-branded-video.js +403 -0
  109. package/dist/lib/component/player/scenes/frame-calculator.js +186 -0
  110. package/dist/lib/component/player/scenes/playback-frame.js +40 -0
  111. package/dist/lib/component/player/scenes/playback-layout.js +46 -0
  112. package/dist/lib/component/player/scenes/pointer-layout.js +88 -0
  113. package/dist/lib/component/player/use-frame-player.js +121 -0
  114. package/dist/lib/component/playground/index.css +930 -0
  115. package/dist/lib/component/playground/playground-demo-ui-context.json +290 -0
  116. package/dist/lib/component/playground-result/index.css +92 -0
  117. package/dist/lib/component/playground-result/index.js +276 -0
  118. package/dist/lib/component/prompt-input/index.css +832 -0
  119. package/dist/lib/component/prompt-input/index.js +1005 -0
  120. package/dist/lib/component/screenshot-viewer/index.css +237 -0
  121. package/dist/lib/component/screenshot-viewer/index.js +353 -0
  122. package/dist/lib/component/service-mode-control/index.js +141 -0
  123. package/dist/lib/component/shiny-text/index.css +107 -0
  124. package/dist/lib/component/shiny-text/index.js +49 -0
  125. package/dist/lib/component/universal-playground/empty-state.js +39 -0
  126. package/dist/lib/component/universal-playground/index.css +619 -0
  127. package/dist/lib/component/universal-playground/index.js +607 -0
  128. package/dist/lib/component/universal-playground/providers/context-provider.js +133 -0
  129. package/dist/lib/component/universal-playground/providers/indexeddb-storage-provider.js +320 -0
  130. package/dist/lib/component/universal-playground/providers/storage-provider.js +337 -0
  131. package/dist/lib/component/universal-playground/universal-playground-electron.js +717 -0
  132. package/dist/lib/hooks/useMinimalTypeGate.js +81 -0
  133. package/dist/lib/hooks/usePlaygroundExecution.js +478 -0
  134. package/dist/lib/hooks/usePlaygroundState.js +312 -0
  135. package/dist/lib/hooks/useSafeOverrideAIConfig.js +57 -0
  136. package/dist/lib/hooks/useServerValid.js +89 -0
  137. package/dist/lib/hooks/useTheme.js +59 -0
  138. package/dist/lib/icons/action-chevron.js +95 -0
  139. package/dist/lib/icons/avatar.js +104 -0
  140. package/dist/lib/icons/close.js +95 -0
  141. package/dist/lib/icons/global-perspective.js +92 -0
  142. package/dist/lib/icons/history.js +106 -0
  143. package/dist/lib/icons/magnifying-glass.js +115 -0
  144. package/dist/lib/icons/player-setting.js +102 -0
  145. package/dist/lib/icons/prompt-history.js +104 -0
  146. package/dist/lib/icons/setting.js +96 -0
  147. package/dist/lib/icons/show-marker.js +92 -0
  148. package/dist/lib/index.js +204 -0
  149. package/dist/lib/static/image/logo.png +0 -0
  150. package/dist/lib/store/history.js +135 -0
  151. package/dist/lib/store/store.js +287 -0
  152. package/dist/lib/types.js +119 -0
  153. package/dist/lib/utils/action-label.js +52 -0
  154. package/dist/lib/utils/color.js +75 -0
  155. package/dist/lib/utils/constants.js +172 -0
  156. package/dist/lib/utils/device-capabilities.js +50 -0
  157. package/dist/lib/utils/empty-state-scroll.js +42 -0
  158. package/dist/lib/utils/highlight-element.js +99 -0
  159. package/dist/lib/utils/index.js +69 -0
  160. package/dist/lib/utils/playground-utils.js +86 -0
  161. package/dist/lib/utils/progress-action-icon.js +67 -0
  162. package/dist/lib/utils/prompt-input-utils.js +89 -0
  163. package/dist/lib/utils/prompt-placeholder.js +53 -0
  164. package/dist/lib/utils/replay-scripts.js +474 -0
  165. package/dist/types/component/blackboard/highlights.d.ts +11 -0
  166. package/dist/types/component/blackboard/index.d.ts +10 -0
  167. package/dist/types/component/config-selector/index.d.ts +15 -0
  168. package/dist/types/component/context-preview/index.d.ts +9 -0
  169. package/dist/types/component/env-config/index.d.ts +8 -0
  170. package/dist/types/component/env-config-reminder/index.d.ts +6 -0
  171. package/dist/types/component/form-field/index.d.ts +17 -0
  172. package/dist/types/component/history-selector/index.d.ts +13 -0
  173. package/dist/types/component/index.d.ts +1 -0
  174. package/dist/types/component/logo/index.d.ts +5 -0
  175. package/dist/types/component/misc/index.d.ts +6 -0
  176. package/dist/types/component/nav-actions/index.d.ts +12 -0
  177. package/dist/types/component/player/index.d.ts +15 -0
  178. package/dist/types/component/player/playback-controls.d.ts +1 -0
  179. package/dist/types/component/player/report-download.d.ts +32 -0
  180. package/dist/types/component/player/scenes/StepScene.d.ts +9 -0
  181. package/dist/types/component/player/scenes/derive-frame-state.d.ts +40 -0
  182. package/dist/types/component/player/scenes/export-branded-video.d.ts +33 -0
  183. package/dist/types/component/player/scenes/frame-calculator.d.ts +40 -0
  184. package/dist/types/component/player/scenes/playback-frame.d.ts +3 -0
  185. package/dist/types/component/player/scenes/playback-layout.d.ts +7 -0
  186. package/dist/types/component/player/scenes/pointer-layout.d.ts +20 -0
  187. package/dist/types/component/player/use-frame-player.d.ts +17 -0
  188. package/dist/types/component/playground-result/index.d.ts +22 -0
  189. package/dist/types/component/prompt-input/index.d.ts +23 -0
  190. package/dist/types/component/screenshot-viewer/index.d.ts +23 -0
  191. package/dist/types/component/service-mode-control/index.d.ts +6 -0
  192. package/dist/types/component/shiny-text/index.d.ts +12 -0
  193. package/dist/types/component/universal-playground/empty-state.d.ts +3 -0
  194. package/dist/types/component/universal-playground/index.d.ts +4 -0
  195. package/dist/types/component/universal-playground/providers/context-provider.d.ts +37 -0
  196. package/dist/types/component/universal-playground/providers/indexeddb-storage-provider.d.ts +71 -0
  197. package/dist/types/component/universal-playground/providers/storage-provider.d.ts +58 -0
  198. package/dist/types/component/universal-playground/universal-playground-electron.d.ts +4 -0
  199. package/dist/types/hooks/useMinimalTypeGate.d.ts +72 -0
  200. package/dist/types/hooks/usePlaygroundExecution.d.ts +40 -0
  201. package/dist/types/hooks/usePlaygroundState.d.ts +26 -0
  202. package/dist/types/hooks/useSafeOverrideAIConfig.d.ts +16 -0
  203. package/dist/types/hooks/useServerValid.d.ts +1 -0
  204. package/dist/types/hooks/useTheme.d.ts +7 -0
  205. package/dist/types/index.d.ts +29 -0
  206. package/dist/types/store/history.d.ts +16 -0
  207. package/dist/types/store/store.d.ts +57 -0
  208. package/dist/types/types.d.ts +278 -0
  209. package/dist/types/utils/action-label.d.ts +11 -0
  210. package/dist/types/utils/color.d.ts +4 -0
  211. package/dist/types/utils/constants.d.ts +80 -0
  212. package/dist/types/utils/device-capabilities.d.ts +9 -0
  213. package/dist/types/utils/empty-state-scroll.d.ts +11 -0
  214. package/dist/types/utils/highlight-element.d.ts +3 -0
  215. package/dist/types/utils/index.d.ts +5 -0
  216. package/dist/types/utils/playground-utils.d.ts +11 -0
  217. package/dist/types/utils/progress-action-icon.d.ts +12 -0
  218. package/dist/types/utils/prompt-input-utils.d.ts +24 -0
  219. package/dist/types/utils/prompt-placeholder.d.ts +1 -0
  220. package/dist/types/utils/replay-scripts.d.ts +50 -0
  221. package/package.json +82 -0
@@ -0,0 +1,287 @@
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
+ useEnvConfig: ()=>useEnvConfig,
28
+ useGlobalPreference: ()=>useGlobalPreference
29
+ });
30
+ const external_zustand_namespaceObject = require("zustand");
31
+ const { create } = external_zustand_namespaceObject;
32
+ const AUTO_ZOOM_KEY = 'midscene-auto-zoom';
33
+ const BACKGROUND_VISIBLE_KEY = 'midscene-background-visible';
34
+ const ELEMENTS_VISIBLE_KEY = 'midscene-elements-visible';
35
+ const MODEL_CALL_DETAILS_KEY = 'midscene-model-call-details';
36
+ const DARK_MODE_KEY = 'midscene-dark-mode';
37
+ const PLAYBACK_SPEED_KEY = 'midscene-playback-speed';
38
+ const SUBTITLE_ENABLED_KEY = 'midscene-subtitle-enabled';
39
+ const parseBooleanParam = (value)=>{
40
+ if (null === value) return;
41
+ const normalized = value.trim().toLowerCase();
42
+ if ([
43
+ '1',
44
+ 'true',
45
+ 'yes',
46
+ 'on'
47
+ ].includes(normalized)) return true;
48
+ if ([
49
+ '0',
50
+ 'false',
51
+ 'no',
52
+ 'off'
53
+ ].includes(normalized)) return false;
54
+ };
55
+ const getQueryPreference = (paramName)=>{
56
+ if ("u" < typeof window) return;
57
+ const searchParams = new URLSearchParams(window.location.search);
58
+ return parseBooleanParam(searchParams.get(paramName));
59
+ };
60
+ const useGlobalPreference = create((set)=>{
61
+ const savedAutoZoom = 'false' !== localStorage.getItem(AUTO_ZOOM_KEY);
62
+ const savedBackgroundVisible = 'false' !== localStorage.getItem(BACKGROUND_VISIBLE_KEY);
63
+ const savedElementsVisible = 'false' !== localStorage.getItem(ELEMENTS_VISIBLE_KEY);
64
+ const savedModelCallDetails = 'true' === localStorage.getItem(MODEL_CALL_DETAILS_KEY);
65
+ const savedDarkMode = 'true' === localStorage.getItem(DARK_MODE_KEY);
66
+ const parsedPlaybackSpeed = Number.parseFloat(localStorage.getItem(PLAYBACK_SPEED_KEY) || '1');
67
+ const savedPlaybackSpeed = Number.isNaN(parsedPlaybackSpeed) ? 1 : parsedPlaybackSpeed;
68
+ const savedSubtitleEnabled = 'false' !== localStorage.getItem(SUBTITLE_ENABLED_KEY);
69
+ const autoZoomFromQuery = getQueryPreference('focusOnCursor');
70
+ const elementsVisibleFromQuery = getQueryPreference('showElementMarkers');
71
+ const darkModeFromQuery = getQueryPreference('darkMode');
72
+ const initialDarkMode = void 0 === darkModeFromQuery ? savedDarkMode : darkModeFromQuery;
73
+ if (void 0 !== darkModeFromQuery) localStorage.setItem(DARK_MODE_KEY, initialDarkMode.toString());
74
+ return {
75
+ backgroundVisible: savedBackgroundVisible,
76
+ elementsVisible: void 0 === elementsVisibleFromQuery ? savedElementsVisible : elementsVisibleFromQuery,
77
+ autoZoom: void 0 === autoZoomFromQuery ? savedAutoZoom : autoZoomFromQuery,
78
+ modelCallDetailsEnabled: savedModelCallDetails,
79
+ darkModeEnabled: initialDarkMode,
80
+ playbackSpeed: [
81
+ 0.5,
82
+ 1,
83
+ 1.5,
84
+ 2
85
+ ].includes(savedPlaybackSpeed) ? savedPlaybackSpeed : 1,
86
+ setBackgroundVisible: (visible)=>{
87
+ set({
88
+ backgroundVisible: visible
89
+ });
90
+ localStorage.setItem(BACKGROUND_VISIBLE_KEY, visible.toString());
91
+ },
92
+ setElementsVisible: (visible)=>{
93
+ set({
94
+ elementsVisible: visible
95
+ });
96
+ localStorage.setItem(ELEMENTS_VISIBLE_KEY, visible.toString());
97
+ },
98
+ setAutoZoom: (enabled)=>{
99
+ set({
100
+ autoZoom: enabled
101
+ });
102
+ localStorage.setItem(AUTO_ZOOM_KEY, enabled.toString());
103
+ },
104
+ setModelCallDetailsEnabled: (enabled)=>{
105
+ set({
106
+ modelCallDetailsEnabled: enabled
107
+ });
108
+ localStorage.setItem(MODEL_CALL_DETAILS_KEY, enabled.toString());
109
+ },
110
+ setDarkModeEnabled: (enabled)=>{
111
+ set({
112
+ darkModeEnabled: enabled
113
+ });
114
+ localStorage.setItem(DARK_MODE_KEY, enabled.toString());
115
+ },
116
+ setPlaybackSpeed: (speed)=>{
117
+ set({
118
+ playbackSpeed: speed
119
+ });
120
+ localStorage.setItem(PLAYBACK_SPEED_KEY, speed.toString());
121
+ },
122
+ subtitleEnabled: savedSubtitleEnabled,
123
+ setSubtitleEnabled: (enabled)=>{
124
+ set({
125
+ subtitleEnabled: enabled
126
+ });
127
+ localStorage.setItem(SUBTITLE_ENABLED_KEY, enabled.toString());
128
+ }
129
+ };
130
+ });
131
+ const CONFIG_KEY = 'midscene-env-config';
132
+ const SERVICE_MODE_KEY = 'midscene-service-mode';
133
+ const TRACKING_ACTIVE_TAB_KEY = 'midscene-tracking-active-tab';
134
+ const DEEP_LOCATE_KEY = 'midscene-deep-locate';
135
+ const DEEP_THINK_KEY = 'midscene-deep-think';
136
+ const SCREENSHOT_INCLUDED_KEY = 'midscene-screenshot-included';
137
+ const DOM_INCLUDED_KEY = 'midscene-dom-included';
138
+ const IME_STRATEGY_KEY = 'midscene-ime-strategy';
139
+ const AUTO_DISMISS_KEYBOARD_KEY = 'midscene-auto-dismiss-keyboard';
140
+ const KEYBOARD_DISMISS_STRATEGY_KEY = 'midscene-keyboard-dismiss-strategy';
141
+ const ALWAYS_REFRESH_SCREEN_INFO_KEY = 'midscene-always-refresh-screen-info';
142
+ const getConfigStringFromLocalStorage = ()=>{
143
+ const configString = localStorage.getItem(CONFIG_KEY);
144
+ return configString || '';
145
+ };
146
+ const parseConfig = (configString)=>{
147
+ const lines = configString.split('\n');
148
+ const config = {};
149
+ lines.forEach((line)=>{
150
+ const trimmed = line.trim();
151
+ if (trimmed.startsWith('#')) return;
152
+ const cleanLine = trimmed.replace(/^export\s+/i, '').replace(/;$/, '').trim();
153
+ const match = cleanLine.match(/^(\w+)=(.*)$/);
154
+ if (match) {
155
+ const [, key, value] = match;
156
+ let parsedValue = value.trim();
157
+ if (parsedValue.startsWith("'") && parsedValue.endsWith("'") || parsedValue.startsWith('"') && parsedValue.endsWith('"')) parsedValue = parsedValue.slice(1, -1);
158
+ config[key] = parsedValue;
159
+ }
160
+ });
161
+ return config;
162
+ };
163
+ const useEnvConfig = create((set, get)=>{
164
+ const configString = getConfigStringFromLocalStorage();
165
+ const config = parseConfig(configString);
166
+ const ifInExtension = window.location.href.startsWith('chrome-extension');
167
+ const savedServiceMode = localStorage.getItem(SERVICE_MODE_KEY);
168
+ const savedForceSameTabNavigation = 'false' !== localStorage.getItem(TRACKING_ACTIVE_TAB_KEY);
169
+ const savedDeepLocate = 'true' === localStorage.getItem(DEEP_LOCATE_KEY);
170
+ const savedDeepThinkRaw = localStorage.getItem(DEEP_THINK_KEY);
171
+ const savedDeepThink = 'true' === savedDeepThinkRaw ? true : 'false' === savedDeepThinkRaw ? false : 'unset';
172
+ const savedScreenshotIncluded = 'false' !== localStorage.getItem(SCREENSHOT_INCLUDED_KEY);
173
+ const savedDomIncluded = localStorage.getItem(DOM_INCLUDED_KEY) || 'false';
174
+ const savedImeStrategy = localStorage.getItem(IME_STRATEGY_KEY) || 'yadb-for-non-ascii';
175
+ const savedAutoDismissKeyboard = 'false' !== localStorage.getItem(AUTO_DISMISS_KEYBOARD_KEY);
176
+ const savedKeyboardDismissStrategy = localStorage.getItem(KEYBOARD_DISMISS_STRATEGY_KEY) || 'esc-first';
177
+ const savedAlwaysRefreshScreenInfo = 'true' === localStorage.getItem(ALWAYS_REFRESH_SCREEN_INFO_KEY);
178
+ return {
179
+ serviceMode: ifInExtension ? 'In-Browser-Extension' : savedServiceMode || 'Server',
180
+ setServiceMode: (serviceMode)=>{
181
+ if (ifInExtension) throw new Error('serviceMode cannot be set in extension');
182
+ set({
183
+ serviceMode
184
+ });
185
+ localStorage.setItem(SERVICE_MODE_KEY, serviceMode);
186
+ },
187
+ config,
188
+ configString,
189
+ setConfig: (config)=>set({
190
+ config
191
+ }),
192
+ loadConfig: (configString)=>{
193
+ const config = parseConfig(configString);
194
+ set({
195
+ config,
196
+ configString
197
+ });
198
+ localStorage.setItem(CONFIG_KEY, configString);
199
+ },
200
+ syncFromStorage: ()=>{
201
+ const latestConfigString = getConfigStringFromLocalStorage();
202
+ const latestConfig = parseConfig(latestConfigString);
203
+ set({
204
+ config: latestConfig,
205
+ configString: latestConfigString
206
+ });
207
+ },
208
+ forceSameTabNavigation: savedForceSameTabNavigation,
209
+ setForceSameTabNavigation: (forceSameTabNavigation)=>{
210
+ set({
211
+ forceSameTabNavigation
212
+ });
213
+ localStorage.setItem(TRACKING_ACTIVE_TAB_KEY, forceSameTabNavigation.toString());
214
+ },
215
+ deepLocate: savedDeepLocate,
216
+ setDeepLocate: (deepLocate)=>{
217
+ set({
218
+ deepLocate
219
+ });
220
+ localStorage.setItem(DEEP_LOCATE_KEY, deepLocate.toString());
221
+ },
222
+ deepThink: savedDeepThink,
223
+ setDeepThink: (deepThink)=>{
224
+ set({
225
+ deepThink
226
+ });
227
+ localStorage.setItem(DEEP_THINK_KEY, deepThink.toString());
228
+ },
229
+ screenshotIncluded: savedScreenshotIncluded,
230
+ setScreenshotIncluded: (screenshotIncluded)=>{
231
+ set({
232
+ screenshotIncluded
233
+ });
234
+ localStorage.setItem(SCREENSHOT_INCLUDED_KEY, screenshotIncluded.toString());
235
+ },
236
+ domIncluded: 'visible-only' === savedDomIncluded ? 'visible-only' : 'true' === savedDomIncluded,
237
+ setDomIncluded: (domIncluded)=>{
238
+ set({
239
+ domIncluded
240
+ });
241
+ localStorage.setItem(DOM_INCLUDED_KEY, domIncluded.toString());
242
+ },
243
+ popupTab: 'playground',
244
+ setPopupTab: (tab)=>{
245
+ set({
246
+ popupTab: tab
247
+ });
248
+ },
249
+ imeStrategy: savedImeStrategy,
250
+ setImeStrategy: (imeStrategy)=>{
251
+ set({
252
+ imeStrategy
253
+ });
254
+ localStorage.setItem(IME_STRATEGY_KEY, imeStrategy);
255
+ },
256
+ autoDismissKeyboard: savedAutoDismissKeyboard,
257
+ setAutoDismissKeyboard: (autoDismissKeyboard)=>{
258
+ set({
259
+ autoDismissKeyboard
260
+ });
261
+ localStorage.setItem(AUTO_DISMISS_KEYBOARD_KEY, autoDismissKeyboard.toString());
262
+ },
263
+ keyboardDismissStrategy: savedKeyboardDismissStrategy,
264
+ setKeyboardDismissStrategy: (keyboardDismissStrategy)=>{
265
+ set({
266
+ keyboardDismissStrategy
267
+ });
268
+ localStorage.setItem(KEYBOARD_DISMISS_STRATEGY_KEY, keyboardDismissStrategy);
269
+ },
270
+ alwaysRefreshScreenInfo: savedAlwaysRefreshScreenInfo,
271
+ setAlwaysRefreshScreenInfo: (alwaysRefreshScreenInfo)=>{
272
+ set({
273
+ alwaysRefreshScreenInfo
274
+ });
275
+ localStorage.setItem(ALWAYS_REFRESH_SCREEN_INFO_KEY, alwaysRefreshScreenInfo.toString());
276
+ }
277
+ };
278
+ });
279
+ exports.useEnvConfig = __webpack_exports__.useEnvConfig;
280
+ exports.useGlobalPreference = __webpack_exports__.useGlobalPreference;
281
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
282
+ "useEnvConfig",
283
+ "useGlobalPreference"
284
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
285
+ Object.defineProperty(exports, '__esModule', {
286
+ value: true
287
+ });
@@ -0,0 +1,119 @@
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
+ VALIDATION_CONSTANTS: ()=>VALIDATION_CONSTANTS,
28
+ extractDefaultValue: ()=>extractDefaultValue,
29
+ isLocateField: ()=>isLocateField,
30
+ isZodObjectSchema: ()=>isZodObjectSchema,
31
+ unwrapZodType: ()=>unwrapZodType
32
+ });
33
+ const VALIDATION_CONSTANTS = {
34
+ ZOD_TYPES: {
35
+ OPTIONAL: 'ZodOptional',
36
+ DEFAULT: 'ZodDefault',
37
+ NULLABLE: 'ZodNullable',
38
+ OBJECT: 'ZodObject',
39
+ ENUM: 'ZodEnum',
40
+ NUMBER: 'ZodNumber',
41
+ STRING: 'ZodString',
42
+ BOOLEAN: 'ZodBoolean'
43
+ },
44
+ FIELD_FLAGS: {
45
+ LOCATION: 'midscene_location_field_flag'
46
+ },
47
+ DEFAULT_VALUES: {
48
+ ACTION_TYPE: 'aiAct',
49
+ TIMEOUT_MS: 15000,
50
+ CHECK_INTERVAL_MS: 3000
51
+ }
52
+ };
53
+ const isZodObjectSchema = (schema)=>'object' == typeof schema && null !== schema && ('shape' in schema || 'ZodObject' === schema.type);
54
+ const isLocateField = (field)=>{
55
+ var _field__def;
56
+ const fieldWithRuntime = field;
57
+ if ((null == (_field__def = field._def) ? void 0 : _field__def.typeName) === VALIDATION_CONSTANTS.ZOD_TYPES.OBJECT) {
58
+ var _field__def1;
59
+ let shape;
60
+ if (field._def.shape) shape = 'function' == typeof field._def.shape ? field._def.shape() : field._def.shape;
61
+ if (!shape && fieldWithRuntime.shape) shape = fieldWithRuntime.shape;
62
+ if (shape && VALIDATION_CONSTANTS.FIELD_FLAGS.LOCATION in shape) return true;
63
+ const description = (null == (_field__def1 = field._def) ? void 0 : _field__def1.description) || fieldWithRuntime.description || '';
64
+ if ('string' == typeof description && description.toLowerCase().includes('input field')) return true;
65
+ }
66
+ if ('object' == typeof field && null !== field) {
67
+ var _fieldWithRuntime__def;
68
+ const description = fieldWithRuntime.description || (null == (_fieldWithRuntime__def = fieldWithRuntime._def) ? void 0 : _fieldWithRuntime__def.description) || '';
69
+ if ('string' == typeof description) {
70
+ const desc = description.toLowerCase();
71
+ if (desc.includes('input field') || desc.includes('element') || desc.includes('locate')) return true;
72
+ }
73
+ if ('ZodObject' === fieldWithRuntime.typeName || 'ZodObject' === fieldWithRuntime.type) return 'string' == typeof description && description.toLowerCase().includes('input field');
74
+ }
75
+ return false;
76
+ };
77
+ const unwrapZodType = (field)=>{
78
+ var _actualField__def, _actualField__def1, _actualField__def2;
79
+ let actualField = field;
80
+ let isOptional = false;
81
+ let hasDefault = false;
82
+ while((null == (_actualField__def = actualField._def) ? void 0 : _actualField__def.typeName) === VALIDATION_CONSTANTS.ZOD_TYPES.OPTIONAL || (null == (_actualField__def1 = actualField._def) ? void 0 : _actualField__def1.typeName) === VALIDATION_CONSTANTS.ZOD_TYPES.DEFAULT || (null == (_actualField__def2 = actualField._def) ? void 0 : _actualField__def2.typeName) === VALIDATION_CONSTANTS.ZOD_TYPES.NULLABLE){
83
+ var _actualField__def3, _actualField__def4;
84
+ if ((null == (_actualField__def3 = actualField._def) ? void 0 : _actualField__def3.typeName) === VALIDATION_CONSTANTS.ZOD_TYPES.OPTIONAL) isOptional = true;
85
+ if ((null == (_actualField__def4 = actualField._def) ? void 0 : _actualField__def4.typeName) === VALIDATION_CONSTANTS.ZOD_TYPES.DEFAULT) hasDefault = true;
86
+ actualField = actualField._def.innerType || actualField;
87
+ }
88
+ return {
89
+ actualField,
90
+ isOptional,
91
+ hasDefault
92
+ };
93
+ };
94
+ const extractDefaultValue = (field)=>{
95
+ var _currentField__def;
96
+ let currentField = field;
97
+ while(null == (_currentField__def = currentField._def) ? void 0 : _currentField__def.innerType){
98
+ if (currentField._def.typeName === VALIDATION_CONSTANTS.ZOD_TYPES.DEFAULT) {
99
+ if ('function' == typeof currentField._def.defaultValue) return currentField._def.defaultValue();
100
+ if (void 0 !== currentField._def._serializedDefaultValue) return currentField._def._serializedDefaultValue;
101
+ }
102
+ currentField = currentField._def.innerType;
103
+ }
104
+ };
105
+ exports.VALIDATION_CONSTANTS = __webpack_exports__.VALIDATION_CONSTANTS;
106
+ exports.extractDefaultValue = __webpack_exports__.extractDefaultValue;
107
+ exports.isLocateField = __webpack_exports__.isLocateField;
108
+ exports.isZodObjectSchema = __webpack_exports__.isZodObjectSchema;
109
+ exports.unwrapZodType = __webpack_exports__.unwrapZodType;
110
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
111
+ "VALIDATION_CONSTANTS",
112
+ "extractDefaultValue",
113
+ "isLocateField",
114
+ "isZodObjectSchema",
115
+ "unwrapZodType"
116
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
117
+ Object.defineProperty(exports, '__esModule', {
118
+ value: true
119
+ });
@@ -0,0 +1,52 @@
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
+ actionNameForType: ()=>actionNameForType,
28
+ getPromptInputActionLabel: ()=>getPromptInputActionLabel
29
+ });
30
+ const actionNameForType = (type)=>{
31
+ if (!type) return '';
32
+ if ('aiAct' === type) return 'Action';
33
+ const typeWithoutAi = type.startsWith('ai') ? type.slice(2) : type;
34
+ if (typeWithoutAi.startsWith('IOS')) return typeWithoutAi.substring(3).replace(/([A-Z])/g, ' $1').replace(/^/, 'IOS').trim();
35
+ const fullName = typeWithoutAi.replace(/([A-Z])/g, ' $1').trim();
36
+ const words = fullName.split(' ');
37
+ const result = words.length > 3 ? words.slice(-3).join(' ') : fullName;
38
+ return result.replace(/\b\w/g, (c)=>c.toUpperCase());
39
+ };
40
+ const getPromptInputActionLabel = (type, overrideLabel)=>{
41
+ if (overrideLabel) return overrideLabel;
42
+ return actionNameForType(type) || 'Action';
43
+ };
44
+ exports.actionNameForType = __webpack_exports__.actionNameForType;
45
+ exports.getPromptInputActionLabel = __webpack_exports__.getPromptInputActionLabel;
46
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
47
+ "actionNameForType",
48
+ "getPromptInputActionLabel"
49
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
50
+ Object.defineProperty(exports, '__esModule', {
51
+ value: true
52
+ });
@@ -0,0 +1,75 @@
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
+ colorForName: ()=>colorForName,
28
+ globalThemeConfig: ()=>globalThemeConfig,
29
+ highlightColorForType: ()=>highlightColorForType
30
+ });
31
+ const elementColor = [
32
+ '#01204E'
33
+ ];
34
+ const highlightColorForSearchArea = '#028391';
35
+ const highlightColorForElement = '#fd5907';
36
+ function djb2Hash(str) {
37
+ if (!str) str = 'unnamed';
38
+ let hash = 5381;
39
+ for(let i = 0; i < str.length; i++)hash = (hash << 5) + hash + str.charCodeAt(i);
40
+ return hash >>> 0;
41
+ }
42
+ function colorForName(name) {
43
+ const hashNumber = djb2Hash(name);
44
+ return elementColor[hashNumber % elementColor.length];
45
+ }
46
+ function highlightColorForType(type) {
47
+ if ('searchArea' === type) return highlightColorForSearchArea;
48
+ return highlightColorForElement;
49
+ }
50
+ function globalThemeConfig() {
51
+ return {
52
+ token: {
53
+ colorPrimary: '#2B83FF'
54
+ },
55
+ components: {
56
+ Layout: {
57
+ headerHeight: 60,
58
+ headerPadding: '0 30px',
59
+ headerBg: '#FFF',
60
+ bodyBg: '#FFF'
61
+ }
62
+ }
63
+ };
64
+ }
65
+ exports.colorForName = __webpack_exports__.colorForName;
66
+ exports.globalThemeConfig = __webpack_exports__.globalThemeConfig;
67
+ exports.highlightColorForType = __webpack_exports__.highlightColorForType;
68
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
69
+ "colorForName",
70
+ "globalThemeConfig",
71
+ "highlightColorForType"
72
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
73
+ Object.defineProperty(exports, '__esModule', {
74
+ value: true
75
+ });