@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,318 @@
1
+ import { readRepositorySettings, writeRepositorySelection } from "../../lib/settingsApi.mjs";
2
+ import { sessionsStore } from "../../stores/sessionsStore.mjs";
3
+ import { refreshSessionFacts } from "../../stores/sessionStore.mjs";
4
+ import { useDashboardState } from "../../stores/dashboardStateStore.mjs";
5
+ import { useCallback, useEffect } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { Badge, Button, CheckIcon, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, SettingsActions, SettingsCard, SettingsDescription, SettingsHeader, SettingsNote, SettingsPage, SettingsRow, SettingsRowDescription, SettingsRowText, SettingsRowTitle, SettingsTitle } from "@agimon-ai/po-web-components";
8
+ //#region src/web/features/settings/RepositorySettings.tsx
9
+ /** Repository selection controls shared with package-owned management panels. */
10
+ const INHERIT_VALUE = "__inherit__";
11
+ function optionDetail(options, name) {
12
+ if (name === void 0) return "";
13
+ const option = options.find((candidate) => candidate.name === name);
14
+ if (option === void 0) return `Configured value '${name}' is not in the effective catalog.`;
15
+ return option.description ?? (option.layers ? `Layers: ${option.layers.join(", ") || "none"}.` : "");
16
+ }
17
+ /**
18
+ * The title line, description and per-axis undo shared by every axis row.
19
+ *
20
+ * Origin is quiet on purpose: a catalog default says nothing, a value from the
21
+ * global config says so in faint text, and a value set here is marked by the
22
+ * row's jade edge (named for assistive tech) and offers Reset.
23
+ */
24
+ function AxisText({ label, dirty, origin, busy, children, onRevert, onClear }) {
25
+ return /* @__PURE__ */ jsxs(SettingsRowText, {
26
+ className: "gap-1",
27
+ children: [/* @__PURE__ */ jsxs(SettingsRowTitle, {
28
+ className: "flex min-h-6 flex-wrap items-center gap-x-2 gap-y-1",
29
+ children: [
30
+ label,
31
+ origin === "repository" ? /* @__PURE__ */ jsx("span", {
32
+ className: "sr-only",
33
+ children: ", set for this repository"
34
+ }) : null,
35
+ origin === "global" ? /* @__PURE__ */ jsx("span", {
36
+ className: "text-sm font-normal text-doom-dim",
37
+ children: "From global"
38
+ }) : null,
39
+ dirty ? /* @__PURE__ */ jsx(Badge, {
40
+ tone: "cyan",
41
+ children: "Unsaved"
42
+ }) : null,
43
+ dirty ? /* @__PURE__ */ jsx(Button, {
44
+ variant: "ghost",
45
+ size: "xs",
46
+ disabled: busy,
47
+ onClick: onRevert,
48
+ className: "text-doom-dim",
49
+ children: "Revert"
50
+ }) : origin === "repository" ? /* @__PURE__ */ jsx(Button, {
51
+ variant: "ghost",
52
+ size: "xs",
53
+ disabled: busy,
54
+ onClick: onClear,
55
+ className: "text-doom-dim",
56
+ children: "Reset"
57
+ }) : null
58
+ ]
59
+ }), /* @__PURE__ */ jsx(SettingsRowDescription, { children })]
60
+ });
61
+ }
62
+ function hasDraft(drafts, key) {
63
+ return Object.hasOwn(drafts, key);
64
+ }
65
+ function SingleAxis({ id, label, detail, options, effective, repositoryValue, origin, draft, dirty, busy, onChange, onRevert }) {
66
+ const value = dirty ? draft : repositoryValue;
67
+ const selected = value === null || value === void 0 ? INHERIT_VALUE : value;
68
+ const inherited = effective === void 0 ? "Inherit (none)" : `Inherit (${effective})`;
69
+ const shown = value === null || value === void 0 ? effective : value;
70
+ return /* @__PURE__ */ jsxs(SettingsRow, {
71
+ "data-testid": `repository-axis-${id}`,
72
+ "data-dirty": dirty,
73
+ changed: origin === "repository",
74
+ className: "items-start",
75
+ children: [/* @__PURE__ */ jsx(AxisText, {
76
+ label,
77
+ dirty,
78
+ origin,
79
+ busy,
80
+ onRevert,
81
+ onClear: () => onChange(null),
82
+ children: optionDetail(options, shown) || detail
83
+ }), /* @__PURE__ */ jsxs(Select, {
84
+ value: selected,
85
+ disabled: busy,
86
+ onValueChange: (next) => onChange(next === INHERIT_VALUE ? null : next),
87
+ children: [/* @__PURE__ */ jsx(SelectTrigger, {
88
+ "data-testid": `repository-select-${id}`,
89
+ "aria-label": label,
90
+ className: "w-full text-sm sm:w-64",
91
+ children: /* @__PURE__ */ jsx(SelectValue, {})
92
+ }), /* @__PURE__ */ jsxs(SelectContent, { children: [/* @__PURE__ */ jsx(SelectItem, {
93
+ value: INHERIT_VALUE,
94
+ children: inherited
95
+ }), options.map((option) => /* @__PURE__ */ jsx(SelectItem, {
96
+ value: option.name,
97
+ children: option.name
98
+ }, option.name))] })]
99
+ })]
100
+ });
101
+ }
102
+ function DomainsAxis({ view, draft, dirty, busy, onChange, onRevert }) {
103
+ const axis = view.selection.domains;
104
+ const inherited = axis.effective ?? [];
105
+ const selected = dirty ? draft ?? inherited : axis.repository ?? inherited;
106
+ const selectedNames = new Set(selected);
107
+ const toggled = (name) => selectedNames.has(name) ? selected.filter((entry) => entry !== name) : [...selected, name];
108
+ return /* @__PURE__ */ jsxs(SettingsRow, {
109
+ "data-testid": "repository-axis-domains",
110
+ "data-dirty": dirty,
111
+ changed: axis.origin === "repository",
112
+ className: "items-start",
113
+ children: [/* @__PURE__ */ jsx(AxisText, {
114
+ label: "Domains",
115
+ dirty,
116
+ origin: axis.origin,
117
+ busy,
118
+ onRevert,
119
+ onClear: () => onChange(null),
120
+ children: "The plugin sets a new session in this repository loads. Pick any number."
121
+ }), /* @__PURE__ */ jsxs("div", {
122
+ role: "group",
123
+ "aria-label": "Domains",
124
+ className: "flex basis-full flex-wrap items-center gap-2",
125
+ children: [view.catalogs.domains.map((domain) => {
126
+ const active = selectedNames.has(domain.name);
127
+ return /* @__PURE__ */ jsxs(Button, {
128
+ variant: "ghost",
129
+ size: "sm",
130
+ "data-testid": `repository-domain-${domain.name}`,
131
+ "data-active": active,
132
+ "aria-pressed": active,
133
+ disabled: busy,
134
+ title: domain.description,
135
+ onClick: () => onChange(toggled(domain.name)),
136
+ className: active ? "gap-1.5 rounded-full border border-doom-green/50 bg-doom-green/10 pl-2 pr-3 font-medium text-doom-green hover:bg-doom-green/15 hover:text-doom-green" : "rounded-full border border-doom-border-soft px-3 text-doom-dim hover:border-doom-border hover:text-doom-hi",
137
+ children: [active ? /* @__PURE__ */ jsx(CheckIcon, {
138
+ "aria-hidden": true,
139
+ className: "size-3.5"
140
+ }) : null, domain.name]
141
+ }, domain.name);
142
+ }), view.catalogs.domains.length === 0 ? /* @__PURE__ */ jsx("span", {
143
+ className: "text-sm text-doom-dim",
144
+ children: "No domains are configured."
145
+ }) : null]
146
+ })]
147
+ });
148
+ }
149
+ function RepositorySettings({ repository }) {
150
+ const repositoryId = repository?.id ?? "";
151
+ const key = JSON.stringify(["repository", repositoryId]);
152
+ const [view, setView, viewState] = useDashboardState(`${key}/view`, void 0);
153
+ const [drafts, setDrafts] = useDashboardState(`${key}/drafts`, {});
154
+ const [busy, setBusy, busyState] = useDashboardState(`${key}/busy`, false);
155
+ const [error, setError] = useDashboardState(`${key}/error`, "");
156
+ const [note, setNote] = useDashboardState(`${key}/note`, "");
157
+ const dirty = Object.keys(drafts).length;
158
+ const reload = useCallback(async () => {
159
+ if (repositoryId === "") {
160
+ setView(void 0);
161
+ return;
162
+ }
163
+ if (busyState.state) return;
164
+ const previous = viewState.state;
165
+ const result = await readRepositorySettings(repositoryId);
166
+ if (busyState.state || viewState.state !== previous) return;
167
+ if (result.ok) {
168
+ setView(result.settings);
169
+ setError("");
170
+ return;
171
+ }
172
+ setView(void 0);
173
+ setError(result.error);
174
+ }, [
175
+ repositoryId,
176
+ busyState,
177
+ viewState,
178
+ setView,
179
+ setError
180
+ ]);
181
+ useEffect(() => {
182
+ reload();
183
+ }, [reload]);
184
+ const change = useCallback((key, value) => {
185
+ setNote("");
186
+ setDrafts((current) => ({
187
+ ...current,
188
+ [key]: value
189
+ }));
190
+ }, [setNote, setDrafts]);
191
+ const revert = useCallback((key) => {
192
+ setDrafts((current) => {
193
+ const next = { ...current };
194
+ delete next[key];
195
+ return next;
196
+ });
197
+ }, [setDrafts]);
198
+ const save = useCallback(async () => {
199
+ if (busyState.state || view === void 0 || dirty === 0) return;
200
+ setBusy(true);
201
+ setError("");
202
+ const result = await writeRepositorySelection({
203
+ repositoryId: view.repository.id,
204
+ expectedHash: view.hash,
205
+ changes: drafts
206
+ });
207
+ setBusy(false);
208
+ if (!result.ok) {
209
+ setError(result.error);
210
+ await reload();
211
+ return;
212
+ }
213
+ setView(result.settings);
214
+ setDrafts((current) => current === drafts ? {} : current);
215
+ setNote("Saved. Run po sync, and the next session starts with these.");
216
+ for (const sessionId of Object.keys(sessionsStore.state.byId)) refreshSessionFacts(sessionId);
217
+ }, [
218
+ busyState,
219
+ dirty,
220
+ drafts,
221
+ reload,
222
+ view,
223
+ setBusy,
224
+ setError,
225
+ setView,
226
+ setDrafts,
227
+ setNote
228
+ ]);
229
+ const modeDirty = hasDraft(drafts, "majorMode");
230
+ const domainDirty = hasDraft(drafts, "domains");
231
+ const profileDirty = hasDraft(drafts, "profile");
232
+ return /* @__PURE__ */ jsxs(SettingsPage, {
233
+ "data-testid": "repository-settings",
234
+ children: [
235
+ /* @__PURE__ */ jsxs(SettingsHeader, { children: [/* @__PURE__ */ jsx(SettingsTitle, { children: "Defaults" }), /* @__PURE__ */ jsx(SettingsDescription, { children: "What a new session in this repository starts with. Sessions already open keep what they have." })] }),
236
+ repository === null ? /* @__PURE__ */ jsx(SettingsCard, { children: /* @__PURE__ */ jsx(SettingsRow, {
237
+ "data-testid": "repository-settings-empty",
238
+ children: /* @__PURE__ */ jsxs(SettingsRowText, { children: [/* @__PURE__ */ jsx(SettingsRowTitle, { children: "No repository yet" }), /* @__PURE__ */ jsxs(SettingsRowDescription, { children: [
239
+ "Open a session inside a Git or ",
240
+ /* @__PURE__ */ jsx("code", {
241
+ className: "font-mono",
242
+ children: ".po"
243
+ }),
244
+ " repository to set its defaults here."
245
+ ] })] })
246
+ }) }) : null,
247
+ error === "" ? null : /* @__PURE__ */ jsx("p", {
248
+ "data-testid": "repository-settings-error",
249
+ role: "alert",
250
+ className: "text-sm leading-relaxed text-doom-red",
251
+ children: error
252
+ }),
253
+ view === void 0 ? null : /* @__PURE__ */ jsxs("div", {
254
+ className: "flex min-w-0 flex-col gap-4",
255
+ children: [/* @__PURE__ */ jsxs(SettingsCard, { children: [
256
+ /* @__PURE__ */ jsx(SingleAxis, {
257
+ id: "major-mode",
258
+ label: "Major mode",
259
+ detail: "The extensions and package layers a session is built from.",
260
+ options: view.catalogs.majorModes,
261
+ effective: view.selection.majorMode.effective,
262
+ repositoryValue: view.selection.majorMode.repository,
263
+ origin: view.selection.majorMode.origin,
264
+ draft: modeDirty ? drafts.majorMode : void 0,
265
+ dirty: modeDirty,
266
+ busy,
267
+ onChange: (value) => change("majorMode", value),
268
+ onRevert: () => revert("majorMode")
269
+ }),
270
+ /* @__PURE__ */ jsx(DomainsAxis, {
271
+ view,
272
+ draft: domainDirty ? drafts.domains : void 0,
273
+ dirty: domainDirty,
274
+ busy,
275
+ onChange: (value) => change("domains", value),
276
+ onRevert: () => revert("domains")
277
+ }),
278
+ /* @__PURE__ */ jsx(SingleAxis, {
279
+ id: "profile",
280
+ label: "Profile",
281
+ detail: "The persona a new session in this repository starts with.",
282
+ options: view.catalogs.profiles,
283
+ effective: view.selection.profile.effective,
284
+ repositoryValue: view.selection.profile.repository,
285
+ origin: view.selection.profile.origin,
286
+ draft: profileDirty ? drafts.profile : void 0,
287
+ dirty: profileDirty,
288
+ busy,
289
+ onChange: (value) => change("profile", value),
290
+ onRevert: () => revert("profile")
291
+ })
292
+ ] }), /* @__PURE__ */ jsxs(SettingsActions, { children: [
293
+ /* @__PURE__ */ jsx(Button, {
294
+ variant: dirty > 0 ? "primary" : "outline",
295
+ size: "sm",
296
+ "data-testid": "repository-settings-save",
297
+ loading: busy,
298
+ disabled: busy || dirty === 0,
299
+ onClick: () => void save(),
300
+ children: "Save defaults"
301
+ }),
302
+ dirty === 0 ? null : /* @__PURE__ */ jsx(Button, {
303
+ variant: "ghost",
304
+ size: "sm",
305
+ disabled: busy,
306
+ onClick: () => setDrafts({}),
307
+ children: "Discard"
308
+ }),
309
+ /* @__PURE__ */ jsx(SettingsNote, { children: dirty > 0 ? `${String(dirty)} unsaved ${dirty === 1 ? "change" : "changes"}.` : note })
310
+ ] })]
311
+ })
312
+ ]
313
+ });
314
+ }
315
+ //#endregion
316
+ export { RepositorySettings };
317
+
318
+ //# sourceMappingURL=RepositorySettings.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepositorySettings.mjs","names":[],"sources":["../../../../src/web/features/settings/RepositorySettings.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n CheckIcon,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n SettingsActions,\n SettingsCard,\n SettingsDescription,\n SettingsHeader,\n SettingsNote,\n SettingsPage,\n SettingsRow,\n SettingsRowDescription,\n SettingsRowText,\n SettingsRowTitle,\n SettingsTitle,\n} from '@agimon-ai/po-web-components';\nimport type { ReactNode } from 'react';\nimport { useCallback, useEffect } from 'react';\n\nimport type {\n RepositoryCatalogOption,\n RepositorySelectionChanges,\n RepositorySettingsView,\n SettingsOrigin,\n SettingsRepository,\n} from '../../../types/settings';\nimport { readRepositorySettings, writeRepositorySelection } from '../../lib/settingsApi';\nimport { useDashboardState } from '../../stores/dashboardStateStore';\nimport { sessionsStore } from '../../stores/sessionsStore';\nimport { refreshSessionFacts } from '../../stores/sessionStore';\n\n/** Repository selection controls shared with package-owned management panels. */\n\nconst INHERIT_VALUE = '__inherit__';\n\nfunction optionDetail(options: readonly RepositoryCatalogOption[], name: string | undefined): string {\n if (name === undefined) return '';\n const option = options.find((candidate) => candidate.name === name);\n if (option === undefined) return `Configured value '${name}' is not in the effective catalog.`;\n return option.description ?? (option.layers ? `Layers: ${option.layers.join(', ') || 'none'}.` : '');\n}\n\n/**\n * The title line, description and per-axis undo shared by every axis row.\n *\n * Origin is quiet on purpose: a catalog default says nothing, a value from the\n * global config says so in faint text, and a value set here is marked by the\n * row's jade edge (named for assistive tech) and offers Reset.\n */\nfunction AxisText({\n label,\n dirty,\n origin,\n busy,\n children,\n onRevert,\n onClear,\n}: {\n label: string;\n dirty: boolean;\n origin: SettingsOrigin;\n busy: boolean;\n children: ReactNode;\n onRevert: () => void;\n onClear: () => void;\n}) {\n return (\n <SettingsRowText className=\"gap-1\">\n <SettingsRowTitle className=\"flex min-h-6 flex-wrap items-center gap-x-2 gap-y-1\">\n {label}\n {origin === 'repository' ? <span className=\"sr-only\">, set for this repository</span> : null}\n {origin === 'global' ? <span className=\"text-sm font-normal text-doom-dim\">From global</span> : null}\n {dirty ? <Badge tone=\"cyan\">Unsaved</Badge> : null}\n {dirty ? (\n <Button variant=\"ghost\" size=\"xs\" disabled={busy} onClick={onRevert} className=\"text-doom-dim\">\n Revert\n </Button>\n ) : origin === 'repository' ? (\n <Button variant=\"ghost\" size=\"xs\" disabled={busy} onClick={onClear} className=\"text-doom-dim\">\n Reset\n </Button>\n ) : null}\n </SettingsRowTitle>\n <SettingsRowDescription>{children}</SettingsRowDescription>\n </SettingsRowText>\n );\n}\n\nfunction hasDraft<K extends keyof RepositorySelectionChanges>(drafts: RepositorySelectionChanges, key: K): boolean {\n return Object.hasOwn(drafts, key);\n}\n\ninterface SingleAxisProps {\n id: 'major-mode' | 'profile';\n label: string;\n detail: string;\n options: readonly RepositoryCatalogOption[];\n effective: string | undefined;\n repositoryValue: string | undefined;\n origin: SettingsOrigin;\n draft: string | null | undefined;\n dirty: boolean;\n busy: boolean;\n onChange: (value: string | null) => void;\n onRevert: () => void;\n}\n\nfunction SingleAxis({\n id,\n label,\n detail,\n options,\n effective,\n repositoryValue,\n origin,\n draft,\n dirty,\n busy,\n onChange,\n onRevert,\n}: SingleAxisProps) {\n const value = dirty ? draft : repositoryValue;\n const selected = value === null || value === undefined ? INHERIT_VALUE : value;\n const inherited = effective === undefined ? 'Inherit (none)' : `Inherit (${effective})`;\n const shown = value === null || value === undefined ? effective : value;\n return (\n <SettingsRow\n data-testid={`repository-axis-${id}`}\n data-dirty={dirty}\n changed={origin === 'repository'}\n className=\"items-start\"\n >\n <AxisText\n label={label}\n dirty={dirty}\n origin={origin}\n busy={busy}\n onRevert={onRevert}\n onClear={() => onChange(null)}\n >\n {optionDetail(options, shown) || detail}\n </AxisText>\n <Select value={selected} disabled={busy} onValueChange={(next) => onChange(next === INHERIT_VALUE ? null : next)}>\n <SelectTrigger data-testid={`repository-select-${id}`} aria-label={label} className=\"w-full text-sm sm:w-64\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={INHERIT_VALUE}>{inherited}</SelectItem>\n {options.map((option) => (\n <SelectItem key={option.name} value={option.name}>\n {option.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </SettingsRow>\n );\n}\n\ninterface DomainsAxisProps {\n view: RepositorySettingsView;\n draft: readonly string[] | null | undefined;\n dirty: boolean;\n busy: boolean;\n onChange: (value: readonly string[] | null) => void;\n onRevert: () => void;\n}\n\nfunction DomainsAxis({ view, draft, dirty, busy, onChange, onRevert }: DomainsAxisProps) {\n const axis = view.selection.domains;\n const inherited = axis.effective ?? [];\n const selected = dirty ? (draft ?? inherited) : (axis.repository ?? inherited);\n const selectedNames = new Set(selected);\n const toggled = (name: string): readonly string[] =>\n selectedNames.has(name) ? selected.filter((entry) => entry !== name) : [...selected, name];\n\n return (\n <SettingsRow\n data-testid=\"repository-axis-domains\"\n data-dirty={dirty}\n changed={axis.origin === 'repository'}\n className=\"items-start\"\n >\n <AxisText\n label=\"Domains\"\n dirty={dirty}\n origin={axis.origin}\n busy={busy}\n onRevert={onRevert}\n onClear={() => onChange(null)}\n >\n The plugin sets a new session in this repository loads. Pick any number.\n </AxisText>\n <div role=\"group\" aria-label=\"Domains\" className=\"flex basis-full flex-wrap items-center gap-2\">\n {view.catalogs.domains.map((domain) => {\n const active = selectedNames.has(domain.name);\n return (\n <Button\n key={domain.name}\n variant=\"ghost\"\n size=\"sm\"\n data-testid={`repository-domain-${domain.name}`}\n data-active={active}\n aria-pressed={active}\n disabled={busy}\n title={domain.description}\n onClick={() => onChange(toggled(domain.name))}\n className={\n active\n ? 'gap-1.5 rounded-full border border-doom-green/50 bg-doom-green/10 pl-2 pr-3 font-medium text-doom-green hover:bg-doom-green/15 hover:text-doom-green'\n : 'rounded-full border border-doom-border-soft px-3 text-doom-dim hover:border-doom-border hover:text-doom-hi'\n }\n >\n {active ? <CheckIcon aria-hidden className=\"size-3.5\" /> : null}\n {domain.name}\n </Button>\n );\n })}\n {view.catalogs.domains.length === 0 ? (\n <span className=\"text-sm text-doom-dim\">No domains are configured.</span>\n ) : null}\n </div>\n </SettingsRow>\n );\n}\n\nexport function RepositorySettings({ repository }: { repository: SettingsRepository | null }) {\n const repositoryId = repository?.id ?? '';\n const key = JSON.stringify(['repository', repositoryId]);\n const [view, setView, viewState] = useDashboardState<RepositorySettingsView | undefined>(`${key}/view`, undefined);\n const [drafts, setDrafts] = useDashboardState<RepositorySelectionChanges>(`${key}/drafts`, {});\n const [busy, setBusy, busyState] = useDashboardState(`${key}/busy`, false);\n const [error, setError] = useDashboardState(`${key}/error`, '');\n const [note, setNote] = useDashboardState(`${key}/note`, '');\n const dirty = Object.keys(drafts).length;\n\n const reload = useCallback(async (): Promise<void> => {\n if (repositoryId === '') {\n setView(undefined);\n return;\n }\n if (busyState.state) return;\n const previous = viewState.state;\n const result = await readRepositorySettings(repositoryId);\n if (busyState.state || viewState.state !== previous) return;\n if (result.ok) {\n setView(result.settings);\n setError('');\n return;\n }\n setView(undefined);\n setError(result.error);\n }, [repositoryId, busyState, viewState, setView, setError]);\n\n useEffect(() => {\n // eslint-disable-next-line react/set-state-in-effect -- reads the repository settings over HTTP; the state is the response.\n void reload();\n }, [reload]);\n\n const change = useCallback(\n <K extends keyof RepositorySelectionChanges>(key: K, value: RepositorySelectionChanges[K]) => {\n setNote('');\n setDrafts((current) => ({ ...current, [key]: value }));\n },\n [setNote, setDrafts],\n );\n\n const revert = useCallback(\n (key: keyof RepositorySelectionChanges) => {\n setDrafts((current) => {\n const next = { ...current };\n delete next[key];\n return next;\n });\n },\n [setDrafts],\n );\n\n const save = useCallback(async (): Promise<void> => {\n if (busyState.state || view === undefined || dirty === 0) return;\n setBusy(true);\n setError('');\n const result = await writeRepositorySelection({\n repositoryId: view.repository.id,\n expectedHash: view.hash,\n changes: drafts,\n });\n setBusy(false);\n if (!result.ok) {\n setError(result.error);\n await reload();\n return;\n }\n setView(result.settings);\n setDrafts((current) => (current === drafts ? {} : current));\n setNote('Saved. Run po sync, and the next session starts with these.');\n for (const sessionId of Object.keys(sessionsStore.state.byId)) refreshSessionFacts(sessionId);\n }, [busyState, dirty, drafts, reload, view, setBusy, setError, setView, setDrafts, setNote]);\n\n const modeDirty = hasDraft(drafts, 'majorMode');\n const domainDirty = hasDraft(drafts, 'domains');\n const profileDirty = hasDraft(drafts, 'profile');\n\n return (\n <SettingsPage data-testid=\"repository-settings\">\n <SettingsHeader>\n <SettingsTitle>Defaults</SettingsTitle>\n <SettingsDescription>\n What a new session in this repository starts with. Sessions already open keep what they have.\n </SettingsDescription>\n </SettingsHeader>\n\n {repository === null ? (\n <SettingsCard>\n <SettingsRow data-testid=\"repository-settings-empty\">\n <SettingsRowText>\n <SettingsRowTitle>No repository yet</SettingsRowTitle>\n <SettingsRowDescription>\n Open a session inside a Git or <code className=\"font-mono\">.po</code> repository to set its defaults\n here.\n </SettingsRowDescription>\n </SettingsRowText>\n </SettingsRow>\n </SettingsCard>\n ) : null}\n\n {error === '' ? null : (\n <p data-testid=\"repository-settings-error\" role=\"alert\" className=\"text-sm leading-relaxed text-doom-red\">\n {error}\n </p>\n )}\n\n {view === undefined ? null : (\n <div className=\"flex min-w-0 flex-col gap-4\">\n <SettingsCard>\n <SingleAxis\n id=\"major-mode\"\n label=\"Major mode\"\n detail=\"The extensions and package layers a session is built from.\"\n options={view.catalogs.majorModes}\n effective={view.selection.majorMode.effective}\n repositoryValue={view.selection.majorMode.repository}\n origin={view.selection.majorMode.origin}\n draft={modeDirty ? drafts.majorMode : undefined}\n dirty={modeDirty}\n busy={busy}\n onChange={(value) => change('majorMode', value)}\n onRevert={() => revert('majorMode')}\n />\n <DomainsAxis\n view={view}\n draft={domainDirty ? drafts.domains : undefined}\n dirty={domainDirty}\n busy={busy}\n onChange={(value) => change('domains', value)}\n onRevert={() => revert('domains')}\n />\n <SingleAxis\n id=\"profile\"\n label=\"Profile\"\n detail=\"The persona a new session in this repository starts with.\"\n options={view.catalogs.profiles}\n effective={view.selection.profile.effective}\n repositoryValue={view.selection.profile.repository}\n origin={view.selection.profile.origin}\n draft={profileDirty ? drafts.profile : undefined}\n dirty={profileDirty}\n busy={busy}\n onChange={(value) => change('profile', value)}\n onRevert={() => revert('profile')}\n />\n </SettingsCard>\n <SettingsActions>\n <Button\n variant={dirty > 0 ? 'primary' : 'outline'}\n size=\"sm\"\n data-testid=\"repository-settings-save\"\n loading={busy}\n disabled={busy || dirty === 0}\n onClick={() => void save()}\n >\n Save defaults\n </Button>\n {dirty === 0 ? null : (\n <Button variant=\"ghost\" size=\"sm\" disabled={busy} onClick={() => setDrafts({})}>\n Discard\n </Button>\n )}\n <SettingsNote>\n {dirty > 0 ? `${String(dirty)} unsaved ${dirty === 1 ? 'change' : 'changes'}.` : note}\n </SettingsNote>\n </SettingsActions>\n </div>\n )}\n </SettingsPage>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ const require_sealedSession = require("../../lib/sealedSession.cjs");
2
+ const require_stepUp = require("../../lib/stepUp.cjs");
3
+ const require_pluginCompositions = require("../../lib/pluginCompositions.cjs");
4
+ const require_settingsApi = require("../../lib/settingsApi.cjs");
5
+ const require_workspacesStore = require("../../stores/workspacesStore.cjs");
6
+ const require_ContributedSettings = require("./ContributedSettings.cjs");
7
+ const require_RepositorySettings = require("./RepositorySettings.cjs");
8
+ const require_SettingsMenu = require("./SettingsMenu.cjs");
9
+ let react = require("react");
10
+ let _tanstack_react_store = require("@tanstack/react-store");
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ let _agimon_ai_po_web_components = require("@agimon-ai/po-web-components");
13
+ //#region src/web/features/settings/RepositoryWorkspace.tsx
14
+ const LAST_REPOSITORY_KEY = "po.settings.repository";
15
+ const requestThroughSealedSession = (input, init) => require_sealedSession.sealedHttpSession.fetch(input, init);
16
+ function rememberedRepository() {
17
+ try {
18
+ return localStorage.getItem(LAST_REPOSITORY_KEY) ?? "";
19
+ } catch {
20
+ return "";
21
+ }
22
+ }
23
+ function rememberRepository(repositoryId) {
24
+ try {
25
+ localStorage.setItem(LAST_REPOSITORY_KEY, repositoryId);
26
+ } catch {}
27
+ }
28
+ function RepositoryWorkspace({ current, initialRepositoryId, onRepositoryChange, onReady }) {
29
+ const workspaceFingerprint = (0, _tanstack_react_store.useStore)(require_workspacesStore.workspacesStore, (state) => state.order.join("\n"));
30
+ const [repositories, setRepositories] = (0, react.useState)([]);
31
+ const [repositoryId, setRepositoryId] = (0, react.useState)(() => initialRepositoryId ?? rememberedRepository());
32
+ const [loading, setLoading] = (0, react.useState)(true);
33
+ const repository = (0, react.useMemo)(() => repositories.find((candidate) => candidate.id === repositoryId) ?? null, [repositories, repositoryId]);
34
+ (0, react.useEffect)(() => {
35
+ let currentRequest = true;
36
+ setLoading(true);
37
+ require_settingsApi.listSettingsRepositories().then((found) => {
38
+ if (!currentRequest) return;
39
+ setRepositories(found);
40
+ setRepositoryId((selected) => {
41
+ const next = found.some((candidate) => candidate.id === selected) ? selected : found.find((candidate) => candidate.active)?.id ?? found[0]?.id ?? "";
42
+ if (next) rememberRepository(next);
43
+ return next;
44
+ });
45
+ setLoading(false);
46
+ });
47
+ return () => {
48
+ currentRequest = false;
49
+ };
50
+ }, [workspaceFingerprint]);
51
+ (0, react.useEffect)(() => {
52
+ if (loading) return;
53
+ let cancelled = false;
54
+ require_pluginCompositions.focusWorkspaceWebPlugins(repositoryId || null).then(() => {
55
+ if (!cancelled) onReady?.(true);
56
+ }).catch((error) => console.error(error));
57
+ return () => {
58
+ cancelled = true;
59
+ };
60
+ }, [
61
+ repositoryId,
62
+ loading,
63
+ onReady
64
+ ]);
65
+ const selectRepository = (next) => {
66
+ setRepositoryId(next);
67
+ rememberRepository(next);
68
+ onRepositoryChange?.(next);
69
+ };
70
+ const panel = current.repositoryPanel;
71
+ const Panel = panel?.component;
72
+ const groups = [{
73
+ label: "Open",
74
+ items: repositories.filter((candidate) => candidate.active)
75
+ }, {
76
+ label: "Recent",
77
+ items: repositories.filter((candidate) => !candidate.active)
78
+ }].filter((group) => group.items.length > 0);
79
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
80
+ className: "flex min-h-0 flex-1 flex-col",
81
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
82
+ className: "flex min-w-0 shrink-0 items-center gap-3 border-b border-doom-border-soft px-3 py-2.5 sm:px-5 lg:px-6",
83
+ children: [
84
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.Select, {
85
+ value: repositoryId,
86
+ disabled: loading || repositories.length === 0,
87
+ onValueChange: selectRepository,
88
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SelectTrigger, {
89
+ "data-testid": "repository-workspace-picker",
90
+ "aria-label": "Repository",
91
+ className: "w-48 shrink-0 text-sm font-medium sm:w-60",
92
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SelectValue, { placeholder: loading ? "Reading repositories…" : "Pick a repository" })
93
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SelectContent, { children: groups.map((group) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SelectGroup, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SelectLabel, { children: group.label }), group.items.map((candidate) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SelectItem, {
94
+ value: candidate.id,
95
+ children: candidate.name
96
+ }, candidate.id))] }, group.label)) })]
97
+ }),
98
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
99
+ title: repository?.path,
100
+ className: "min-w-0 flex-1 truncate font-mono text-sm text-doom-dim",
101
+ children: repository?.path
102
+ }),
103
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Button, {
104
+ variant: "ghost",
105
+ size: "icon-md",
106
+ "aria-label": "Refresh repositories",
107
+ title: "Refresh repositories",
108
+ loading,
109
+ disabled: loading,
110
+ onClick: () => {
111
+ setLoading(true);
112
+ require_settingsApi.listSettingsRepositories().then((found) => {
113
+ setRepositories(found);
114
+ setLoading(false);
115
+ });
116
+ },
117
+ className: "shrink-0 text-doom-dim",
118
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.RefreshIcon, {
119
+ "aria-hidden": true,
120
+ className: "size-4"
121
+ })
122
+ })
123
+ ]
124
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
125
+ className: "flex min-h-0 flex-1 flex-col lg:flex-row",
126
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SettingsMenu.SettingsMenu, {
127
+ active: current.id,
128
+ workspace: "repository",
129
+ repositoryId
130
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("section", {
131
+ "data-testid": "settings-content",
132
+ className: "min-w-0 flex-1 overflow-y-auto px-3 py-3 sm:px-5 sm:py-5 lg:px-8",
133
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
134
+ className: "mx-auto flex w-full max-w-[720px] flex-col gap-8",
135
+ children: [
136
+ current.id === "repositories" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_RepositorySettings.RepositorySettings, { repository }) : null,
137
+ current.contribution === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ContributedSettings.ContributedSettings, {
138
+ section: current.contribution,
139
+ scope: "repository",
140
+ repoRoot: repository?.path ?? "",
141
+ workspaceId: repository?.id
142
+ }),
143
+ panel === void 0 || Panel === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsPage, {
144
+ "data-testid": `repository-settings-panel-${panel.pluginId}`,
145
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsHeader, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsTitle, { children: panel.label }), panel.detail ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsDescription, { children: panel.detail }) : null] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Panel, {
146
+ repository,
147
+ request: requestThroughSealedSession,
148
+ requestWithStepUp: require_stepUp.fetchWithStepUp
149
+ })]
150
+ })
151
+ ]
152
+ })
153
+ })]
154
+ })]
155
+ });
156
+ }
157
+ //#endregion
158
+ exports.RepositoryWorkspace = RepositoryWorkspace;
159
+
160
+ //# sourceMappingURL=RepositoryWorkspace.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepositoryWorkspace.cjs","names":["sealedHttpSession","useStore","workspacesStore","useState","useMemo","listSettingsRepositories","focusWorkspaceWebPlugins","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","SelectItem","Button","RefreshIcon","SettingsMenu","RepositorySettings","ContributedSettings","SettingsPage","SettingsHeader","SettingsTitle","SettingsDescription","fetchWithStepUp"],"sources":["../../../../src/web/features/settings/RepositoryWorkspace.tsx"],"sourcesContent":["import {\n Button,\n RefreshIcon,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue,\n SettingsDescription,\n SettingsHeader,\n SettingsPage,\n SettingsTitle,\n} from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\nimport { useEffect, useMemo, useState } from 'react';\n\nimport type { SettingsRepository } from '../../../types/settings';\nimport { focusWorkspaceWebPlugins } from '../../lib/pluginCompositions';\nimport { sealedHttpSession } from '../../lib/sealedSession';\nimport { listSettingsRepositories } from '../../lib/settingsApi';\nimport type { SettingsSection } from '../../lib/settingsSections';\nimport { fetchWithStepUp } from '../../lib/stepUp';\nimport { workspacesStore } from '../../stores/workspacesStore';\nimport { ContributedSettings } from './ContributedSettings';\nimport { RepositorySettings } from './RepositorySettings';\nimport { SettingsMenu } from './SettingsMenu';\n\nconst LAST_REPOSITORY_KEY = 'po.settings.repository';\n\nconst requestThroughSealedSession = (input: string, init?: RequestInit): Promise<Response> =>\n sealedHttpSession.fetch(input, init);\n\nfunction rememberedRepository(): string {\n try {\n return localStorage.getItem(LAST_REPOSITORY_KEY) ?? '';\n } catch {\n return '';\n }\n}\n\nfunction rememberRepository(repositoryId: string): void {\n try {\n localStorage.setItem(LAST_REPOSITORY_KEY, repositoryId);\n } catch {\n // Browser storage is optional. The picker still works for this page load.\n }\n}\n\nexport function RepositoryWorkspace({\n current,\n initialRepositoryId,\n onRepositoryChange,\n onReady,\n}: {\n current: SettingsSection;\n initialRepositoryId?: string;\n onRepositoryChange?: (repositoryId: string) => void;\n onReady?: (ready: boolean) => void;\n}) {\n const workspaceFingerprint = useStore(workspacesStore, (state) => state.order.join('\\n'));\n const [repositories, setRepositories] = useState<readonly SettingsRepository[]>([]);\n const [repositoryId, setRepositoryId] = useState(() => initialRepositoryId ?? rememberedRepository());\n const [loading, setLoading] = useState(true);\n const repository = useMemo(\n () => repositories.find((candidate) => candidate.id === repositoryId) ?? null,\n [repositories, repositoryId],\n );\n\n useEffect(() => {\n let currentRequest = true;\n // eslint-disable-next-line react/set-state-in-effect -- marks the in-flight request that lists the hub's repositories over HTTP.\n setLoading(true);\n void listSettingsRepositories().then((found) => {\n if (!currentRequest) return;\n setRepositories(found);\n setRepositoryId((selected) => {\n const next = found.some((candidate) => candidate.id === selected)\n ? selected\n : (found.find((candidate) => candidate.active)?.id ?? found[0]?.id ?? '');\n if (next) rememberRepository(next);\n return next;\n });\n setLoading(false);\n });\n return () => {\n currentRequest = false;\n };\n }, [workspaceFingerprint]);\n\n useEffect(() => {\n if (loading) return;\n let cancelled = false;\n void focusWorkspaceWebPlugins(repositoryId || null)\n .then(() => {\n if (!cancelled) onReady?.(true);\n })\n .catch((error: unknown) => console.error(error));\n return () => {\n cancelled = true;\n };\n }, [repositoryId, loading, onReady]);\n\n const selectRepository = (next: string): void => {\n setRepositoryId(next);\n rememberRepository(next);\n onRepositoryChange?.(next);\n };\n const panel = current.repositoryPanel;\n const Panel = panel?.component;\n // Open and recent are where a repository is, not what it is called, so the\n // menu groups by them instead of repeating a status after every name.\n const groups = [\n { label: 'Open', items: repositories.filter((candidate) => candidate.active) },\n { label: 'Recent', items: repositories.filter((candidate) => !candidate.active) },\n ].filter((group) => group.items.length > 0);\n\n return (\n <div className=\"flex min-h-0 flex-1 flex-col\">\n <div className=\"flex min-w-0 shrink-0 items-center gap-3 border-b border-doom-border-soft px-3 py-2.5 sm:px-5 lg:px-6\">\n <Select value={repositoryId} disabled={loading || repositories.length === 0} onValueChange={selectRepository}>\n <SelectTrigger\n data-testid=\"repository-workspace-picker\"\n aria-label=\"Repository\"\n className=\"w-48 shrink-0 text-sm font-medium sm:w-60\"\n >\n <SelectValue placeholder={loading ? 'Reading repositories…' : 'Pick a repository'} />\n </SelectTrigger>\n <SelectContent>\n {groups.map((group) => (\n <SelectGroup key={group.label}>\n <SelectLabel>{group.label}</SelectLabel>\n {group.items.map((candidate) => (\n <SelectItem key={candidate.id} value={candidate.id}>\n {candidate.name}\n </SelectItem>\n ))}\n </SelectGroup>\n ))}\n </SelectContent>\n </Select>\n <span title={repository?.path} className=\"min-w-0 flex-1 truncate font-mono text-sm text-doom-dim\">\n {repository?.path}\n </span>\n <Button\n variant=\"ghost\"\n size=\"icon-md\"\n aria-label=\"Refresh repositories\"\n title=\"Refresh repositories\"\n loading={loading}\n disabled={loading}\n onClick={() => {\n setLoading(true);\n void listSettingsRepositories().then((found) => {\n setRepositories(found);\n setLoading(false);\n });\n }}\n className=\"shrink-0 text-doom-dim\"\n >\n <RefreshIcon aria-hidden className=\"size-4\" />\n </Button>\n </div>\n <div className=\"flex min-h-0 flex-1 flex-col lg:flex-row\">\n <SettingsMenu active={current.id} workspace=\"repository\" repositoryId={repositoryId} />\n <section\n data-testid=\"settings-content\"\n className=\"min-w-0 flex-1 overflow-y-auto px-3 py-3 sm:px-5 sm:py-5 lg:px-8\"\n >\n {/* Same column width the general workspace uses. */}\n <div className=\"mx-auto flex w-full max-w-[720px] flex-col gap-8\">\n {current.id === 'repositories' ? <RepositorySettings repository={repository} /> : null}\n {current.contribution === undefined ? null : (\n <ContributedSettings\n section={current.contribution}\n scope=\"repository\"\n repoRoot={repository?.path ?? ''}\n workspaceId={repository?.id}\n />\n )}\n {panel === undefined || Panel === undefined ? null : (\n <SettingsPage data-testid={`repository-settings-panel-${panel.pluginId}`}>\n <SettingsHeader>\n <SettingsTitle>{panel.label}</SettingsTitle>\n {panel.detail ? <SettingsDescription>{panel.detail}</SettingsDescription> : null}\n </SettingsHeader>\n <Panel\n repository={repository}\n request={requestThroughSealedSession}\n requestWithStepUp={fetchWithStepUp}\n />\n </SettingsPage>\n )}\n </div>\n </section>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { SettingsSection } from "../../lib/settingsSections.mjs";
2
+ //#region src/web/features/settings/RepositoryWorkspace.d.ts
3
+ export declare function RepositoryWorkspace({ current, initialRepositoryId, onRepositoryChange, onReady }: {
4
+ current: SettingsSection;
5
+ initialRepositoryId?: string;
6
+ onRepositoryChange?: (repositoryId: string) => void;
7
+ onReady?: (ready: boolean) => void;
8
+ }): import("react").JSX.Element;
9
+ //#endregion
10
+ //# sourceMappingURL=RepositoryWorkspace.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepositoryWorkspace.d.mts","names":[],"sources":["../../../../src/web/features/settings/RepositoryWorkspace.tsx"],"mappings":";;wBAkDgB,sBACd,SACA,qBACA,oBACA;EAEA,SAAS;EACT;EACA,sBAAsB;EACtB,WAAW;oBACZ,IAAA"}