@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,106 @@
1
+ import { installedWebPlugins, webPluginDiagnostics } from "../../lib/pluginRegistry.mjs";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { SettingsCard, SettingsDescription, SettingsHeader, SettingsPage, SettingsRow, SettingsRowDescription, SettingsRowText, SettingsRowTitle, SettingsSection, SettingsSectionDescription, SettingsSectionHeader, SettingsSectionTitle, SettingsTitle } from "@agimon-ai/po-web-components";
4
+ //#region src/web/features/settings/PluginSettings.tsx
5
+ /** What one plugin contributes, as counts: enough to see it landed without opening its code. */
6
+ function contributions(plugin) {
7
+ const parts = [];
8
+ const scopes = [plugin, ...[
9
+ plugin.global,
10
+ plugin.workspace,
11
+ plugin.session
12
+ ].filter((scope) => scope !== void 0)];
13
+ const count = (label, select) => {
14
+ const total = scopes.reduce((sum, scope) => sum + (select(scope)?.length ?? 0), 0);
15
+ if (total > 0) parts.push(`${String(total)} ${label}`);
16
+ };
17
+ count("tabs", (scope) => scope.tabs);
18
+ count("channels", (scope) => scope.channels);
19
+ count("tool renderers", (scope) => scope.toolRenderers);
20
+ count("activity groups", (scope) => scope.activityGroups);
21
+ count("activity sections", (scope) => scope.activitySections);
22
+ count("composer menu items", (scope) => scope.composerMenuItems);
23
+ count("minor modes", (scope) => scope.minorModes);
24
+ count("selection axes", (scope) => scope.selectionAxes);
25
+ count("leader bindings", (scope) => scope.leaderBindings);
26
+ count("slots", (scope) => scope.slots);
27
+ count("fills", (scope) => scope.fills);
28
+ return parts;
29
+ }
30
+ /**
31
+ * The plugins page: the web plugins this bundle carries and what the install
32
+ * had to resolve between them. Both are read once from the registry, which
33
+ * is complete before the first render; a plugin comes or goes with the next
34
+ * po sync, never at runtime.
35
+ */
36
+ function PluginSettings() {
37
+ const plugins = installedWebPlugins();
38
+ const diagnostics = webPluginDiagnostics();
39
+ return /* @__PURE__ */ jsxs(SettingsPage, {
40
+ "data-testid": "settings-plugins",
41
+ children: [
42
+ /* @__PURE__ */ jsxs(SettingsHeader, { children: [/* @__PURE__ */ jsx(SettingsTitle, { children: "Plugins" }), /* @__PURE__ */ jsxs(SettingsDescription, { children: [
43
+ "The web plugins built into this copy of Po, and anything Po had to settle between them. Run",
44
+ " ",
45
+ /* @__PURE__ */ jsx("code", {
46
+ className: "font-mono",
47
+ children: "po sync"
48
+ }),
49
+ " after installing a package to add its plugin here."
50
+ ] })] }),
51
+ /* @__PURE__ */ jsxs(SettingsSection, { children: [/* @__PURE__ */ jsxs(SettingsSectionHeader, { children: [/* @__PURE__ */ jsx(SettingsSectionTitle, { children: "Installed" }), plugins.length > 0 ? /* @__PURE__ */ jsxs("span", {
52
+ className: "text-sm text-doom-dim tabular-nums",
53
+ children: [plugins.length, " plugins"]
54
+ }) : null] }), plugins.length === 0 ? /* @__PURE__ */ jsx(SettingsCard, { children: /* @__PURE__ */ jsx(SettingsRow, {
55
+ "data-testid": "settings-plugins-empty",
56
+ children: /* @__PURE__ */ jsxs(SettingsRowText, { children: [/* @__PURE__ */ jsx(SettingsRowTitle, { children: "No web plugins yet" }), /* @__PURE__ */ jsxs(SettingsRowDescription, { children: [
57
+ "Run ",
58
+ /* @__PURE__ */ jsx("code", {
59
+ className: "font-mono",
60
+ children: "po sync"
61
+ }),
62
+ " to build the installed packages into Po."
63
+ ] })] })
64
+ }) }) : /* @__PURE__ */ jsx(SettingsCard, {
65
+ asChild: true,
66
+ children: /* @__PURE__ */ jsx("ul", { children: plugins.map((plugin) => /* @__PURE__ */ jsx(SettingsRow, {
67
+ asChild: true,
68
+ className: "py-3",
69
+ children: /* @__PURE__ */ jsx("li", {
70
+ "data-testid": `settings-plugin-${plugin.id}`,
71
+ children: /* @__PURE__ */ jsxs(SettingsRowText, { children: [/* @__PURE__ */ jsx(SettingsRowTitle, {
72
+ className: "font-mono first-letter:normal-case",
73
+ children: plugin.id
74
+ }), /* @__PURE__ */ jsx(SettingsRowDescription, { children: contributions(plugin).join(" · ") || "No contributions" })] })
75
+ })
76
+ }, plugin.id)) })
77
+ })] }),
78
+ /* @__PURE__ */ jsxs(SettingsSection, { children: [/* @__PURE__ */ jsxs(SettingsSectionHeader, { children: [/* @__PURE__ */ jsx(SettingsSectionTitle, { children: "Conflicts" }), /* @__PURE__ */ jsx(SettingsSectionDescription, { children: "When two plugins want the same tab, tool, group or key, Po keeps one and notes the other here instead of breaking the page." })] }), diagnostics.length === 0 ? /* @__PURE__ */ jsx(SettingsCard, { children: /* @__PURE__ */ jsx(SettingsRow, {
79
+ "data-testid": "settings-plugin-diagnostics-empty",
80
+ children: /* @__PURE__ */ jsxs(SettingsRowText, { children: [/* @__PURE__ */ jsx(SettingsRowTitle, { children: "Nothing to settle" }), /* @__PURE__ */ jsx(SettingsRowDescription, { children: "No two plugins asked for the same name." })] })
81
+ }) }) : /* @__PURE__ */ jsx(SettingsCard, {
82
+ asChild: true,
83
+ children: /* @__PURE__ */ jsx("ul", { children: diagnostics.map((diagnostic, index) => /* @__PURE__ */ jsx(SettingsRow, {
84
+ asChild: true,
85
+ className: "py-3",
86
+ children: /* @__PURE__ */ jsx("li", {
87
+ "data-testid": `settings-plugin-diagnostic-${diagnostic.pluginId}`,
88
+ "data-kind": diagnostic.kind,
89
+ children: /* @__PURE__ */ jsxs(SettingsRowText, { children: [/* @__PURE__ */ jsxs(SettingsRowTitle, {
90
+ className: "font-mono first-letter:normal-case",
91
+ children: [
92
+ diagnostic.pluginId,
93
+ " · ",
94
+ diagnostic.kind
95
+ ]
96
+ }), /* @__PURE__ */ jsx(SettingsRowDescription, { children: diagnostic.message })] })
97
+ })
98
+ }, `${diagnostic.pluginId}:${diagnostic.kind}:${String(index)}`)) })
99
+ })] })
100
+ ]
101
+ });
102
+ }
103
+ //#endregion
104
+ export { PluginSettings };
105
+
106
+ //# sourceMappingURL=PluginSettings.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginSettings.mjs","names":[],"sources":["../../../../src/web/features/settings/PluginSettings.tsx"],"sourcesContent":["import type { WebPluginContributions, WebPluginDefinition } from '@agimon-ai/po-core/web';\nimport {\n SettingsCard,\n SettingsDescription,\n SettingsHeader,\n SettingsPage,\n SettingsRow,\n SettingsRowDescription,\n SettingsRowText,\n SettingsRowTitle,\n SettingsSection,\n SettingsSectionDescription,\n SettingsSectionHeader,\n SettingsSectionTitle,\n SettingsTitle,\n} from '@agimon-ai/po-web-components';\n\nimport { installedWebPlugins, webPluginDiagnostics } from '../../lib/pluginRegistry';\n\n/** What one plugin contributes, as counts: enough to see it landed without opening its code. */\nfunction contributions(plugin: WebPluginDefinition): string[] {\n const parts: string[] = [];\n const scopes: readonly WebPluginContributions[] = [\n plugin,\n ...[plugin.global, plugin.workspace, plugin.session].filter(\n (scope): scope is WebPluginContributions => scope !== undefined,\n ),\n ];\n const count = (label: string, select: (scope: WebPluginContributions) => readonly unknown[] | undefined): void => {\n const total = scopes.reduce((sum, scope) => sum + (select(scope)?.length ?? 0), 0);\n if (total > 0) parts.push(`${String(total)} ${label}`);\n };\n count('tabs', (scope) => scope.tabs);\n count('channels', (scope) => scope.channels);\n count('tool renderers', (scope) => scope.toolRenderers);\n count('activity groups', (scope) => scope.activityGroups);\n count('activity sections', (scope) => scope.activitySections);\n count('composer menu items', (scope) => scope.composerMenuItems);\n count('minor modes', (scope) => scope.minorModes);\n count('selection axes', (scope) => scope.selectionAxes);\n count('leader bindings', (scope) => scope.leaderBindings);\n count('slots', (scope) => scope.slots);\n count('fills', (scope) => scope.fills);\n return parts;\n}\n\n/**\n * The plugins page: the web plugins this bundle carries and what the install\n * had to resolve between them. Both are read once from the registry, which\n * is complete before the first render; a plugin comes or goes with the next\n * po sync, never at runtime.\n */\nexport function PluginSettings() {\n const plugins = installedWebPlugins();\n const diagnostics = webPluginDiagnostics();\n return (\n <SettingsPage data-testid=\"settings-plugins\">\n <SettingsHeader>\n <SettingsTitle>Plugins</SettingsTitle>\n <SettingsDescription>\n The web plugins built into this copy of Po, and anything Po had to settle between them. Run{' '}\n <code className=\"font-mono\">po sync</code> after installing a package to add its plugin here.\n </SettingsDescription>\n </SettingsHeader>\n\n <SettingsSection>\n <SettingsSectionHeader>\n <SettingsSectionTitle>Installed</SettingsSectionTitle>\n {plugins.length > 0 ? (\n <span className=\"text-sm text-doom-dim tabular-nums\">{plugins.length} plugins</span>\n ) : null}\n </SettingsSectionHeader>\n {plugins.length === 0 ? (\n <SettingsCard>\n <SettingsRow data-testid=\"settings-plugins-empty\">\n <SettingsRowText>\n <SettingsRowTitle>No web plugins yet</SettingsRowTitle>\n <SettingsRowDescription>\n Run <code className=\"font-mono\">po sync</code> to build the installed packages into Po.\n </SettingsRowDescription>\n </SettingsRowText>\n </SettingsRow>\n </SettingsCard>\n ) : (\n <SettingsCard asChild>\n <ul>\n {plugins.map((plugin) => (\n <SettingsRow asChild key={plugin.id} className=\"py-3\">\n <li data-testid={`settings-plugin-${plugin.id}`}>\n <SettingsRowText>\n <SettingsRowTitle className=\"font-mono first-letter:normal-case\">{plugin.id}</SettingsRowTitle>\n {/* Wraps rather than truncates: a clipped \"2 lea…\" tells the\n reader less than nothing about what the plugin contributed. */}\n <SettingsRowDescription>\n {contributions(plugin).join(' · ') || 'No contributions'}\n </SettingsRowDescription>\n </SettingsRowText>\n </li>\n </SettingsRow>\n ))}\n </ul>\n </SettingsCard>\n )}\n </SettingsSection>\n\n <SettingsSection>\n <SettingsSectionHeader>\n <SettingsSectionTitle>Conflicts</SettingsSectionTitle>\n <SettingsSectionDescription>\n When two plugins want the same tab, tool, group or key, Po keeps one and notes the other here instead of\n breaking the page.\n </SettingsSectionDescription>\n </SettingsSectionHeader>\n {diagnostics.length === 0 ? (\n <SettingsCard>\n <SettingsRow data-testid=\"settings-plugin-diagnostics-empty\">\n <SettingsRowText>\n <SettingsRowTitle>Nothing to settle</SettingsRowTitle>\n <SettingsRowDescription>No two plugins asked for the same name.</SettingsRowDescription>\n </SettingsRowText>\n </SettingsRow>\n </SettingsCard>\n ) : (\n <SettingsCard asChild>\n <ul>\n {diagnostics.map((diagnostic, index) => (\n <SettingsRow\n asChild\n key={`${diagnostic.pluginId}:${diagnostic.kind}:${String(index)}`}\n className=\"py-3\"\n >\n <li data-testid={`settings-plugin-diagnostic-${diagnostic.pluginId}`} data-kind={diagnostic.kind}>\n <SettingsRowText>\n <SettingsRowTitle className=\"font-mono first-letter:normal-case\">\n {diagnostic.pluginId} · {diagnostic.kind}\n </SettingsRowTitle>\n <SettingsRowDescription>{diagnostic.message}</SettingsRowDescription>\n </SettingsRowText>\n </li>\n </SettingsRow>\n ))}\n </ul>\n </SettingsCard>\n )}\n </SettingsSection>\n </SettingsPage>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,323 @@
1
+ const require_authApi = require("../../lib/authApi.cjs");
2
+ const require_dashboardStateStore = require("../../stores/dashboardStateStore.cjs");
3
+ const require_LoginFlowDialog = require("./LoginFlowDialog.cjs");
4
+ let react = require("react");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ let _agimon_ai_po_web_components = require("@agimon-ai/po-web-components");
7
+ //#region src/web/features/settings/ProviderSettings.tsx
8
+ const FLOW_POLL_MS = 500;
9
+ /** The auth source Pi reports for a credential its own /login stored; the only kind /logout removes. */
10
+ const STORED_SOURCE = "stored";
11
+ const ACTION_LABEL = {
12
+ oauth: "Sign in",
13
+ api_key: "Add API key"
14
+ };
15
+ const METHOD_NAME = {
16
+ oauth: "OAuth",
17
+ api_key: "an API key"
18
+ };
19
+ /** Where the credential came from, in words: Pi's own store, or the variable that holds the key. */
20
+ function ConnectedStatus({ type, source }) {
21
+ if (source === STORED_SOURCE) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
22
+ "Signed in with ",
23
+ METHOD_NAME[type],
24
+ ", saved on this machine"
25
+ ] });
26
+ if (!source) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: ["Signed in with ", METHOD_NAME[type]] });
27
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: ["Using the key in ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
28
+ className: "font-mono text-doom-hi",
29
+ children: source
30
+ })] });
31
+ }
32
+ function ConnectedRow({ provider, busy, onLogout }) {
33
+ const auth = provider.authenticated;
34
+ if (!auth) return null;
35
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsRow, {
36
+ asChild: true,
37
+ className: "gap-x-4",
38
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
39
+ "data-testid": `provider-${provider.id}`,
40
+ "data-authenticated": true,
41
+ children: [
42
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Dot, {
43
+ tone: "green",
44
+ className: "size-2"
45
+ }),
46
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
47
+ className: "flex min-w-0 flex-1 flex-col gap-0.5",
48
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
49
+ className: "truncate text-base font-semibold text-doom-hi",
50
+ children: provider.name
51
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
52
+ "data-testid": `provider-status-${provider.id}`,
53
+ className: "min-w-0 break-words text-sm text-doom-dim",
54
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ConnectedStatus, { ...auth })
55
+ })]
56
+ }),
57
+ auth.source === STORED_SOURCE ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Button, {
58
+ variant: "ghost",
59
+ size: "sm",
60
+ "data-testid": `provider-logout-${provider.id}`,
61
+ disabled: busy,
62
+ onClick: onLogout,
63
+ className: "hover:text-doom-red",
64
+ children: "Sign out"
65
+ }) : auth.source ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
66
+ className: "shrink-0 text-sm text-doom-dim",
67
+ children: "Set by your environment"
68
+ }) : null
69
+ ]
70
+ })
71
+ });
72
+ }
73
+ function AvailableRow({ provider, busy, onLogin }) {
74
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsRow, {
75
+ asChild: true,
76
+ className: "gap-x-4 py-3",
77
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
78
+ "data-testid": `provider-${provider.id}`,
79
+ "data-authenticated": false,
80
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
81
+ className: "flex min-w-0 flex-1 flex-col",
82
+ children: [
83
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
84
+ className: "truncate text-base font-semibold text-doom-hi",
85
+ children: provider.name
86
+ }),
87
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
88
+ className: "truncate font-mono text-sm text-doom-dim",
89
+ children: provider.id
90
+ }),
91
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
92
+ "data-testid": `provider-status-${provider.id}`,
93
+ className: "sr-only",
94
+ children: "Not connected"
95
+ })
96
+ ]
97
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
98
+ className: "flex shrink-0 flex-wrap gap-2",
99
+ children: provider.methods.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
100
+ className: "text-sm text-doom-dim",
101
+ children: "Reads credentials from your environment"
102
+ }) : provider.methods.map((method) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Button, {
103
+ variant: "ghost",
104
+ size: "sm",
105
+ "data-testid": `provider-login-${method.type}-${provider.id}`,
106
+ title: method.label,
107
+ disabled: busy,
108
+ onClick: () => onLogin(method.type),
109
+ className: "hover:text-doom-green",
110
+ children: ACTION_LABEL[method.type]
111
+ }, method.type))
112
+ })]
113
+ })
114
+ });
115
+ }
116
+ /**
117
+ * The providers page: what Pi can sign in to on the hub's machine, and
118
+ * whether it has. A login runs on the hub; this page polls its flow and
119
+ * relays the one question it may ask.
120
+ */
121
+ function ProviderSettings() {
122
+ const [providers, setProviders] = require_dashboardStateStore.useDashboardState("providers/list", null);
123
+ const [error, setError] = require_dashboardStateStore.useDashboardState("providers/error", "");
124
+ const [flow, setFlow, flowState] = require_dashboardStateStore.useDashboardState("providers/flow", null);
125
+ const [busyId, setBusyId, busyState] = require_dashboardStateStore.useDashboardState("providers/busy", null);
126
+ const [filter, setFilter] = require_dashboardStateStore.useDashboardState("providers/filter", "");
127
+ const reload = (0, react.useCallback)(async () => {
128
+ const result = await require_authApi.listProviders();
129
+ if ("providers" in result) {
130
+ setProviders(result.providers);
131
+ setError("");
132
+ } else setError(result.error);
133
+ }, [setProviders, setError]);
134
+ (0, react.useEffect)(() => {
135
+ reload();
136
+ }, [reload]);
137
+ const flowId = flow?.id;
138
+ const running = flow?.status === "running";
139
+ (0, react.useEffect)(() => {
140
+ if (flowId === void 0 || !running) return;
141
+ let stopped = false;
142
+ let timer;
143
+ const poll = async () => {
144
+ const result = await require_authApi.readLogin(flowId);
145
+ if (stopped) return;
146
+ if ("error" in result) {
147
+ setFlow((current) => current && current.id === flowId ? {
148
+ ...current,
149
+ status: "failed",
150
+ error: result.error
151
+ } : current);
152
+ return;
153
+ }
154
+ setFlow(result.flow);
155
+ if (result.flow.status !== "running") {
156
+ reload();
157
+ return;
158
+ }
159
+ timer = setTimeout(() => void poll(), FLOW_POLL_MS);
160
+ };
161
+ timer = setTimeout(() => void poll(), FLOW_POLL_MS);
162
+ return () => {
163
+ stopped = true;
164
+ if (timer !== void 0) clearTimeout(timer);
165
+ };
166
+ }, [
167
+ flowId,
168
+ running,
169
+ reload,
170
+ setFlow
171
+ ]);
172
+ const begin = async (providerId, type) => {
173
+ if (busyState.state !== null || flowState.state?.status === "running") return;
174
+ setBusyId(providerId);
175
+ const result = await require_authApi.startLogin(providerId, type);
176
+ setBusyId(null);
177
+ if ("flow" in result) setFlow(result.flow);
178
+ else setError(result.error);
179
+ };
180
+ const answer = async (promptId, value) => {
181
+ if (!flow || busyState.state !== null) return;
182
+ setBusyId(flow.providerId);
183
+ const result = await require_authApi.answerLogin(flow.id, promptId, value);
184
+ setBusyId(null);
185
+ if ("flow" in result) setFlow(result.flow);
186
+ else setError(result.error);
187
+ };
188
+ const cancel = async () => {
189
+ if (!flow || busyState.state !== null) return;
190
+ setBusyId(flow.providerId);
191
+ const result = await require_authApi.cancelLogin(flow.id);
192
+ setBusyId(null);
193
+ setFlow("flow" in result ? result.flow : null);
194
+ reload();
195
+ };
196
+ const signOut = async (providerId) => {
197
+ if (busyState.state !== null) return;
198
+ setBusyId(providerId);
199
+ const result = await require_authApi.logoutProvider(providerId);
200
+ if ("error" in result) setError(result.error);
201
+ else await reload();
202
+ setBusyId(null);
203
+ };
204
+ const needle = filter.trim().toLowerCase();
205
+ const connected = (providers ?? []).filter((provider) => provider.authenticated !== void 0);
206
+ const available = (providers ?? []).filter((provider) => provider.authenticated === void 0).filter((provider) => `${provider.name} ${provider.id}`.toLowerCase().includes(needle));
207
+ const busy = busyId !== null || running;
208
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsPage, {
209
+ "data-testid": "provider-settings",
210
+ children: [
211
+ /* @__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: "Providers" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsDescription, { children: [
212
+ "Connect the model providers Po can work with. Sign in once and every session on this machine can use it. Credentials stay on this machine, in Pi's ",
213
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
214
+ className: "font-mono text-doom-hi",
215
+ children: "auth.json"
216
+ }),
217
+ "."
218
+ ] })] }),
219
+ providers === null && !error ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsCard, {
220
+ role: "status",
221
+ "aria-busy": true,
222
+ className: "gap-4 p-5",
223
+ children: [
224
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
225
+ className: "sr-only",
226
+ children: "Reading providers"
227
+ }),
228
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Skeleton, { className: "h-4 w-40" }),
229
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Skeleton, { className: "h-4 w-64" }),
230
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Skeleton, { className: "h-4 w-52" })
231
+ ]
232
+ }) : null,
233
+ providers === null && error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsCard, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsRow, {
234
+ "data-testid": "provider-settings-error",
235
+ title: error,
236
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsRowText, {
237
+ role: "alert",
238
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsRowTitle, { children: "Po couldn't reach your providers just now" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsRowDescription, { children: "Nothing has changed. Your sign-ins are where you left them." })]
239
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Button, {
240
+ variant: "outline",
241
+ size: "sm",
242
+ onClick: () => void reload(),
243
+ children: "Try again"
244
+ })]
245
+ }) }) : null,
246
+ providers && error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
247
+ "data-testid": "provider-settings-error",
248
+ role: "alert",
249
+ className: "text-sm leading-relaxed text-doom-red",
250
+ children: error
251
+ }) : null,
252
+ providers?.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.EmptyState, {
253
+ "data-testid": "provider-list-empty",
254
+ className: "rounded-lg border border-dashed border-doom-border py-8",
255
+ title: "No providers to connect",
256
+ description: "Pi hasn't offered any model providers on this machine yet."
257
+ }) : null,
258
+ providers && providers.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsSection, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsSectionHeader, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsSectionTitle, { children: "Connected" }) }), connected.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsCard, {
259
+ asChild: true,
260
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", { children: connected.map((provider) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ConnectedRow, {
261
+ provider,
262
+ busy,
263
+ onLogout: () => void signOut(provider.id)
264
+ }, provider.id)) })
265
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.EmptyState, {
266
+ className: "rounded-lg border border-dashed border-doom-border py-8",
267
+ title: "Nothing connected yet",
268
+ description: "Pick a provider below. Po takes it from there."
269
+ })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsSection, { children: [
270
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_agimon_ai_po_web_components.SettingsSectionHeader, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsSectionTitle, { children: "Available" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
271
+ className: "text-sm text-doom-dim",
272
+ children: [
273
+ connected.length,
274
+ " of ",
275
+ providers.length,
276
+ " connected"
277
+ ]
278
+ })] }),
279
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
280
+ className: "flex min-h-10 items-center gap-2.5 rounded-lg border border-doom-border bg-doom-deep px-3 transition-colors focus-within:border-doom-green/60",
281
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SearchIcon, { className: "size-4 shrink-0 text-doom-faint" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.Input, {
282
+ variant: "bare",
283
+ "data-testid": "provider-filter",
284
+ value: filter,
285
+ placeholder: "Search providers",
286
+ "aria-label": "Search providers",
287
+ onChange: (event) => setFilter(event.target.value),
288
+ className: "flex-1"
289
+ })]
290
+ }),
291
+ available.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.SettingsCard, {
292
+ asChild: true,
293
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
294
+ "data-testid": "provider-list",
295
+ children: available.map((provider) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AvailableRow, {
296
+ provider,
297
+ busy,
298
+ onLogin: (type) => void begin(provider.id, type)
299
+ }, provider.id))
300
+ })
301
+ }) : needle ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_agimon_ai_po_web_components.EmptyState, {
302
+ "data-testid": "provider-no-match",
303
+ className: "rounded-lg border border-doom-border bg-doom-panel py-8",
304
+ title: `No provider called “${filter.trim()}”`,
305
+ description: "Try the company name, like Google or Mistral."
306
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
307
+ className: "text-sm text-doom-dim",
308
+ children: "Every provider Po knows about is connected."
309
+ })
310
+ ] })] }) : null,
311
+ flow ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_LoginFlowDialog.LoginFlowDialog, {
312
+ flow,
313
+ onAnswer: (promptId, value) => void answer(promptId, value),
314
+ onCancel: () => void cancel(),
315
+ onClose: () => setFlow(null)
316
+ }) : null
317
+ ]
318
+ });
319
+ }
320
+ //#endregion
321
+ exports.ProviderSettings = ProviderSettings;
322
+
323
+ //# sourceMappingURL=ProviderSettings.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderSettings.cjs","names":["SettingsRow","Dot","Button","useDashboardState","useCallback","listProviders","readLogin","startLogin","answerLogin","cancelLogin","logoutProvider","SettingsPage","SettingsHeader","SettingsTitle","SettingsDescription","SettingsCard","Skeleton","SettingsRowText","SettingsRowTitle","SettingsRowDescription","EmptyState","SettingsSection","SettingsSectionHeader","SettingsSectionTitle","SearchIcon","Input","LoginFlowDialog"],"sources":["../../../../src/web/features/settings/ProviderSettings.tsx"],"sourcesContent":["import {\n Button,\n Dot,\n EmptyState,\n Input,\n SearchIcon,\n SettingsCard,\n SettingsDescription,\n SettingsHeader,\n SettingsPage,\n SettingsRow,\n SettingsRowDescription,\n SettingsRowText,\n SettingsRowTitle,\n SettingsSection,\n SettingsSectionHeader,\n SettingsSectionTitle,\n SettingsTitle,\n Skeleton,\n} from '@agimon-ai/po-web-components';\nimport { useCallback, useEffect } from 'react';\n\nimport type { AuthMethodType, LoginFlowSnapshot, ProviderAuthSummary } from '../../../types/auth';\nimport { answerLogin, cancelLogin, listProviders, logoutProvider, readLogin, startLogin } from '../../lib/authApi';\nimport { useDashboardState } from '../../stores/dashboardStateStore';\nimport { LoginFlowDialog } from './LoginFlowDialog';\n\nconst FLOW_POLL_MS = 500;\n/** The auth source Pi reports for a credential its own /login stored; the only kind /logout removes. */\nconst STORED_SOURCE = 'stored';\n\nconst ACTION_LABEL: Readonly<Record<AuthMethodType, string>> = { oauth: 'Sign in', api_key: 'Add API key' };\nconst METHOD_NAME: Readonly<Record<AuthMethodType, string>> = { oauth: 'OAuth', api_key: 'an API key' };\n\n/** Where the credential came from, in words: Pi's own store, or the variable that holds the key. */\nfunction ConnectedStatus({ type, source }: NonNullable<ProviderAuthSummary['authenticated']>) {\n if (source === STORED_SOURCE) return <>Signed in with {METHOD_NAME[type]}, saved on this machine</>;\n if (!source) return <>Signed in with {METHOD_NAME[type]}</>;\n return (\n <>\n Using the key in <code className=\"font-mono text-doom-hi\">{source}</code>\n </>\n );\n}\n\nfunction ConnectedRow({\n provider,\n busy,\n onLogout,\n}: {\n provider: ProviderAuthSummary;\n busy: boolean;\n onLogout: () => void;\n}) {\n const auth = provider.authenticated;\n if (!auth) return null;\n return (\n <SettingsRow asChild className=\"gap-x-4\">\n <li data-testid={`provider-${provider.id}`} data-authenticated>\n <Dot tone=\"green\" className=\"size-2\" />\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <span className=\"truncate text-base font-semibold text-doom-hi\">{provider.name}</span>\n <span data-testid={`provider-status-${provider.id}`} className=\"min-w-0 break-words text-sm text-doom-dim\">\n <ConnectedStatus {...auth} />\n </span>\n </div>\n {/* Only a credential Pi stored can be removed here; an environment key is the shell's to unset. */}\n {auth.source === STORED_SOURCE ? (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n data-testid={`provider-logout-${provider.id}`}\n disabled={busy}\n onClick={onLogout}\n className=\"hover:text-doom-red\"\n >\n Sign out\n </Button>\n ) : auth.source ? (\n <span className=\"shrink-0 text-sm text-doom-dim\">Set by your environment</span>\n ) : null}\n </li>\n </SettingsRow>\n );\n}\n\nfunction AvailableRow({\n provider,\n busy,\n onLogin,\n}: {\n provider: ProviderAuthSummary;\n busy: boolean;\n onLogin: (type: AuthMethodType) => void;\n}) {\n return (\n <SettingsRow asChild className=\"gap-x-4 py-3\">\n <li data-testid={`provider-${provider.id}`} data-authenticated={false}>\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-base font-semibold text-doom-hi\">{provider.name}</span>\n <span className=\"truncate font-mono text-sm text-doom-dim\">{provider.id}</span>\n <span data-testid={`provider-status-${provider.id}`} className=\"sr-only\">\n Not connected\n </span>\n </div>\n <div className=\"flex shrink-0 flex-wrap gap-2\">\n {provider.methods.length === 0 ? (\n <span className=\"text-sm text-doom-dim\">Reads credentials from your environment</span>\n ) : (\n provider.methods.map((method) => (\n <Button\n key={method.type}\n variant=\"ghost\"\n size=\"sm\"\n data-testid={`provider-login-${method.type}-${provider.id}`}\n title={method.label}\n disabled={busy}\n onClick={() => onLogin(method.type)}\n className=\"hover:text-doom-green\"\n >\n {ACTION_LABEL[method.type]}\n </Button>\n ))\n )}\n </div>\n </li>\n </SettingsRow>\n );\n}\n\n/**\n * The providers page: what Pi can sign in to on the hub's machine, and\n * whether it has. A login runs on the hub; this page polls its flow and\n * relays the one question it may ask.\n */\nexport function ProviderSettings() {\n const [providers, setProviders] = useDashboardState<ProviderAuthSummary[] | null>('providers/list', null);\n const [error, setError] = useDashboardState('providers/error', '');\n const [flow, setFlow, flowState] = useDashboardState<LoginFlowSnapshot | null>('providers/flow', null);\n const [busyId, setBusyId, busyState] = useDashboardState<string | null>('providers/busy', null);\n const [filter, setFilter] = useDashboardState('providers/filter', '');\n\n const reload = useCallback(async (): Promise<void> => {\n const result = await listProviders();\n if ('providers' in result) {\n setProviders(result.providers);\n setError('');\n } else {\n setError(result.error);\n }\n }, [setProviders, setError]);\n\n useEffect(() => {\n // eslint-disable-next-line react/set-state-in-effect -- reads the hub's provider auth list over HTTP; the state is the response.\n void reload();\n }, [reload]);\n\n // Poll the running flow one request at a time; once it settles, the list\n // is re-read so the provider's chip reflects the outcome.\n const flowId = flow?.id;\n const running = flow?.status === 'running';\n useEffect(() => {\n if (flowId === undefined || !running) return;\n let stopped = false;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const poll = async (): Promise<void> => {\n const result = await readLogin(flowId);\n if (stopped) return;\n if ('error' in result) {\n setFlow((current) =>\n current && current.id === flowId ? { ...current, status: 'failed', error: result.error } : current,\n );\n return;\n }\n setFlow(result.flow);\n if (result.flow.status !== 'running') {\n void reload();\n return;\n }\n timer = setTimeout(() => void poll(), FLOW_POLL_MS);\n };\n timer = setTimeout(() => void poll(), FLOW_POLL_MS);\n return () => {\n stopped = true;\n if (timer !== undefined) clearTimeout(timer);\n };\n }, [flowId, running, reload, setFlow]);\n\n const begin = async (providerId: string, type: AuthMethodType): Promise<void> => {\n if (busyState.state !== null || flowState.state?.status === 'running') return;\n setBusyId(providerId);\n const result = await startLogin(providerId, type);\n setBusyId(null);\n if ('flow' in result) setFlow(result.flow);\n else setError(result.error);\n };\n\n const answer = async (promptId: string, value: string): Promise<void> => {\n if (!flow || busyState.state !== null) return;\n setBusyId(flow.providerId);\n const result = await answerLogin(flow.id, promptId, value);\n setBusyId(null);\n if ('flow' in result) setFlow(result.flow);\n else setError(result.error);\n };\n\n const cancel = async (): Promise<void> => {\n if (!flow || busyState.state !== null) return;\n setBusyId(flow.providerId);\n const result = await cancelLogin(flow.id);\n setBusyId(null);\n setFlow('flow' in result ? result.flow : null);\n void reload();\n };\n\n const signOut = async (providerId: string): Promise<void> => {\n if (busyState.state !== null) return;\n setBusyId(providerId);\n const result = await logoutProvider(providerId);\n if ('error' in result) setError(result.error);\n else await reload();\n setBusyId(null);\n };\n\n // Connected providers are what a reader came to check, so they get their own\n // group; the long tail is a searchable list rather than a wall of cards.\n const needle = filter.trim().toLowerCase();\n const connected = (providers ?? []).filter((provider) => provider.authenticated !== undefined);\n const available = (providers ?? [])\n .filter((provider) => provider.authenticated === undefined)\n .filter((provider) => `${provider.name} ${provider.id}`.toLowerCase().includes(needle));\n const busy = busyId !== null || running;\n\n return (\n <SettingsPage data-testid=\"provider-settings\">\n <SettingsHeader>\n <SettingsTitle>Providers</SettingsTitle>\n <SettingsDescription>\n Connect the model providers Po can work with. Sign in once and every session on this machine can use it.\n Credentials stay on this machine, in Pi&apos;s <code className=\"font-mono text-doom-hi\">auth.json</code>.\n </SettingsDescription>\n </SettingsHeader>\n {providers === null && !error ? (\n <SettingsCard role=\"status\" aria-busy className=\"gap-4 p-5\">\n <span className=\"sr-only\">Reading providers</span>\n <Skeleton className=\"h-4 w-40\" />\n <Skeleton className=\"h-4 w-64\" />\n <Skeleton className=\"h-4 w-52\" />\n </SettingsCard>\n ) : null}\n {providers === null && error ? (\n <SettingsCard>\n <SettingsRow data-testid=\"provider-settings-error\" title={error}>\n <SettingsRowText role=\"alert\">\n <SettingsRowTitle>Po couldn&apos;t reach your providers just now</SettingsRowTitle>\n <SettingsRowDescription>\n Nothing has changed. Your sign-ins are where you left them.\n </SettingsRowDescription>\n </SettingsRowText>\n <Button variant=\"outline\" size=\"sm\" onClick={() => void reload()}>\n Try again\n </Button>\n </SettingsRow>\n </SettingsCard>\n ) : null}\n {providers && error ? (\n <p data-testid=\"provider-settings-error\" role=\"alert\" className=\"text-sm leading-relaxed text-doom-red\">\n {error}\n </p>\n ) : null}\n {providers?.length === 0 ? (\n <EmptyState\n data-testid=\"provider-list-empty\"\n className=\"rounded-lg border border-dashed border-doom-border py-8\"\n title=\"No providers to connect\"\n description=\"Pi hasn't offered any model providers on this machine yet.\"\n />\n ) : null}\n {providers && providers.length > 0 ? (\n <>\n <SettingsSection>\n <SettingsSectionHeader>\n <SettingsSectionTitle>Connected</SettingsSectionTitle>\n </SettingsSectionHeader>\n {connected.length > 0 ? (\n <SettingsCard asChild>\n <ul>\n {connected.map((provider) => (\n <ConnectedRow\n key={provider.id}\n provider={provider}\n busy={busy}\n onLogout={() => void signOut(provider.id)}\n />\n ))}\n </ul>\n </SettingsCard>\n ) : (\n <EmptyState\n className=\"rounded-lg border border-dashed border-doom-border py-8\"\n title=\"Nothing connected yet\"\n description=\"Pick a provider below. Po takes it from there.\"\n />\n )}\n </SettingsSection>\n <SettingsSection>\n <SettingsSectionHeader>\n <SettingsSectionTitle>Available</SettingsSectionTitle>\n <span className=\"text-sm text-doom-dim\">\n {connected.length} of {providers.length} connected\n </span>\n </SettingsSectionHeader>\n <label className=\"flex min-h-10 items-center gap-2.5 rounded-lg border border-doom-border bg-doom-deep px-3 transition-colors focus-within:border-doom-green/60\">\n <SearchIcon className=\"size-4 shrink-0 text-doom-faint\" />\n <Input\n variant=\"bare\"\n data-testid=\"provider-filter\"\n value={filter}\n placeholder=\"Search providers\"\n aria-label=\"Search providers\"\n onChange={(event) => setFilter(event.target.value)}\n className=\"flex-1\"\n />\n </label>\n {available.length > 0 ? (\n <SettingsCard asChild>\n <ul data-testid=\"provider-list\">\n {available.map((provider) => (\n <AvailableRow\n key={provider.id}\n provider={provider}\n busy={busy}\n onLogin={(type) => void begin(provider.id, type)}\n />\n ))}\n </ul>\n </SettingsCard>\n ) : needle ? (\n <EmptyState\n data-testid=\"provider-no-match\"\n className=\"rounded-lg border border-doom-border bg-doom-panel py-8\"\n title={`No provider called “${filter.trim()}”`}\n description=\"Try the company name, like Google or Mistral.\"\n />\n ) : (\n <p className=\"text-sm text-doom-dim\">Every provider Po knows about is connected.</p>\n )}\n </SettingsSection>\n </>\n ) : null}\n {flow ? (\n <LoginFlowDialog\n flow={flow}\n onAnswer={(promptId, value) => void answer(promptId, value)}\n onCancel={() => void cancel()}\n onClose={() => setFlow(null)}\n />\n ) : null}\n </SettingsPage>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ //#region src/web/features/settings/ProviderSettings.d.ts
2
+ /**
3
+ * The providers page: what Pi can sign in to on the hub's machine, and
4
+ * whether it has. A login runs on the hub; this page polls its flow and
5
+ * relays the one question it may ask.
6
+ */
7
+ export declare function ProviderSettings(): import("react").JSX.Element;
8
+ //#endregion
9
+ //# sourceMappingURL=ProviderSettings.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderSettings.d.mts","names":[],"sources":["../../../../src/web/features/settings/ProviderSettings.tsx"],"mappings":";;;;;;wBAuIgB,oCAAgB,IAAA"}