@dimina-kit/devtools 0.4.0-dev.20260828161241 → 0.4.0-dev.20260907055341

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 (277) hide show
  1. package/README.md +52 -729
  2. package/dist/main/app/app.d.ts +27 -7
  3. package/dist/main/app/app.js +285 -681
  4. package/dist/main/app/editor-view.d.ts +21 -0
  5. package/dist/main/app/editor-view.js +71 -0
  6. package/dist/main/app/global-mirrors.d.ts +23 -0
  7. package/dist/main/app/global-mirrors.js +37 -0
  8. package/dist/main/app/host-sidebar-default.d.ts +19 -0
  9. package/dist/main/app/host-sidebar-default.js +44 -0
  10. package/dist/main/app/menu-setup.d.ts +13 -0
  11. package/dist/main/app/menu-setup.js +49 -0
  12. package/dist/main/app/open-project-ipc.d.ts +13 -0
  13. package/dist/main/app/open-project-ipc.js +21 -0
  14. package/dist/main/app/project-list-surface.d.ts +31 -0
  15. package/dist/main/app/project-list-surface.js +20 -0
  16. package/dist/main/app/project-window.d.ts +36 -0
  17. package/dist/main/app/project-window.js +93 -0
  18. package/dist/main/app/servers.d.ts +17 -0
  19. package/dist/main/app/servers.js +60 -0
  20. package/dist/main/app/ui-extension-targets.d.ts +42 -0
  21. package/dist/main/app/ui-extension-targets.js +101 -0
  22. package/dist/main/app/window-close-reveal.harness.d.ts +34 -0
  23. package/dist/main/app/window-close-reveal.harness.js +65 -0
  24. package/dist/main/app/window-events.d.ts +15 -0
  25. package/dist/main/app/window-events.js +45 -0
  26. package/dist/main/app/window-runtime-services.d.ts +41 -0
  27. package/dist/main/app/window-runtime-services.js +178 -0
  28. package/dist/main/app/workbench-modules.d.ts +24 -0
  29. package/dist/main/app/workbench-modules.js +51 -0
  30. package/dist/main/app/workbench-window.d.ts +85 -0
  31. package/dist/main/app/workbench-window.js +310 -0
  32. package/dist/main/index.bundle.js +10669 -9096
  33. package/dist/main/ipc/app.d.ts +4 -1
  34. package/dist/main/ipc/app.js +4 -3
  35. package/dist/main/ipc/device-picker.d.ts +16 -0
  36. package/dist/main/ipc/device-picker.js +27 -0
  37. package/dist/main/ipc/index.d.ts +1 -0
  38. package/dist/main/ipc/index.js +1 -0
  39. package/dist/main/ipc/internal-devtools.d.ts +2 -1
  40. package/dist/main/ipc/internal-devtools.js +4 -3
  41. package/dist/main/ipc/popover.d.ts +4 -1
  42. package/dist/main/ipc/popover.js +25 -9
  43. package/dist/main/ipc/project-create.d.ts +2 -1
  44. package/dist/main/ipc/project-create.js +6 -5
  45. package/dist/main/ipc/project-fs.d.ts +3 -1
  46. package/dist/main/ipc/project-fs.js +17 -17
  47. package/dist/main/ipc/projects.d.ts +3 -3
  48. package/dist/main/ipc/projects.js +13 -12
  49. package/dist/main/ipc/session.d.ts +4 -1
  50. package/dist/main/ipc/session.js +16 -11
  51. package/dist/main/ipc/settings.d.ts +4 -1
  52. package/dist/main/ipc/settings.js +12 -19
  53. package/dist/main/ipc/simulator-module.d.ts +5 -0
  54. package/dist/main/ipc/simulator-module.js +9 -5
  55. package/dist/main/ipc/simulator.d.ts +4 -1
  56. package/dist/main/ipc/simulator.js +12 -18
  57. package/dist/main/ipc/tooltip.d.ts +2 -1
  58. package/dist/main/ipc/tooltip.js +8 -7
  59. package/dist/main/ipc/views.d.ts +4 -1
  60. package/dist/main/ipc/views.js +20 -9
  61. package/dist/main/runtime/devtools-backend-before-quit.harness.d.ts +2 -20
  62. package/dist/main/runtime/devtools-backend-before-quit.harness.js +14 -283
  63. package/dist/main/runtime/devtools-backend.js +14 -3
  64. package/dist/main/runtime/devtools-runtime-mock.harness.d.ts +21 -0
  65. package/dist/main/runtime/devtools-runtime-mock.harness.js +313 -0
  66. package/dist/main/services/app-services.d.ts +62 -0
  67. package/dist/main/services/app-services.js +64 -0
  68. package/dist/main/services/automation/connection-target.d.ts +36 -0
  69. package/dist/main/services/automation/connection-target.js +29 -0
  70. package/dist/main/services/automation/console-bridge.d.ts +28 -0
  71. package/dist/main/services/automation/console-bridge.js +91 -0
  72. package/dist/main/services/automation/handlers/app.js +4 -4
  73. package/dist/main/services/automation/handlers/element.js +55 -21
  74. package/dist/main/services/automation/index.d.ts +12 -1
  75. package/dist/main/services/automation/index.js +54 -133
  76. package/dist/main/services/default-adapter.js +1 -1
  77. package/dist/main/services/fs-bridge-protocol.d.ts +61 -0
  78. package/dist/main/services/fs-bridge-protocol.js +34 -0
  79. package/dist/main/services/fs-watch-sse.d.ts +8 -1
  80. package/dist/main/services/fs-watch-sse.js +19 -5
  81. package/dist/main/services/mcp/connection-owner.d.ts +38 -0
  82. package/dist/main/services/mcp/connection-owner.js +79 -0
  83. package/dist/main/services/mcp/index.d.ts +3 -1
  84. package/dist/main/services/mcp/index.js +4 -3
  85. package/dist/main/services/mcp/opened-project.d.ts +88 -0
  86. package/dist/main/services/mcp/opened-project.js +60 -0
  87. package/dist/main/services/mcp/target-manager.d.ts +71 -23
  88. package/dist/main/services/mcp/target-manager.js +269 -142
  89. package/dist/main/services/mcp/target-selection.d.ts +47 -0
  90. package/dist/main/services/mcp/target-selection.js +71 -0
  91. package/dist/main/services/mcp/tools/context-tools.js +20 -5
  92. package/dist/main/services/mcp/tools/project-tools.d.ts +29 -6
  93. package/dist/main/services/mcp/tools/project-tools.js +37 -25
  94. package/dist/main/services/module.d.ts +13 -5
  95. package/dist/main/services/notifications/renderer-notifier.d.ts +28 -4
  96. package/dist/main/services/notifications/renderer-notifier.js +15 -3
  97. package/dist/main/services/projects/local-provider.js +2 -0
  98. package/dist/main/services/projects/project-repository.d.ts +31 -1
  99. package/dist/main/services/projects/project-repository.js +144 -20
  100. package/dist/main/services/projects/types.d.ts +31 -8
  101. package/dist/main/services/safe-area/index.d.ts +19 -5
  102. package/dist/main/services/safe-area/index.js +38 -13
  103. package/dist/main/services/simulator/ui-extensions.d.ts +8 -0
  104. package/dist/main/services/simulator/ui-extensions.js +16 -6
  105. package/dist/main/services/simulator-storage/index.d.ts +12 -1
  106. package/dist/main/services/simulator-storage/index.js +22 -7
  107. package/dist/main/services/simulator-storage/window-scope.d.ts +20 -0
  108. package/dist/main/services/simulator-storage/window-scope.js +20 -0
  109. package/dist/main/services/views/host-slot-port-channel.d.ts +20 -3
  110. package/dist/main/services/views/host-slot-port-channel.js +33 -5
  111. package/dist/main/services/views/managed-web-contents-view.js +21 -1
  112. package/dist/main/services/views/native-simulator-view.js +13 -16
  113. package/dist/main/services/views/overlay-panels-view.d.ts +13 -0
  114. package/dist/main/services/views/overlay-panels-view.js +31 -0
  115. package/dist/main/services/views/view-manager.d.ts +1 -1
  116. package/dist/main/services/views/view-manager.js +3 -0
  117. package/dist/main/services/window-contexts/context-router.d.ts +36 -0
  118. package/dist/main/services/window-contexts/context-router.js +55 -0
  119. package/dist/main/services/workbench-coi-host.d.ts +52 -0
  120. package/dist/main/services/workbench-coi-host.js +227 -0
  121. package/dist/main/services/workbench-coi-server.js +75 -133
  122. package/dist/main/services/workbench-coi-shutdown.d.ts +40 -0
  123. package/dist/main/services/workbench-coi-shutdown.js +69 -0
  124. package/dist/main/services/workbench-coi-static.d.ts +23 -0
  125. package/dist/main/services/workbench-coi-static.js +87 -0
  126. package/dist/main/services/workbench-context.d.ts +27 -3
  127. package/dist/main/services/workbench-context.js +10 -5
  128. package/dist/main/services/workspace/compile-mode-adapter.d.ts +18 -0
  129. package/dist/main/services/workspace/compile-mode-adapter.js +57 -0
  130. package/dist/main/services/workspace/compile-mode-store.d.ts +25 -0
  131. package/dist/main/services/workspace/compile-mode-store.js +71 -0
  132. package/dist/main/services/workspace/workspace-compile-modes.d.ts +59 -0
  133. package/dist/main/services/workspace/workspace-compile-modes.js +93 -0
  134. package/dist/main/services/workspace/workspace-referer.d.ts +17 -0
  135. package/dist/main/services/workspace/workspace-referer.js +26 -0
  136. package/dist/main/services/workspace/workspace-service.d.ts +4 -0
  137. package/dist/main/services/workspace/workspace-service.js +51 -84
  138. package/dist/main/services/workspace/workspace-thumbnails.d.ts +22 -0
  139. package/dist/main/services/workspace/workspace-thumbnails.js +67 -0
  140. package/dist/main/utils/ipc-context-source.d.ts +40 -0
  141. package/dist/main/utils/ipc-context-source.js +23 -0
  142. package/dist/main/utils/ipc-registry.d.ts +42 -36
  143. package/dist/main/utils/ipc-registry.js +117 -50
  144. package/dist/main/utils/sender-policy.d.ts +9 -0
  145. package/dist/main/utils/sender-policy.js +26 -3
  146. package/dist/main/utils/theme.d.ts +3 -2
  147. package/dist/main/utils/theme.js +3 -2
  148. package/dist/main/windows/main-window/create.d.ts +16 -0
  149. package/dist/main/windows/main-window/create.js +19 -11
  150. package/dist/main/windows/main-window/events.d.ts +1 -1
  151. package/dist/main/windows/main-window/events.js +26 -13
  152. package/dist/main/windows/main-window/index.d.ts +1 -1
  153. package/dist/main/windows/main-window/index.js +1 -1
  154. package/dist/native-host/common/common.js +94 -73
  155. package/dist/native-host/render/render.js +4079 -3171
  156. package/dist/native-host/service/service.js +2 -2
  157. package/dist/preload/runtime/native-host.d.ts +4 -0
  158. package/dist/preload/runtime/temp-files.js +9 -2
  159. package/dist/preload/runtime/wait-for-slot-root.d.ts +7 -4
  160. package/dist/preload/runtime/wait-for-slot-root.js +36 -8
  161. package/dist/preload/windows/host-dialog-runtime.cjs +10 -3
  162. package/dist/preload/windows/host-dialog-runtime.cjs.map +2 -2
  163. package/dist/preload/windows/host-sidebar-runtime.cjs +10 -3
  164. package/dist/preload/windows/host-sidebar-runtime.cjs.map +2 -2
  165. package/dist/preload/windows/host-toolbar-runtime.cjs +10 -3
  166. package/dist/preload/windows/host-toolbar-runtime.cjs.map +2 -2
  167. package/dist/preload/windows/main.cjs +181 -4
  168. package/dist/preload/windows/main.cjs.map +4 -4
  169. package/dist/preload/windows/simulator.cjs +10 -0
  170. package/dist/preload/windows/simulator.cjs.map +2 -2
  171. package/dist/preload/windows/simulator.js +10 -0
  172. package/dist/render-host/pageFrame.html +1 -1
  173. package/dist/render-host/preload.cjs +16 -4
  174. package/dist/renderer/assets/button-CB2MWjHY.js +2 -0
  175. package/dist/renderer/assets/constants-CkoGPQTS.js +2 -0
  176. package/dist/renderer/assets/constants-zQZ2-y21.js +2 -0
  177. package/dist/renderer/assets/{createLucideIcon-Bqi8hpdi.js → createLucideIcon-cZ9FlZZw.js} +2 -2
  178. package/dist/renderer/assets/devicePicker-H2eIO4e1.js +2 -0
  179. package/dist/renderer/assets/dialog-pHzEA8Vx.js +46 -0
  180. package/dist/renderer/assets/dist-B5HADirS.js +2 -0
  181. package/dist/renderer/assets/{dist-DKWdE1TK.js → dist-DIFlRMKe.js} +2 -2
  182. package/dist/renderer/assets/hostSidebarDefault-DRWh6OCt.js +2 -0
  183. package/dist/renderer/assets/index-CEL_XFge.js +2 -0
  184. package/dist/renderer/assets/{input-Ct3alvkq.js → input-CAObw95L.js} +2 -2
  185. package/dist/renderer/assets/ipc-channels-overlays-gIPUFnqc.js +2 -0
  186. package/dist/renderer/assets/jsx-runtime-DICEQH_0.css +1 -0
  187. package/dist/renderer/assets/{jsx-runtime-DGLHmmOq.js → jsx-runtime-DIw5wnYl.js} +1 -1
  188. package/dist/renderer/assets/plus-BQ9u5EbL.js +2 -0
  189. package/dist/renderer/assets/popover-Cw7G2Ctp.js +2 -0
  190. package/dist/renderer/assets/presets-DMZOb9ay.js +2 -0
  191. package/dist/renderer/assets/project-api-YTOr_Yvo.js +2 -0
  192. package/dist/renderer/assets/{projectCreateDialog-Bbjz75bP.js → projectCreateDialog-BmLqiYxn.js} +2 -2
  193. package/dist/renderer/assets/search-BMvuYF48.js +2 -0
  194. package/dist/renderer/assets/select-nFP95TxM.js +2 -0
  195. package/dist/renderer/assets/settings-CnpVfSWt.js +2 -0
  196. package/dist/renderer/assets/settings-api-Ccsf-Nsj.js +2 -0
  197. package/dist/renderer/assets/settings-tab-bar-CAzrv32m.js +2 -0
  198. package/dist/renderer/assets/smartphone-Bb2GdIKy.js +2 -0
  199. package/dist/renderer/assets/tabs-CPKN3Mmq.js +2 -0
  200. package/dist/renderer/assets/{tooltip-B_-_YVbw.js → tooltip-D6AxXRk5.js} +2 -2
  201. package/dist/renderer/assets/types-Bh0hA7El.js +2 -0
  202. package/dist/renderer/assets/updateDialog-CwndJ0Bl.js +2 -0
  203. package/dist/renderer/assets/{utils-kfQov6Pa.js → utils-sEB5OZEQ.js} +2 -2
  204. package/dist/renderer/assets/view-api-B-2zPBR5.js +2 -0
  205. package/dist/renderer/assets/view-ids-BfaDVV5P.js +2 -0
  206. package/dist/renderer/assets/workbench-BLJ0wKsg.js +5 -0
  207. package/dist/renderer/assets/{workbenchSettings-CV4LVA9b.js → workbenchSettings-YD0Ctbm_.js} +3 -3
  208. package/dist/renderer/entries/device-picker/index.html +28 -0
  209. package/dist/renderer/entries/host-sidebar-default/index.html +6 -5
  210. package/dist/renderer/entries/main/index.html +16 -17
  211. package/dist/renderer/entries/popover/index.html +16 -10
  212. package/dist/renderer/entries/project-create-dialog/index.html +12 -12
  213. package/dist/renderer/entries/settings/index.html +10 -10
  214. package/dist/renderer/entries/tooltip/index.html +5 -5
  215. package/dist/renderer/entries/update-dialog/index.html +10 -10
  216. package/dist/renderer/entries/workbench/index.html +49 -0
  217. package/dist/renderer/entries/workbench-settings/index.html +12 -11
  218. package/dist/service-host/host-env-update.cjs +23 -0
  219. package/dist/service-host/preload.cjs +24 -49
  220. package/dist/service-host/service-message-queue.cjs +71 -0
  221. package/dist/service-host/sync-impls/system-info.js +31 -9
  222. package/dist/shared/compile-mode-state.d.ts +73 -0
  223. package/dist/shared/compile-mode-state.js +100 -0
  224. package/dist/shared/compile-modes.d.ts +152 -0
  225. package/dist/shared/compile-modes.js +237 -0
  226. package/dist/shared/ipc-channels-overlays.d.ts +8 -2
  227. package/dist/shared/ipc-channels-overlays.js +19 -2
  228. package/dist/shared/ipc-channels.d.ts +5 -10
  229. package/dist/shared/ipc-channels.js +17 -14
  230. package/dist/shared/ipc-schemas.d.ts +76 -24
  231. package/dist/shared/ipc-schemas.js +55 -10
  232. package/dist/shared/project-window-types.d.ts +42 -0
  233. package/dist/shared/project-window-types.js +2 -0
  234. package/dist/shared/types.d.ts +43 -17
  235. package/dist/shared/view-ids.d.ts +1 -0
  236. package/dist/shared/view-ids.js +3 -1
  237. package/dist/simulator/assets/bridge-channels-B3JAmRfl.js +2 -0
  238. package/dist/simulator/assets/device-shell-ATEhHV2_.css +1 -0
  239. package/dist/simulator/assets/device-shell-pxnZZp10.js +431 -0
  240. package/dist/simulator/assets/simulator-Dwp7lnvu.js +10 -0
  241. package/dist/simulator/assets/simulator-mini-app-DFo7fhi5.js +2 -0
  242. package/dist/simulator/assets/simulator-ui-B2ddJB1R.js +2 -0
  243. package/dist/simulator/simulator.html +3 -3
  244. package/dist/simulator/temp-files.d.ts +6 -0
  245. package/dist/simulator/temp-files.js +46 -4
  246. package/dist/simulator/types.d.ts +7 -0
  247. package/dist/vscode-workbench/assets/__vite-browser-external-JIkWewFf.js +1 -0
  248. package/dist/vscode-workbench/assets/{dist-CMfmHflW.js → dist-CXG-u1VB.js} +3 -3
  249. package/dist/vscode-workbench/assets/{iconv-lite-umd-Bx8CgaZq.js → iconv-lite-umd-Dxx9Qyb4.js} +1 -1
  250. package/dist/vscode-workbench/assets/{index-CdG6YWhW.js → index-6VJMsaWj.js} +460 -460
  251. package/dist/vscode-workbench/assets/{jschardet-M0qgd2lN.js → jschardet-Ba3D16vt.js} +1 -1
  252. package/dist/vscode-workbench/index.html +1 -1
  253. package/package.json +11 -8
  254. package/dist/renderer/assets/button-D5Q2wkXq.js +0 -2
  255. package/dist/renderer/assets/constants-D7DfVqMp.js +0 -2
  256. package/dist/renderer/assets/constants-D8zsejFq.js +0 -2
  257. package/dist/renderer/assets/dialog-e1TecTOY.js +0 -46
  258. package/dist/renderer/assets/hostSidebarDefault-B3yLfy8j.js +0 -2
  259. package/dist/renderer/assets/index-CsPD68N_.js +0 -5
  260. package/dist/renderer/assets/ipc-channels-overlays-LsDzGAtV.js +0 -2
  261. package/dist/renderer/assets/jsx-runtime-2vXHouwr.css +0 -1
  262. package/dist/renderer/assets/popover-Dix5cm_b.js +0 -2
  263. package/dist/renderer/assets/project-api-k7Oq9iaq.js +0 -2
  264. package/dist/renderer/assets/select-acGb0AmJ.js +0 -2
  265. package/dist/renderer/assets/settings-CQrTMr43.js +0 -2
  266. package/dist/renderer/assets/settings-api-CrUQ9rYV.js +0 -2
  267. package/dist/renderer/assets/settings-tab-bar-Cw1kVIf2.js +0 -2
  268. package/dist/renderer/assets/types-CsEKtFyr.js +0 -2
  269. package/dist/renderer/assets/updateDialog-NsF8223A.js +0 -2
  270. package/dist/renderer/assets/view-api-CLn3rcQE.js +0 -2
  271. package/dist/simulator/assets/bridge-channels-zhsumfky.js +0 -2
  272. package/dist/simulator/assets/device-shell-CmtM1QxP.js +0 -2
  273. package/dist/simulator/assets/device-shell-iFZo1igL.css +0 -1
  274. package/dist/simulator/assets/simulator-CIobn3Mh.js +0 -10
  275. package/dist/simulator/assets/simulator-mini-app-CRe6n9br.js +0 -2
  276. package/dist/simulator/assets/simulator-ui-C_cP602X.js +0 -2
  277. package/dist/vscode-workbench/assets/__vite-browser-external-Bc1vizTf.js +0 -1
@@ -21,6 +21,64 @@ export declare const ProjectSaveCompileConfigSchema: z.ZodTuple<[z.ZodString, z.
21
21
  value: z.ZodString;
22
22
  }, z.core.$loose>>>;
23
23
  }, z.core.$loose>], null>;
24
+ /** project:getCompileModeState — absolute project path. */
25
+ export declare const ProjectGetCompileModeStateSchema: z.ZodTuple<[z.ZodString], null>;
26
+ /**
27
+ * The single command shape the popover sends instead of a whole new list —
28
+ * main is the only thing that interprets it against the live store. Mirrors
29
+ * `CompileModeCommand` in `compile-mode-state.ts`.
30
+ */
31
+ export declare const CompileModeCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
32
+ type: z.ZodLiteral<"select">;
33
+ id: z.ZodNullable<z.ZodString>;
34
+ }, z.core.$strip>, z.ZodObject<{
35
+ type: z.ZodLiteral<"add">;
36
+ mode: z.ZodObject<{
37
+ name: z.ZodDefault<z.ZodString>;
38
+ pathName: z.ZodString;
39
+ query: z.ZodDefault<z.ZodString>;
40
+ scene: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
41
+ }, z.core.$loose>;
42
+ }, z.core.$strip>, z.ZodObject<{
43
+ type: z.ZodLiteral<"update">;
44
+ id: z.ZodString;
45
+ mode: z.ZodObject<{
46
+ name: z.ZodDefault<z.ZodString>;
47
+ pathName: z.ZodString;
48
+ query: z.ZodDefault<z.ZodString>;
49
+ scene: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
50
+ }, z.core.$loose>;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ type: z.ZodLiteral<"remove">;
53
+ id: z.ZodString;
54
+ }, z.core.$strip>], "type">;
55
+ /** popover:apply — the command to interpret against the open project's store. */
56
+ export declare const PopoverApplySchema: z.ZodTuple<[z.ZodObject<{
57
+ command: z.ZodDiscriminatedUnion<[z.ZodObject<{
58
+ type: z.ZodLiteral<"select">;
59
+ id: z.ZodNullable<z.ZodString>;
60
+ }, z.core.$strip>, z.ZodObject<{
61
+ type: z.ZodLiteral<"add">;
62
+ mode: z.ZodObject<{
63
+ name: z.ZodDefault<z.ZodString>;
64
+ pathName: z.ZodString;
65
+ query: z.ZodDefault<z.ZodString>;
66
+ scene: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
67
+ }, z.core.$loose>;
68
+ }, z.core.$strip>, z.ZodObject<{
69
+ type: z.ZodLiteral<"update">;
70
+ id: z.ZodString;
71
+ mode: z.ZodObject<{
72
+ name: z.ZodDefault<z.ZodString>;
73
+ pathName: z.ZodString;
74
+ query: z.ZodDefault<z.ZodString>;
75
+ scene: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
76
+ }, z.core.$loose>;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ type: z.ZodLiteral<"remove">;
79
+ id: z.ZodString;
80
+ }, z.core.$strip>], "type">;
81
+ }, z.core.$strip>], null>;
24
82
  /** popover:show — must be an object (not undefined/null/string). */
25
83
  export declare const PopoverShowSchema: z.ZodTuple<[z.ZodObject<{}, z.core.$loose>], null>;
26
84
  /**
@@ -58,6 +116,14 @@ export declare const ProjectCreateSubmitSchema: z.ZodTuple<[z.ZodObject<{
58
116
  path: z.ZodString;
59
117
  templateId: z.ZodString;
60
118
  }, z.core.$strip>], null>;
119
+ /**
120
+ * devicePicker:show / devicePicker:select — the device name only. The panel
121
+ * reads the device table from `@devicekit/devices` itself, the same source the
122
+ * toolbar reads, so the catalog never crosses IPC.
123
+ */
124
+ export declare const DevicePickerDeviceSchema: z.ZodTuple<[z.ZodObject<{
125
+ deviceName: z.ZodString;
126
+ }, z.core.$strip>], null>;
61
127
  /**
62
128
  * simulator:attach-native (native-host only) — the simulator URL to load into
63
129
  * the top-level WebContentsView + simulator width. The URL is the dev-server
@@ -79,19 +145,23 @@ export declare const SimulatorSoftReloadSchema: z.ZodTuple<[z.ZodString], null>;
79
145
  * payload small. Matches `NativeDeviceInfo` in ipc-channels.ts.
80
146
  */
81
147
  export declare const SimulatorSetDeviceInfoSchema: z.ZodTuple<[z.ZodObject<{
148
+ device: z.ZodOptional<z.ZodString>;
82
149
  brand: z.ZodString;
83
150
  model: z.ZodString;
84
151
  system: z.ZodString;
85
- platform: z.ZodString;
152
+ platform: z.ZodEnum<{
153
+ ios: "ios";
154
+ android: "android";
155
+ harmony: "harmony";
156
+ }>;
157
+ orientation: z.ZodEnum<{
158
+ portrait: "portrait";
159
+ landscape: "landscape";
160
+ }>;
86
161
  pixelRatio: z.ZodNumber;
87
162
  screenWidth: z.ZodNumber;
88
163
  screenHeight: z.ZodNumber;
89
164
  statusBarHeight: z.ZodNumber;
90
- notchType: z.ZodEnum<{
91
- none: "none";
92
- notch: "notch";
93
- "dynamic-island": "dynamic-island";
94
- }>;
95
165
  safeAreaInsets: z.ZodObject<{
96
166
  top: z.ZodNumber;
97
167
  right: z.ZodNumber;
@@ -209,24 +279,6 @@ export declare const WorkbenchSettingsSetThemeSchema: z.ZodTuple<[z.ZodEnum<{
209
279
  }>], null>;
210
280
  /** settings:setVisible — boolean. */
211
281
  export declare const SettingsSetVisibleSchema: z.ZodTuple<[z.ZodBoolean], null>;
212
- /** settings:configChanged — full CompileConfig object (see shared/types.ts). */
213
- export declare const SettingsConfigChangedSchema: z.ZodTuple<[z.ZodObject<{
214
- startPage: z.ZodOptional<z.ZodString>;
215
- scene: z.ZodOptional<z.ZodNumber>;
216
- queryParams: z.ZodOptional<z.ZodArray<z.ZodObject<{
217
- key: z.ZodString;
218
- value: z.ZodString;
219
- }, z.core.$loose>>>;
220
- }, z.core.$loose>], null>;
221
- /** popover:relaunch — full CompileConfig object pushed back to main on relaunch. */
222
- export declare const PopoverRelaunchSchema: z.ZodTuple<[z.ZodObject<{
223
- startPage: z.ZodOptional<z.ZodString>;
224
- scene: z.ZodOptional<z.ZodNumber>;
225
- queryParams: z.ZodOptional<z.ZodArray<z.ZodObject<{
226
- key: z.ZodString;
227
- value: z.ZodString;
228
- }, z.core.$loose>>>;
229
- }, z.core.$loose>], null>;
230
282
  /**
231
283
  * settings:projectSettingsChanged — Partial<ProjectSettings>.
232
284
  *
@@ -22,10 +22,9 @@ export const ProjectsAddSchema = z.tuple([AbsolutePath]);
22
22
  /** project:open — absolute project path. */
23
23
  export const ProjectOpenSchema = z.tuple([AbsolutePath]);
24
24
  /**
25
- * Shared shape for CompileConfig payloads (used by saveCompileConfig,
26
- * settings:configChanged, and popover:relaunch). Permissive on the outer
27
- * object so we stay forward-compatible with new fields; the known top-level
28
- * keys are validated to catch wrong types early.
25
+ * Shared shape for CompileConfig payloads. Permissive on the outer object so
26
+ * we stay forward-compatible with new fields; the known top-level keys are
27
+ * validated to catch wrong types early.
29
28
  */
30
29
  const CompileConfigShape = z.looseObject({
31
30
  startPage: z.string().optional(),
@@ -41,6 +40,45 @@ export const ProjectSaveCompileConfigSchema = z.tuple([
41
40
  AbsolutePath,
42
41
  CompileConfigShape,
43
42
  ]);
43
+ /**
44
+ * Shared shape for the stored compile-mode list (`condition.miniprogram` in
45
+ * project.config.json). Loose because WeChat writes fields we carry through
46
+ * untouched; `normalizeCompileModes` does the semantic coercion after this
47
+ * structural check.
48
+ */
49
+ // `.default('')` (not `.optional()`) so the parsed type matches CompileMode's
50
+ // required `name`/`query` strings — a command's mode is always a complete
51
+ // CompileMode, never a partial patch.
52
+ const CompileModeShape = z.looseObject({
53
+ name: z.string().default(''),
54
+ pathName: z.string(),
55
+ query: z.string().default(''),
56
+ scene: z.number().nullable().default(null),
57
+ });
58
+ /** project:getCompileModeState — absolute project path. */
59
+ export const ProjectGetCompileModeStateSchema = z.tuple([AbsolutePath]);
60
+ /**
61
+ * A compile-mode id: minted by the store, never empty. `select` alone also
62
+ * allows `null` (普通编译), so it is not part of this shape.
63
+ */
64
+ const CompileModeId = z.string().min(1);
65
+ /**
66
+ * The single command shape the popover sends instead of a whole new list —
67
+ * main is the only thing that interprets it against the live store. Mirrors
68
+ * `CompileModeCommand` in `compile-mode-state.ts`.
69
+ */
70
+ export const CompileModeCommandSchema = z.discriminatedUnion('type', [
71
+ z.object({ type: z.literal('select'), id: CompileModeId.nullable() }),
72
+ z.object({ type: z.literal('add'), mode: CompileModeShape }),
73
+ z.object({ type: z.literal('update'), id: CompileModeId, mode: CompileModeShape }),
74
+ z.object({ type: z.literal('remove'), id: CompileModeId }),
75
+ ]);
76
+ /** popover:apply — the command to interpret against the open project's store. */
77
+ export const PopoverApplySchema = z.tuple([
78
+ z.object({
79
+ command: CompileModeCommandSchema,
80
+ }),
81
+ ]);
44
82
  /** popover:show — must be an object (not undefined/null/string). */
45
83
  export const PopoverShowSchema = z.tuple([z.looseObject({})]);
46
84
  /**
@@ -86,6 +124,16 @@ export const ProjectCreateSubmitSchema = z.tuple([
86
124
  templateId: z.string().min(1),
87
125
  }),
88
126
  ]);
127
+ /**
128
+ * devicePicker:show / devicePicker:select — the device name only. The panel
129
+ * reads the device table from `@devicekit/devices` itself, the same source the
130
+ * toolbar reads, so the catalog never crosses IPC.
131
+ */
132
+ export const DevicePickerDeviceSchema = z.tuple([
133
+ z.object({
134
+ deviceName: z.string().min(1),
135
+ }),
136
+ ]);
89
137
  /**
90
138
  * Reasonable simulator width range. Window width is clamped UI-side, but
91
139
  * we still reject obvious garbage (negative, zero, absurdly large).
@@ -122,15 +170,16 @@ export const SimulatorSoftReloadSchema = z.tuple([
122
170
  */
123
171
  export const SimulatorSetDeviceInfoSchema = z.tuple([
124
172
  z.object({
173
+ device: z.string().max(64).optional(),
125
174
  brand: z.string().max(64),
126
175
  model: z.string().max(64),
127
176
  system: z.string().max(64),
128
- platform: z.string().max(32),
177
+ platform: z.enum(['ios', 'android', 'harmony']),
178
+ orientation: z.enum(['portrait', 'landscape']),
129
179
  pixelRatio: z.number().finite().positive(),
130
180
  screenWidth: z.number().int().min(100).max(4000),
131
181
  screenHeight: z.number().int().min(100).max(4000),
132
182
  statusBarHeight: z.number().finite().min(0).max(400),
133
- notchType: z.enum(['none', 'notch', 'dynamic-island']),
134
183
  safeAreaInsets: z.object({
135
184
  top: z.number().finite().min(0).max(400),
136
185
  right: z.number().finite().min(0).max(400),
@@ -272,10 +321,6 @@ export const WorkbenchSettingsSetThemeSchema = z.tuple([
272
321
  ]);
273
322
  /** settings:setVisible — boolean. */
274
323
  export const SettingsSetVisibleSchema = z.tuple([z.boolean()]);
275
- /** settings:configChanged — full CompileConfig object (see shared/types.ts). */
276
- export const SettingsConfigChangedSchema = z.tuple([CompileConfigShape]);
277
- /** popover:relaunch — full CompileConfig object pushed back to main on relaunch. */
278
- export const PopoverRelaunchSchema = z.tuple([CompileConfigShape]);
279
324
  /**
280
325
  * settings:projectSettingsChanged — Partial<ProjectSettings>.
281
326
  *
@@ -0,0 +1,42 @@
1
+ import type { WorkbenchHostInstance } from './types.js';
2
+ /**
3
+ * One project window, handed to the host hooks that act on a single project:
4
+ * `setupProjectWindow` on the way in and `onBeforeClose` on the way out.
5
+ */
6
+ export interface ProjectWindowRef {
7
+ /** Absolute path of the project this window was opened for. */
8
+ path: string;
9
+ /** Display name the open supplied, when it supplied one. */
10
+ name?: string;
11
+ /** The window itself. */
12
+ window: import('electron').BrowserWindow;
13
+ /**
14
+ * This window's own context — the one holding its session and views. Same
15
+ * type as {@link WorkbenchHostInstance.context}, borrowed from there rather
16
+ * than named again so this file keeps its single WorkbenchContext reference.
17
+ */
18
+ context: WorkbenchHostInstance['context'];
19
+ }
20
+ /**
21
+ * The project window being closed. Named separately from
22
+ * {@link ProjectWindowRef} because `onBeforeClose` documents it under this
23
+ * name; the shape is the same.
24
+ */
25
+ export type ClosingProjectWindow = ProjectWindowRef;
26
+ /** Overrides for the windows opened projects get, not for the project list. */
27
+ export interface ProjectWindowConfig {
28
+ /**
29
+ * Whether the framework shows a project window on its own. Defaults to
30
+ * `true`: once `setupProjectWindow` has resolved AND the window's own
31
+ * `ready-to-show` has fired (whichever finishes second), the framework
32
+ * reveals it. `false` is a permanent opt-out — the framework never shows
33
+ * that window on its own, no matter what the hook does or how many times
34
+ * `ready-to-show` fires; the host must call `show()` itself.
35
+ *
36
+ * Independent of `window.autoShow`, which governs only the project-list
37
+ * window: a host that keeps the list hidden behind its own startup flow
38
+ * still wants the project windows opened afterwards to appear on screen.
39
+ */
40
+ autoShow?: boolean;
41
+ }
42
+ //# sourceMappingURL=project-window-types.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=project-window-types.js.map
@@ -1,6 +1,15 @@
1
1
  import type { OpenProjectOptions } from '@dimina-kit/devkit';
2
2
  import type { SimulatorApiHandler } from '../main/services/simulator/custom-apis.js';
3
3
  import type { MiniappSessionAppInfo } from '../main/runtime/miniapp-runtime.js';
4
+ import type { ClosingProjectWindow, ProjectWindowConfig, ProjectWindowRef } from './project-window-types.js';
5
+ import type { CompileConfig, CompileMode, CompileModes } from './compile-modes.js';
6
+ export type { ClosingProjectWindow, ProjectWindowConfig, ProjectWindowRef };
7
+ /**
8
+ * The compile-mode model lives next to its resolver in `compile-modes.ts` —
9
+ * the types and the rules that read them stay in one file. Re-exported here
10
+ * so the existing `shared/types.js` import sites keep working.
11
+ */
12
+ export type { CompileConfig, CompileMode, CompileModes };
4
13
  /**
5
14
  * The HAND-WRITTEN narrow contract handed to a host `menuBuilder` — the
6
15
  * audited menu consumption surface only, same posture as `MiniappRuntime`.
@@ -38,7 +47,7 @@ export interface MenuContext {
38
47
  message: string;
39
48
  hotReload?: boolean;
40
49
  }) => void;
41
- /** Ask the main renderer to navigate back to its landing screen (打开项目). */
50
+ /** Bring the project-list window forward and refresh it (打开项目). */
42
51
  windowNavigateBack: () => void;
43
52
  };
44
53
  }
@@ -63,7 +72,7 @@ export interface ProjectSession {
63
72
  rebuild?: () => Promise<void>;
64
73
  }
65
74
  export interface CompilationAdapter {
66
- openProject(opts: Omit<OpenProjectOptions, 'containerDir' | 'outputDir'>): Promise<ProjectSession>;
75
+ openProject(opts: Omit<OpenProjectOptions, 'containerDir' | 'outputDir' | 'outputRoot'>): Promise<ProjectSession>;
67
76
  }
68
77
  export type BuiltinPanelId = 'wxml' | 'console' | 'appdata' | 'storage';
69
78
  export type BuiltinModuleId = 'projects' | 'session' | 'simulator' | 'popover' | 'settings';
@@ -115,14 +124,6 @@ export interface WorkbenchConfig {
115
124
  */
116
125
  headerHeight?: number;
117
126
  }
118
- export interface CompileConfig {
119
- startPage: string;
120
- scene: number;
121
- queryParams: {
122
- key: string;
123
- value: string;
124
- }[];
125
- }
126
127
  /**
127
128
  * A project's runtime kind, detected from its source layout (see
128
129
  * `detectRuntimeType` in main's `project-repository.ts`). Lives here because
@@ -194,10 +195,11 @@ export interface WorkbenchHostInstance {
194
195
  */
195
196
  registerTrustedWindow(win: import('electron').BrowserWindow): import('@dimina-kit/electron-deck/main').Disposable;
196
197
  /**
197
- * Registers a simulator custom API into THIS context's registry, callable
198
- * from mini-program code as `wx.<name>(params)`. The registration joins
199
- * `context.registry`, so it is released when the context is disposed.
200
- * The returned Disposable removes only the registration it created.
198
+ * Registers a simulator custom API, callable from mini-program code as
199
+ * `wx.<name>(params)`. The registry is app-level: one registration serves
200
+ * every project window, including windows opened afterwards, and no window
201
+ * closing revokes it. It lives until the app is disposed or the returned
202
+ * Disposable revokes it — which removes only the registration it created.
201
203
  */
202
204
  registerSimulatorApi(name: string, handler: SimulatorApiHandler): import('@dimina-kit/electron-deck/main').Disposable;
203
205
  /**
@@ -226,6 +228,8 @@ export interface ProjectsProvider {
226
228
  updateLastOpened?(dirPath: string): void | Promise<void>;
227
229
  getCompileConfig?(dirPath: string): unknown;
228
230
  saveCompileConfig?(dirPath: string, cfg: unknown): void | Promise<void>;
231
+ getCompileModes?(dirPath: string): CompileModes | Promise<CompileModes>;
232
+ saveCompileModes?(dirPath: string, modes: CompileModes): void | Promise<void>;
229
233
  }
230
234
  /**
231
235
  * A template the user can pick from in the "新建项目" dialog. Exactly one of
@@ -285,16 +289,38 @@ export interface WorkbenchAppConfig extends WorkbenchConfig {
285
289
  rendererDir?: string;
286
290
  /** Enable or disable built-in IPC module groups. Defaults to all enabled. */
287
291
  modules?: Partial<Record<BuiltinModuleId, boolean>>;
288
- /** Window sizing overrides for the main devtools window. */
292
+ /** Window sizing overrides for the project-list window. */
289
293
  window?: WorkbenchWindowConfig;
294
+ /** Overrides for the windows opened projects get. */
295
+ projectWindow?: ProjectWindowConfig;
290
296
  /** Absolute path to a window/taskbar icon (png or ico). macOS uses the app bundle icon. */
291
297
  icon?: string;
292
298
  /** Custom menu builder. Should call Menu.setApplicationMenu(). If omitted, the default dimina-devtools menu is installed. */
293
299
  menuBuilder?: (mainWindow: import('electron').BrowserWindow, menuContext: MenuContext) => void;
294
300
  /** Called after window and context are created but before start() resolves. Use to register custom IPC handlers. */
295
301
  onSetup?: (instance: WorkbenchHostInstance) => void | Promise<void>;
296
- /** Called before window close when a session is active. Session disposal happens automatically after this hook. */
297
- onBeforeClose?: (instance: WorkbenchHostInstance) => void | Promise<void>;
302
+ /**
303
+ * Called once per project window, after the framework has wired that window
304
+ * up and before the open resolves. `opened.context` is THAT window's own
305
+ * context, which is why per-project registration belongs here: `onSetup`
306
+ * only ever sees `instance.context`, the project list's, so a registration
307
+ * made there reaches no project window.
308
+ *
309
+ * Awaited, and unlike `onBeforeClose` it can fail the open: a rejection
310
+ * tears the half-built window down and reaches whoever asked for it.
311
+ */
312
+ setupProjectWindow?: (instance: WorkbenchHostInstance, opened: ProjectWindowRef) => void | Promise<void>;
313
+ /**
314
+ * Called when a project window is closing, before the framework disposes it.
315
+ * `closing` says WHICH project is going away and carries that window's own
316
+ * context — `instance.context` is always the project list's, which owns no
317
+ * session, so with several windows open it cannot tell them apart. A hook
318
+ * that only declares `instance` still type-checks.
319
+ *
320
+ * Awaited, but not a veto: a rejection is logged and the window is disposed
321
+ * regardless.
322
+ */
323
+ onBeforeClose?: (instance: WorkbenchHostInstance, closing: ClosingProjectWindow) => void | Promise<void>;
298
324
  /**
299
325
  * Called before a project is opened, BEFORE any side effect (session
300
326
  * teardown, compile, dev-server). Use to gate the open on login/permission
@@ -10,6 +10,7 @@ export declare const VIEW_ID: {
10
10
  readonly tooltip: "tooltip";
11
11
  readonly projectCreateDialog: "project-create-dialog";
12
12
  readonly updateDialog: "update-dialog";
13
+ readonly devicePicker: "device-picker";
13
14
  };
14
15
  export type DevtoolsViewId = (typeof VIEW_ID)[keyof typeof VIEW_ID];
15
16
  export interface DevtoolsExtra {
@@ -15,6 +15,7 @@ export const VIEW_ID = {
15
15
  tooltip: 'tooltip',
16
16
  projectCreateDialog: 'project-create-dialog',
17
17
  updateDialog: 'update-dialog',
18
+ devicePicker: 'device-picker',
18
19
  };
19
20
  // z-order layers; larger paints on top. Base overlays share layer 0 (they never
20
21
  // overlap each other — the simulator device WCV, the console/DevTools WCV, and
@@ -37,7 +38,8 @@ export const VIEW_LAYER = {
37
38
  settings: 10,
38
39
  popover: 20,
39
40
  tooltip: 30,
40
- // devtools' own ProjectCreateDialog/UpdateDialog panels (createOverlayPanel).
41
+ // devtools' own ProjectCreateDialog/UpdateDialog/DevicePicker panels
42
+ // (createOverlayPanel).
41
43
  dialog: 40,
42
44
  // Host-controlled fully-custom dialog (loadURL-level takeover); sits above
43
45
  // devtools' own dialog layer so host content is never occluded by it.
@@ -0,0 +1,2 @@
1
+ function e(e){let t=e.safeAreaInsets,n=Math.max(0,e.screenHeight-t.top-t.bottom),r=t.left,i=e.screenWidth-t.right;return{brand:e.brand,model:e.model,system:e.system,platform:e.platform,pixelRatio:e.pixelRatio,screenWidth:e.screenWidth,screenHeight:e.screenHeight,windowWidth:e.screenWidth,windowHeight:n,statusBarHeight:e.statusBarHeight,safeAreaInsets:t,deviceOrientation:e.orientation,safeArea:{left:r,top:t.top,right:i,bottom:e.screenHeight-t.bottom,width:Math.max(0,i-r),height:n},screenTop:e.statusBarHeight}}var t={DOM_READY:`simulator:dom-ready`,NAV_BAR:`simulator:navigation-bar`,NAV_ACTION:`simulator:nav-action`,TAB_ACTION:`simulator:tab-action`,API_CALL:`simulator:api-call`,DEVICE_CHANGE:`simulator:device-change`,RELAUNCH:`simulator:relaunch`};export{e as n,t};
2
+ //# sourceMappingURL=bridge-channels-B3JAmRfl.js.map
@@ -0,0 +1 @@
1
+ .device-shell-root{color:#101418;box-sizing:border-box;background:#282828;width:100%;height:100vh;padding:24px;display:flex;overflow:auto}.device-shell-root--embedded{background:#fff;padding:0;overflow:hidden}@media (prefers-color-scheme:light){.device-shell-root{background:#f7f7f9}}.device-shell{margin:auto}.device-shell--embedded{width:100%;height:100%;margin:0}.device-shell__screen{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.device-shell__extension-layer{z-index:400;pointer-events:none;position:absolute;inset:0;overflow:hidden}