@agimon-ai/po-web-dashboard 0.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (924) hide show
  1. package/LICENSE +29 -0
  2. package/README.md +10 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  4. package/dist/core.cjs +222 -0
  5. package/dist/core.d.mts +21 -0
  6. package/dist/core.mjs +21 -0
  7. package/dist/index.cjs +546 -0
  8. package/dist/index.d.mts +81 -0
  9. package/dist/index.mjs +81 -0
  10. package/dist/testing.cjs +18 -0
  11. package/dist/testing.d.mts +6 -0
  12. package/dist/testing.mjs +6 -0
  13. package/dist/types/auth.cjs +20 -0
  14. package/dist/types/auth.cjs.map +1 -0
  15. package/dist/types/auth.d.mts +160 -0
  16. package/dist/types/auth.d.mts.map +1 -0
  17. package/dist/types/auth.mjs +19 -0
  18. package/dist/types/auth.mjs.map +1 -0
  19. package/dist/types/bridge.d.mts +18 -0
  20. package/dist/types/bridge.d.mts.map +1 -0
  21. package/dist/types/devProxy.cjs +41 -0
  22. package/dist/types/devProxy.cjs.map +1 -0
  23. package/dist/types/devProxy.d.mts +54 -0
  24. package/dist/types/devProxy.d.mts.map +1 -0
  25. package/dist/types/devProxy.mjs +39 -0
  26. package/dist/types/devProxy.mjs.map +1 -0
  27. package/dist/types/hub.cjs +220 -0
  28. package/dist/types/hub.cjs.map +1 -0
  29. package/dist/types/hub.d.mts +447 -0
  30. package/dist/types/hub.d.mts.map +1 -0
  31. package/dist/types/hub.mjs +179 -0
  32. package/dist/types/hub.mjs.map +1 -0
  33. package/dist/types/media.cjs +75 -0
  34. package/dist/types/media.cjs.map +1 -0
  35. package/dist/types/media.d.mts +22 -0
  36. package/dist/types/media.d.mts.map +1 -0
  37. package/dist/types/media.mjs +70 -0
  38. package/dist/types/media.mjs.map +1 -0
  39. package/dist/types/notification.cjs +19 -0
  40. package/dist/types/notification.cjs.map +1 -0
  41. package/dist/types/notification.d.mts +10 -0
  42. package/dist/types/notification.d.mts.map +1 -0
  43. package/dist/types/notification.mjs +19 -0
  44. package/dist/types/notification.mjs.map +1 -0
  45. package/dist/types/remoteAccess.cjs +92 -0
  46. package/dist/types/remoteAccess.cjs.map +1 -0
  47. package/dist/types/remoteAccess.d.mts +214 -0
  48. package/dist/types/remoteAccess.d.mts.map +1 -0
  49. package/dist/types/remoteAccess.mjs +68 -0
  50. package/dist/types/remoteAccess.mjs.map +1 -0
  51. package/dist/types/session.cjs +23 -0
  52. package/dist/types/session.cjs.map +1 -0
  53. package/dist/types/session.d.mts +29 -0
  54. package/dist/types/session.d.mts.map +1 -0
  55. package/dist/types/session.mjs +18 -0
  56. package/dist/types/session.mjs.map +1 -0
  57. package/dist/types/sessionMcp.d.mts +56 -0
  58. package/dist/types/sessionMcp.d.mts.map +1 -0
  59. package/dist/types/settings.cjs +18 -0
  60. package/dist/types/settings.cjs.map +1 -0
  61. package/dist/types/settings.d.mts +126 -0
  62. package/dist/types/settings.d.mts.map +1 -0
  63. package/dist/types/settings.mjs +12 -0
  64. package/dist/types/settings.mjs.map +1 -0
  65. package/dist/types.cjs +101 -0
  66. package/dist/types.d.mts +11 -0
  67. package/dist/types.mjs +9 -0
  68. package/dist/views.cjs +120 -0
  69. package/dist/views.d.mts +56 -0
  70. package/dist/views.mjs +56 -0
  71. package/dist/web/components/MascotMark.cjs +18 -0
  72. package/dist/web/components/MascotMark.cjs.map +1 -0
  73. package/dist/web/components/MascotMark.d.mts +9 -0
  74. package/dist/web/components/MascotMark.d.mts.map +1 -0
  75. package/dist/web/components/MascotMark.mjs +18 -0
  76. package/dist/web/components/MascotMark.mjs.map +1 -0
  77. package/dist/web/components/PluginSurface.cjs +15 -0
  78. package/dist/web/components/PluginSurface.cjs.map +1 -0
  79. package/dist/web/components/PluginSurface.d.mts +13 -0
  80. package/dist/web/components/PluginSurface.d.mts.map +1 -0
  81. package/dist/web/components/PluginSurface.mjs +15 -0
  82. package/dist/web/components/PluginSurface.mjs.map +1 -0
  83. package/dist/web/components/QrCode.cjs +37 -0
  84. package/dist/web/components/QrCode.cjs.map +1 -0
  85. package/dist/web/components/QrCode.d.mts +22 -0
  86. package/dist/web/components/QrCode.d.mts.map +1 -0
  87. package/dist/web/components/QrCode.mjs +37 -0
  88. package/dist/web/components/QrCode.mjs.map +1 -0
  89. package/dist/web/components/Remote.fixture.cjs +73 -0
  90. package/dist/web/components/Remote.fixture.cjs.map +1 -0
  91. package/dist/web/components/Remote.fixture.mjs +72 -0
  92. package/dist/web/components/Remote.fixture.mjs.map +1 -0
  93. package/dist/web/components/SessionMcp.cjs +279 -0
  94. package/dist/web/components/SessionMcp.cjs.map +1 -0
  95. package/dist/web/components/SessionMcp.d.mts +12 -0
  96. package/dist/web/components/SessionMcp.d.mts.map +1 -0
  97. package/dist/web/components/SessionMcp.mjs +278 -0
  98. package/dist/web/components/SessionMcp.mjs.map +1 -0
  99. package/dist/web/components/Story.fixture.cjs +124 -0
  100. package/dist/web/components/Story.fixture.cjs.map +1 -0
  101. package/dist/web/components/Story.fixture.d.mts +19 -0
  102. package/dist/web/components/Story.fixture.d.mts.map +1 -0
  103. package/dist/web/components/Story.fixture.mjs +119 -0
  104. package/dist/web/components/Story.fixture.mjs.map +1 -0
  105. package/dist/web/components/Template.fixture.cjs +67 -0
  106. package/dist/web/components/Template.fixture.cjs.map +1 -0
  107. package/dist/web/components/Template.fixture.d.mts +7 -0
  108. package/dist/web/components/Template.fixture.d.mts.map +1 -0
  109. package/dist/web/components/Template.fixture.mjs +65 -0
  110. package/dist/web/components/Template.fixture.mjs.map +1 -0
  111. package/dist/web/components/ToolRendererBoundary.cjs +23 -0
  112. package/dist/web/components/ToolRendererBoundary.cjs.map +1 -0
  113. package/dist/web/components/ToolRendererBoundary.d.mts +23 -0
  114. package/dist/web/components/ToolRendererBoundary.d.mts.map +1 -0
  115. package/dist/web/components/ToolRendererBoundary.mjs +23 -0
  116. package/dist/web/components/ToolRendererBoundary.mjs.map +1 -0
  117. package/dist/web/features/activity/ActivityDock.cjs +271 -0
  118. package/dist/web/features/activity/ActivityDock.cjs.map +1 -0
  119. package/dist/web/features/activity/ActivityDock.d.mts +22 -0
  120. package/dist/web/features/activity/ActivityDock.d.mts.map +1 -0
  121. package/dist/web/features/activity/ActivityDock.mjs +271 -0
  122. package/dist/web/features/activity/ActivityDock.mjs.map +1 -0
  123. package/dist/web/features/activity/ContextItemDialog.cjs +276 -0
  124. package/dist/web/features/activity/ContextItemDialog.cjs.map +1 -0
  125. package/dist/web/features/activity/ContextItemDialog.d.mts +16 -0
  126. package/dist/web/features/activity/ContextItemDialog.d.mts.map +1 -0
  127. package/dist/web/features/activity/ContextItemDialog.mjs +276 -0
  128. package/dist/web/features/activity/ContextItemDialog.mjs.map +1 -0
  129. package/dist/web/features/activity/ContextPanel.cjs +248 -0
  130. package/dist/web/features/activity/ContextPanel.cjs.map +1 -0
  131. package/dist/web/features/activity/ContextPanel.d.mts +4 -0
  132. package/dist/web/features/activity/ContextPanel.d.mts.map +1 -0
  133. package/dist/web/features/activity/ContextPanel.mjs +248 -0
  134. package/dist/web/features/activity/ContextPanel.mjs.map +1 -0
  135. package/dist/web/features/activity/DockTabs.cjs +47 -0
  136. package/dist/web/features/activity/DockTabs.cjs.map +1 -0
  137. package/dist/web/features/activity/DockTabs.d.mts +9 -0
  138. package/dist/web/features/activity/DockTabs.d.mts.map +1 -0
  139. package/dist/web/features/activity/DockTabs.mjs +47 -0
  140. package/dist/web/features/activity/DockTabs.mjs.map +1 -0
  141. package/dist/web/features/connection/RefusedCard.cjs +76 -0
  142. package/dist/web/features/connection/RefusedCard.cjs.map +1 -0
  143. package/dist/web/features/connection/RefusedCard.d.mts +5 -0
  144. package/dist/web/features/connection/RefusedCard.d.mts.map +1 -0
  145. package/dist/web/features/connection/RefusedCard.mjs +76 -0
  146. package/dist/web/features/connection/RefusedCard.mjs.map +1 -0
  147. package/dist/web/features/dialogs/DialogOverlay.cjs +164 -0
  148. package/dist/web/features/dialogs/DialogOverlay.cjs.map +1 -0
  149. package/dist/web/features/dialogs/DialogOverlay.d.mts +15 -0
  150. package/dist/web/features/dialogs/DialogOverlay.d.mts.map +1 -0
  151. package/dist/web/features/dialogs/DialogOverlay.mjs +164 -0
  152. package/dist/web/features/dialogs/DialogOverlay.mjs.map +1 -0
  153. package/dist/web/features/leader/CommandPalette.cjs +390 -0
  154. package/dist/web/features/leader/CommandPalette.cjs.map +1 -0
  155. package/dist/web/features/leader/CommandPalette.d.mts +14 -0
  156. package/dist/web/features/leader/CommandPalette.d.mts.map +1 -0
  157. package/dist/web/features/leader/CommandPalette.mjs +390 -0
  158. package/dist/web/features/leader/CommandPalette.mjs.map +1 -0
  159. package/dist/web/features/remote/DevProxyTargets.cjs +122 -0
  160. package/dist/web/features/remote/DevProxyTargets.cjs.map +1 -0
  161. package/dist/web/features/remote/DevProxyTargets.d.mts +15 -0
  162. package/dist/web/features/remote/DevProxyTargets.d.mts.map +1 -0
  163. package/dist/web/features/remote/DevProxyTargets.mjs +122 -0
  164. package/dist/web/features/remote/DevProxyTargets.mjs.map +1 -0
  165. package/dist/web/features/remote/HandoverProgress.cjs +28 -0
  166. package/dist/web/features/remote/HandoverProgress.cjs.map +1 -0
  167. package/dist/web/features/remote/HandoverProgress.d.mts +12 -0
  168. package/dist/web/features/remote/HandoverProgress.d.mts.map +1 -0
  169. package/dist/web/features/remote/HandoverProgress.mjs +28 -0
  170. package/dist/web/features/remote/HandoverProgress.mjs.map +1 -0
  171. package/dist/web/features/remote/PairedDeviceList.cjs +37 -0
  172. package/dist/web/features/remote/PairedDeviceList.cjs.map +1 -0
  173. package/dist/web/features/remote/PairedDeviceList.d.mts +5 -0
  174. package/dist/web/features/remote/PairedDeviceList.d.mts.map +1 -0
  175. package/dist/web/features/remote/PairedDeviceList.mjs +37 -0
  176. package/dist/web/features/remote/PairedDeviceList.mjs.map +1 -0
  177. package/dist/web/features/remote/PairingApprovalDialog.cjs +65 -0
  178. package/dist/web/features/remote/PairingApprovalDialog.cjs.map +1 -0
  179. package/dist/web/features/remote/PairingApprovalDialog.d.mts +11 -0
  180. package/dist/web/features/remote/PairingApprovalDialog.d.mts.map +1 -0
  181. package/dist/web/features/remote/PairingApprovalDialog.mjs +65 -0
  182. package/dist/web/features/remote/PairingApprovalDialog.mjs.map +1 -0
  183. package/dist/web/features/remote/RemoteAccessDialog.cjs +83 -0
  184. package/dist/web/features/remote/RemoteAccessDialog.cjs.map +1 -0
  185. package/dist/web/features/remote/RemoteAccessDialog.d.mts +11 -0
  186. package/dist/web/features/remote/RemoteAccessDialog.d.mts.map +1 -0
  187. package/dist/web/features/remote/RemoteAccessDialog.mjs +83 -0
  188. package/dist/web/features/remote/RemoteAccessDialog.mjs.map +1 -0
  189. package/dist/web/features/remote/RemoteAccessOptions.cjs +154 -0
  190. package/dist/web/features/remote/RemoteAccessOptions.cjs.map +1 -0
  191. package/dist/web/features/remote/RemoteAccessOptions.d.mts +11 -0
  192. package/dist/web/features/remote/RemoteAccessOptions.d.mts.map +1 -0
  193. package/dist/web/features/remote/RemoteAccessOptions.mjs +154 -0
  194. package/dist/web/features/remote/RemoteAccessOptions.mjs.map +1 -0
  195. package/dist/web/features/remote/RemoteAccessPairing.cjs +93 -0
  196. package/dist/web/features/remote/RemoteAccessPairing.cjs.map +1 -0
  197. package/dist/web/features/remote/RemoteAccessPairing.d.mts +5 -0
  198. package/dist/web/features/remote/RemoteAccessPairing.d.mts.map +1 -0
  199. package/dist/web/features/remote/RemoteAccessPairing.mjs +93 -0
  200. package/dist/web/features/remote/RemoteAccessPairing.mjs.map +1 -0
  201. package/dist/web/features/remote/SandboxWorkspaces.cjs +87 -0
  202. package/dist/web/features/remote/SandboxWorkspaces.cjs.map +1 -0
  203. package/dist/web/features/remote/SandboxWorkspaces.d.mts +7 -0
  204. package/dist/web/features/remote/SandboxWorkspaces.d.mts.map +1 -0
  205. package/dist/web/features/remote/SandboxWorkspaces.mjs +87 -0
  206. package/dist/web/features/remote/SandboxWorkspaces.mjs.map +1 -0
  207. package/dist/web/features/remote/TrustedDeviceList.cjs +65 -0
  208. package/dist/web/features/remote/TrustedDeviceList.cjs.map +1 -0
  209. package/dist/web/features/remote/TrustedDeviceList.d.mts +13 -0
  210. package/dist/web/features/remote/TrustedDeviceList.d.mts.map +1 -0
  211. package/dist/web/features/remote/TrustedDeviceList.mjs +64 -0
  212. package/dist/web/features/remote/TrustedDeviceList.mjs.map +1 -0
  213. package/dist/web/features/selection/SelectionBar.cjs +401 -0
  214. package/dist/web/features/selection/SelectionBar.cjs.map +1 -0
  215. package/dist/web/features/selection/SelectionBar.d.mts +14 -0
  216. package/dist/web/features/selection/SelectionBar.d.mts.map +1 -0
  217. package/dist/web/features/selection/SelectionBar.mjs +400 -0
  218. package/dist/web/features/selection/SelectionBar.mjs.map +1 -0
  219. package/dist/web/features/session/AgentLockPanel.cjs +31 -0
  220. package/dist/web/features/session/AgentLockPanel.cjs.map +1 -0
  221. package/dist/web/features/session/AgentLockPanel.mjs +31 -0
  222. package/dist/web/features/session/AgentLockPanel.mjs.map +1 -0
  223. package/dist/web/features/session/Composer.cjs +808 -0
  224. package/dist/web/features/session/Composer.cjs.map +1 -0
  225. package/dist/web/features/session/Composer.d.mts +21 -0
  226. package/dist/web/features/session/Composer.d.mts.map +1 -0
  227. package/dist/web/features/session/Composer.mjs +806 -0
  228. package/dist/web/features/session/Composer.mjs.map +1 -0
  229. package/dist/web/features/session/ComposerPrompt.cjs +47 -0
  230. package/dist/web/features/session/ComposerPrompt.cjs.map +1 -0
  231. package/dist/web/features/session/ComposerPrompt.d.mts +16 -0
  232. package/dist/web/features/session/ComposerPrompt.d.mts.map +1 -0
  233. package/dist/web/features/session/ComposerPrompt.mjs +47 -0
  234. package/dist/web/features/session/ComposerPrompt.mjs.map +1 -0
  235. package/dist/web/features/session/DormantPanel.cjs +61 -0
  236. package/dist/web/features/session/DormantPanel.cjs.map +1 -0
  237. package/dist/web/features/session/DormantPanel.d.mts +8 -0
  238. package/dist/web/features/session/DormantPanel.d.mts.map +1 -0
  239. package/dist/web/features/session/DormantPanel.mjs +61 -0
  240. package/dist/web/features/session/DormantPanel.mjs.map +1 -0
  241. package/dist/web/features/session/MentionPreviews.cjs +128 -0
  242. package/dist/web/features/session/MentionPreviews.cjs.map +1 -0
  243. package/dist/web/features/session/MentionPreviews.d.mts +17 -0
  244. package/dist/web/features/session/MentionPreviews.d.mts.map +1 -0
  245. package/dist/web/features/session/MentionPreviews.mjs +127 -0
  246. package/dist/web/features/session/MentionPreviews.mjs.map +1 -0
  247. package/dist/web/features/session/MessageMarkdown.cjs +20 -0
  248. package/dist/web/features/session/MessageMarkdown.cjs.map +1 -0
  249. package/dist/web/features/session/MessageMarkdown.d.mts +19 -0
  250. package/dist/web/features/session/MessageMarkdown.d.mts.map +1 -0
  251. package/dist/web/features/session/MessageMarkdown.mjs +20 -0
  252. package/dist/web/features/session/MessageMarkdown.mjs.map +1 -0
  253. package/dist/web/features/session/QueueSheet.cjs +189 -0
  254. package/dist/web/features/session/QueueSheet.cjs.map +1 -0
  255. package/dist/web/features/session/QueueSheet.d.mts +16 -0
  256. package/dist/web/features/session/QueueSheet.d.mts.map +1 -0
  257. package/dist/web/features/session/QueueSheet.mjs +189 -0
  258. package/dist/web/features/session/QueueSheet.mjs.map +1 -0
  259. package/dist/web/features/session/SessionActivity.cjs +88 -0
  260. package/dist/web/features/session/SessionActivity.cjs.map +1 -0
  261. package/dist/web/features/session/SessionActivity.d.mts +16 -0
  262. package/dist/web/features/session/SessionActivity.d.mts.map +1 -0
  263. package/dist/web/features/session/SessionActivity.mjs +87 -0
  264. package/dist/web/features/session/SessionActivity.mjs.map +1 -0
  265. package/dist/web/features/session/SessionTranscriptView.cjs +34 -0
  266. package/dist/web/features/session/SessionTranscriptView.cjs.map +1 -0
  267. package/dist/web/features/session/SessionTranscriptView.d.mts +16 -0
  268. package/dist/web/features/session/SessionTranscriptView.d.mts.map +1 -0
  269. package/dist/web/features/session/SessionTranscriptView.mjs +34 -0
  270. package/dist/web/features/session/SessionTranscriptView.mjs.map +1 -0
  271. package/dist/web/features/session/ThreadView.cjs +40 -0
  272. package/dist/web/features/session/ThreadView.cjs.map +1 -0
  273. package/dist/web/features/session/ThreadView.d.mts +18 -0
  274. package/dist/web/features/session/ThreadView.d.mts.map +1 -0
  275. package/dist/web/features/session/ThreadView.mjs +40 -0
  276. package/dist/web/features/session/ThreadView.mjs.map +1 -0
  277. package/dist/web/features/session/Timeline.cjs +620 -0
  278. package/dist/web/features/session/Timeline.cjs.map +1 -0
  279. package/dist/web/features/session/Timeline.d.mts +28 -0
  280. package/dist/web/features/session/Timeline.d.mts.map +1 -0
  281. package/dist/web/features/session/Timeline.mjs +619 -0
  282. package/dist/web/features/session/Timeline.mjs.map +1 -0
  283. package/dist/web/features/session/ToolCard.cjs +210 -0
  284. package/dist/web/features/session/ToolCard.cjs.map +1 -0
  285. package/dist/web/features/session/ToolCard.d.mts +16 -0
  286. package/dist/web/features/session/ToolCard.d.mts.map +1 -0
  287. package/dist/web/features/session/ToolCard.mjs +210 -0
  288. package/dist/web/features/session/ToolCard.mjs.map +1 -0
  289. package/dist/web/features/session/session.fixture.cjs +76 -0
  290. package/dist/web/features/session/session.fixture.cjs.map +1 -0
  291. package/dist/web/features/session/session.fixture.d.mts +6 -0
  292. package/dist/web/features/session/session.fixture.d.mts.map +1 -0
  293. package/dist/web/features/session/session.fixture.mjs +74 -0
  294. package/dist/web/features/session/session.fixture.mjs.map +1 -0
  295. package/dist/web/features/sessions/NewSessionDialog.cjs +70 -0
  296. package/dist/web/features/sessions/NewSessionDialog.cjs.map +1 -0
  297. package/dist/web/features/sessions/NewSessionDialog.d.mts +9 -0
  298. package/dist/web/features/sessions/NewSessionDialog.d.mts.map +1 -0
  299. package/dist/web/features/sessions/NewSessionDialog.mjs +70 -0
  300. package/dist/web/features/sessions/NewSessionDialog.mjs.map +1 -0
  301. package/dist/web/features/sessions/ResumeSessionDialog.cjs +131 -0
  302. package/dist/web/features/sessions/ResumeSessionDialog.cjs.map +1 -0
  303. package/dist/web/features/sessions/ResumeSessionDialog.d.mts +14 -0
  304. package/dist/web/features/sessions/ResumeSessionDialog.d.mts.map +1 -0
  305. package/dist/web/features/sessions/ResumeSessionDialog.mjs +131 -0
  306. package/dist/web/features/sessions/ResumeSessionDialog.mjs.map +1 -0
  307. package/dist/web/features/sessions/SessionRailDialogs.cjs +62 -0
  308. package/dist/web/features/sessions/SessionRailDialogs.cjs.map +1 -0
  309. package/dist/web/features/sessions/SessionRailDialogs.d.mts +10 -0
  310. package/dist/web/features/sessions/SessionRailDialogs.d.mts.map +1 -0
  311. package/dist/web/features/sessions/SessionRailDialogs.mjs +62 -0
  312. package/dist/web/features/sessions/SessionRailDialogs.mjs.map +1 -0
  313. package/dist/web/features/sessions/WelcomePanel.cjs +42 -0
  314. package/dist/web/features/sessions/WelcomePanel.cjs.map +1 -0
  315. package/dist/web/features/sessions/WelcomePanel.d.mts +16 -0
  316. package/dist/web/features/sessions/WelcomePanel.d.mts.map +1 -0
  317. package/dist/web/features/sessions/WelcomePanel.mjs +42 -0
  318. package/dist/web/features/sessions/WelcomePanel.mjs.map +1 -0
  319. package/dist/web/features/sessions/useNewSessionActions.cjs +38 -0
  320. package/dist/web/features/sessions/useNewSessionActions.cjs.map +1 -0
  321. package/dist/web/features/sessions/useNewSessionActions.d.mts +12 -0
  322. package/dist/web/features/sessions/useNewSessionActions.d.mts.map +1 -0
  323. package/dist/web/features/sessions/useNewSessionActions.mjs +38 -0
  324. package/dist/web/features/sessions/useNewSessionActions.mjs.map +1 -0
  325. package/dist/web/features/sessions/useSessionRail.cjs +302 -0
  326. package/dist/web/features/sessions/useSessionRail.cjs.map +1 -0
  327. package/dist/web/features/sessions/useSessionRail.d.mts +14 -0
  328. package/dist/web/features/sessions/useSessionRail.d.mts.map +1 -0
  329. package/dist/web/features/sessions/useSessionRail.mjs +302 -0
  330. package/dist/web/features/sessions/useSessionRail.mjs.map +1 -0
  331. package/dist/web/features/settings/AppearanceSettings.cjs +126 -0
  332. package/dist/web/features/settings/AppearanceSettings.cjs.map +1 -0
  333. package/dist/web/features/settings/AppearanceSettings.d.mts +12 -0
  334. package/dist/web/features/settings/AppearanceSettings.d.mts.map +1 -0
  335. package/dist/web/features/settings/AppearanceSettings.mjs +126 -0
  336. package/dist/web/features/settings/AppearanceSettings.mjs.map +1 -0
  337. package/dist/web/features/settings/ContributedSettings.cjs +257 -0
  338. package/dist/web/features/settings/ContributedSettings.cjs.map +1 -0
  339. package/dist/web/features/settings/ContributedSettings.d.mts +14 -0
  340. package/dist/web/features/settings/ContributedSettings.d.mts.map +1 -0
  341. package/dist/web/features/settings/ContributedSettings.mjs +257 -0
  342. package/dist/web/features/settings/ContributedSettings.mjs.map +1 -0
  343. package/dist/web/features/settings/ImageSettings.cjs +146 -0
  344. package/dist/web/features/settings/ImageSettings.cjs.map +1 -0
  345. package/dist/web/features/settings/ImageSettings.d.mts +12 -0
  346. package/dist/web/features/settings/ImageSettings.d.mts.map +1 -0
  347. package/dist/web/features/settings/ImageSettings.mjs +146 -0
  348. package/dist/web/features/settings/ImageSettings.mjs.map +1 -0
  349. package/dist/web/features/settings/LoginFlowDialog.cjs +226 -0
  350. package/dist/web/features/settings/LoginFlowDialog.cjs.map +1 -0
  351. package/dist/web/features/settings/LoginFlowDialog.d.mts +15 -0
  352. package/dist/web/features/settings/LoginFlowDialog.d.mts.map +1 -0
  353. package/dist/web/features/settings/LoginFlowDialog.mjs +225 -0
  354. package/dist/web/features/settings/LoginFlowDialog.mjs.map +1 -0
  355. package/dist/web/features/settings/NotificationSettings.cjs +69 -0
  356. package/dist/web/features/settings/NotificationSettings.cjs.map +1 -0
  357. package/dist/web/features/settings/NotificationSettings.d.mts +5 -0
  358. package/dist/web/features/settings/NotificationSettings.d.mts.map +1 -0
  359. package/dist/web/features/settings/NotificationSettings.mjs +69 -0
  360. package/dist/web/features/settings/NotificationSettings.mjs.map +1 -0
  361. package/dist/web/features/settings/PluginSettings.cjs +106 -0
  362. package/dist/web/features/settings/PluginSettings.cjs.map +1 -0
  363. package/dist/web/features/settings/PluginSettings.d.mts +10 -0
  364. package/dist/web/features/settings/PluginSettings.d.mts.map +1 -0
  365. package/dist/web/features/settings/PluginSettings.mjs +106 -0
  366. package/dist/web/features/settings/PluginSettings.mjs.map +1 -0
  367. package/dist/web/features/settings/ProviderSettings.cjs +323 -0
  368. package/dist/web/features/settings/ProviderSettings.cjs.map +1 -0
  369. package/dist/web/features/settings/ProviderSettings.d.mts +9 -0
  370. package/dist/web/features/settings/ProviderSettings.d.mts.map +1 -0
  371. package/dist/web/features/settings/ProviderSettings.mjs +323 -0
  372. package/dist/web/features/settings/ProviderSettings.mjs.map +1 -0
  373. package/dist/web/features/settings/RemoteControlSettings.cjs +50 -0
  374. package/dist/web/features/settings/RemoteControlSettings.cjs.map +1 -0
  375. package/dist/web/features/settings/RemoteControlSettings.d.mts +5 -0
  376. package/dist/web/features/settings/RemoteControlSettings.d.mts.map +1 -0
  377. package/dist/web/features/settings/RemoteControlSettings.mjs +50 -0
  378. package/dist/web/features/settings/RemoteControlSettings.mjs.map +1 -0
  379. package/dist/web/features/settings/RepositorySettings.cjs +318 -0
  380. package/dist/web/features/settings/RepositorySettings.cjs.map +1 -0
  381. package/dist/web/features/settings/RepositorySettings.d.mts +7 -0
  382. package/dist/web/features/settings/RepositorySettings.d.mts.map +1 -0
  383. package/dist/web/features/settings/RepositorySettings.mjs +318 -0
  384. package/dist/web/features/settings/RepositorySettings.mjs.map +1 -0
  385. package/dist/web/features/settings/RepositoryWorkspace.cjs +160 -0
  386. package/dist/web/features/settings/RepositoryWorkspace.cjs.map +1 -0
  387. package/dist/web/features/settings/RepositoryWorkspace.d.mts +10 -0
  388. package/dist/web/features/settings/RepositoryWorkspace.d.mts.map +1 -0
  389. package/dist/web/features/settings/RepositoryWorkspace.mjs +160 -0
  390. package/dist/web/features/settings/RepositoryWorkspace.mjs.map +1 -0
  391. package/dist/web/features/settings/SessionMcpSettings.cjs +488 -0
  392. package/dist/web/features/settings/SessionMcpSettings.cjs.map +1 -0
  393. package/dist/web/features/settings/SessionMcpSettings.d.mts +5 -0
  394. package/dist/web/features/settings/SessionMcpSettings.d.mts.map +1 -0
  395. package/dist/web/features/settings/SessionMcpSettings.mjs +488 -0
  396. package/dist/web/features/settings/SessionMcpSettings.mjs.map +1 -0
  397. package/dist/web/features/settings/SettingsMenu.cjs +135 -0
  398. package/dist/web/features/settings/SettingsMenu.cjs.map +1 -0
  399. package/dist/web/features/settings/SettingsMenu.d.mts +9 -0
  400. package/dist/web/features/settings/SettingsMenu.d.mts.map +1 -0
  401. package/dist/web/features/settings/SettingsMenu.mjs +135 -0
  402. package/dist/web/features/settings/SettingsMenu.mjs.map +1 -0
  403. package/dist/web/features/settings/SettingsPanelHost.cjs +32 -0
  404. package/dist/web/features/settings/SettingsPanelHost.cjs.map +1 -0
  405. package/dist/web/features/settings/SettingsPanelHost.d.mts +8 -0
  406. package/dist/web/features/settings/SettingsPanelHost.d.mts.map +1 -0
  407. package/dist/web/features/settings/SettingsPanelHost.mjs +32 -0
  408. package/dist/web/features/settings/SettingsPanelHost.mjs.map +1 -0
  409. package/dist/web/features/settings/TemplateSettings.cjs +177 -0
  410. package/dist/web/features/settings/TemplateSettings.cjs.map +1 -0
  411. package/dist/web/features/settings/TemplateSettings.d.mts +8 -0
  412. package/dist/web/features/settings/TemplateSettings.d.mts.map +1 -0
  413. package/dist/web/features/settings/TemplateSettings.mjs +177 -0
  414. package/dist/web/features/settings/TemplateSettings.mjs.map +1 -0
  415. package/dist/web/features/settings/TunnelSettings.cjs +182 -0
  416. package/dist/web/features/settings/TunnelSettings.cjs.map +1 -0
  417. package/dist/web/features/settings/TunnelSettings.d.mts +8 -0
  418. package/dist/web/features/settings/TunnelSettings.d.mts.map +1 -0
  419. package/dist/web/features/settings/TunnelSettings.mjs +182 -0
  420. package/dist/web/features/settings/TunnelSettings.mjs.map +1 -0
  421. package/dist/web/features/settings/settings.fixture.cjs +230 -0
  422. package/dist/web/features/settings/settings.fixture.cjs.map +1 -0
  423. package/dist/web/features/settings/settings.fixture.d.mts +6 -0
  424. package/dist/web/features/settings/settings.fixture.d.mts.map +1 -0
  425. package/dist/web/features/settings/settings.fixture.mjs +223 -0
  426. package/dist/web/features/settings/settings.fixture.mjs.map +1 -0
  427. package/dist/web/features/status/TopBar.cjs +200 -0
  428. package/dist/web/features/status/TopBar.cjs.map +1 -0
  429. package/dist/web/features/status/TopBar.d.mts +11 -0
  430. package/dist/web/features/status/TopBar.d.mts.map +1 -0
  431. package/dist/web/features/status/TopBar.mjs +200 -0
  432. package/dist/web/features/status/TopBar.mjs.map +1 -0
  433. package/dist/web/lib/authApi.cjs +77 -0
  434. package/dist/web/lib/authApi.cjs.map +1 -0
  435. package/dist/web/lib/authApi.d.mts +28 -0
  436. package/dist/web/lib/authApi.d.mts.map +1 -0
  437. package/dist/web/lib/authApi.mjs +72 -0
  438. package/dist/web/lib/authApi.mjs.map +1 -0
  439. package/dist/web/lib/browserNotifications.cjs +37 -0
  440. package/dist/web/lib/browserNotifications.cjs.map +1 -0
  441. package/dist/web/lib/browserNotifications.d.mts +12 -0
  442. package/dist/web/lib/browserNotifications.d.mts.map +1 -0
  443. package/dist/web/lib/browserNotifications.mjs +35 -0
  444. package/dist/web/lib/browserNotifications.mjs.map +1 -0
  445. package/dist/web/lib/browserTelemetry.cjs +158 -0
  446. package/dist/web/lib/browserTelemetry.cjs.map +1 -0
  447. package/dist/web/lib/browserTelemetry.d.mts +28 -0
  448. package/dist/web/lib/browserTelemetry.d.mts.map +1 -0
  449. package/dist/web/lib/browserTelemetry.mjs +154 -0
  450. package/dist/web/lib/browserTelemetry.mjs.map +1 -0
  451. package/dist/web/lib/commands.cjs +176 -0
  452. package/dist/web/lib/commands.cjs.map +1 -0
  453. package/dist/web/lib/commands.d.mts +53 -0
  454. package/dist/web/lib/commands.d.mts.map +1 -0
  455. package/dist/web/lib/commands.mjs +153 -0
  456. package/dist/web/lib/commands.mjs.map +1 -0
  457. package/dist/web/lib/composerSubmissions.cjs +20 -0
  458. package/dist/web/lib/composerSubmissions.cjs.map +1 -0
  459. package/dist/web/lib/composerSubmissions.d.mts +7 -0
  460. package/dist/web/lib/composerSubmissions.d.mts.map +1 -0
  461. package/dist/web/lib/composerSubmissions.mjs +19 -0
  462. package/dist/web/lib/composerSubmissions.mjs.map +1 -0
  463. package/dist/web/lib/composition.cjs +403 -0
  464. package/dist/web/lib/composition.cjs.map +1 -0
  465. package/dist/web/lib/composition.d.mts +137 -0
  466. package/dist/web/lib/composition.d.mts.map +1 -0
  467. package/dist/web/lib/composition.mjs +392 -0
  468. package/dist/web/lib/composition.mjs.map +1 -0
  469. package/dist/web/lib/contextComposition.cjs +132 -0
  470. package/dist/web/lib/contextComposition.cjs.map +1 -0
  471. package/dist/web/lib/contextComposition.d.mts +75 -0
  472. package/dist/web/lib/contextComposition.d.mts.map +1 -0
  473. package/dist/web/lib/contextComposition.mjs +127 -0
  474. package/dist/web/lib/contextComposition.mjs.map +1 -0
  475. package/dist/web/lib/contextDetailApi.cjs +61 -0
  476. package/dist/web/lib/contextDetailApi.cjs.map +1 -0
  477. package/dist/web/lib/contextDetailApi.d.mts +12 -0
  478. package/dist/web/lib/contextDetailApi.d.mts.map +1 -0
  479. package/dist/web/lib/contextDetailApi.mjs +61 -0
  480. package/dist/web/lib/contextDetailApi.mjs.map +1 -0
  481. package/dist/web/lib/dashboardRenderers.cjs +9 -0
  482. package/dist/web/lib/dashboardRenderers.cjs.map +1 -0
  483. package/dist/web/lib/dashboardRenderers.d.mts +12 -0
  484. package/dist/web/lib/dashboardRenderers.d.mts.map +1 -0
  485. package/dist/web/lib/dashboardRenderers.mjs +9 -0
  486. package/dist/web/lib/dashboardRenderers.mjs.map +1 -0
  487. package/dist/web/lib/dashboardRoute.cjs +27 -0
  488. package/dist/web/lib/dashboardRoute.cjs.map +1 -0
  489. package/dist/web/lib/dashboardRoute.d.mts +29 -0
  490. package/dist/web/lib/dashboardRoute.d.mts.map +1 -0
  491. package/dist/web/lib/dashboardRoute.mjs +26 -0
  492. package/dist/web/lib/dashboardRoute.mjs.map +1 -0
  493. package/dist/web/lib/dashboardTranscript.cjs +15 -0
  494. package/dist/web/lib/dashboardTranscript.cjs.map +1 -0
  495. package/dist/web/lib/dashboardTranscript.d.mts +6 -0
  496. package/dist/web/lib/dashboardTranscript.d.mts.map +1 -0
  497. package/dist/web/lib/dashboardTranscript.mjs +14 -0
  498. package/dist/web/lib/dashboardTranscript.mjs.map +1 -0
  499. package/dist/web/lib/devProxyApi.cjs +74 -0
  500. package/dist/web/lib/devProxyApi.cjs.map +1 -0
  501. package/dist/web/lib/devProxyApi.d.mts +21 -0
  502. package/dist/web/lib/devProxyApi.d.mts.map +1 -0
  503. package/dist/web/lib/devProxyApi.mjs +72 -0
  504. package/dist/web/lib/devProxyApi.mjs.map +1 -0
  505. package/dist/web/lib/fileMentions.cjs +30 -0
  506. package/dist/web/lib/fileMentions.cjs.map +1 -0
  507. package/dist/web/lib/fileMentions.d.mts +13 -0
  508. package/dist/web/lib/fileMentions.d.mts.map +1 -0
  509. package/dist/web/lib/fileMentions.mjs +29 -0
  510. package/dist/web/lib/fileMentions.mjs.map +1 -0
  511. package/dist/web/lib/hubApi.cjs +283 -0
  512. package/dist/web/lib/hubApi.cjs.map +1 -0
  513. package/dist/web/lib/hubApi.d.mts +109 -0
  514. package/dist/web/lib/hubApi.d.mts.map +1 -0
  515. package/dist/web/lib/hubApi.mjs +268 -0
  516. package/dist/web/lib/hubApi.mjs.map +1 -0
  517. package/dist/web/lib/leaderTree.cjs +150 -0
  518. package/dist/web/lib/leaderTree.cjs.map +1 -0
  519. package/dist/web/lib/leaderTree.d.mts +41 -0
  520. package/dist/web/lib/leaderTree.d.mts.map +1 -0
  521. package/dist/web/lib/leaderTree.mjs +149 -0
  522. package/dist/web/lib/leaderTree.mjs.map +1 -0
  523. package/dist/web/lib/livePush.cjs +97 -0
  524. package/dist/web/lib/livePush.cjs.map +1 -0
  525. package/dist/web/lib/livePush.d.mts +10 -0
  526. package/dist/web/lib/livePush.d.mts.map +1 -0
  527. package/dist/web/lib/livePush.mjs +94 -0
  528. package/dist/web/lib/livePush.mjs.map +1 -0
  529. package/dist/web/lib/modelContextAdapter.cjs +63 -0
  530. package/dist/web/lib/modelContextAdapter.cjs.map +1 -0
  531. package/dist/web/lib/modelContextAdapter.d.mts +11 -0
  532. package/dist/web/lib/modelContextAdapter.d.mts.map +1 -0
  533. package/dist/web/lib/modelContextAdapter.mjs +62 -0
  534. package/dist/web/lib/modelContextAdapter.mjs.map +1 -0
  535. package/dist/web/lib/piTransport.cjs +103 -0
  536. package/dist/web/lib/piTransport.cjs.map +1 -0
  537. package/dist/web/lib/piTransport.d.mts +8 -0
  538. package/dist/web/lib/piTransport.d.mts.map +1 -0
  539. package/dist/web/lib/piTransport.mjs +102 -0
  540. package/dist/web/lib/piTransport.mjs.map +1 -0
  541. package/dist/web/lib/pluginCompositions.cjs +57 -0
  542. package/dist/web/lib/pluginCompositions.cjs.map +1 -0
  543. package/dist/web/lib/pluginCompositions.d.mts +37 -0
  544. package/dist/web/lib/pluginCompositions.d.mts.map +1 -0
  545. package/dist/web/lib/pluginCompositions.mjs +52 -0
  546. package/dist/web/lib/pluginCompositions.mjs.map +1 -0
  547. package/dist/web/lib/pluginRegistry.cjs +675 -0
  548. package/dist/web/lib/pluginRegistry.cjs.map +1 -0
  549. package/dist/web/lib/pluginRegistry.d.mts +155 -0
  550. package/dist/web/lib/pluginRegistry.d.mts.map +1 -0
  551. package/dist/web/lib/pluginRegistry.mjs +633 -0
  552. package/dist/web/lib/pluginRegistry.mjs.map +1 -0
  553. package/dist/web/lib/pluginScopes.cjs +48 -0
  554. package/dist/web/lib/pluginScopes.cjs.map +1 -0
  555. package/dist/web/lib/pluginScopes.d.mts +8 -0
  556. package/dist/web/lib/pluginScopes.d.mts.map +1 -0
  557. package/dist/web/lib/pluginScopes.mjs +47 -0
  558. package/dist/web/lib/pluginScopes.mjs.map +1 -0
  559. package/dist/web/lib/pluginSlotProps.cjs +83 -0
  560. package/dist/web/lib/pluginSlotProps.cjs.map +1 -0
  561. package/dist/web/lib/pluginSlotProps.d.mts +21 -0
  562. package/dist/web/lib/pluginSlotProps.d.mts.map +1 -0
  563. package/dist/web/lib/pluginSlotProps.mjs +82 -0
  564. package/dist/web/lib/pluginSlotProps.mjs.map +1 -0
  565. package/dist/web/lib/promptFocus.cjs +30 -0
  566. package/dist/web/lib/promptFocus.cjs.map +1 -0
  567. package/dist/web/lib/promptFocus.d.mts +7 -0
  568. package/dist/web/lib/promptFocus.d.mts.map +1 -0
  569. package/dist/web/lib/promptFocus.mjs +29 -0
  570. package/dist/web/lib/promptFocus.mjs.map +1 -0
  571. package/dist/web/lib/protocolHubSocket.cjs +107 -0
  572. package/dist/web/lib/protocolHubSocket.cjs.map +1 -0
  573. package/dist/web/lib/protocolHubSocket.d.mts +18 -0
  574. package/dist/web/lib/protocolHubSocket.d.mts.map +1 -0
  575. package/dist/web/lib/protocolHubSocket.mjs +107 -0
  576. package/dist/web/lib/protocolHubSocket.mjs.map +1 -0
  577. package/dist/web/lib/protocolTimeline.cjs +86 -0
  578. package/dist/web/lib/protocolTimeline.cjs.map +1 -0
  579. package/dist/web/lib/protocolTimeline.d.mts +9 -0
  580. package/dist/web/lib/protocolTimeline.d.mts.map +1 -0
  581. package/dist/web/lib/protocolTimeline.mjs +85 -0
  582. package/dist/web/lib/protocolTimeline.mjs.map +1 -0
  583. package/dist/web/lib/qrMatrix.cjs +37 -0
  584. package/dist/web/lib/qrMatrix.cjs.map +1 -0
  585. package/dist/web/lib/qrMatrix.d.mts +5 -0
  586. package/dist/web/lib/qrMatrix.d.mts.map +1 -0
  587. package/dist/web/lib/qrMatrix.mjs +35 -0
  588. package/dist/web/lib/qrMatrix.mjs.map +1 -0
  589. package/dist/web/lib/remoteApi.cjs +100 -0
  590. package/dist/web/lib/remoteApi.cjs.map +1 -0
  591. package/dist/web/lib/remoteApi.d.mts +45 -0
  592. package/dist/web/lib/remoteApi.d.mts.map +1 -0
  593. package/dist/web/lib/remoteApi.mjs +92 -0
  594. package/dist/web/lib/remoteApi.mjs.map +1 -0
  595. package/dist/web/lib/sealedSession.cjs +81 -0
  596. package/dist/web/lib/sealedSession.cjs.map +1 -0
  597. package/dist/web/lib/sealedSession.d.mts +24 -0
  598. package/dist/web/lib/sealedSession.d.mts.map +1 -0
  599. package/dist/web/lib/sealedSession.mjs +75 -0
  600. package/dist/web/lib/sealedSession.mjs.map +1 -0
  601. package/dist/web/lib/sessionActivityRenderer.cjs +19 -0
  602. package/dist/web/lib/sessionActivityRenderer.cjs.map +1 -0
  603. package/dist/web/lib/sessionActivityRenderer.d.mts +10 -0
  604. package/dist/web/lib/sessionActivityRenderer.d.mts.map +1 -0
  605. package/dist/web/lib/sessionActivityRenderer.mjs +17 -0
  606. package/dist/web/lib/sessionActivityRenderer.mjs.map +1 -0
  607. package/dist/web/lib/sessionAsset.cjs +45 -0
  608. package/dist/web/lib/sessionAsset.cjs.map +1 -0
  609. package/dist/web/lib/sessionAsset.d.mts +17 -0
  610. package/dist/web/lib/sessionAsset.d.mts.map +1 -0
  611. package/dist/web/lib/sessionAsset.mjs +44 -0
  612. package/dist/web/lib/sessionAsset.mjs.map +1 -0
  613. package/dist/web/lib/sessionAvatar.cjs +18 -0
  614. package/dist/web/lib/sessionAvatar.cjs.map +1 -0
  615. package/dist/web/lib/sessionAvatar.d.mts +10 -0
  616. package/dist/web/lib/sessionAvatar.d.mts.map +1 -0
  617. package/dist/web/lib/sessionAvatar.mjs +18 -0
  618. package/dist/web/lib/sessionAvatar.mjs.map +1 -0
  619. package/dist/web/lib/sessionMcpApi.cjs +120 -0
  620. package/dist/web/lib/sessionMcpApi.cjs.map +1 -0
  621. package/dist/web/lib/sessionMcpApi.d.mts +27 -0
  622. package/dist/web/lib/sessionMcpApi.d.mts.map +1 -0
  623. package/dist/web/lib/sessionMcpApi.mjs +114 -0
  624. package/dist/web/lib/sessionMcpApi.mjs.map +1 -0
  625. package/dist/web/lib/sessionMcpPrompt.cjs +24 -0
  626. package/dist/web/lib/sessionMcpPrompt.cjs.map +1 -0
  627. package/dist/web/lib/sessionMcpPrompt.mjs +23 -0
  628. package/dist/web/lib/sessionMcpPrompt.mjs.map +1 -0
  629. package/dist/web/lib/sessionModel.cjs +970 -0
  630. package/dist/web/lib/sessionModel.cjs.map +1 -0
  631. package/dist/web/lib/sessionModel.d.mts +254 -0
  632. package/dist/web/lib/sessionModel.d.mts.map +1 -0
  633. package/dist/web/lib/sessionModel.mjs +958 -0
  634. package/dist/web/lib/sessionModel.mjs.map +1 -0
  635. package/dist/web/lib/sessionProtocolCommands.cjs +196 -0
  636. package/dist/web/lib/sessionProtocolCommands.cjs.map +1 -0
  637. package/dist/web/lib/sessionProtocolCommands.d.mts +15 -0
  638. package/dist/web/lib/sessionProtocolCommands.d.mts.map +1 -0
  639. package/dist/web/lib/sessionProtocolCommands.mjs +193 -0
  640. package/dist/web/lib/sessionProtocolCommands.mjs.map +1 -0
  641. package/dist/web/lib/sessionRailModel.cjs +107 -0
  642. package/dist/web/lib/sessionRailModel.cjs.map +1 -0
  643. package/dist/web/lib/sessionRailModel.d.mts +38 -0
  644. package/dist/web/lib/sessionRailModel.d.mts.map +1 -0
  645. package/dist/web/lib/sessionRailModel.mjs +104 -0
  646. package/dist/web/lib/sessionRailModel.mjs.map +1 -0
  647. package/dist/web/lib/sessionSummary.cjs +58 -0
  648. package/dist/web/lib/sessionSummary.cjs.map +1 -0
  649. package/dist/web/lib/sessionSummary.d.mts +39 -0
  650. package/dist/web/lib/sessionSummary.d.mts.map +1 -0
  651. package/dist/web/lib/sessionSummary.mjs +54 -0
  652. package/dist/web/lib/sessionSummary.mjs.map +1 -0
  653. package/dist/web/lib/sessionTranscriptRenderer.cjs +19 -0
  654. package/dist/web/lib/sessionTranscriptRenderer.cjs.map +1 -0
  655. package/dist/web/lib/sessionTranscriptRenderer.d.mts +11 -0
  656. package/dist/web/lib/sessionTranscriptRenderer.d.mts.map +1 -0
  657. package/dist/web/lib/sessionTranscriptRenderer.mjs +17 -0
  658. package/dist/web/lib/sessionTranscriptRenderer.mjs.map +1 -0
  659. package/dist/web/lib/settingsApi.cjs +237 -0
  660. package/dist/web/lib/settingsApi.cjs.map +1 -0
  661. package/dist/web/lib/settingsApi.d.mts +57 -0
  662. package/dist/web/lib/settingsApi.d.mts.map +1 -0
  663. package/dist/web/lib/settingsApi.mjs +230 -0
  664. package/dist/web/lib/settingsApi.mjs.map +1 -0
  665. package/dist/web/lib/settingsDraft.cjs +48 -0
  666. package/dist/web/lib/settingsDraft.cjs.map +1 -0
  667. package/dist/web/lib/settingsDraft.d.mts +28 -0
  668. package/dist/web/lib/settingsDraft.d.mts.map +1 -0
  669. package/dist/web/lib/settingsDraft.mjs +45 -0
  670. package/dist/web/lib/settingsDraft.mjs.map +1 -0
  671. package/dist/web/lib/settingsSections.cjs +108 -0
  672. package/dist/web/lib/settingsSections.cjs.map +1 -0
  673. package/dist/web/lib/settingsSections.d.mts +36 -0
  674. package/dist/web/lib/settingsSections.d.mts.map +1 -0
  675. package/dist/web/lib/settingsSections.mjs +105 -0
  676. package/dist/web/lib/settingsSections.mjs.map +1 -0
  677. package/dist/web/lib/statusLine.cjs +82 -0
  678. package/dist/web/lib/statusLine.cjs.map +1 -0
  679. package/dist/web/lib/statusLine.d.mts +27 -0
  680. package/dist/web/lib/statusLine.d.mts.map +1 -0
  681. package/dist/web/lib/statusLine.mjs +79 -0
  682. package/dist/web/lib/statusLine.mjs.map +1 -0
  683. package/dist/web/lib/stepUp.cjs +41 -0
  684. package/dist/web/lib/stepUp.cjs.map +1 -0
  685. package/dist/web/lib/stepUp.d.mts +18 -0
  686. package/dist/web/lib/stepUp.d.mts.map +1 -0
  687. package/dist/web/lib/stepUp.mjs +41 -0
  688. package/dist/web/lib/stepUp.mjs.map +1 -0
  689. package/dist/web/lib/templateCatalog.cjs +123 -0
  690. package/dist/web/lib/templateCatalog.cjs.map +1 -0
  691. package/dist/web/lib/templateCatalog.d.mts +38 -0
  692. package/dist/web/lib/templateCatalog.d.mts.map +1 -0
  693. package/dist/web/lib/templateCatalog.mjs +118 -0
  694. package/dist/web/lib/templateCatalog.mjs.map +1 -0
  695. package/dist/web/lib/threadRenderer.cjs +25 -0
  696. package/dist/web/lib/threadRenderer.cjs.map +1 -0
  697. package/dist/web/lib/threadRenderer.d.mts +17 -0
  698. package/dist/web/lib/threadRenderer.d.mts.map +1 -0
  699. package/dist/web/lib/threadRenderer.mjs +23 -0
  700. package/dist/web/lib/threadRenderer.mjs.map +1 -0
  701. package/dist/web/lib/timelineGroups.cjs +83 -0
  702. package/dist/web/lib/timelineGroups.cjs.map +1 -0
  703. package/dist/web/lib/timelineGroups.d.mts +36 -0
  704. package/dist/web/lib/timelineGroups.d.mts.map +1 -0
  705. package/dist/web/lib/timelineGroups.mjs +81 -0
  706. package/dist/web/lib/timelineGroups.mjs.map +1 -0
  707. package/dist/web/lib/toolCompletionTabs.cjs +98 -0
  708. package/dist/web/lib/toolCompletionTabs.cjs.map +1 -0
  709. package/dist/web/lib/toolCompletionTabs.d.mts +14 -0
  710. package/dist/web/lib/toolCompletionTabs.d.mts.map +1 -0
  711. package/dist/web/lib/toolCompletionTabs.mjs +98 -0
  712. package/dist/web/lib/toolCompletionTabs.mjs.map +1 -0
  713. package/dist/web/lib/toolMessageProps.cjs +19 -0
  714. package/dist/web/lib/toolMessageProps.cjs.map +1 -0
  715. package/dist/web/lib/toolMessageProps.d.mts +7 -0
  716. package/dist/web/lib/toolMessageProps.d.mts.map +1 -0
  717. package/dist/web/lib/toolMessageProps.mjs +19 -0
  718. package/dist/web/lib/toolMessageProps.mjs.map +1 -0
  719. package/dist/web/lib/toolPrompt.cjs +44 -0
  720. package/dist/web/lib/toolPrompt.cjs.map +1 -0
  721. package/dist/web/lib/toolPrompt.d.mts +34 -0
  722. package/dist/web/lib/toolPrompt.d.mts.map +1 -0
  723. package/dist/web/lib/toolPrompt.mjs +44 -0
  724. package/dist/web/lib/toolPrompt.mjs.map +1 -0
  725. package/dist/web/lib/transport.cjs +57 -0
  726. package/dist/web/lib/transport.cjs.map +1 -0
  727. package/dist/web/lib/transport.d.mts +40 -0
  728. package/dist/web/lib/transport.d.mts.map +1 -0
  729. package/dist/web/lib/transport.mjs +50 -0
  730. package/dist/web/lib/transport.mjs.map +1 -0
  731. package/dist/web/lib/useSessionMcp.cjs +65 -0
  732. package/dist/web/lib/useSessionMcp.cjs.map +1 -0
  733. package/dist/web/lib/useSessionMcp.d.mts +15 -0
  734. package/dist/web/lib/useSessionMcp.d.mts.map +1 -0
  735. package/dist/web/lib/useSessionMcp.mjs +65 -0
  736. package/dist/web/lib/useSessionMcp.mjs.map +1 -0
  737. package/dist/web/lib/webauthnClient.cjs +110 -0
  738. package/dist/web/lib/webauthnClient.cjs.map +1 -0
  739. package/dist/web/lib/webauthnClient.d.mts +32 -0
  740. package/dist/web/lib/webauthnClient.d.mts.map +1 -0
  741. package/dist/web/lib/webauthnClient.mjs +106 -0
  742. package/dist/web/lib/webauthnClient.mjs.map +1 -0
  743. package/dist/web/lib/webmcpSimulator.cjs +105 -0
  744. package/dist/web/lib/webmcpSimulator.cjs.map +1 -0
  745. package/dist/web/lib/webmcpSimulator.mjs +105 -0
  746. package/dist/web/lib/webmcpSimulator.mjs.map +1 -0
  747. package/dist/web/stores/captureStore.cjs +137 -0
  748. package/dist/web/stores/captureStore.cjs.map +1 -0
  749. package/dist/web/stores/captureStore.d.mts +13 -0
  750. package/dist/web/stores/captureStore.d.mts.map +1 -0
  751. package/dist/web/stores/captureStore.mjs +133 -0
  752. package/dist/web/stores/captureStore.mjs.map +1 -0
  753. package/dist/web/stores/composerStore.cjs +390 -0
  754. package/dist/web/stores/composerStore.cjs.map +1 -0
  755. package/dist/web/stores/composerStore.d.mts +101 -0
  756. package/dist/web/stores/composerStore.d.mts.map +1 -0
  757. package/dist/web/stores/composerStore.mjs +370 -0
  758. package/dist/web/stores/composerStore.mjs.map +1 -0
  759. package/dist/web/stores/composerSubmissionStore.cjs +88 -0
  760. package/dist/web/stores/composerSubmissionStore.cjs.map +1 -0
  761. package/dist/web/stores/composerSubmissionStore.d.mts +11 -0
  762. package/dist/web/stores/composerSubmissionStore.d.mts.map +1 -0
  763. package/dist/web/stores/composerSubmissionStore.mjs +87 -0
  764. package/dist/web/stores/composerSubmissionStore.mjs.map +1 -0
  765. package/dist/web/stores/dashboardStateStore.cjs +35 -0
  766. package/dist/web/stores/dashboardStateStore.cjs.map +1 -0
  767. package/dist/web/stores/dashboardStateStore.d.mts +11 -0
  768. package/dist/web/stores/dashboardStateStore.d.mts.map +1 -0
  769. package/dist/web/stores/dashboardStateStore.mjs +33 -0
  770. package/dist/web/stores/dashboardStateStore.mjs.map +1 -0
  771. package/dist/web/stores/devProxyStore.cjs +76 -0
  772. package/dist/web/stores/devProxyStore.cjs.map +1 -0
  773. package/dist/web/stores/devProxyStore.d.mts +25 -0
  774. package/dist/web/stores/devProxyStore.d.mts.map +1 -0
  775. package/dist/web/stores/devProxyStore.mjs +73 -0
  776. package/dist/web/stores/devProxyStore.mjs.map +1 -0
  777. package/dist/web/stores/dialogDraftStore.cjs +38 -0
  778. package/dist/web/stores/dialogDraftStore.cjs.map +1 -0
  779. package/dist/web/stores/dialogDraftStore.d.mts +13 -0
  780. package/dist/web/stores/dialogDraftStore.d.mts.map +1 -0
  781. package/dist/web/stores/dialogDraftStore.mjs +36 -0
  782. package/dist/web/stores/dialogDraftStore.mjs.map +1 -0
  783. package/dist/web/stores/fileLinkModesStore.cjs +20 -0
  784. package/dist/web/stores/fileLinkModesStore.cjs.map +1 -0
  785. package/dist/web/stores/fileLinkModesStore.d.mts +5 -0
  786. package/dist/web/stores/fileLinkModesStore.d.mts.map +1 -0
  787. package/dist/web/stores/fileLinkModesStore.mjs +20 -0
  788. package/dist/web/stores/fileLinkModesStore.mjs.map +1 -0
  789. package/dist/web/stores/menuStore.cjs +85 -0
  790. package/dist/web/stores/menuStore.cjs.map +1 -0
  791. package/dist/web/stores/menuStore.d.mts +42 -0
  792. package/dist/web/stores/menuStore.d.mts.map +1 -0
  793. package/dist/web/stores/menuStore.mjs +79 -0
  794. package/dist/web/stores/menuStore.mjs.map +1 -0
  795. package/dist/web/stores/newSessionStore.cjs +93 -0
  796. package/dist/web/stores/newSessionStore.cjs.map +1 -0
  797. package/dist/web/stores/newSessionStore.d.mts +30 -0
  798. package/dist/web/stores/newSessionStore.d.mts.map +1 -0
  799. package/dist/web/stores/newSessionStore.mjs +86 -0
  800. package/dist/web/stores/newSessionStore.mjs.map +1 -0
  801. package/dist/web/stores/pagedTranscriptStore.cjs +235 -0
  802. package/dist/web/stores/pagedTranscriptStore.cjs.map +1 -0
  803. package/dist/web/stores/pagedTranscriptStore.d.mts +12 -0
  804. package/dist/web/stores/pagedTranscriptStore.d.mts.map +1 -0
  805. package/dist/web/stores/pagedTranscriptStore.mjs +235 -0
  806. package/dist/web/stores/pagedTranscriptStore.mjs.map +1 -0
  807. package/dist/web/stores/paletteStore.cjs +37 -0
  808. package/dist/web/stores/paletteStore.cjs.map +1 -0
  809. package/dist/web/stores/paletteStore.d.mts +14 -0
  810. package/dist/web/stores/paletteStore.d.mts.map +1 -0
  811. package/dist/web/stores/paletteStore.mjs +34 -0
  812. package/dist/web/stores/paletteStore.mjs.map +1 -0
  813. package/dist/web/stores/railDialogStore.cjs +105 -0
  814. package/dist/web/stores/railDialogStore.cjs.map +1 -0
  815. package/dist/web/stores/railDialogStore.d.mts +32 -0
  816. package/dist/web/stores/railDialogStore.d.mts.map +1 -0
  817. package/dist/web/stores/railDialogStore.mjs +97 -0
  818. package/dist/web/stores/railDialogStore.mjs.map +1 -0
  819. package/dist/web/stores/remoteAccessStore.cjs +216 -0
  820. package/dist/web/stores/remoteAccessStore.cjs.map +1 -0
  821. package/dist/web/stores/remoteAccessStore.d.mts +48 -0
  822. package/dist/web/stores/remoteAccessStore.d.mts.map +1 -0
  823. package/dist/web/stores/remoteAccessStore.mjs +202 -0
  824. package/dist/web/stores/remoteAccessStore.mjs.map +1 -0
  825. package/dist/web/stores/sessionChannelHoldsStore.cjs +43 -0
  826. package/dist/web/stores/sessionChannelHoldsStore.cjs.map +1 -0
  827. package/dist/web/stores/sessionChannelHoldsStore.d.mts +9 -0
  828. package/dist/web/stores/sessionChannelHoldsStore.d.mts.map +1 -0
  829. package/dist/web/stores/sessionChannelHoldsStore.mjs +42 -0
  830. package/dist/web/stores/sessionChannelHoldsStore.mjs.map +1 -0
  831. package/dist/web/stores/sessionStore.cjs +610 -0
  832. package/dist/web/stores/sessionStore.cjs.map +1 -0
  833. package/dist/web/stores/sessionStore.d.mts +116 -0
  834. package/dist/web/stores/sessionStore.d.mts.map +1 -0
  835. package/dist/web/stores/sessionStore.mjs +568 -0
  836. package/dist/web/stores/sessionStore.mjs.map +1 -0
  837. package/dist/web/stores/sessionsStore.cjs +272 -0
  838. package/dist/web/stores/sessionsStore.cjs.map +1 -0
  839. package/dist/web/stores/sessionsStore.d.mts +74 -0
  840. package/dist/web/stores/sessionsStore.d.mts.map +1 -0
  841. package/dist/web/stores/sessionsStore.mjs +257 -0
  842. package/dist/web/stores/sessionsStore.mjs.map +1 -0
  843. package/dist/web/stores/settingsDraftStore.cjs +138 -0
  844. package/dist/web/stores/settingsDraftStore.cjs.map +1 -0
  845. package/dist/web/stores/settingsDraftStore.d.mts +27 -0
  846. package/dist/web/stores/settingsDraftStore.d.mts.map +1 -0
  847. package/dist/web/stores/settingsDraftStore.mjs +132 -0
  848. package/dist/web/stores/settingsDraftStore.mjs.map +1 -0
  849. package/dist/web/stores/templateStore.cjs +136 -0
  850. package/dist/web/stores/templateStore.cjs.map +1 -0
  851. package/dist/web/stores/templateStore.d.mts +20 -0
  852. package/dist/web/stores/templateStore.d.mts.map +1 -0
  853. package/dist/web/stores/templateStore.mjs +131 -0
  854. package/dist/web/stores/templateStore.mjs.map +1 -0
  855. package/dist/web/stores/themeStore.cjs +42 -0
  856. package/dist/web/stores/themeStore.cjs.map +1 -0
  857. package/dist/web/stores/themeStore.d.mts +20 -0
  858. package/dist/web/stores/themeStore.d.mts.map +1 -0
  859. package/dist/web/stores/themeStore.mjs +39 -0
  860. package/dist/web/stores/themeStore.mjs.map +1 -0
  861. package/dist/web/stores/threadStore.cjs +122 -0
  862. package/dist/web/stores/threadStore.cjs.map +1 -0
  863. package/dist/web/stores/threadStore.d.mts +24 -0
  864. package/dist/web/stores/threadStore.d.mts.map +1 -0
  865. package/dist/web/stores/threadStore.mjs +114 -0
  866. package/dist/web/stores/threadStore.mjs.map +1 -0
  867. package/dist/web/stores/toolPromptStore.cjs +15 -0
  868. package/dist/web/stores/toolPromptStore.cjs.map +1 -0
  869. package/dist/web/stores/toolPromptStore.d.mts +23 -0
  870. package/dist/web/stores/toolPromptStore.d.mts.map +1 -0
  871. package/dist/web/stores/toolPromptStore.mjs +14 -0
  872. package/dist/web/stores/toolPromptStore.mjs.map +1 -0
  873. package/dist/web/stores/transientTabsStore.cjs +66 -0
  874. package/dist/web/stores/transientTabsStore.cjs.map +1 -0
  875. package/dist/web/stores/transientTabsStore.d.mts +21 -0
  876. package/dist/web/stores/transientTabsStore.d.mts.map +1 -0
  877. package/dist/web/stores/transientTabsStore.mjs +59 -0
  878. package/dist/web/stores/transientTabsStore.mjs.map +1 -0
  879. package/dist/web/stores/uiStore.cjs +47 -0
  880. package/dist/web/stores/uiStore.cjs.map +1 -0
  881. package/dist/web/stores/uiStore.d.mts +18 -0
  882. package/dist/web/stores/uiStore.d.mts.map +1 -0
  883. package/dist/web/stores/uiStore.mjs +45 -0
  884. package/dist/web/stores/uiStore.mjs.map +1 -0
  885. package/dist/web/stores/useOpenTab.cjs +31 -0
  886. package/dist/web/stores/useOpenTab.cjs.map +1 -0
  887. package/dist/web/stores/useOpenTab.d.mts +9 -0
  888. package/dist/web/stores/useOpenTab.d.mts.map +1 -0
  889. package/dist/web/stores/useOpenTab.mjs +31 -0
  890. package/dist/web/stores/useOpenTab.mjs.map +1 -0
  891. package/dist/web/stores/usePluginSlotProps.cjs +115 -0
  892. package/dist/web/stores/usePluginSlotProps.cjs.map +1 -0
  893. package/dist/web/stores/usePluginSlotProps.d.mts +6 -0
  894. package/dist/web/stores/usePluginSlotProps.d.mts.map +1 -0
  895. package/dist/web/stores/usePluginSlotProps.mjs +115 -0
  896. package/dist/web/stores/usePluginSlotProps.mjs.map +1 -0
  897. package/dist/web/stores/useToolPrompt.cjs +42 -0
  898. package/dist/web/stores/useToolPrompt.cjs.map +1 -0
  899. package/dist/web/stores/useToolPrompt.d.mts +14 -0
  900. package/dist/web/stores/useToolPrompt.d.mts.map +1 -0
  901. package/dist/web/stores/useToolPrompt.mjs +42 -0
  902. package/dist/web/stores/useToolPrompt.mjs.map +1 -0
  903. package/dist/web/stores/useWebPluginRegistry.cjs +11 -0
  904. package/dist/web/stores/useWebPluginRegistry.cjs.map +1 -0
  905. package/dist/web/stores/useWebPluginRegistry.d.mts +5 -0
  906. package/dist/web/stores/useWebPluginRegistry.d.mts.map +1 -0
  907. package/dist/web/stores/useWebPluginRegistry.mjs +11 -0
  908. package/dist/web/stores/useWebPluginRegistry.mjs.map +1 -0
  909. package/dist/web/stores/workspaceAdmissionStore.cjs +67 -0
  910. package/dist/web/stores/workspaceAdmissionStore.cjs.map +1 -0
  911. package/dist/web/stores/workspaceAdmissionStore.d.mts +24 -0
  912. package/dist/web/stores/workspaceAdmissionStore.d.mts.map +1 -0
  913. package/dist/web/stores/workspaceAdmissionStore.mjs +64 -0
  914. package/dist/web/stores/workspaceAdmissionStore.mjs.map +1 -0
  915. package/dist/web/stores/workspacesStore.cjs +83 -0
  916. package/dist/web/stores/workspacesStore.cjs.map +1 -0
  917. package/dist/web/stores/workspacesStore.d.mts +17 -0
  918. package/dist/web/stores/workspacesStore.d.mts.map +1 -0
  919. package/dist/web/stores/workspacesStore.mjs +78 -0
  920. package/dist/web/stores/workspacesStore.mjs.map +1 -0
  921. package/llms.txt +3 -0
  922. package/package.json +107 -0
  923. package/styles/dashboard.css +2 -0
  924. package/styles/preview.css +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composerSubmissionStore.mjs","names":[],"sources":["../../../src/web/stores/composerSubmissionStore.ts"],"sourcesContent":["import type { TransientTab, WebPluginContextItem } from '@agimon-ai/po-core/web';\nimport { Store } from '@tanstack/store';\n\nimport { publishComposerSubmission } from '../lib/composerSubmissions';\nimport {\n clearComposerState,\n composerStore,\n type ComposerAttachment,\n type ComposerImageAttachment,\n tabComposerContext,\n} from './composerStore';\nimport { sessionsStore } from './sessionsStore';\nimport { applySessionFrame, queueFollowUpWithAck, submitMessageWithAck } from './sessionStore';\n\n/** Admission belongs to the session, not to whichever template currently shows its composer. */\nexport const composerSubmissionStore = new Store<ReadonlySet<string>>(new Set<string>());\n\nfunction toolPathHint(path: string): string {\n return `To send it to a tool's file parameter, pass {\"path\": ${JSON.stringify(path)}}.`;\n}\n\nexport function attachmentPrompt(\n draft: string,\n attachments: ComposerAttachment[],\n tabContext?: WebPluginContextItem,\n): string {\n const parts: string[] = [];\n const trimmed = draft.trim();\n if (trimmed) parts.push(trimmed);\n for (const attachment of attachments) {\n if (attachment.kind === 'image') continue;\n const safeName = attachment.name.replace(/[\\r\\n]/g, ' ').slice(0, 200);\n if (attachment.kind === 'file') {\n parts.push(\n `Attached file \"${safeName}\" (${attachment.mimeType}, ${String(attachment.size)} bytes) saved at ${attachment.path}. ${toolPathHint(attachment.path)}`,\n );\n continue;\n }\n parts.push(\n attachment.kind === 'context'\n ? `Referenced context \"${safeName}\":\\n\\n${attachment.content}`\n : `Attached file \"${safeName}\":\\n\\n${attachment.content}`,\n );\n if (attachment.kind === 'text' && attachment.path !== undefined) {\n parts.push(`\"${safeName}\" is also saved at ${attachment.path}. ${toolPathHint(attachment.path)}`);\n }\n }\n if (parts.length === 0 && attachments.some((attachment) => attachment.kind === 'image')) {\n parts.push('Please review the attached image.');\n }\n for (const attachment of attachments) {\n if (attachment.kind !== 'image' || attachment.path === undefined) continue;\n const safeName = attachment.name.replace(/[\\r\\n]/g, ' ').slice(0, 200);\n parts.push(`Attached image \"${safeName}\" is also saved at ${attachment.path}. ${toolPathHint(attachment.path)}`);\n }\n if (tabContext !== undefined) parts.push(`Referenced context \"${tabContext.label}\":\\n\\n${tabContext.content}`);\n return parts.join('\\n\\n');\n}\n\n/** Reads the latest draft and claims admission synchronously, including across a dashboard remount. */\nexport async function submitComposerDraft(\n sessionId: string | null,\n delivery: 'submit' | 'queue',\n composerContext?: TransientTab['composerContext'],\n): Promise<boolean> {\n if (sessionId === null || composerSubmissionStore.state.has(sessionId)) return false;\n const meta = sessionsStore.state.byId[sessionId];\n const draft = composerStore.state[sessionId];\n if (\n !draft ||\n draft.pendingAttachments > 0 ||\n (!draft.draft.trim() && draft.attachments.length === 0) ||\n meta?.attach !== 'attached' ||\n meta.summary.dormant\n )\n return false;\n\n composerSubmissionStore.setState((pending) => new Set([...pending, sessionId]));\n try {\n const tabContext = tabComposerContext(composerContext, sessionId, draft.draft);\n const message = attachmentPrompt(draft.draft, draft.attachments, tabContext);\n const images = draft.attachments\n .filter((attachment): attachment is ComposerImageAttachment => attachment.kind === 'image')\n .map(({ data, mimeType }) => ({ type: 'image' as const, data, mimeType }));\n const contextItems: WebPluginContextItem[] = draft.attachments.flatMap((attachment) =>\n attachment.kind === 'context'\n ? [\n {\n kind: attachment.contextKind,\n source: attachment.source,\n id: attachment.contextId,\n label: attachment.name,\n content: attachment.content,\n ...(attachment.url === undefined ? {} : { url: attachment.url }),\n },\n ]\n : [],\n );\n if (tabContext !== undefined) contextItems.push(tabContext);\n const accepted =\n delivery === 'submit'\n ? await submitMessageWithAck(message, images, sessionId)\n : await queueFollowUpWithAck(message, images, sessionId);\n if (!accepted) return false;\n publishComposerSubmission({ sessionId, message, delivery, submittedAt: Date.now(), contextItems });\n const current = composerStore.state[sessionId];\n if (current?.draft === draft.draft && current.attachments === draft.attachments) clearComposerState(sessionId);\n return true;\n } catch (error) {\n applySessionFrame(sessionId, { type: 'error', message: error instanceof Error ? error.message : String(error) });\n return false;\n } finally {\n composerSubmissionStore.setState((pending) => {\n const next = new Set(pending);\n next.delete(sessionId);\n return next;\n });\n }\n}\n"],"mappings":";;;;;;;AAeA,MAAa,0BAA0B,IAAI,sBAA2B,IAAI,IAAY,CAAC;AAEvF,SAAS,aAAa,MAAsB;CAC1C,OAAO,wDAAwD,KAAK,UAAU,IAAI,EAAE;AACtF;AAEA,SAAgB,iBACd,OACA,aACA,YACQ;CACR,MAAM,QAAkB,CAAC;CACzB,MAAM,UAAU,MAAM,KAAK;CAC3B,IAAI,SAAS,MAAM,KAAK,OAAO;CAC/B,KAAK,MAAM,cAAc,aAAa;EACpC,IAAI,WAAW,SAAS,SAAS;EACjC,MAAM,WAAW,WAAW,KAAK,QAAQ,WAAW,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG;EACrE,IAAI,WAAW,SAAS,QAAQ;GAC9B,MAAM,KACJ,kBAAkB,SAAS,KAAK,WAAW,SAAS,IAAI,OAAO,WAAW,IAAI,EAAE,mBAAmB,WAAW,KAAK,IAAI,aAAa,WAAW,IAAI,GACrJ;GACA;EACF;EACA,MAAM,KACJ,WAAW,SAAS,YAChB,uBAAuB,SAAS,QAAQ,WAAW,YACnD,kBAAkB,SAAS,QAAQ,WAAW,SACpD;EACA,IAAI,WAAW,SAAS,UAAU,WAAW,SAAS,KAAA,GACpD,MAAM,KAAK,IAAI,SAAS,qBAAqB,WAAW,KAAK,IAAI,aAAa,WAAW,IAAI,GAAG;CAEpG;CACA,IAAI,MAAM,WAAW,KAAK,YAAY,MAAM,eAAe,WAAW,SAAS,OAAO,GACpF,MAAM,KAAK,mCAAmC;CAEhD,KAAK,MAAM,cAAc,aAAa;EACpC,IAAI,WAAW,SAAS,WAAW,WAAW,SAAS,KAAA,GAAW;EAClE,MAAM,WAAW,WAAW,KAAK,QAAQ,WAAW,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG;EACrE,MAAM,KAAK,mBAAmB,SAAS,qBAAqB,WAAW,KAAK,IAAI,aAAa,WAAW,IAAI,GAAG;CACjH;CACA,IAAI,eAAe,KAAA,GAAW,MAAM,KAAK,uBAAuB,WAAW,MAAM,QAAQ,WAAW,SAAS;CAC7G,OAAO,MAAM,KAAK,MAAM;AAC1B;;AAGA,eAAsB,oBACpB,WACA,UACA,iBACkB;CAClB,IAAI,cAAc,QAAQ,wBAAwB,MAAM,IAAI,SAAS,GAAG,OAAO;CAC/E,MAAM,OAAO,cAAc,MAAM,KAAK;CACtC,MAAM,QAAQ,cAAc,MAAM;CAClC,IACE,CAAC,SACD,MAAM,qBAAqB,KAC1B,CAAC,MAAM,MAAM,KAAK,KAAK,MAAM,YAAY,WAAW,KACrD,MAAM,WAAW,cACjB,KAAK,QAAQ,SAEb,OAAO;CAET,wBAAwB,UAAU,4BAAY,IAAI,IAAI,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC;CAC9E,IAAI;EACF,MAAM,aAAa,mBAAmB,iBAAiB,WAAW,MAAM,KAAK;EAC7E,MAAM,UAAU,iBAAiB,MAAM,OAAO,MAAM,aAAa,UAAU;EAC3E,MAAM,SAAS,MAAM,YAClB,QAAQ,eAAsD,WAAW,SAAS,OAAO,CAAC,CAC1F,KAAK,EAAE,MAAM,gBAAgB;GAAE,MAAM;GAAkB;GAAM;EAAS,EAAE;EAC3E,MAAM,eAAuC,MAAM,YAAY,SAAS,eACtE,WAAW,SAAS,YAChB,CACE;GACE,MAAM,WAAW;GACjB,QAAQ,WAAW;GACnB,IAAI,WAAW;GACf,OAAO,WAAW;GAClB,SAAS,WAAW;GACpB,GAAI,WAAW,QAAQ,KAAA,IAAY,CAAC,IAAI,EAAE,KAAK,WAAW,IAAI;EAChE,CACF,IACA,CAAC,CACP;EACA,IAAI,eAAe,KAAA,GAAW,aAAa,KAAK,UAAU;EAK1D,IAAI,EAHF,aAAa,WACT,MAAM,qBAAqB,SAAS,QAAQ,SAAS,IACrD,MAAM,qBAAqB,SAAS,QAAQ,SAAS,IAC5C,OAAO;EACtB,0BAA0B;GAAE;GAAW;GAAS;GAAU,aAAa,KAAK,IAAI;GAAG;EAAa,CAAC;EACjG,MAAM,UAAU,cAAc,MAAM;EACpC,IAAI,SAAS,UAAU,MAAM,SAAS,QAAQ,gBAAgB,MAAM,aAAa,mBAAmB,SAAS;EAC7G,OAAO;CACT,SAAS,OAAO;EACd,kBAAkB,WAAW;GAAE,MAAM;GAAS,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EAAE,CAAC;EAC/G,OAAO;CACT,UAAU;EACR,wBAAwB,UAAU,YAAY;GAC5C,MAAM,OAAO,IAAI,IAAI,OAAO;GAC5B,KAAK,OAAO,SAAS;GACrB,OAAO;EACT,CAAC;CACH;AACF"}
@@ -0,0 +1,35 @@
1
+ let react = require("react");
2
+ let _tanstack_store = require("@tanstack/store");
3
+ let _tanstack_react_store = require("@tanstack/react-store");
4
+ //#region src/web/stores/dashboardStateStore.ts
5
+ const states = /* @__PURE__ */ new Map();
6
+ /** Memory only. Keys include the form and its resource, never the selected template. */
7
+ function dashboardStateFor(key, initial) {
8
+ let store = states.get(key);
9
+ if (store === void 0) {
10
+ store = new _tanstack_store.Store(typeof initial === "function" ? initial() : initial);
11
+ states.set(key, store);
12
+ }
13
+ return store;
14
+ }
15
+ /** The store is also exposed for synchronous admission checks in event handlers. */
16
+ function useDashboardState(key, initial) {
17
+ const store = dashboardStateFor(key, initial);
18
+ return [
19
+ (0, _tanstack_react_store.useStore)(store),
20
+ (0, react.useCallback)((next) => {
21
+ store.setState((previous) => typeof next === "function" ? next(previous) : next);
22
+ }, [store]),
23
+ store
24
+ ];
25
+ }
26
+ /** Test seam. Existing subscribers must be unmounted before resetting. */
27
+ function resetDashboardState() {
28
+ states.clear();
29
+ }
30
+ //#endregion
31
+ exports.dashboardStateFor = dashboardStateFor;
32
+ exports.resetDashboardState = resetDashboardState;
33
+ exports.useDashboardState = useDashboardState;
34
+
35
+ //# sourceMappingURL=dashboardStateStore.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardStateStore.cjs","names":["Store","useStore","useCallback"],"sources":["../../../src/web/stores/dashboardStateStore.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { Store } from '@tanstack/store';\nimport { useCallback, type Dispatch, type SetStateAction } from 'react';\n\nconst states = new Map<string, unknown>();\n\n/** Memory only. Keys include the form and its resource, never the selected template. */\nexport function dashboardStateFor<T>(key: string, initial: T | (() => T)): Store<T> {\n let store = states.get(key) as Store<T> | undefined;\n if (store === undefined) {\n store = new Store(typeof initial === 'function' ? (initial as () => T)() : initial);\n states.set(key, store);\n }\n return store;\n}\n\n/** The store is also exposed for synchronous admission checks in event handlers. */\nexport function useDashboardState<T>(key: string, initial: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Store<T>] {\n const store = dashboardStateFor(key, initial);\n const value = useStore(store);\n const set = useCallback<Dispatch<SetStateAction<T>>>(\n (next) => {\n store.setState((previous) => (typeof next === 'function' ? (next as (value: T) => T)(previous) : next));\n },\n [store],\n );\n return [value, set, store];\n}\n\n/** Test seam. Existing subscribers must be unmounted before resetting. */\nexport function resetDashboardState(): void {\n states.clear();\n}\n"],"mappings":";;;;AAIA,MAAM,yBAAS,IAAI,IAAqB;;AAGxC,SAAgB,kBAAqB,KAAa,SAAkC;CAClF,IAAI,QAAQ,OAAO,IAAI,GAAG;CAC1B,IAAI,UAAU,KAAA,GAAW;EACvB,QAAQ,IAAIA,gBAAAA,MAAM,OAAO,YAAY,aAAc,QAAoB,IAAI,OAAO;EAClF,OAAO,IAAI,KAAK,KAAK;CACvB;CACA,OAAO;AACT;;AAGA,SAAgB,kBAAqB,KAAa,SAAoE;CACpH,MAAM,QAAQ,kBAAkB,KAAK,OAAO;CAQ5C,OAAO;GAPOC,GAAAA,sBAAAA,SAAAA,CAAS,KAOX;GANAC,GAAAA,MAAAA,YAAAA,EACT,SAAS;GACR,MAAM,UAAU,aAAc,OAAO,SAAS,aAAc,KAAyB,QAAQ,IAAI,IAAK;EACxG,GACA,CAAC,KAAK,CAES;EAAG;CAAK;AAC3B;;AAGA,SAAgB,sBAA4B;CAC1C,OAAO,MAAM;AACf"}
@@ -0,0 +1,11 @@
1
+ import { Dispatch, SetStateAction } from "react";
2
+ import { Store } from "@tanstack/store";
3
+ //#region src/web/stores/dashboardStateStore.d.ts
4
+ /** Memory only. Keys include the form and its resource, never the selected template. */
5
+ export declare function dashboardStateFor<T>(key: string, initial: T | (() => T)): Store<T>;
6
+ /** The store is also exposed for synchronous admission checks in event handlers. */
7
+ export declare function useDashboardState<T>(key: string, initial: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Store<T>];
8
+ /** Test seam. Existing subscribers must be unmounted before resetting. */
9
+ export declare function resetDashboardState(): void;
10
+ //#endregion
11
+ //# sourceMappingURL=dashboardStateStore.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardStateStore.d.mts","names":[],"sources":["../../../src/web/stores/dashboardStateStore.ts"],"mappings":";;;;wBAOgB,kBAAkB,GAAG,aAAa,SAAS,WAAW,KAAK,MAAM;;wBAUjE,kBAAkB,GAAG,aAAa,SAAS,WAAW,MAAM,GAAG,SAAS,eAAe,KAAK,MAAM;;wBAalG"}
@@ -0,0 +1,33 @@
1
+ import { useCallback } from "react";
2
+ import { Store } from "@tanstack/store";
3
+ import { useStore } from "@tanstack/react-store";
4
+ //#region src/web/stores/dashboardStateStore.ts
5
+ const states = /* @__PURE__ */ new Map();
6
+ /** Memory only. Keys include the form and its resource, never the selected template. */
7
+ function dashboardStateFor(key, initial) {
8
+ let store = states.get(key);
9
+ if (store === void 0) {
10
+ store = new Store(typeof initial === "function" ? initial() : initial);
11
+ states.set(key, store);
12
+ }
13
+ return store;
14
+ }
15
+ /** The store is also exposed for synchronous admission checks in event handlers. */
16
+ function useDashboardState(key, initial) {
17
+ const store = dashboardStateFor(key, initial);
18
+ return [
19
+ useStore(store),
20
+ useCallback((next) => {
21
+ store.setState((previous) => typeof next === "function" ? next(previous) : next);
22
+ }, [store]),
23
+ store
24
+ ];
25
+ }
26
+ /** Test seam. Existing subscribers must be unmounted before resetting. */
27
+ function resetDashboardState() {
28
+ states.clear();
29
+ }
30
+ //#endregion
31
+ export { dashboardStateFor, resetDashboardState, useDashboardState };
32
+
33
+ //# sourceMappingURL=dashboardStateStore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardStateStore.mjs","names":[],"sources":["../../../src/web/stores/dashboardStateStore.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { Store } from '@tanstack/store';\nimport { useCallback, type Dispatch, type SetStateAction } from 'react';\n\nconst states = new Map<string, unknown>();\n\n/** Memory only. Keys include the form and its resource, never the selected template. */\nexport function dashboardStateFor<T>(key: string, initial: T | (() => T)): Store<T> {\n let store = states.get(key) as Store<T> | undefined;\n if (store === undefined) {\n store = new Store(typeof initial === 'function' ? (initial as () => T)() : initial);\n states.set(key, store);\n }\n return store;\n}\n\n/** The store is also exposed for synchronous admission checks in event handlers. */\nexport function useDashboardState<T>(key: string, initial: T | (() => T)): [T, Dispatch<SetStateAction<T>>, Store<T>] {\n const store = dashboardStateFor(key, initial);\n const value = useStore(store);\n const set = useCallback<Dispatch<SetStateAction<T>>>(\n (next) => {\n store.setState((previous) => (typeof next === 'function' ? (next as (value: T) => T)(previous) : next));\n },\n [store],\n );\n return [value, set, store];\n}\n\n/** Test seam. Existing subscribers must be unmounted before resetting. */\nexport function resetDashboardState(): void {\n states.clear();\n}\n"],"mappings":";;;;AAIA,MAAM,yBAAS,IAAI,IAAqB;;AAGxC,SAAgB,kBAAqB,KAAa,SAAkC;CAClF,IAAI,QAAQ,OAAO,IAAI,GAAG;CAC1B,IAAI,UAAU,KAAA,GAAW;EACvB,QAAQ,IAAI,MAAM,OAAO,YAAY,aAAc,QAAoB,IAAI,OAAO;EAClF,OAAO,IAAI,KAAK,KAAK;CACvB;CACA,OAAO;AACT;;AAGA,SAAgB,kBAAqB,KAAa,SAAoE;CACpH,MAAM,QAAQ,kBAAkB,KAAK,OAAO;CAQ5C,OAAO;EAPO,SAAS,KAOX;EANA,aACT,SAAS;GACR,MAAM,UAAU,aAAc,OAAO,SAAS,aAAc,KAAyB,QAAQ,IAAI,IAAK;EACxG,GACA,CAAC,KAAK,CAES;EAAG;CAAK;AAC3B;;AAGA,SAAgB,sBAA4B;CAC1C,OAAO,MAAM;AACf"}
@@ -0,0 +1,76 @@
1
+ const require_devProxyApi = require("../lib/devProxyApi.cjs");
2
+ //#region src/web/stores/devProxyStore.ts
3
+ const devProxyStore = new (require("@tanstack/store")).Store({
4
+ targets: [],
5
+ canRegister: false,
6
+ busy: false
7
+ });
8
+ function set(patch) {
9
+ devProxyStore.setState((state) => ({
10
+ ...state,
11
+ ...patch
12
+ }));
13
+ }
14
+ async function refreshDevProxyTargets() {
15
+ const outcome = await require_devProxyApi.fetchDevProxyTargets();
16
+ if ("error" in outcome) {
17
+ set({ error: outcome.error });
18
+ return;
19
+ }
20
+ set({
21
+ targets: outcome.state.targets,
22
+ canRegister: outcome.state.canRegister,
23
+ error: void 0
24
+ });
25
+ }
26
+ async function createDevProxyTarget(name, port) {
27
+ if (devProxyStore.state.busy) return false;
28
+ set({
29
+ busy: true,
30
+ error: void 0
31
+ });
32
+ const outcome = await require_devProxyApi.addDevProxyTarget(name, port);
33
+ if ("error" in outcome) {
34
+ set({
35
+ busy: false,
36
+ error: outcome.error
37
+ });
38
+ return false;
39
+ }
40
+ await refreshDevProxyTargets();
41
+ set({ busy: false });
42
+ return true;
43
+ }
44
+ async function deleteDevProxyTarget(name) {
45
+ if (devProxyStore.state.busy) return;
46
+ set({
47
+ busy: true,
48
+ error: void 0
49
+ });
50
+ const outcome = await require_devProxyApi.removeDevProxyTarget(name);
51
+ if ("error" in outcome) {
52
+ set({
53
+ busy: false,
54
+ error: outcome.error
55
+ });
56
+ return;
57
+ }
58
+ await refreshDevProxyTargets();
59
+ set({ busy: false });
60
+ }
61
+ /** Test seam. */
62
+ function resetDevProxyStore() {
63
+ devProxyStore.setState(() => ({
64
+ targets: [],
65
+ canRegister: false,
66
+ busy: false
67
+ }));
68
+ }
69
+ //#endregion
70
+ exports.createDevProxyTarget = createDevProxyTarget;
71
+ exports.deleteDevProxyTarget = deleteDevProxyTarget;
72
+ exports.devProxyStore = devProxyStore;
73
+ exports.refreshDevProxyTargets = refreshDevProxyTargets;
74
+ exports.resetDevProxyStore = resetDevProxyStore;
75
+
76
+ //# sourceMappingURL=devProxyStore.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devProxyStore.cjs","names":["Store","fetchDevProxyTargets","addDevProxyTarget","removeDevProxyTarget"],"sources":["../../../src/web/stores/devProxyStore.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\n\nimport type { DevProxyTarget } from '../../types/devProxy';\nimport { addDevProxyTarget, fetchDevProxyTargets, removeDevProxyTarget } from '../lib/devProxyApi';\n\n/**\n * Registered dev proxy targets, as the remote dialog shows them.\n *\n * `canRegister` comes from the hub rather than being guessed here: adding a\n * target is refused anywhere but the loopback listener, and a phone that\n * rendered an enabled form would only be offering a button that fails.\n */\n\nexport interface DevProxyState {\n targets: readonly DevProxyTarget[];\n /** False on a remote device, where registering is refused by the hub. */\n canRegister: boolean;\n busy: boolean;\n error?: string;\n}\n\nexport const devProxyStore = new Store<DevProxyState>({ targets: [], canRegister: false, busy: false });\n\nfunction set(patch: Partial<DevProxyState>): void {\n devProxyStore.setState((state) => ({ ...state, ...patch }));\n}\n\nexport async function refreshDevProxyTargets(): Promise<void> {\n const outcome = await fetchDevProxyTargets();\n if ('error' in outcome) {\n set({ error: outcome.error });\n return;\n }\n set({ targets: outcome.state.targets, canRegister: outcome.state.canRegister, error: undefined });\n}\n\nexport async function createDevProxyTarget(name: string, port: number): Promise<boolean> {\n if (devProxyStore.state.busy) return false;\n set({ busy: true, error: undefined });\n const outcome = await addDevProxyTarget(name, port);\n if ('error' in outcome) {\n set({ busy: false, error: outcome.error });\n return false;\n }\n await refreshDevProxyTargets();\n set({ busy: false });\n return true;\n}\n\nexport async function deleteDevProxyTarget(name: string): Promise<void> {\n if (devProxyStore.state.busy) return;\n set({ busy: true, error: undefined });\n const outcome = await removeDevProxyTarget(name);\n if ('error' in outcome) {\n set({ busy: false, error: outcome.error });\n return;\n }\n await refreshDevProxyTargets();\n set({ busy: false });\n}\n\n/** Test seam. */\nexport function resetDevProxyStore(): void {\n devProxyStore.setState(() => ({ targets: [], canRegister: false, busy: false }));\n}\n"],"mappings":";;AAqBA,MAAa,gBAAgB,8BAAIA,EAAAA,CAAAA,MAAqB;CAAE,SAAS,CAAC;CAAG,aAAa;CAAO,MAAM;AAAM,CAAC;AAEtG,SAAS,IAAI,OAAqC;CAChD,cAAc,UAAU,WAAW;EAAE,GAAG;EAAO,GAAG;CAAM,EAAE;AAC5D;AAEA,eAAsB,yBAAwC;CAC5D,MAAM,UAAU,MAAMC,oBAAAA,qBAAqB;CAC3C,IAAI,WAAW,SAAS;EACtB,IAAI,EAAE,OAAO,QAAQ,MAAM,CAAC;EAC5B;CACF;CACA,IAAI;EAAE,SAAS,QAAQ,MAAM;EAAS,aAAa,QAAQ,MAAM;EAAa,OAAO,KAAA;CAAU,CAAC;AAClG;AAEA,eAAsB,qBAAqB,MAAc,MAAgC;CACvF,IAAI,cAAc,MAAM,MAAM,OAAO;CACrC,IAAI;EAAE,MAAM;EAAM,OAAO,KAAA;CAAU,CAAC;CACpC,MAAM,UAAU,MAAMC,oBAAAA,kBAAkB,MAAM,IAAI;CAClD,IAAI,WAAW,SAAS;EACtB,IAAI;GAAE,MAAM;GAAO,OAAO,QAAQ;EAAM,CAAC;EACzC,OAAO;CACT;CACA,MAAM,uBAAuB;CAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;CACnB,OAAO;AACT;AAEA,eAAsB,qBAAqB,MAA6B;CACtE,IAAI,cAAc,MAAM,MAAM;CAC9B,IAAI;EAAE,MAAM;EAAM,OAAO,KAAA;CAAU,CAAC;CACpC,MAAM,UAAU,MAAMC,oBAAAA,qBAAqB,IAAI;CAC/C,IAAI,WAAW,SAAS;EACtB,IAAI;GAAE,MAAM;GAAO,OAAO,QAAQ;EAAM,CAAC;EACzC;CACF;CACA,MAAM,uBAAuB;CAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;AACrB;;AAGA,SAAgB,qBAA2B;CACzC,cAAc,gBAAgB;EAAE,SAAS,CAAC;EAAG,aAAa;EAAO,MAAM;CAAM,EAAE;AACjF"}
@@ -0,0 +1,25 @@
1
+ import { DevProxyTarget } from "../../types/devProxy.mjs";
2
+ import { Store } from "@tanstack/store";
3
+ //#region src/web/stores/devProxyStore.d.ts
4
+ /**
5
+ * Registered dev proxy targets, as the remote dialog shows them.
6
+ *
7
+ * `canRegister` comes from the hub rather than being guessed here: adding a
8
+ * target is refused anywhere but the loopback listener, and a phone that
9
+ * rendered an enabled form would only be offering a button that fails.
10
+ */
11
+ export interface DevProxyState {
12
+ targets: readonly DevProxyTarget[];
13
+ /** False on a remote device, where registering is refused by the hub. */
14
+ canRegister: boolean;
15
+ busy: boolean;
16
+ error?: string;
17
+ }
18
+ export declare const devProxyStore: Store<DevProxyState, never>;
19
+ export declare function refreshDevProxyTargets(): Promise<void>;
20
+ export declare function createDevProxyTarget(name: string, port: number): Promise<boolean>;
21
+ export declare function deleteDevProxyTarget(name: string): Promise<void>;
22
+ /** Test seam. */
23
+ export declare function resetDevProxyStore(): void;
24
+ //#endregion
25
+ //# sourceMappingURL=devProxyStore.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devProxyStore.d.mts","names":[],"sources":["../../../src/web/stores/devProxyStore.ts"],"mappings":";;;;;;;;;;iBAaiB;EACf,kBAAkB;;EAElB;EACA;EACA;;qBAGW,eAAa,MAAA;wBAMJ,0BAA0B;wBAS1B,qBAAqB,cAAc,eAAe;wBAalD,qBAAqB,eAAe;;wBAa1C"}
@@ -0,0 +1,73 @@
1
+ import { addDevProxyTarget, fetchDevProxyTargets, removeDevProxyTarget } from "../lib/devProxyApi.mjs";
2
+ import { Store } from "@tanstack/store";
3
+ //#region src/web/stores/devProxyStore.ts
4
+ const devProxyStore = new Store({
5
+ targets: [],
6
+ canRegister: false,
7
+ busy: false
8
+ });
9
+ function set(patch) {
10
+ devProxyStore.setState((state) => ({
11
+ ...state,
12
+ ...patch
13
+ }));
14
+ }
15
+ async function refreshDevProxyTargets() {
16
+ const outcome = await fetchDevProxyTargets();
17
+ if ("error" in outcome) {
18
+ set({ error: outcome.error });
19
+ return;
20
+ }
21
+ set({
22
+ targets: outcome.state.targets,
23
+ canRegister: outcome.state.canRegister,
24
+ error: void 0
25
+ });
26
+ }
27
+ async function createDevProxyTarget(name, port) {
28
+ if (devProxyStore.state.busy) return false;
29
+ set({
30
+ busy: true,
31
+ error: void 0
32
+ });
33
+ const outcome = await addDevProxyTarget(name, port);
34
+ if ("error" in outcome) {
35
+ set({
36
+ busy: false,
37
+ error: outcome.error
38
+ });
39
+ return false;
40
+ }
41
+ await refreshDevProxyTargets();
42
+ set({ busy: false });
43
+ return true;
44
+ }
45
+ async function deleteDevProxyTarget(name) {
46
+ if (devProxyStore.state.busy) return;
47
+ set({
48
+ busy: true,
49
+ error: void 0
50
+ });
51
+ const outcome = await removeDevProxyTarget(name);
52
+ if ("error" in outcome) {
53
+ set({
54
+ busy: false,
55
+ error: outcome.error
56
+ });
57
+ return;
58
+ }
59
+ await refreshDevProxyTargets();
60
+ set({ busy: false });
61
+ }
62
+ /** Test seam. */
63
+ function resetDevProxyStore() {
64
+ devProxyStore.setState(() => ({
65
+ targets: [],
66
+ canRegister: false,
67
+ busy: false
68
+ }));
69
+ }
70
+ //#endregion
71
+ export { createDevProxyTarget, deleteDevProxyTarget, devProxyStore, refreshDevProxyTargets, resetDevProxyStore };
72
+
73
+ //# sourceMappingURL=devProxyStore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devProxyStore.mjs","names":[],"sources":["../../../src/web/stores/devProxyStore.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\n\nimport type { DevProxyTarget } from '../../types/devProxy';\nimport { addDevProxyTarget, fetchDevProxyTargets, removeDevProxyTarget } from '../lib/devProxyApi';\n\n/**\n * Registered dev proxy targets, as the remote dialog shows them.\n *\n * `canRegister` comes from the hub rather than being guessed here: adding a\n * target is refused anywhere but the loopback listener, and a phone that\n * rendered an enabled form would only be offering a button that fails.\n */\n\nexport interface DevProxyState {\n targets: readonly DevProxyTarget[];\n /** False on a remote device, where registering is refused by the hub. */\n canRegister: boolean;\n busy: boolean;\n error?: string;\n}\n\nexport const devProxyStore = new Store<DevProxyState>({ targets: [], canRegister: false, busy: false });\n\nfunction set(patch: Partial<DevProxyState>): void {\n devProxyStore.setState((state) => ({ ...state, ...patch }));\n}\n\nexport async function refreshDevProxyTargets(): Promise<void> {\n const outcome = await fetchDevProxyTargets();\n if ('error' in outcome) {\n set({ error: outcome.error });\n return;\n }\n set({ targets: outcome.state.targets, canRegister: outcome.state.canRegister, error: undefined });\n}\n\nexport async function createDevProxyTarget(name: string, port: number): Promise<boolean> {\n if (devProxyStore.state.busy) return false;\n set({ busy: true, error: undefined });\n const outcome = await addDevProxyTarget(name, port);\n if ('error' in outcome) {\n set({ busy: false, error: outcome.error });\n return false;\n }\n await refreshDevProxyTargets();\n set({ busy: false });\n return true;\n}\n\nexport async function deleteDevProxyTarget(name: string): Promise<void> {\n if (devProxyStore.state.busy) return;\n set({ busy: true, error: undefined });\n const outcome = await removeDevProxyTarget(name);\n if ('error' in outcome) {\n set({ busy: false, error: outcome.error });\n return;\n }\n await refreshDevProxyTargets();\n set({ busy: false });\n}\n\n/** Test seam. */\nexport function resetDevProxyStore(): void {\n devProxyStore.setState(() => ({ targets: [], canRegister: false, busy: false }));\n}\n"],"mappings":";;;AAqBA,MAAa,gBAAgB,IAAI,MAAqB;CAAE,SAAS,CAAC;CAAG,aAAa;CAAO,MAAM;AAAM,CAAC;AAEtG,SAAS,IAAI,OAAqC;CAChD,cAAc,UAAU,WAAW;EAAE,GAAG;EAAO,GAAG;CAAM,EAAE;AAC5D;AAEA,eAAsB,yBAAwC;CAC5D,MAAM,UAAU,MAAM,qBAAqB;CAC3C,IAAI,WAAW,SAAS;EACtB,IAAI,EAAE,OAAO,QAAQ,MAAM,CAAC;EAC5B;CACF;CACA,IAAI;EAAE,SAAS,QAAQ,MAAM;EAAS,aAAa,QAAQ,MAAM;EAAa,OAAO,KAAA;CAAU,CAAC;AAClG;AAEA,eAAsB,qBAAqB,MAAc,MAAgC;CACvF,IAAI,cAAc,MAAM,MAAM,OAAO;CACrC,IAAI;EAAE,MAAM;EAAM,OAAO,KAAA;CAAU,CAAC;CACpC,MAAM,UAAU,MAAM,kBAAkB,MAAM,IAAI;CAClD,IAAI,WAAW,SAAS;EACtB,IAAI;GAAE,MAAM;GAAO,OAAO,QAAQ;EAAM,CAAC;EACzC,OAAO;CACT;CACA,MAAM,uBAAuB;CAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;CACnB,OAAO;AACT;AAEA,eAAsB,qBAAqB,MAA6B;CACtE,IAAI,cAAc,MAAM,MAAM;CAC9B,IAAI;EAAE,MAAM;EAAM,OAAO,KAAA;CAAU,CAAC;CACpC,MAAM,UAAU,MAAM,qBAAqB,IAAI;CAC/C,IAAI,WAAW,SAAS;EACtB,IAAI;GAAE,MAAM;GAAO,OAAO,QAAQ;EAAM,CAAC;EACzC;CACF;CACA,MAAM,uBAAuB;CAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;AACrB;;AAGA,SAAgB,qBAA2B;CACzC,cAAc,gBAAgB;EAAE,SAAS,CAAC;EAAG,aAAa;EAAO,MAAM;CAAM,EAAE;AACjF"}
@@ -0,0 +1,38 @@
1
+ const require_sessionStore = require("./sessionStore.cjs");
2
+ let _tanstack_store = require("@tanstack/store");
3
+ let _tanstack_react_store = require("@tanstack/react-store");
4
+ //#region src/web/stores/dialogDraftStore.ts
5
+ const dialogDraftStore = new _tanstack_store.Store({});
6
+ function requestKey(dialog) {
7
+ return JSON.stringify([dialog.id, dialog.prefill ?? ""]);
8
+ }
9
+ function updateDialogDraft(sessionId, dialog, update) {
10
+ if (sessionId === null || dialog === null) return;
11
+ const active = require_sessionStore.sessionStoreFor(sessionId).state.dialog;
12
+ if (active === null || requestKey(active) !== requestKey(dialog)) return;
13
+ const request = requestKey(dialog);
14
+ dialogDraftStore.setState((state) => ({
15
+ ...state,
16
+ [sessionId]: {
17
+ ...state[sessionId]?.request === request ? state[sessionId] : {
18
+ request,
19
+ value: dialog.prefill ?? "",
20
+ cursor: 0
21
+ },
22
+ ...update
23
+ }
24
+ }));
25
+ }
26
+ function useDialogDraft(sessionId, dialog) {
27
+ const stored = (0, _tanstack_react_store.useStore)(dialogDraftStore, (state) => sessionId === null ? void 0 : state[sessionId]);
28
+ return dialog !== null && stored?.request === requestKey(dialog) ? stored : {
29
+ value: dialog?.prefill ?? "",
30
+ cursor: 0
31
+ };
32
+ }
33
+ //#endregion
34
+ exports.dialogDraftStore = dialogDraftStore;
35
+ exports.updateDialogDraft = updateDialogDraft;
36
+ exports.useDialogDraft = useDialogDraft;
37
+
38
+ //# sourceMappingURL=dialogDraftStore.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogDraftStore.cjs","names":["Store","sessionStoreFor","useStore"],"sources":["../../../src/web/stores/dialogDraftStore.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { Store } from '@tanstack/store';\n\nimport type { DialogRequest } from '../lib/sessionModel';\nimport { sessionStoreFor } from './sessionStore';\n\nexport interface DialogDraft {\n request: string;\n value: string;\n cursor: number;\n}\nexport const dialogDraftStore = new Store<Record<string, DialogDraft>>({});\n\nfunction requestKey(dialog: DialogRequest): string {\n return JSON.stringify([dialog.id, dialog.prefill ?? '']);\n}\n\nexport function updateDialogDraft(\n sessionId: string | null,\n dialog: DialogRequest | null,\n update: Partial<Pick<DialogDraft, 'value' | 'cursor'>>,\n): void {\n if (sessionId === null || dialog === null) return;\n const active = sessionStoreFor(sessionId).state.dialog;\n if (active === null || requestKey(active) !== requestKey(dialog)) return;\n const request = requestKey(dialog);\n dialogDraftStore.setState((state) => ({\n ...state,\n [sessionId]: {\n ...(state[sessionId]?.request === request\n ? state[sessionId]\n : { request, value: dialog.prefill ?? '', cursor: 0 }),\n ...update,\n },\n }));\n}\n\nexport function useDialogDraft(\n sessionId: string | null,\n dialog: DialogRequest | null,\n): Pick<DialogDraft, 'value' | 'cursor'> {\n const stored = useStore(dialogDraftStore, (state) => (sessionId === null ? undefined : state[sessionId]));\n return dialog !== null && stored?.request === requestKey(dialog)\n ? stored\n : { value: dialog?.prefill ?? '', cursor: 0 };\n}\n"],"mappings":";;;;AAWA,MAAa,mBAAmB,IAAIA,gBAAAA,MAAmC,CAAC,CAAC;AAEzE,SAAS,WAAW,QAA+B;CACjD,OAAO,KAAK,UAAU,CAAC,OAAO,IAAI,OAAO,WAAW,EAAE,CAAC;AACzD;AAEA,SAAgB,kBACd,WACA,QACA,QACM;CACN,IAAI,cAAc,QAAQ,WAAW,MAAM;CAC3C,MAAM,SAASC,qBAAAA,gBAAgB,SAAS,CAAC,CAAC,MAAM;CAChD,IAAI,WAAW,QAAQ,WAAW,MAAM,MAAM,WAAW,MAAM,GAAG;CAClE,MAAM,UAAU,WAAW,MAAM;CACjC,iBAAiB,UAAU,WAAW;EACpC,GAAG;GACF,YAAY;GACX,GAAI,MAAM,UAAU,EAAE,YAAY,UAC9B,MAAM,aACN;IAAE;IAAS,OAAO,OAAO,WAAW;IAAI,QAAQ;GAAE;GACtD,GAAG;EACL;CACF,EAAE;AACJ;AAEA,SAAgB,eACd,WACA,QACuC;CACvC,MAAM,UAAA,GAASC,sBAAAA,SAAAA,CAAS,mBAAmB,UAAW,cAAc,OAAO,KAAA,IAAY,MAAM,UAAW;CACxG,OAAO,WAAW,QAAQ,QAAQ,YAAY,WAAW,MAAM,IAC3D,SACA;EAAE,OAAO,QAAQ,WAAW;EAAI,QAAQ;CAAE;AAChD"}
@@ -0,0 +1,13 @@
1
+ import { DialogRequest } from "../lib/sessionModel.mjs";
2
+ import { Store } from "@tanstack/store";
3
+ //#region src/web/stores/dialogDraftStore.d.ts
4
+ export interface DialogDraft {
5
+ request: string;
6
+ value: string;
7
+ cursor: number;
8
+ }
9
+ export declare const dialogDraftStore: Store<Record<string, DialogDraft>, never>;
10
+ export declare function updateDialogDraft(sessionId: string | null, dialog: DialogRequest | null, update: Partial<Pick<DialogDraft, 'value' | 'cursor'>>): void;
11
+ export declare function useDialogDraft(sessionId: string | null, dialog: DialogRequest | null): Pick<DialogDraft, 'value' | 'cursor'>;
12
+ //#endregion
13
+ //# sourceMappingURL=dialogDraftStore.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogDraftStore.d.mts","names":[],"sources":["../../../src/web/stores/dialogDraftStore.ts"],"mappings":";;;iBAMiB;EACf;EACA;EACA;;qBAEW,kBAAgB,MAAA,eAAA;wBAMb,kBACd,0BACA,QAAQ,sBACR,QAAQ,QAAQ,KAAK;wBAiBP,eACd,0BACA,QAAQ,uBACP,KAAK"}
@@ -0,0 +1,36 @@
1
+ import { sessionStoreFor } from "./sessionStore.mjs";
2
+ import { Store } from "@tanstack/store";
3
+ import { useStore } from "@tanstack/react-store";
4
+ //#region src/web/stores/dialogDraftStore.ts
5
+ const dialogDraftStore = new Store({});
6
+ function requestKey(dialog) {
7
+ return JSON.stringify([dialog.id, dialog.prefill ?? ""]);
8
+ }
9
+ function updateDialogDraft(sessionId, dialog, update) {
10
+ if (sessionId === null || dialog === null) return;
11
+ const active = sessionStoreFor(sessionId).state.dialog;
12
+ if (active === null || requestKey(active) !== requestKey(dialog)) return;
13
+ const request = requestKey(dialog);
14
+ dialogDraftStore.setState((state) => ({
15
+ ...state,
16
+ [sessionId]: {
17
+ ...state[sessionId]?.request === request ? state[sessionId] : {
18
+ request,
19
+ value: dialog.prefill ?? "",
20
+ cursor: 0
21
+ },
22
+ ...update
23
+ }
24
+ }));
25
+ }
26
+ function useDialogDraft(sessionId, dialog) {
27
+ const stored = useStore(dialogDraftStore, (state) => sessionId === null ? void 0 : state[sessionId]);
28
+ return dialog !== null && stored?.request === requestKey(dialog) ? stored : {
29
+ value: dialog?.prefill ?? "",
30
+ cursor: 0
31
+ };
32
+ }
33
+ //#endregion
34
+ export { dialogDraftStore, updateDialogDraft, useDialogDraft };
35
+
36
+ //# sourceMappingURL=dialogDraftStore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogDraftStore.mjs","names":[],"sources":["../../../src/web/stores/dialogDraftStore.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { Store } from '@tanstack/store';\n\nimport type { DialogRequest } from '../lib/sessionModel';\nimport { sessionStoreFor } from './sessionStore';\n\nexport interface DialogDraft {\n request: string;\n value: string;\n cursor: number;\n}\nexport const dialogDraftStore = new Store<Record<string, DialogDraft>>({});\n\nfunction requestKey(dialog: DialogRequest): string {\n return JSON.stringify([dialog.id, dialog.prefill ?? '']);\n}\n\nexport function updateDialogDraft(\n sessionId: string | null,\n dialog: DialogRequest | null,\n update: Partial<Pick<DialogDraft, 'value' | 'cursor'>>,\n): void {\n if (sessionId === null || dialog === null) return;\n const active = sessionStoreFor(sessionId).state.dialog;\n if (active === null || requestKey(active) !== requestKey(dialog)) return;\n const request = requestKey(dialog);\n dialogDraftStore.setState((state) => ({\n ...state,\n [sessionId]: {\n ...(state[sessionId]?.request === request\n ? state[sessionId]\n : { request, value: dialog.prefill ?? '', cursor: 0 }),\n ...update,\n },\n }));\n}\n\nexport function useDialogDraft(\n sessionId: string | null,\n dialog: DialogRequest | null,\n): Pick<DialogDraft, 'value' | 'cursor'> {\n const stored = useStore(dialogDraftStore, (state) => (sessionId === null ? undefined : state[sessionId]));\n return dialog !== null && stored?.request === requestKey(dialog)\n ? stored\n : { value: dialog?.prefill ?? '', cursor: 0 };\n}\n"],"mappings":";;;;AAWA,MAAa,mBAAmB,IAAI,MAAmC,CAAC,CAAC;AAEzE,SAAS,WAAW,QAA+B;CACjD,OAAO,KAAK,UAAU,CAAC,OAAO,IAAI,OAAO,WAAW,EAAE,CAAC;AACzD;AAEA,SAAgB,kBACd,WACA,QACA,QACM;CACN,IAAI,cAAc,QAAQ,WAAW,MAAM;CAC3C,MAAM,SAAS,gBAAgB,SAAS,CAAC,CAAC,MAAM;CAChD,IAAI,WAAW,QAAQ,WAAW,MAAM,MAAM,WAAW,MAAM,GAAG;CAClE,MAAM,UAAU,WAAW,MAAM;CACjC,iBAAiB,UAAU,WAAW;EACpC,GAAG;GACF,YAAY;GACX,GAAI,MAAM,UAAU,EAAE,YAAY,UAC9B,MAAM,aACN;IAAE;IAAS,OAAO,OAAO,WAAW;IAAI,QAAQ;GAAE;GACtD,GAAG;EACL;CACF,EAAE;AACJ;AAEA,SAAgB,eACd,WACA,QACuC;CACvC,MAAM,SAAS,SAAS,mBAAmB,UAAW,cAAc,OAAO,KAAA,IAAY,MAAM,UAAW;CACxG,OAAO,WAAW,QAAQ,QAAQ,YAAY,WAAW,MAAM,IAC3D,SACA;EAAE,OAAO,QAAQ,WAAW;EAAI,QAAQ;CAAE;AAChD"}
@@ -0,0 +1,20 @@
1
+ const require_composition = require("../lib/composition.cjs");
2
+ const require_sessionStore = require("./sessionStore.cjs");
3
+ //#region src/web/stores/fileLinkModesStore.ts
4
+ /** Supplies live mode facts to file routing, including already-rendered links. */
5
+ function bindSessionFileLinkModes() {
6
+ return require_composition.bindFileLinkModes({
7
+ active(sessionId) {
8
+ const state = require_sessionStore.sessionStoreFor(sessionId).state;
9
+ return require_composition.minorModes(state.statuses, state.widgets, state.minorModes).filter((mode) => mode.availability === "on").map((mode) => mode.name);
10
+ },
11
+ subscribe(sessionId, listener) {
12
+ const subscription = require_sessionStore.sessionStoreFor(sessionId).subscribe(listener);
13
+ return () => subscription.unsubscribe();
14
+ }
15
+ });
16
+ }
17
+ //#endregion
18
+ exports.bindSessionFileLinkModes = bindSessionFileLinkModes;
19
+
20
+ //# sourceMappingURL=fileLinkModesStore.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileLinkModesStore.cjs","names":["bindFileLinkModes","sessionStoreFor","minorModes"],"sources":["../../../src/web/stores/fileLinkModesStore.ts"],"sourcesContent":["import { bindFileLinkModes, minorModes } from '../lib/composition';\nimport { sessionStoreFor } from './sessionStore';\n\n/** Supplies live mode facts to file routing, including already-rendered links. */\nexport function bindSessionFileLinkModes(): () => void {\n return bindFileLinkModes({\n active(sessionId) {\n const state = sessionStoreFor(sessionId).state;\n return minorModes(state.statuses, state.widgets, state.minorModes)\n .filter((mode) => mode.availability === 'on')\n .map((mode) => mode.name);\n },\n subscribe(sessionId, listener) {\n const subscription = sessionStoreFor(sessionId).subscribe(listener);\n return () => subscription.unsubscribe();\n },\n });\n}\n"],"mappings":";;;;AAIA,SAAgB,2BAAuC;CACrD,OAAOA,oBAAAA,kBAAkB;EACvB,OAAO,WAAW;GAChB,MAAM,QAAQC,qBAAAA,gBAAgB,SAAS,CAAC,CAAC;GACzC,OAAOC,oBAAAA,WAAW,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,CAAC,CAC/D,QAAQ,SAAS,KAAK,iBAAiB,IAAI,CAAC,CAC5C,KAAK,SAAS,KAAK,IAAI;EAC5B;EACA,UAAU,WAAW,UAAU;GAC7B,MAAM,eAAeD,qBAAAA,gBAAgB,SAAS,CAAC,CAAC,UAAU,QAAQ;GAClE,aAAa,aAAa,YAAY;EACxC;CACF,CAAC;AACH"}
@@ -0,0 +1,5 @@
1
+ //#region src/web/stores/fileLinkModesStore.d.ts
2
+ /** Supplies live mode facts to file routing, including already-rendered links. */
3
+ export declare function bindSessionFileLinkModes(): () => void;
4
+ //#endregion
5
+ //# sourceMappingURL=fileLinkModesStore.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileLinkModesStore.d.mts","names":[],"sources":["../../../src/web/stores/fileLinkModesStore.ts"],"mappings":";;wBAIgB"}
@@ -0,0 +1,20 @@
1
+ import { bindFileLinkModes, minorModes } from "../lib/composition.mjs";
2
+ import { sessionStoreFor } from "./sessionStore.mjs";
3
+ //#region src/web/stores/fileLinkModesStore.ts
4
+ /** Supplies live mode facts to file routing, including already-rendered links. */
5
+ function bindSessionFileLinkModes() {
6
+ return bindFileLinkModes({
7
+ active(sessionId) {
8
+ const state = sessionStoreFor(sessionId).state;
9
+ return minorModes(state.statuses, state.widgets, state.minorModes).filter((mode) => mode.availability === "on").map((mode) => mode.name);
10
+ },
11
+ subscribe(sessionId, listener) {
12
+ const subscription = sessionStoreFor(sessionId).subscribe(listener);
13
+ return () => subscription.unsubscribe();
14
+ }
15
+ });
16
+ }
17
+ //#endregion
18
+ export { bindSessionFileLinkModes };
19
+
20
+ //# sourceMappingURL=fileLinkModesStore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileLinkModesStore.mjs","names":[],"sources":["../../../src/web/stores/fileLinkModesStore.ts"],"sourcesContent":["import { bindFileLinkModes, minorModes } from '../lib/composition';\nimport { sessionStoreFor } from './sessionStore';\n\n/** Supplies live mode facts to file routing, including already-rendered links. */\nexport function bindSessionFileLinkModes(): () => void {\n return bindFileLinkModes({\n active(sessionId) {\n const state = sessionStoreFor(sessionId).state;\n return minorModes(state.statuses, state.widgets, state.minorModes)\n .filter((mode) => mode.availability === 'on')\n .map((mode) => mode.name);\n },\n subscribe(sessionId, listener) {\n const subscription = sessionStoreFor(sessionId).subscribe(listener);\n return () => subscription.unsubscribe();\n },\n });\n}\n"],"mappings":";;;;AAIA,SAAgB,2BAAuC;CACrD,OAAO,kBAAkB;EACvB,OAAO,WAAW;GAChB,MAAM,QAAQ,gBAAgB,SAAS,CAAC,CAAC;GACzC,OAAO,WAAW,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,CAAC,CAC/D,QAAQ,SAAS,KAAK,iBAAiB,IAAI,CAAC,CAC5C,KAAK,SAAS,KAAK,IAAI;EAC5B;EACA,UAAU,WAAW,UAAU;GAC7B,MAAM,eAAe,gBAAgB,SAAS,CAAC,CAAC,UAAU,QAAQ;GAClE,aAAa,aAAa,YAAY;EACxC;CACF,CAAC;AACH"}
@@ -0,0 +1,85 @@
1
+ let _tanstack_store = require("@tanstack/store");
2
+ //#region src/web/stores/menuStore.ts
3
+ const MENU_FRESH_MS = 1e4;
4
+ const menuStore = new _tanstack_store.Store({
5
+ pending: null,
6
+ at: 0,
7
+ claimed: null
8
+ });
9
+ let expiry;
10
+ /**
11
+ * Remembers which selection-bar button asked the agent a question.
12
+ *
13
+ * The agent answers with an ordinary select dialog; this is the only signal
14
+ * that lets the bar render it as its popover menu rather than a centered
15
+ * modal. The button shows a pending state until the dialog arrives, the run
16
+ * settles, or the anchor goes stale.
17
+ */
18
+ function setPendingMenu(kind) {
19
+ menuStore.setState((state) => ({
20
+ ...state,
21
+ pending: kind,
22
+ at: Date.now()
23
+ }));
24
+ if (expiry !== void 0) clearTimeout(expiry);
25
+ expiry = setTimeout(clearPendingMenu, MENU_FRESH_MS);
26
+ }
27
+ function clearPendingMenu() {
28
+ if (expiry !== void 0) clearTimeout(expiry);
29
+ expiry = void 0;
30
+ menuStore.setState((state) => state.pending === null ? state : {
31
+ ...state,
32
+ pending: null,
33
+ at: 0
34
+ });
35
+ }
36
+ /** The menu behind an arriving dialog, or null when none was asked for recently. */
37
+ function pendingMenuFor(now) {
38
+ const { pending, at } = menuStore.state;
39
+ if (pending === null || now - at > MENU_FRESH_MS) return null;
40
+ return pending;
41
+ }
42
+ /**
43
+ * Spends the pending anchor on an arriving select dialog. Called once per
44
+ * dialog, at frame time, so every surface reads the same verdict on its
45
+ * first render and the modal never flashes before the popover takes over.
46
+ */
47
+ function claimDialogMenu(dialogId, now = Date.now()) {
48
+ const menu = pendingMenuFor(now);
49
+ const claimed = menu === null ? null : {
50
+ dialogId,
51
+ menu
52
+ };
53
+ clearPendingMenu();
54
+ menuStore.setState((state) => ({
55
+ ...state,
56
+ claimed
57
+ }));
58
+ return claimed;
59
+ }
60
+ /** Forgets a claim once its dialog is gone. */
61
+ function releaseDialogMenu(dialogId) {
62
+ menuStore.setState((state) => state.claimed !== null && state.claimed.dialogId === dialogId ? {
63
+ ...state,
64
+ claimed: null
65
+ } : state);
66
+ }
67
+ /** Test seam. */
68
+ function resetMenuStore() {
69
+ clearPendingMenu();
70
+ menuStore.setState(() => ({
71
+ pending: null,
72
+ at: 0,
73
+ claimed: null
74
+ }));
75
+ }
76
+ //#endregion
77
+ exports.claimDialogMenu = claimDialogMenu;
78
+ exports.clearPendingMenu = clearPendingMenu;
79
+ exports.menuStore = menuStore;
80
+ exports.pendingMenuFor = pendingMenuFor;
81
+ exports.releaseDialogMenu = releaseDialogMenu;
82
+ exports.resetMenuStore = resetMenuStore;
83
+ exports.setPendingMenu = setPendingMenu;
84
+
85
+ //# sourceMappingURL=menuStore.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuStore.cjs","names":["Store"],"sources":["../../../src/web/stores/menuStore.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\n\n/** A selection-bar axis name: the built-in 'mode'/'domains', or a plugin-declared axis such as 'profile'. */\nexport type MenuKind = string;\n\nexport interface MenuClaim {\n /** The agent dialog rendered as the bar's popover instead of the modal. */\n dialogId: string;\n menu: MenuKind;\n}\n\nexport interface MenuState {\n /** Selection-bar button whose command is in flight, if any. */\n pending: MenuKind | null;\n /** When it was clicked; a stale anchor must not restyle an unrelated dialog. */\n at: number;\n /** The dialog the last click claimed, so the bar and the overlay agree who renders it. */\n claimed: MenuClaim | null;\n}\n\nconst MENU_FRESH_MS = 10_000;\n\nexport const menuStore = new Store<MenuState>({ pending: null, at: 0, claimed: null });\n\nlet expiry: ReturnType<typeof setTimeout> | undefined;\n\n/**\n * Remembers which selection-bar button asked the agent a question.\n *\n * The agent answers with an ordinary select dialog; this is the only signal\n * that lets the bar render it as its popover menu rather than a centered\n * modal. The button shows a pending state until the dialog arrives, the run\n * settles, or the anchor goes stale.\n */\nexport function setPendingMenu(kind: MenuKind): void {\n menuStore.setState((state) => ({ ...state, pending: kind, at: Date.now() }));\n if (expiry !== undefined) clearTimeout(expiry);\n expiry = setTimeout(clearPendingMenu, MENU_FRESH_MS);\n}\n\nexport function clearPendingMenu(): void {\n if (expiry !== undefined) clearTimeout(expiry);\n expiry = undefined;\n menuStore.setState((state) => (state.pending === null ? state : { ...state, pending: null, at: 0 }));\n}\n\n/** The menu behind an arriving dialog, or null when none was asked for recently. */\nexport function pendingMenuFor(now: number): MenuKind | null {\n const { pending, at } = menuStore.state;\n if (pending === null || now - at > MENU_FRESH_MS) return null;\n return pending;\n}\n\n/**\n * Spends the pending anchor on an arriving select dialog. Called once per\n * dialog, at frame time, so every surface reads the same verdict on its\n * first render and the modal never flashes before the popover takes over.\n */\nexport function claimDialogMenu(dialogId: string, now = Date.now()): MenuClaim | null {\n const menu = pendingMenuFor(now);\n const claimed = menu === null ? null : { dialogId, menu };\n clearPendingMenu();\n menuStore.setState((state) => ({ ...state, claimed }));\n return claimed;\n}\n\n/** Forgets a claim once its dialog is gone. */\nexport function releaseDialogMenu(dialogId: string): void {\n menuStore.setState((state) =>\n state.claimed !== null && state.claimed.dialogId === dialogId ? { ...state, claimed: null } : state,\n );\n}\n\n/** Test seam. */\nexport function resetMenuStore(): void {\n clearPendingMenu();\n menuStore.setState(() => ({ pending: null, at: 0, claimed: null }));\n}\n"],"mappings":";;AAoBA,MAAM,gBAAgB;AAEtB,MAAa,YAAY,IAAIA,gBAAAA,MAAiB;CAAE,SAAS;CAAM,IAAI;CAAG,SAAS;AAAK,CAAC;AAErF,IAAI;;;;;;;;;AAUJ,SAAgB,eAAe,MAAsB;CACnD,UAAU,UAAU,WAAW;EAAE,GAAG;EAAO,SAAS;EAAM,IAAI,KAAK,IAAI;CAAE,EAAE;CAC3E,IAAI,WAAW,KAAA,GAAW,aAAa,MAAM;CAC7C,SAAS,WAAW,kBAAkB,aAAa;AACrD;AAEA,SAAgB,mBAAyB;CACvC,IAAI,WAAW,KAAA,GAAW,aAAa,MAAM;CAC7C,SAAS,KAAA;CACT,UAAU,UAAU,UAAW,MAAM,YAAY,OAAO,QAAQ;EAAE,GAAG;EAAO,SAAS;EAAM,IAAI;CAAE,CAAE;AACrG;;AAGA,SAAgB,eAAe,KAA8B;CAC3D,MAAM,EAAE,SAAS,OAAO,UAAU;CAClC,IAAI,YAAY,QAAQ,MAAM,KAAK,eAAe,OAAO;CACzD,OAAO;AACT;;;;;;AAOA,SAAgB,gBAAgB,UAAkB,MAAM,KAAK,IAAI,GAAqB;CACpF,MAAM,OAAO,eAAe,GAAG;CAC/B,MAAM,UAAU,SAAS,OAAO,OAAO;EAAE;EAAU;CAAK;CACxD,iBAAiB;CACjB,UAAU,UAAU,WAAW;EAAE,GAAG;EAAO;CAAQ,EAAE;CACrD,OAAO;AACT;;AAGA,SAAgB,kBAAkB,UAAwB;CACxD,UAAU,UAAU,UAClB,MAAM,YAAY,QAAQ,MAAM,QAAQ,aAAa,WAAW;EAAE,GAAG;EAAO,SAAS;CAAK,IAAI,KAChG;AACF;;AAGA,SAAgB,iBAAuB;CACrC,iBAAiB;CACjB,UAAU,gBAAgB;EAAE,SAAS;EAAM,IAAI;EAAG,SAAS;CAAK,EAAE;AACpE"}
@@ -0,0 +1,42 @@
1
+ import { Store } from "@tanstack/store";
2
+ //#region src/web/stores/menuStore.d.ts
3
+ /** A selection-bar axis name: the built-in 'mode'/'domains', or a plugin-declared axis such as 'profile'. */
4
+ export type MenuKind = string;
5
+ export interface MenuClaim {
6
+ /** The agent dialog rendered as the bar's popover instead of the modal. */
7
+ dialogId: string;
8
+ menu: MenuKind;
9
+ }
10
+ export interface MenuState {
11
+ /** Selection-bar button whose command is in flight, if any. */
12
+ pending: MenuKind | null;
13
+ /** When it was clicked; a stale anchor must not restyle an unrelated dialog. */
14
+ at: number;
15
+ /** The dialog the last click claimed, so the bar and the overlay agree who renders it. */
16
+ claimed: MenuClaim | null;
17
+ }
18
+ export declare const menuStore: Store<MenuState, never>;
19
+ /**
20
+ * Remembers which selection-bar button asked the agent a question.
21
+ *
22
+ * The agent answers with an ordinary select dialog; this is the only signal
23
+ * that lets the bar render it as its popover menu rather than a centered
24
+ * modal. The button shows a pending state until the dialog arrives, the run
25
+ * settles, or the anchor goes stale.
26
+ */
27
+ export declare function setPendingMenu(kind: MenuKind): void;
28
+ export declare function clearPendingMenu(): void;
29
+ /** The menu behind an arriving dialog, or null when none was asked for recently. */
30
+ export declare function pendingMenuFor(now: number): MenuKind | null;
31
+ /**
32
+ * Spends the pending anchor on an arriving select dialog. Called once per
33
+ * dialog, at frame time, so every surface reads the same verdict on its
34
+ * first render and the modal never flashes before the popover takes over.
35
+ */
36
+ export declare function claimDialogMenu(dialogId: string, now?: number): MenuClaim | null;
37
+ /** Forgets a claim once its dialog is gone. */
38
+ export declare function releaseDialogMenu(dialogId: string): void;
39
+ /** Test seam. */
40
+ export declare function resetMenuStore(): void;
41
+ //#endregion
42
+ //# sourceMappingURL=menuStore.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuStore.d.mts","names":[],"sources":["../../../src/web/stores/menuStore.ts"],"mappings":";;;YAGY;iBAEK;;EAEf;EACA,MAAM;;iBAGS;;EAEf,SAAS;;EAET;;EAEA,SAAS;;qBAKE,WAAS,MAAA;;;;;;;;;wBAYN,eAAe,MAAM;wBAMrB;;wBAOA,eAAe,cAAc;;;;;;wBAW7B,gBAAgB,kBAAkB,eAAmB;;wBASrD,kBAAkB;;wBAOlB"}