@forgeax/interface 0.4.1

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 (963) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +9 -0
  3. package/README.md +111 -0
  4. package/dist/package/browser/App.css +192 -0
  5. package/dist/package/browser/App.d.ts +11 -0
  6. package/dist/package/browser/App.js +11 -0
  7. package/dist/package/browser/ApplicationDetachedShell.d.ts +13 -0
  8. package/dist/package/browser/ApplicationDetachedShell.js +10 -0
  9. package/dist/package/browser/ApplicationShell.d.ts +19 -0
  10. package/dist/package/browser/ApplicationShell.js +62 -0
  11. package/dist/package/browser/app-kit.d.ts +1 -0
  12. package/dist/package/browser/app-kit.js +4 -0
  13. package/dist/package/browser/appHostBootstrap.d.ts +16 -0
  14. package/dist/package/browser/appHostBootstrap.js +145 -0
  15. package/dist/package/browser/application.d.ts +35 -0
  16. package/dist/package/browser/application.js +64 -0
  17. package/dist/package/browser/assets/icons/agent-icon.png +0 -0
  18. package/dist/package/browser/assets/icons/at.svg +3 -0
  19. package/dist/package/browser/assets/icons/chevron-collapse.svg +3 -0
  20. package/dist/package/browser/assets/icons/chevron-expand.svg +3 -0
  21. package/dist/package/browser/assets/icons/chevron-up.svg +3 -0
  22. package/dist/package/browser/assets/icons/close-x.svg +3 -0
  23. package/dist/package/browser/assets/icons/close.svg +3 -0
  24. package/dist/package/browser/assets/icons/copy.svg +4 -0
  25. package/dist/package/browser/assets/icons/edit.svg +3 -0
  26. package/dist/package/browser/assets/icons/fullscreen.svg +3 -0
  27. package/dist/package/browser/assets/icons/pause.svg +4 -0
  28. package/dist/package/browser/assets/icons/play.svg +3 -0
  29. package/dist/package/browser/assets/icons/select.svg +3 -0
  30. package/dist/package/browser/assets/icons/sendMessage-enable.svg +4 -0
  31. package/dist/package/browser/assets/icons/sendMessage.svg +4 -0
  32. package/dist/package/browser/assets/icons/status-done.svg +11 -0
  33. package/dist/package/browser/assets/icons/status-running.svg +10 -0
  34. package/dist/package/browser/assets/icons/status-waiting.svg +10 -0
  35. package/dist/package/browser/assets/icons/tool-execute-script.svg +3 -0
  36. package/dist/package/browser/assets/icons/tool-other.svg +10 -0
  37. package/dist/package/browser/assets/icons/tool-read-file.svg +3 -0
  38. package/dist/package/browser/assets/icons/tool-resource-search.svg +3 -0
  39. package/dist/package/browser/assets/icons/tool-task-todo.svg +4 -0
  40. package/dist/package/browser/assets/icons/tool-write-file.svg +3 -0
  41. package/dist/package/browser/boot/SettingsSection.d.ts +14 -0
  42. package/dist/package/browser/boot/SettingsSection.js +82 -0
  43. package/dist/package/browser/boot/broadcast.d.ts +2 -0
  44. package/dist/package/browser/boot/broadcast.js +32 -0
  45. package/dist/package/browser/boot/driver.d.ts +22 -0
  46. package/dist/package/browser/boot/driver.js +47 -0
  47. package/dist/package/browser/boot/store.d.ts +29 -0
  48. package/dist/package/browser/boot/store.js +114 -0
  49. package/dist/package/browser/boot/themes.d.ts +19 -0
  50. package/dist/package/browser/boot/themes.js +21 -0
  51. package/dist/package/browser/boot/types.d.ts +22 -0
  52. package/dist/package/browser/boot/types.js +30 -0
  53. package/dist/package/browser/brand/BrandProvider.d.ts +19 -0
  54. package/dist/package/browser/brand/BrandProvider.js +35 -0
  55. package/dist/package/browser/brand/index.d.ts +4 -0
  56. package/dist/package/browser/brand/index.js +3 -0
  57. package/dist/package/browser/brand/runtime.d.ts +17 -0
  58. package/dist/package/browser/brand/runtime.js +71 -0
  59. package/dist/package/browser/brand/types.d.ts +77 -0
  60. package/dist/package/browser/brand/types.js +9 -0
  61. package/dist/package/browser/components/ActivityRail/ActivityRail.css +294 -0
  62. package/dist/package/browser/components/ActivityRail/ActivityRail.d.ts +2 -0
  63. package/dist/package/browser/components/ActivityRail/ActivityRail.js +164 -0
  64. package/dist/package/browser/components/ActivityRail/activity-rail-model.d.ts +18 -0
  65. package/dist/package/browser/components/ActivityRail/activity-rail-model.js +144 -0
  66. package/dist/package/browser/components/AgentAvatar/AgentAvatar.d.ts +17 -0
  67. package/dist/package/browser/components/AgentAvatar/AgentAvatar.js +50 -0
  68. package/dist/package/browser/components/BuildBadge/BuildBadge.d.ts +1 -0
  69. package/dist/package/browser/components/BuildBadge/BuildBadge.js +279 -0
  70. package/dist/package/browser/components/Bus/BusAdminPanel.css +2425 -0
  71. package/dist/package/browser/components/Bus/BusAdminPanel.d.ts +2 -0
  72. package/dist/package/browser/components/Bus/BusAdminPanel.js +1385 -0
  73. package/dist/package/browser/components/Bus/CapabilityOverview.d.ts +3 -0
  74. package/dist/package/browser/components/Bus/CapabilityOverview.js +50 -0
  75. package/dist/package/browser/components/ChatColumn/ChatColumn.d.ts +2 -0
  76. package/dist/package/browser/components/ChatColumn/ChatColumn.js +18 -0
  77. package/dist/package/browser/components/ChatColumn/SessionTabStrip.d.ts +1 -0
  78. package/dist/package/browser/components/ChatColumn/SessionTabStrip.js +103 -0
  79. package/dist/package/browser/components/ChatColumn/useChatWidth.d.ts +5 -0
  80. package/dist/package/browser/components/ChatColumn/useChatWidth.js +13 -0
  81. package/dist/package/browser/components/CommandPalette/CommandPalette.css +199 -0
  82. package/dist/package/browser/components/CommandPalette/CommandPalette.d.ts +2 -0
  83. package/dist/package/browser/components/CommandPalette/CommandPalette.js +242 -0
  84. package/dist/package/browser/components/Confirm/ConfirmDialog.d.ts +2 -0
  85. package/dist/package/browser/components/Confirm/ConfirmDialog.js +113 -0
  86. package/dist/package/browser/components/ContextMenu/ContextMenu.d.ts +10 -0
  87. package/dist/package/browser/components/ContextMenu/ContextMenu.js +218 -0
  88. package/dist/package/browser/components/ContextMenu/menuRegistry.d.ts +18 -0
  89. package/dist/package/browser/components/ContextMenu/menuRegistry.js +152 -0
  90. package/dist/package/browser/components/DetachedSurface.d.ts +20 -0
  91. package/dist/package/browser/components/DetachedSurface.js +102 -0
  92. package/dist/package/browser/components/DockShell/DockPanelHost.d.ts +4 -0
  93. package/dist/package/browser/components/DockShell/DockPanelHost.js +7 -0
  94. package/dist/package/browser/components/DockShell/DockRegion.d.ts +7 -0
  95. package/dist/package/browser/components/DockShell/DockRegion.js +315 -0
  96. package/dist/package/browser/components/DockShell/DockShell.css +1018 -0
  97. package/dist/package/browser/components/DockShell/DockTab.d.ts +3 -0
  98. package/dist/package/browser/components/DockShell/DockTab.js +139 -0
  99. package/dist/package/browser/components/DockShell/ExtensionHostPanel.d.ts +9 -0
  100. package/dist/package/browser/components/DockShell/ExtensionHostPanel.js +68 -0
  101. package/dist/package/browser/components/DockShell/ExtensionRuntimeFrame.d.ts +14 -0
  102. package/dist/package/browser/components/DockShell/ExtensionRuntimeFrame.js +56 -0
  103. package/dist/package/browser/components/DockShell/PanelWindowingBoundary.d.ts +6 -0
  104. package/dist/package/browser/components/DockShell/PanelWindowingBoundary.js +9 -0
  105. package/dist/package/browser/components/DockShell/chatDockAnimation.d.ts +45 -0
  106. package/dist/package/browser/components/DockShell/chatDockAnimation.js +101 -0
  107. package/dist/package/browser/components/DockShell/chatDockFullscreen.d.ts +17 -0
  108. package/dist/package/browser/components/DockShell/chatDockFullscreen.js +22 -0
  109. package/dist/package/browser/components/DockShell/chatDockLayout.d.ts +10 -0
  110. package/dist/package/browser/components/DockShell/chatDockLayout.js +11 -0
  111. package/dist/package/browser/components/DockShell/compact-empty-dock-groups.d.ts +16 -0
  112. package/dist/package/browser/components/DockShell/compact-empty-dock-groups.js +28 -0
  113. package/dist/package/browser/components/DockShell/crossInstanceDrop.d.ts +1 -0
  114. package/dist/package/browser/components/DockShell/crossInstanceDrop.js +1 -0
  115. package/dist/package/browser/components/DockShell/dockResetEpoch.d.ts +2 -0
  116. package/dist/package/browser/components/DockShell/dockResetEpoch.js +13 -0
  117. package/dist/package/browser/components/DockShell/dockTitle.d.ts +12 -0
  118. package/dist/package/browser/components/DockShell/dockTitle.js +36 -0
  119. package/dist/package/browser/components/DockShell/dockviewRegistry.d.ts +1 -0
  120. package/dist/package/browser/components/DockShell/dockviewRegistry.js +1 -0
  121. package/dist/package/browser/components/DockShell/edgeDrawer.d.ts +24 -0
  122. package/dist/package/browser/components/DockShell/edgeDrawer.js +1144 -0
  123. package/dist/package/browser/components/DockShell/edgePinStore.d.ts +12 -0
  124. package/dist/package/browser/components/DockShell/edgePinStore.js +37 -0
  125. package/dist/package/browser/components/DockShell/extension-editor-bridge.d.ts +13 -0
  126. package/dist/package/browser/components/DockShell/extension-editor-bridge.js +100 -0
  127. package/dist/package/browser/components/DockShell/extension-runtime-selection.d.ts +8 -0
  128. package/dist/package/browser/components/DockShell/extension-runtime-selection.js +6 -0
  129. package/dist/package/browser/components/DockShell/extensionRuntime.d.ts +17 -0
  130. package/dist/package/browser/components/DockShell/extensionRuntime.js +84 -0
  131. package/dist/package/browser/components/DockShell/footer-panel-visibility.d.ts +7 -0
  132. package/dist/package/browser/components/DockShell/footer-panel-visibility.js +43 -0
  133. package/dist/package/browser/components/DockShell/footer-panels.d.ts +2 -0
  134. package/dist/package/browser/components/DockShell/footer-panels.js +7 -0
  135. package/dist/package/browser/components/DockShell/panelRegistry.d.ts +37 -0
  136. package/dist/package/browser/components/DockShell/panelRegistry.js +126 -0
  137. package/dist/package/browser/components/DockShell/panelRenderers.d.ts +325 -0
  138. package/dist/package/browser/components/DockShell/panelRenderers.js +25 -0
  139. package/dist/package/browser/components/DockShell/panelTabCommands.d.ts +18 -0
  140. package/dist/package/browser/components/DockShell/panelTabCommands.js +133 -0
  141. package/dist/package/browser/components/DockShell/panelWindowing.d.ts +32 -0
  142. package/dist/package/browser/components/DockShell/panelWindowing.js +42 -0
  143. package/dist/package/browser/components/DockShell/regions.d.ts +1 -0
  144. package/dist/package/browser/components/DockShell/regions.js +1 -0
  145. package/dist/package/browser/components/DockShell/resolveRegion.d.ts +1 -0
  146. package/dist/package/browser/components/DockShell/resolveRegion.js +1 -0
  147. package/dist/package/browser/components/DockShell/sanitizeDockLayout.d.ts +3 -0
  148. package/dist/package/browser/components/DockShell/sanitizeDockLayout.js +46 -0
  149. package/dist/package/browser/components/DockShell/sideEdgeMove.d.ts +1 -0
  150. package/dist/package/browser/components/DockShell/sideEdgeMove.js +1 -0
  151. package/dist/package/browser/components/DockShell/studioTabMenuProvider.d.ts +13 -0
  152. package/dist/package/browser/components/DockShell/studioTabMenuProvider.js +39 -0
  153. package/dist/package/browser/components/DockShell/tabContextMenu.d.ts +29 -0
  154. package/dist/package/browser/components/DockShell/tabContextMenu.js +68 -0
  155. package/dist/package/browser/components/DockShell/ueDrag/controller.d.ts +80 -0
  156. package/dist/package/browser/components/DockShell/ueDrag/controller.js +785 -0
  157. package/dist/package/browser/components/DockShell/ueDrag/geometry.d.ts +94 -0
  158. package/dist/package/browser/components/DockShell/ueDrag/geometry.js +217 -0
  159. package/dist/package/browser/components/DockShell/ueDrag/overlay.d.ts +32 -0
  160. package/dist/package/browser/components/DockShell/ueDrag/overlay.js +206 -0
  161. package/dist/package/browser/components/DockShell/ueDrag/ueDrag.css +199 -0
  162. package/dist/package/browser/components/DockShell/useAuxBarWidth.d.ts +5 -0
  163. package/dist/package/browser/components/DockShell/useAuxBarWidth.js +13 -0
  164. package/dist/package/browser/components/Drawer/DrawerHostView.css +143 -0
  165. package/dist/package/browser/components/Drawer/DrawerHostView.d.ts +19 -0
  166. package/dist/package/browser/components/Drawer/DrawerHostView.js +93 -0
  167. package/dist/package/browser/components/Drawer/DrawerLauncher.d.ts +12 -0
  168. package/dist/package/browser/components/Drawer/DrawerLauncher.js +22 -0
  169. package/dist/package/browser/components/Drawer/useDrawerStore.d.ts +15 -0
  170. package/dist/package/browser/components/Drawer/useDrawerStore.js +80 -0
  171. package/dist/package/browser/components/ErrorBoundary.d.ts +55 -0
  172. package/dist/package/browser/components/ErrorBoundary.js +131 -0
  173. package/dist/package/browser/components/ExtensionHost/ExtensionIframeHost.d.ts +28 -0
  174. package/dist/package/browser/components/ExtensionHost/ExtensionIframeHost.js +179 -0
  175. package/dist/package/browser/components/ExtensionHost/NativeExtensionHost.d.ts +14 -0
  176. package/dist/package/browser/components/ExtensionHost/NativeExtensionHost.js +152 -0
  177. package/dist/package/browser/components/Feedback/FeedbackPanel.css +640 -0
  178. package/dist/package/browser/components/Feedback/FeedbackPanel.d.ts +8 -0
  179. package/dist/package/browser/components/Feedback/FeedbackPanel.js +118 -0
  180. package/dist/package/browser/components/Feedback/PassiveFeedback.css +179 -0
  181. package/dist/package/browser/components/Feedback/PassiveFeedback.d.ts +2 -0
  182. package/dist/package/browser/components/Feedback/PassiveFeedback.js +218 -0
  183. package/dist/package/browser/components/Feedback/collect.d.ts +15 -0
  184. package/dist/package/browser/components/Feedback/collect.js +80 -0
  185. package/dist/package/browser/components/Feedback/store.d.ts +61 -0
  186. package/dist/package/browser/components/Feedback/store.js +174 -0
  187. package/dist/package/browser/components/LangSwitcher/LangSwitcher.css +78 -0
  188. package/dist/package/browser/components/LangSwitcher/LangSwitcher.d.ts +14 -0
  189. package/dist/package/browser/components/LangSwitcher/LangSwitcher.js +44 -0
  190. package/dist/package/browser/components/MainArea/ConsolePanel.d.ts +1 -0
  191. package/dist/package/browser/components/MainArea/ConsolePanel.js +16 -0
  192. package/dist/package/browser/components/MainArea/MainArea.css +2130 -0
  193. package/dist/package/browser/components/MainArea/MainArea.d.ts +2 -0
  194. package/dist/package/browser/components/MainArea/MainArea.js +20 -0
  195. package/dist/package/browser/components/MainArea/StandaloneExtensionIframe.d.ts +25 -0
  196. package/dist/package/browser/components/MainArea/StandaloneExtensionIframe.js +155 -0
  197. package/dist/package/browser/components/MainArea/SurfacePanels.d.ts +3 -0
  198. package/dist/package/browser/components/MainArea/SurfacePanels.js +27 -0
  199. package/dist/package/browser/components/MainArea/TelemetryViewer.css +122 -0
  200. package/dist/package/browser/components/MainArea/TelemetryViewer.d.ts +36 -0
  201. package/dist/package/browser/components/MainArea/TelemetryViewer.js +116 -0
  202. package/dist/package/browser/components/MenuBar/MenuBar.css +186 -0
  203. package/dist/package/browser/components/MenuBar/MenuBar.d.ts +27 -0
  204. package/dist/package/browser/components/MenuBar/MenuBar.js +286 -0
  205. package/dist/package/browser/components/MenuBar/index.d.ts +1 -0
  206. package/dist/package/browser/components/MenuBar/index.js +1 -0
  207. package/dist/package/browser/components/MenuBar/menubar-open-state.d.ts +8 -0
  208. package/dist/package/browser/components/MenuBar/menubar-open-state.js +11 -0
  209. package/dist/package/browser/components/MenuBar/menubar-surface.d.ts +30 -0
  210. package/dist/package/browser/components/MenuBar/menubar-surface.js +201 -0
  211. package/dist/package/browser/components/ModelPicker/index.d.ts +1 -0
  212. package/dist/package/browser/components/ModelPicker/index.js +1 -0
  213. package/dist/package/browser/components/ModelPicker/useModelCatalog.d.ts +22 -0
  214. package/dist/package/browser/components/ModelPicker/useModelCatalog.js +100 -0
  215. package/dist/package/browser/components/Onboarding/ConnectModelPrompt.d.ts +2 -0
  216. package/dist/package/browser/components/Onboarding/ConnectModelPrompt.js +40 -0
  217. package/dist/package/browser/components/Onboarding/Onboarding.css +232 -0
  218. package/dist/package/browser/components/Onboarding/OnboardingController.d.ts +10 -0
  219. package/dist/package/browser/components/Onboarding/OnboardingController.js +549 -0
  220. package/dist/package/browser/components/Onboarding/connect-selection.d.ts +17 -0
  221. package/dist/package/browser/components/Onboarding/connect-selection.js +18 -0
  222. package/dist/package/browser/components/Onboarding/home-transition.d.ts +9 -0
  223. package/dist/package/browser/components/Onboarding/home-transition.js +20 -0
  224. package/dist/package/browser/components/Onboarding/index.d.ts +4 -0
  225. package/dist/package/browser/components/Onboarding/index.js +3 -0
  226. package/dist/package/browser/components/Onboarding/prepareTourShell.d.ts +5 -0
  227. package/dist/package/browser/components/Onboarding/prepareTourShell.js +11 -0
  228. package/dist/package/browser/components/Onboarding/project-name.d.ts +17 -0
  229. package/dist/package/browser/components/Onboarding/project-name.js +29 -0
  230. package/dist/package/browser/components/Onboarding/types.d.ts +31 -0
  231. package/dist/package/browser/components/Onboarding/types.js +77 -0
  232. package/dist/package/browser/components/PageTabs/PageTabStrip.css +221 -0
  233. package/dist/package/browser/components/PageTabs/PageTabStrip.d.ts +3 -0
  234. package/dist/package/browser/components/PageTabs/PageTabStrip.js +214 -0
  235. package/dist/package/browser/components/PageTabs/openablePageTypes.d.ts +9 -0
  236. package/dist/package/browser/components/PageTabs/openablePageTypes.js +13 -0
  237. package/dist/package/browser/components/PanelShell/PanelShell.css +517 -0
  238. package/dist/package/browser/components/PanelShell/PanelShell.d.ts +7 -0
  239. package/dist/package/browser/components/PanelShell/PanelShell.js +459 -0
  240. package/dist/package/browser/components/Resize/ResizeHandle.d.ts +1 -0
  241. package/dist/package/browser/components/Resize/ResizeHandle.js +1 -0
  242. package/dist/package/browser/components/SceneBackground/SceneBackground.d.ts +2 -0
  243. package/dist/package/browser/components/SceneBackground/SceneBackground.js +5 -0
  244. package/dist/package/browser/components/SchemaForm/SchemaForm.css +138 -0
  245. package/dist/package/browser/components/SchemaForm/SchemaForm.d.ts +17 -0
  246. package/dist/package/browser/components/SchemaForm/SchemaForm.js +86 -0
  247. package/dist/package/browser/components/SchemaForm/schema-form-utils.d.ts +30 -0
  248. package/dist/package/browser/components/SchemaForm/schema-form-utils.js +51 -0
  249. package/dist/package/browser/components/SettingsPrimitives.d.ts +24 -0
  250. package/dist/package/browser/components/SettingsPrimitives.js +145 -0
  251. package/dist/package/browser/components/Sidebar/BusHealthLamp.d.ts +1 -0
  252. package/dist/package/browser/components/Sidebar/BusHealthLamp.js +72 -0
  253. package/dist/package/browser/components/Sidebar/FilesPanel.d.ts +1 -0
  254. package/dist/package/browser/components/Sidebar/FilesPanel.js +234 -0
  255. package/dist/package/browser/components/Sidebar/Sidebar.css +1393 -0
  256. package/dist/package/browser/components/Sidebar/Sidebar.d.ts +3 -0
  257. package/dist/package/browser/components/Sidebar/Sidebar.js +8 -0
  258. package/dist/package/browser/components/Sidebar/sidebar-types.d.ts +18 -0
  259. package/dist/package/browser/components/Sidebar/sidebar-types.js +1 -0
  260. package/dist/package/browser/components/SlotDebugOverlay/SlotDebugOverlay.d.ts +1 -0
  261. package/dist/package/browser/components/SlotDebugOverlay/SlotDebugOverlay.js +1 -0
  262. package/dist/package/browser/components/SlotDebugOverlay/hashHue.d.ts +1 -0
  263. package/dist/package/browser/components/SlotDebugOverlay/hashHue.js +1 -0
  264. package/dist/package/browser/components/SlotDebugOverlay/index.d.ts +1 -0
  265. package/dist/package/browser/components/SlotDebugOverlay/index.js +1 -0
  266. package/dist/package/browser/components/SlotDebugOverlay/isSlotDebugEnabled.d.ts +1 -0
  267. package/dist/package/browser/components/SlotDebugOverlay/isSlotDebugEnabled.js +1 -0
  268. package/dist/package/browser/components/StatusBar/FatalBanner.d.ts +25 -0
  269. package/dist/package/browser/components/StatusBar/FatalBanner.js +52 -0
  270. package/dist/package/browser/components/StatusBar/GlobalStatusBar.css +304 -0
  271. package/dist/package/browser/components/StatusBar/InfoPanel.css +174 -0
  272. package/dist/package/browser/components/StatusBar/InfoPanel.d.ts +19 -0
  273. package/dist/package/browser/components/StatusBar/InfoPanel.js +128 -0
  274. package/dist/package/browser/components/StatusBar/StatusChip.css +52 -0
  275. package/dist/package/browser/components/StatusBar/StatusChip.d.ts +40 -0
  276. package/dist/package/browser/components/StatusBar/StatusChip.js +13 -0
  277. package/dist/package/browser/components/StatusBar/StripHostView.d.ts +2 -0
  278. package/dist/package/browser/components/StatusBar/StripHostView.js +91 -0
  279. package/dist/package/browser/components/StatusBar/StripPopover.css +58 -0
  280. package/dist/package/browser/components/StatusBar/StripPopover.d.ts +16 -0
  281. package/dist/package/browser/components/StatusBar/StripPopover.js +15 -0
  282. package/dist/package/browser/components/StatusBar/feeds/PulseFeeds.d.ts +16 -0
  283. package/dist/package/browser/components/StatusBar/feeds/PulseFeeds.js +88 -0
  284. package/dist/package/browser/components/StatusBar/footer/CheckpointsDrawer.d.ts +4 -0
  285. package/dist/package/browser/components/StatusBar/footer/CheckpointsDrawer.js +77 -0
  286. package/dist/package/browser/components/StatusBar/footer/DiagnosticsPopover.d.ts +4 -0
  287. package/dist/package/browser/components/StatusBar/footer/DiagnosticsPopover.js +108 -0
  288. package/dist/package/browser/components/StatusBar/footer/EventsDrawer.d.ts +14 -0
  289. package/dist/package/browser/components/StatusBar/footer/EventsDrawer.js +25 -0
  290. package/dist/package/browser/components/StatusBar/footer/ForgeaxBuildPopover.d.ts +4 -0
  291. package/dist/package/browser/components/StatusBar/footer/ForgeaxBuildPopover.js +62 -0
  292. package/dist/package/browser/components/StatusBar/footer/footer.css +178 -0
  293. package/dist/package/browser/components/StatusBar/healthBridge.d.ts +38 -0
  294. package/dist/package/browser/components/StatusBar/healthBridge.js +245 -0
  295. package/dist/package/browser/components/StatusBar/healthStore.d.ts +80 -0
  296. package/dist/package/browser/components/StatusBar/healthStore.js +129 -0
  297. package/dist/package/browser/components/StatusBar/useStatusItem.d.ts +10 -0
  298. package/dist/package/browser/components/StatusBar/useStatusItem.js +35 -0
  299. package/dist/package/browser/components/Surfaces/SurfaceKeepAlive.css +34 -0
  300. package/dist/package/browser/components/Surfaces/SurfaceKeepAliveLayer.d.ts +3 -0
  301. package/dist/package/browser/components/Surfaces/SurfaceKeepAliveLayer.js +218 -0
  302. package/dist/package/browser/components/Surfaces/SurfaceOverlay.css +160 -0
  303. package/dist/package/browser/components/Surfaces/SurfaceOverlay.d.ts +9 -0
  304. package/dist/package/browser/components/Surfaces/SurfaceOverlay.js +144 -0
  305. package/dist/package/browser/components/TopBar/AndroidPackageDialog.d.ts +23 -0
  306. package/dist/package/browser/components/TopBar/AndroidPackageDialog.js +115 -0
  307. package/dist/package/browser/components/TopBar/FsBrowser.css +156 -0
  308. package/dist/package/browser/components/TopBar/FsBrowser.d.ts +8 -0
  309. package/dist/package/browser/components/TopBar/FsBrowser.js +93 -0
  310. package/dist/package/browser/components/TopBar/GameSwitcher.d.ts +29 -0
  311. package/dist/package/browser/components/TopBar/GameSwitcher.js +157 -0
  312. package/dist/package/browser/components/TopBar/IosPackageDialog.d.ts +23 -0
  313. package/dist/package/browser/components/TopBar/IosPackageDialog.js +115 -0
  314. package/dist/package/browser/components/TopBar/ProjectSwitcher.d.ts +3 -0
  315. package/dist/package/browser/components/TopBar/ProjectSwitcher.js +41 -0
  316. package/dist/package/browser/components/TopBar/PublishOnboarding.css +133 -0
  317. package/dist/package/browser/components/TopBar/PublishOnboarding.d.ts +10 -0
  318. package/dist/package/browser/components/TopBar/PublishOnboarding.js +144 -0
  319. package/dist/package/browser/components/TopBar/SessionSwitcher.d.ts +2 -0
  320. package/dist/package/browser/components/TopBar/SessionSwitcher.js +124 -0
  321. package/dist/package/browser/components/TopBar/TopBar.css +1672 -0
  322. package/dist/package/browser/components/TopBar/TopBar.d.ts +2 -0
  323. package/dist/package/browser/components/TopBar/TopBar.js +606 -0
  324. package/dist/package/browser/components/TopBar/publish-options.d.ts +20 -0
  325. package/dist/package/browser/components/TopBar/publish-options.js +28 -0
  326. package/dist/package/browser/components/TourOverlay/TourOverlay.css +122 -0
  327. package/dist/package/browser/components/TourOverlay/TourOverlay.d.ts +26 -0
  328. package/dist/package/browser/components/TourOverlay/TourOverlay.js +233 -0
  329. package/dist/package/browser/components/TourOverlay/index.d.ts +2 -0
  330. package/dist/package/browser/components/TourOverlay/index.js +1 -0
  331. package/dist/package/browser/components/ownership.d.ts +7 -0
  332. package/dist/package/browser/components/ownership.js +7 -0
  333. package/dist/package/browser/components/ui/SearchableMenu.css +143 -0
  334. package/dist/package/browser/components/ui/SearchableMenu.d.ts +30 -0
  335. package/dist/package/browser/components/ui/SearchableMenu.js +40 -0
  336. package/dist/package/browser/components/ui/alert-dialog.d.ts +20 -0
  337. package/dist/package/browser/components/ui/alert-dialog.js +38 -0
  338. package/dist/package/browser/components/ui/button.d.ts +11 -0
  339. package/dist/package/browser/components/ui/button.js +33 -0
  340. package/dist/package/browser/components/ui/checkbox.d.ts +4 -0
  341. package/dist/package/browser/components/ui/checkbox.js +8 -0
  342. package/dist/package/browser/components/ui/command.d.ts +74 -0
  343. package/dist/package/browser/components/ui/command.js +20 -0
  344. package/dist/package/browser/components/ui/dialog.d.ts +21 -0
  345. package/dist/package/browser/components/ui/dialog.js +34 -0
  346. package/dist/package/browser/components/ui/dropdown-menu.d.ts +18 -0
  347. package/dist/package/browser/components/ui/dropdown-menu.js +30 -0
  348. package/dist/package/browser/components/ui/input.d.ts +3 -0
  349. package/dist/package/browser/components/ui/input.js +8 -0
  350. package/dist/package/browser/components/ui/label.d.ts +4 -0
  351. package/dist/package/browser/components/ui/label.js +7 -0
  352. package/dist/package/browser/components/ui/popover.d.ts +7 -0
  353. package/dist/package/browser/components/ui/popover.js +10 -0
  354. package/dist/package/browser/components/ui/select.d.ts +11 -0
  355. package/dist/package/browser/components/ui/select.js +31 -0
  356. package/dist/package/browser/components/ui/tabs.d.ts +7 -0
  357. package/dist/package/browser/components/ui/tabs.js +12 -0
  358. package/dist/package/browser/components/ui/textarea.d.ts +3 -0
  359. package/dist/package/browser/components/ui/textarea.js +8 -0
  360. package/dist/package/browser/components/ui/tooltip.d.ts +7 -0
  361. package/dist/package/browser/components/ui/tooltip.js +10 -0
  362. package/dist/package/browser/core/app-shell/catalog-page-extensions.d.ts +28 -0
  363. package/dist/package/browser/core/app-shell/catalog-page-extensions.js +234 -0
  364. package/dist/package/browser/core/app-shell/derive-panel-renderers.d.ts +2 -0
  365. package/dist/package/browser/core/app-shell/derive-panel-renderers.js +17 -0
  366. package/dist/package/browser/core/app-shell/host.d.ts +31 -0
  367. package/dist/package/browser/core/app-shell/host.js +188 -0
  368. package/dist/package/browser/core/app-shell/index.d.ts +7 -0
  369. package/dist/package/browser/core/app-shell/index.js +8 -0
  370. package/dist/package/browser/core/app-shell/logger.d.ts +2 -0
  371. package/dist/package/browser/core/app-shell/logger.js +6 -0
  372. package/dist/package/browser/core/app-shell/ownership.d.ts +7 -0
  373. package/dist/package/browser/core/app-shell/ownership.js +7 -0
  374. package/dist/package/browser/core/app-shell/react/HostProvider.d.ts +10 -0
  375. package/dist/package/browser/core/app-shell/react/HostProvider.js +35 -0
  376. package/dist/package/browser/core/app-shell/surface-extension.d.ts +17 -0
  377. package/dist/package/browser/core/app-shell/surface-extension.js +33 -0
  378. package/dist/package/browser/core/app-shell/types.d.ts +176 -0
  379. package/dist/package/browser/core/app-shell/types.js +1 -0
  380. package/dist/package/browser/core/contextual-keybindings.d.ts +71 -0
  381. package/dist/package/browser/core/contextual-keybindings.js +198 -0
  382. package/dist/package/browser/core/extension-foundation/bus.d.ts +2 -0
  383. package/dist/package/browser/core/extension-foundation/bus.js +3 -0
  384. package/dist/package/browser/core/extension-foundation/capabilities.d.ts +2 -0
  385. package/dist/package/browser/core/extension-foundation/capabilities.js +3 -0
  386. package/dist/package/browser/core/extension-foundation/commands.d.ts +2 -0
  387. package/dist/package/browser/core/extension-foundation/commands.js +3 -0
  388. package/dist/package/browser/core/extension-foundation/context-keys.d.ts +2 -0
  389. package/dist/package/browser/core/extension-foundation/context-keys.js +3 -0
  390. package/dist/package/browser/core/extension-foundation/contribution-registry.d.ts +2 -0
  391. package/dist/package/browser/core/extension-foundation/contribution-registry.js +3 -0
  392. package/dist/package/browser/core/extension-foundation/errors.d.ts +2 -0
  393. package/dist/package/browser/core/extension-foundation/errors.js +3 -0
  394. package/dist/package/browser/core/extension-foundation/index.d.ts +8 -0
  395. package/dist/package/browser/core/extension-foundation/index.js +9 -0
  396. package/dist/package/browser/core/extension-foundation/loader.d.ts +2 -0
  397. package/dist/package/browser/core/extension-foundation/loader.js +3 -0
  398. package/dist/package/browser/core/extension-foundation/storage.d.ts +2 -0
  399. package/dist/package/browser/core/extension-foundation/storage.js +3 -0
  400. package/dist/package/browser/core/extension-foundation/types.d.ts +2 -0
  401. package/dist/package/browser/core/extension-foundation/types.js +1 -0
  402. package/dist/package/browser/core/extensions/builtin-commands.d.ts +2 -0
  403. package/dist/package/browser/core/extensions/builtin-commands.js +256 -0
  404. package/dist/package/browser/core/extensions/builtin-menus.d.ts +2 -0
  405. package/dist/package/browser/core/extensions/builtin-menus.js +252 -0
  406. package/dist/package/browser/core/extensions/chrome-drawer.d.ts +3 -0
  407. package/dist/package/browser/core/extensions/chrome-drawer.js +45 -0
  408. package/dist/package/browser/core/extensions/chrome-statusbar.d.ts +6 -0
  409. package/dist/package/browser/core/extensions/chrome-statusbar.js +26 -0
  410. package/dist/package/browser/core/extensions/detached-agents-browser.d.ts +3 -0
  411. package/dist/package/browser/core/extensions/detached-agents-browser.js +9 -0
  412. package/dist/package/browser/core/extensions/detached-files-browser.d.ts +3 -0
  413. package/dist/package/browser/core/extensions/detached-files-browser.js +6 -0
  414. package/dist/package/browser/core/extensions/editor-commands.d.ts +2 -0
  415. package/dist/package/browser/core/extensions/editor-commands.js +182 -0
  416. package/dist/package/browser/core/extensions/foundation-bus.d.ts +2 -0
  417. package/dist/package/browser/core/extensions/foundation-bus.js +3 -0
  418. package/dist/package/browser/core/extensions/foundation-commands.d.ts +2 -0
  419. package/dist/package/browser/core/extensions/foundation-commands.js +6 -0
  420. package/dist/package/browser/core/extensions/foundation-storage.d.ts +2 -0
  421. package/dist/package/browser/core/extensions/foundation-storage.js +3 -0
  422. package/dist/package/browser/core/extensions/host-commands.d.ts +18 -0
  423. package/dist/package/browser/core/extensions/host-commands.js +52 -0
  424. package/dist/package/browser/core/extensions/observability.d.ts +14 -0
  425. package/dist/package/browser/core/extensions/observability.js +18 -0
  426. package/dist/package/browser/core/extensions/panels-chat.d.ts +2 -0
  427. package/dist/package/browser/core/extensions/panels-chat.js +41 -0
  428. package/dist/package/browser/core/extensions/panels-editor.d.ts +8 -0
  429. package/dist/package/browser/core/extensions/panels-editor.js +26 -0
  430. package/dist/package/browser/core/extensions/panels-viewport.d.ts +2 -0
  431. package/dist/package/browser/core/extensions/panels-viewport.js +20 -0
  432. package/dist/package/browser/core/extensions/session-client.d.ts +29 -0
  433. package/dist/package/browser/core/extensions/session-client.js +42 -0
  434. package/dist/package/browser/core/extensions/slots-corner-agent-picker.d.ts +5 -0
  435. package/dist/package/browser/core/extensions/slots-corner-agent-picker.js +6 -0
  436. package/dist/package/browser/core/extensions/slots-main-area-body.d.ts +3 -0
  437. package/dist/package/browser/core/extensions/slots-main-area-body.js +6 -0
  438. package/dist/package/browser/core/extensions/slots-sidebar-agents.d.ts +3 -0
  439. package/dist/package/browser/core/extensions/slots-sidebar-agents.js +6 -0
  440. package/dist/package/browser/core/extensions/studio-domain-clients.d.ts +12 -0
  441. package/dist/package/browser/core/extensions/studio-domain-clients.js +15 -0
  442. package/dist/package/browser/core/extensions/surfaces-scene-editor.d.ts +3 -0
  443. package/dist/package/browser/core/extensions/surfaces-scene-editor.js +6 -0
  444. package/dist/package/browser/core/extensions/trajectory.d.ts +2 -0
  445. package/dist/package/browser/core/extensions/trajectory.js +50 -0
  446. package/dist/package/browser/core/page-navigation.d.ts +1 -0
  447. package/dist/package/browser/core/page-navigation.js +1 -0
  448. package/dist/package/browser/core/page-platform/activity.d.ts +4 -0
  449. package/dist/package/browser/core/page-platform/activity.js +46 -0
  450. package/dist/package/browser/core/page-platform/dockview-layout.d.ts +7 -0
  451. package/dist/package/browser/core/page-platform/dockview-layout.js +63 -0
  452. package/dist/package/browser/core/page-platform/index.d.ts +8 -0
  453. package/dist/package/browser/core/page-platform/index.js +8 -0
  454. package/dist/package/browser/core/page-platform/layout-store.d.ts +18 -0
  455. package/dist/package/browser/core/page-platform/layout-store.js +54 -0
  456. package/dist/package/browser/core/page-platform/page-dirty-probe.d.ts +1 -0
  457. package/dist/package/browser/core/page-platform/page-dirty-probe.js +4 -0
  458. package/dist/package/browser/core/page-platform/registry.d.ts +3 -0
  459. package/dist/package/browser/core/page-platform/registry.js +194 -0
  460. package/dist/package/browser/core/page-platform/resource-editor.d.ts +3 -0
  461. package/dist/package/browser/core/page-platform/resource-editor.js +74 -0
  462. package/dist/package/browser/core/page-platform/session.d.ts +10 -0
  463. package/dist/package/browser/core/page-platform/session.js +327 -0
  464. package/dist/package/browser/core/page-platform/types.d.ts +242 -0
  465. package/dist/package/browser/core/page-platform/types.js +10 -0
  466. package/dist/package/browser/core/panels/context-expression.d.ts +1 -0
  467. package/dist/package/browser/core/panels/context-expression.js +1 -0
  468. package/dist/package/browser/core/panels/drawer.d.ts +23 -0
  469. package/dist/package/browser/core/panels/drawer.js +1 -0
  470. package/dist/package/browser/core/panels/index.d.ts +7 -0
  471. package/dist/package/browser/core/panels/index.js +7 -0
  472. package/dist/package/browser/core/panels/panel-action-registry.d.ts +6 -0
  473. package/dist/package/browser/core/panels/panel-action-registry.js +62 -0
  474. package/dist/package/browser/core/panels/panel-control-registry.d.ts +6 -0
  475. package/dist/package/browser/core/panels/panel-control-registry.js +54 -0
  476. package/dist/package/browser/core/panels/resolve-panel-action-state.d.ts +10 -0
  477. package/dist/package/browser/core/panels/resolve-panel-action-state.js +9 -0
  478. package/dist/package/browser/core/panels/strip.d.ts +40 -0
  479. package/dist/package/browser/core/panels/strip.js +1 -0
  480. package/dist/package/browser/core/panels/types.d.ts +143 -0
  481. package/dist/package/browser/core/panels/types.js +1 -0
  482. package/dist/package/browser/i18n/index.d.ts +50 -0
  483. package/dist/package/browser/i18n/index.js +207 -0
  484. package/dist/package/browser/i18n/locales/en.json +1959 -0
  485. package/dist/package/browser/i18n/locales/zh.json +1959 -0
  486. package/dist/package/browser/index.d.ts +2 -0
  487. package/dist/package/browser/index.js +2 -0
  488. package/dist/package/browser/lib/a11y-summary.d.ts +17 -0
  489. package/dist/package/browser/lib/a11y-summary.js +66 -0
  490. package/dist/package/browser/lib/action-dom-discovery.d.ts +2 -0
  491. package/dist/package/browser/lib/action-dom-discovery.js +84 -0
  492. package/dist/package/browser/lib/action-registry.d.ts +94 -0
  493. package/dist/package/browser/lib/action-registry.js +210 -0
  494. package/dist/package/browser/lib/aegis.d.ts +40 -0
  495. package/dist/package/browser/lib/aegis.js +230 -0
  496. package/dist/package/browser/lib/agent-catalog-url.d.ts +9 -0
  497. package/dist/package/browser/lib/agent-catalog-url.js +24 -0
  498. package/dist/package/browser/lib/agent-cli-provider.d.ts +10 -0
  499. package/dist/package/browser/lib/agent-cli-provider.js +81 -0
  500. package/dist/package/browser/lib/ai-intents.d.ts +30 -0
  501. package/dist/package/browser/lib/ai-intents.js +52 -0
  502. package/dist/package/browser/lib/broadcast-stream.d.ts +17 -0
  503. package/dist/package/browser/lib/broadcast-stream.js +163 -0
  504. package/dist/package/browser/lib/browser-prefs-sync.d.ts +16 -0
  505. package/dist/package/browser/lib/browser-prefs-sync.js +151 -0
  506. package/dist/package/browser/lib/builtin-actions.d.ts +2 -0
  507. package/dist/package/browser/lib/builtin-actions.js +558 -0
  508. package/dist/package/browser/lib/bus.d.ts +25 -0
  509. package/dist/package/browser/lib/bus.js +71 -0
  510. package/dist/package/browser/lib/checkpoint-api.d.ts +54 -0
  511. package/dist/package/browser/lib/checkpoint-api.js +41 -0
  512. package/dist/package/browser/lib/cli-providers.d.ts +33 -0
  513. package/dist/package/browser/lib/cli-providers.js +61 -0
  514. package/dist/package/browser/lib/command-palette-store.d.ts +5 -0
  515. package/dist/package/browser/lib/command-palette-store.js +22 -0
  516. package/dist/package/browser/lib/composer-bridge.d.ts +103 -0
  517. package/dist/package/browser/lib/composer-bridge.js +448 -0
  518. package/dist/package/browser/lib/dashboard-api.d.ts +104 -0
  519. package/dist/package/browser/lib/dashboard-api.js +125 -0
  520. package/dist/package/browser/lib/deep-link-bus.d.ts +10 -0
  521. package/dist/package/browser/lib/deep-link-bus.js +35 -0
  522. package/dist/package/browser/lib/dialog.d.ts +40 -0
  523. package/dist/package/browser/lib/dialog.js +103 -0
  524. package/dist/package/browser/lib/editor-facts-bus.d.ts +27 -0
  525. package/dist/package/browser/lib/editor-facts-bus.js +25 -0
  526. package/dist/package/browser/lib/extension-api.d.ts +140 -0
  527. package/dist/package/browser/lib/extension-api.js +90 -0
  528. package/dist/package/browser/lib/file-activity-stream.d.ts +54 -0
  529. package/dist/package/browser/lib/file-activity-stream.js +123 -0
  530. package/dist/package/browser/lib/file-family.d.ts +15 -0
  531. package/dist/package/browser/lib/file-family.js +25 -0
  532. package/dist/package/browser/lib/game-templates.d.ts +7 -0
  533. package/dist/package/browser/lib/game-templates.js +15 -0
  534. package/dist/package/browser/lib/global-shortcuts.d.ts +121 -0
  535. package/dist/package/browser/lib/global-shortcuts.js +551 -0
  536. package/dist/package/browser/lib/logSink.d.ts +16 -0
  537. package/dist/package/browser/lib/logSink.js +128 -0
  538. package/dist/package/browser/lib/lucide-icon.d.ts +5 -0
  539. package/dist/package/browser/lib/lucide-icon.js +20 -0
  540. package/dist/package/browser/lib/menu-registry.d.ts +113 -0
  541. package/dist/package/browser/lib/menu-registry.js +197 -0
  542. package/dist/package/browser/lib/model-config.d.ts +89 -0
  543. package/dist/package/browser/lib/model-config.js +72 -0
  544. package/dist/package/browser/lib/model-prefs.d.ts +5 -0
  545. package/dist/package/browser/lib/model-prefs.js +53 -0
  546. package/dist/package/browser/lib/model-route/index.d.ts +81 -0
  547. package/dist/package/browser/lib/model-route/index.js +175 -0
  548. package/dist/package/browser/lib/narrative-copilot.d.ts +20 -0
  549. package/dist/package/browser/lib/narrative-copilot.js +105 -0
  550. package/dist/package/browser/lib/native-menu-bridge.d.ts +37 -0
  551. package/dist/package/browser/lib/native-menu-bridge.js +151 -0
  552. package/dist/package/browser/lib/page-tab-icons.d.ts +21 -0
  553. package/dist/package/browser/lib/page-tab-icons.js +64 -0
  554. package/dist/package/browser/lib/panel-tab-icons.d.ts +21 -0
  555. package/dist/package/browser/lib/panel-tab-icons.js +49 -0
  556. package/dist/package/browser/lib/passive-feedback.d.ts +50 -0
  557. package/dist/package/browser/lib/passive-feedback.js +171 -0
  558. package/dist/package/browser/lib/perception-stream.d.ts +27 -0
  559. package/dist/package/browser/lib/perception-stream.js +42 -0
  560. package/dist/package/browser/lib/platform/index.d.ts +14 -0
  561. package/dist/package/browser/lib/platform/index.js +13 -0
  562. package/dist/package/browser/lib/platform/runtime.d.ts +22 -0
  563. package/dist/package/browser/lib/platform/runtime.js +42 -0
  564. package/dist/package/browser/lib/platform/shell-adapter.d.ts +24 -0
  565. package/dist/package/browser/lib/platform/shell-adapter.js +74 -0
  566. package/dist/package/browser/lib/platform/surface-windowing.d.ts +4 -0
  567. package/dist/package/browser/lib/platform/surface-windowing.js +16 -0
  568. package/dist/package/browser/lib/platform/surface.d.ts +13 -0
  569. package/dist/package/browser/lib/platform/surface.js +27 -0
  570. package/dist/package/browser/lib/platform/use-surface-windowing.d.ts +1 -0
  571. package/dist/package/browser/lib/platform/use-surface-windowing.js +6 -0
  572. package/dist/package/browser/lib/platform/window-manager.d.ts +2 -0
  573. package/dist/package/browser/lib/platform/window-manager.js +82 -0
  574. package/dist/package/browser/lib/project-context.d.ts +4 -0
  575. package/dist/package/browser/lib/project-context.js +42 -0
  576. package/dist/package/browser/lib/project.d.ts +5 -0
  577. package/dist/package/browser/lib/project.js +8 -0
  578. package/dist/package/browser/lib/recent-games.d.ts +24 -0
  579. package/dist/package/browser/lib/recent-games.js +50 -0
  580. package/dist/package/browser/lib/repair-builtin-menus.d.ts +6 -0
  581. package/dist/package/browser/lib/repair-builtin-menus.js +18 -0
  582. package/dist/package/browser/lib/reply-language.d.ts +9 -0
  583. package/dist/package/browser/lib/reply-language.js +11 -0
  584. package/dist/package/browser/lib/resilient-polling.d.ts +9 -0
  585. package/dist/package/browser/lib/resilient-polling.js +16 -0
  586. package/dist/package/browser/lib/session-time.d.ts +8 -0
  587. package/dist/package/browser/lib/session-time.js +40 -0
  588. package/dist/package/browser/lib/shell-live-data.d.ts +12 -0
  589. package/dist/package/browser/lib/shell-live-data.js +66 -0
  590. package/dist/package/browser/lib/sse.d.ts +5 -0
  591. package/dist/package/browser/lib/sse.js +42 -0
  592. package/dist/package/browser/lib/storageKeys.d.ts +70 -0
  593. package/dist/package/browser/lib/storageKeys.js +89 -0
  594. package/dist/package/browser/lib/surface-store.d.ts +38 -0
  595. package/dist/package/browser/lib/surface-store.js +62 -0
  596. package/dist/package/browser/lib/surface.d.ts +56 -0
  597. package/dist/package/browser/lib/surface.js +225 -0
  598. package/dist/package/browser/lib/surfaceAnchors.d.ts +16 -0
  599. package/dist/package/browser/lib/surfaceAnchors.js +76 -0
  600. package/dist/package/browser/lib/surfaceKeepAliveLayout.d.ts +7 -0
  601. package/dist/package/browser/lib/surfaceKeepAliveLayout.js +12 -0
  602. package/dist/package/browser/lib/telemetry-test-prelude.d.ts +0 -0
  603. package/dist/package/browser/lib/telemetry-test-prelude.js +14 -0
  604. package/dist/package/browser/lib/text-edit-actions.d.ts +14 -0
  605. package/dist/package/browser/lib/text-edit-actions.js +184 -0
  606. package/dist/package/browser/lib/trace.d.ts +34 -0
  607. package/dist/package/browser/lib/trace.js +273 -0
  608. package/dist/package/browser/lib/trustedOrigins.d.ts +4 -0
  609. package/dist/package/browser/lib/trustedOrigins.js +36 -0
  610. package/dist/package/browser/lib/ui-action-highlight.d.ts +2 -0
  611. package/dist/package/browser/lib/ui-action-highlight.js +93 -0
  612. package/dist/package/browser/lib/ui-bridge.d.ts +2 -0
  613. package/dist/package/browser/lib/ui-bridge.js +224 -0
  614. package/dist/package/browser/lib/ui-screenshot.d.ts +31 -0
  615. package/dist/package/browser/lib/ui-screenshot.js +155 -0
  616. package/dist/package/browser/lib/ui-trajectory.d.ts +47 -0
  617. package/dist/package/browser/lib/ui-trajectory.js +99 -0
  618. package/dist/package/browser/lib/use-bus-snapshot.d.ts +3 -0
  619. package/dist/package/browser/lib/use-bus-snapshot.js +13 -0
  620. package/dist/package/browser/lib/use-extension-manifest.d.ts +19 -0
  621. package/dist/package/browser/lib/use-extension-manifest.js +67 -0
  622. package/dist/package/browser/lib/useConfirmToast.d.ts +26 -0
  623. package/dist/package/browser/lib/useConfirmToast.js +120 -0
  624. package/dist/package/browser/lib/utils.d.ts +2 -0
  625. package/dist/package/browser/lib/utils.js +5 -0
  626. package/dist/package/browser/lib/vag-action-bridge.d.ts +2 -0
  627. package/dist/package/browser/lib/vag-action-bridge.js +130 -0
  628. package/dist/package/browser/main.d.ts +1 -0
  629. package/dist/package/browser/main.js +157 -0
  630. package/dist/package/browser/store-parts/domain-clients.d.ts +149 -0
  631. package/dist/package/browser/store-parts/domain-clients.js +17 -0
  632. package/dist/package/browser/store-parts/observability.d.ts +4 -0
  633. package/dist/package/browser/store-parts/observability.js +35 -0
  634. package/dist/package/browser/store-parts/persistence.d.ts +40 -0
  635. package/dist/package/browser/store-parts/persistence.js +245 -0
  636. package/dist/package/browser/store-parts/session-client.d.ts +73 -0
  637. package/dist/package/browser/store-parts/session-client.js +17 -0
  638. package/dist/package/browser/store-parts/session-pick.d.ts +8 -0
  639. package/dist/package/browser/store-parts/session-pick.js +21 -0
  640. package/dist/package/browser/store-parts/shell.d.ts +5 -0
  641. package/dist/package/browser/store-parts/shell.js +37 -0
  642. package/dist/package/browser/store.d.ts +455 -0
  643. package/dist/package/browser/store.js +890 -0
  644. package/dist/package/browser/styles/forgeax-preview/agent-avatar.css +69 -0
  645. package/dist/package/browser/styles/forgeax-preview/aliases.css +21 -0
  646. package/dist/package/browser/styles/forgeax-preview/chat-popover.css +141 -0
  647. package/dist/package/browser/styles/forgeax-preview/chat-session.css +896 -0
  648. package/dist/package/browser/styles/forgeax-preview/composer-port.css +531 -0
  649. package/dist/package/browser/styles/forgeax-preview/design-tokens.css +25 -0
  650. package/dist/package/browser/styles/forgeax-preview/index.css +9 -0
  651. package/dist/package/browser/styles/forgeax-preview/scene-fx.css +117 -0
  652. package/dist/package/browser/styles/forgeax-preview/shell-layout.css +280 -0
  653. package/dist/package/browser/styles/forgeax-preview/shell-skin.css +128 -0
  654. package/dist/package/browser/styles/foundation.tokens.json +2755 -0
  655. package/dist/package/browser/styles/global.css +196 -0
  656. package/dist/package/browser/styles/motion.css +558 -0
  657. package/dist/package/browser/styles/plugin-token-bridge.css +19 -0
  658. package/dist/package/browser/styles/primitive.css +197 -0
  659. package/dist/package/browser/styles/semantic.tokens.json +1524 -0
  660. package/dist/package/browser/styles/tokens.css +304 -0
  661. package/dist/package/node/App.js +11 -0
  662. package/dist/package/node/ApplicationDetachedShell.js +10 -0
  663. package/dist/package/node/ApplicationShell.js +62 -0
  664. package/dist/package/node/app-kit.js +4 -0
  665. package/dist/package/node/appHostBootstrap.js +145 -0
  666. package/dist/package/node/application.js +64 -0
  667. package/dist/package/node/boot/SettingsSection.js +82 -0
  668. package/dist/package/node/boot/broadcast.js +32 -0
  669. package/dist/package/node/boot/driver.js +47 -0
  670. package/dist/package/node/boot/store.js +114 -0
  671. package/dist/package/node/boot/themes.js +21 -0
  672. package/dist/package/node/boot/types.js +30 -0
  673. package/dist/package/node/brand/BrandProvider.js +35 -0
  674. package/dist/package/node/brand/index.js +3 -0
  675. package/dist/package/node/brand/runtime.js +71 -0
  676. package/dist/package/node/brand/types.js +9 -0
  677. package/dist/package/node/components/ActivityRail/ActivityRail.js +164 -0
  678. package/dist/package/node/components/ActivityRail/activity-rail-model.js +144 -0
  679. package/dist/package/node/components/AgentAvatar/AgentAvatar.js +50 -0
  680. package/dist/package/node/components/BuildBadge/BuildBadge.js +279 -0
  681. package/dist/package/node/components/Bus/BusAdminPanel.js +1385 -0
  682. package/dist/package/node/components/Bus/CapabilityOverview.js +50 -0
  683. package/dist/package/node/components/ChatColumn/ChatColumn.js +18 -0
  684. package/dist/package/node/components/ChatColumn/SessionTabStrip.js +103 -0
  685. package/dist/package/node/components/ChatColumn/useChatWidth.js +13 -0
  686. package/dist/package/node/components/CommandPalette/CommandPalette.js +242 -0
  687. package/dist/package/node/components/Confirm/ConfirmDialog.js +113 -0
  688. package/dist/package/node/components/ContextMenu/ContextMenu.js +218 -0
  689. package/dist/package/node/components/ContextMenu/menuRegistry.js +152 -0
  690. package/dist/package/node/components/DetachedSurface.js +102 -0
  691. package/dist/package/node/components/DockShell/DockPanelHost.js +7 -0
  692. package/dist/package/node/components/DockShell/DockRegion.js +315 -0
  693. package/dist/package/node/components/DockShell/DockTab.js +139 -0
  694. package/dist/package/node/components/DockShell/ExtensionHostPanel.js +68 -0
  695. package/dist/package/node/components/DockShell/ExtensionRuntimeFrame.js +56 -0
  696. package/dist/package/node/components/DockShell/PanelWindowingBoundary.js +9 -0
  697. package/dist/package/node/components/DockShell/chatDockAnimation.js +101 -0
  698. package/dist/package/node/components/DockShell/chatDockFullscreen.js +22 -0
  699. package/dist/package/node/components/DockShell/chatDockLayout.js +11 -0
  700. package/dist/package/node/components/DockShell/compact-empty-dock-groups.js +28 -0
  701. package/dist/package/node/components/DockShell/crossInstanceDrop.js +1 -0
  702. package/dist/package/node/components/DockShell/dockResetEpoch.js +13 -0
  703. package/dist/package/node/components/DockShell/dockTitle.js +36 -0
  704. package/dist/package/node/components/DockShell/dockviewRegistry.js +1 -0
  705. package/dist/package/node/components/DockShell/edgeDrawer.js +1144 -0
  706. package/dist/package/node/components/DockShell/edgePinStore.js +37 -0
  707. package/dist/package/node/components/DockShell/extension-editor-bridge.js +100 -0
  708. package/dist/package/node/components/DockShell/extension-runtime-selection.js +6 -0
  709. package/dist/package/node/components/DockShell/extensionRuntime.js +84 -0
  710. package/dist/package/node/components/DockShell/footer-panel-visibility.js +43 -0
  711. package/dist/package/node/components/DockShell/footer-panels.js +7 -0
  712. package/dist/package/node/components/DockShell/panelRegistry.js +126 -0
  713. package/dist/package/node/components/DockShell/panelRenderers.js +25 -0
  714. package/dist/package/node/components/DockShell/panelTabCommands.js +133 -0
  715. package/dist/package/node/components/DockShell/panelWindowing.js +42 -0
  716. package/dist/package/node/components/DockShell/regions.js +1 -0
  717. package/dist/package/node/components/DockShell/resolveRegion.js +1 -0
  718. package/dist/package/node/components/DockShell/sanitizeDockLayout.js +46 -0
  719. package/dist/package/node/components/DockShell/sideEdgeMove.js +1 -0
  720. package/dist/package/node/components/DockShell/studioTabMenuProvider.js +39 -0
  721. package/dist/package/node/components/DockShell/tabContextMenu.js +68 -0
  722. package/dist/package/node/components/DockShell/ueDrag/controller.js +785 -0
  723. package/dist/package/node/components/DockShell/ueDrag/geometry.js +217 -0
  724. package/dist/package/node/components/DockShell/ueDrag/overlay.js +206 -0
  725. package/dist/package/node/components/DockShell/useAuxBarWidth.js +13 -0
  726. package/dist/package/node/components/Drawer/DrawerHostView.js +93 -0
  727. package/dist/package/node/components/Drawer/DrawerLauncher.js +22 -0
  728. package/dist/package/node/components/Drawer/useDrawerStore.js +80 -0
  729. package/dist/package/node/components/ErrorBoundary.js +131 -0
  730. package/dist/package/node/components/ExtensionHost/ExtensionIframeHost.js +179 -0
  731. package/dist/package/node/components/ExtensionHost/NativeExtensionHost.js +152 -0
  732. package/dist/package/node/components/Feedback/FeedbackPanel.js +118 -0
  733. package/dist/package/node/components/Feedback/PassiveFeedback.js +218 -0
  734. package/dist/package/node/components/Feedback/collect.js +80 -0
  735. package/dist/package/node/components/Feedback/store.js +174 -0
  736. package/dist/package/node/components/LangSwitcher/LangSwitcher.js +44 -0
  737. package/dist/package/node/components/MainArea/ConsolePanel.js +16 -0
  738. package/dist/package/node/components/MainArea/MainArea.js +20 -0
  739. package/dist/package/node/components/MainArea/StandaloneExtensionIframe.js +155 -0
  740. package/dist/package/node/components/MainArea/SurfacePanels.js +27 -0
  741. package/dist/package/node/components/MainArea/TelemetryViewer.js +116 -0
  742. package/dist/package/node/components/MenuBar/MenuBar.js +286 -0
  743. package/dist/package/node/components/MenuBar/index.js +1 -0
  744. package/dist/package/node/components/MenuBar/menubar-open-state.js +11 -0
  745. package/dist/package/node/components/MenuBar/menubar-surface.js +201 -0
  746. package/dist/package/node/components/ModelPicker/index.js +1 -0
  747. package/dist/package/node/components/ModelPicker/useModelCatalog.js +100 -0
  748. package/dist/package/node/components/Onboarding/ConnectModelPrompt.js +40 -0
  749. package/dist/package/node/components/Onboarding/OnboardingController.js +549 -0
  750. package/dist/package/node/components/Onboarding/connect-selection.js +18 -0
  751. package/dist/package/node/components/Onboarding/home-transition.js +20 -0
  752. package/dist/package/node/components/Onboarding/index.js +3 -0
  753. package/dist/package/node/components/Onboarding/prepareTourShell.js +11 -0
  754. package/dist/package/node/components/Onboarding/project-name.js +29 -0
  755. package/dist/package/node/components/Onboarding/types.js +77 -0
  756. package/dist/package/node/components/PageTabs/PageTabStrip.js +214 -0
  757. package/dist/package/node/components/PageTabs/openablePageTypes.js +13 -0
  758. package/dist/package/node/components/PanelShell/PanelShell.js +459 -0
  759. package/dist/package/node/components/Resize/ResizeHandle.js +1 -0
  760. package/dist/package/node/components/SceneBackground/SceneBackground.js +5 -0
  761. package/dist/package/node/components/SchemaForm/SchemaForm.js +86 -0
  762. package/dist/package/node/components/SchemaForm/schema-form-utils.js +51 -0
  763. package/dist/package/node/components/SettingsPrimitives.js +145 -0
  764. package/dist/package/node/components/Sidebar/BusHealthLamp.js +72 -0
  765. package/dist/package/node/components/Sidebar/FilesPanel.js +234 -0
  766. package/dist/package/node/components/Sidebar/Sidebar.js +8 -0
  767. package/dist/package/node/components/Sidebar/sidebar-types.js +1 -0
  768. package/dist/package/node/components/SlotDebugOverlay/SlotDebugOverlay.js +1 -0
  769. package/dist/package/node/components/SlotDebugOverlay/hashHue.js +1 -0
  770. package/dist/package/node/components/SlotDebugOverlay/index.js +1 -0
  771. package/dist/package/node/components/SlotDebugOverlay/isSlotDebugEnabled.js +1 -0
  772. package/dist/package/node/components/StatusBar/FatalBanner.js +52 -0
  773. package/dist/package/node/components/StatusBar/InfoPanel.js +128 -0
  774. package/dist/package/node/components/StatusBar/StatusChip.js +13 -0
  775. package/dist/package/node/components/StatusBar/StripHostView.js +91 -0
  776. package/dist/package/node/components/StatusBar/StripPopover.js +15 -0
  777. package/dist/package/node/components/StatusBar/feeds/PulseFeeds.js +88 -0
  778. package/dist/package/node/components/StatusBar/footer/CheckpointsDrawer.js +77 -0
  779. package/dist/package/node/components/StatusBar/footer/DiagnosticsPopover.js +108 -0
  780. package/dist/package/node/components/StatusBar/footer/EventsDrawer.js +25 -0
  781. package/dist/package/node/components/StatusBar/footer/ForgeaxBuildPopover.js +62 -0
  782. package/dist/package/node/components/StatusBar/healthBridge.js +245 -0
  783. package/dist/package/node/components/StatusBar/healthStore.js +129 -0
  784. package/dist/package/node/components/StatusBar/useStatusItem.js +35 -0
  785. package/dist/package/node/components/Surfaces/SurfaceKeepAliveLayer.js +218 -0
  786. package/dist/package/node/components/Surfaces/SurfaceOverlay.js +144 -0
  787. package/dist/package/node/components/TopBar/AndroidPackageDialog.js +115 -0
  788. package/dist/package/node/components/TopBar/FsBrowser.js +93 -0
  789. package/dist/package/node/components/TopBar/GameSwitcher.js +157 -0
  790. package/dist/package/node/components/TopBar/IosPackageDialog.js +115 -0
  791. package/dist/package/node/components/TopBar/ProjectSwitcher.js +41 -0
  792. package/dist/package/node/components/TopBar/PublishOnboarding.js +144 -0
  793. package/dist/package/node/components/TopBar/SessionSwitcher.js +124 -0
  794. package/dist/package/node/components/TopBar/TopBar.js +606 -0
  795. package/dist/package/node/components/TopBar/publish-options.js +28 -0
  796. package/dist/package/node/components/TourOverlay/TourOverlay.js +233 -0
  797. package/dist/package/node/components/TourOverlay/index.js +1 -0
  798. package/dist/package/node/components/ownership.js +7 -0
  799. package/dist/package/node/components/ui/SearchableMenu.js +40 -0
  800. package/dist/package/node/components/ui/alert-dialog.js +38 -0
  801. package/dist/package/node/components/ui/button.js +33 -0
  802. package/dist/package/node/components/ui/checkbox.js +8 -0
  803. package/dist/package/node/components/ui/command.js +20 -0
  804. package/dist/package/node/components/ui/dialog.js +34 -0
  805. package/dist/package/node/components/ui/dropdown-menu.js +30 -0
  806. package/dist/package/node/components/ui/input.js +8 -0
  807. package/dist/package/node/components/ui/label.js +7 -0
  808. package/dist/package/node/components/ui/popover.js +10 -0
  809. package/dist/package/node/components/ui/select.js +31 -0
  810. package/dist/package/node/components/ui/tabs.js +12 -0
  811. package/dist/package/node/components/ui/textarea.js +8 -0
  812. package/dist/package/node/components/ui/tooltip.js +10 -0
  813. package/dist/package/node/core/app-shell/catalog-page-extensions.js +234 -0
  814. package/dist/package/node/core/app-shell/derive-panel-renderers.js +17 -0
  815. package/dist/package/node/core/app-shell/host.js +188 -0
  816. package/dist/package/node/core/app-shell/index.js +8 -0
  817. package/dist/package/node/core/app-shell/logger.js +6 -0
  818. package/dist/package/node/core/app-shell/ownership.js +7 -0
  819. package/dist/package/node/core/app-shell/react/HostProvider.js +35 -0
  820. package/dist/package/node/core/app-shell/surface-extension.js +33 -0
  821. package/dist/package/node/core/app-shell/types.js +1 -0
  822. package/dist/package/node/core/contextual-keybindings.js +198 -0
  823. package/dist/package/node/core/extension-foundation/bus.js +3 -0
  824. package/dist/package/node/core/extension-foundation/capabilities.js +3 -0
  825. package/dist/package/node/core/extension-foundation/commands.js +3 -0
  826. package/dist/package/node/core/extension-foundation/context-keys.js +3 -0
  827. package/dist/package/node/core/extension-foundation/contribution-registry.js +3 -0
  828. package/dist/package/node/core/extension-foundation/errors.js +3 -0
  829. package/dist/package/node/core/extension-foundation/index.js +9 -0
  830. package/dist/package/node/core/extension-foundation/loader.js +3 -0
  831. package/dist/package/node/core/extension-foundation/storage.js +3 -0
  832. package/dist/package/node/core/extension-foundation/types.js +1 -0
  833. package/dist/package/node/core/extensions/builtin-commands.js +256 -0
  834. package/dist/package/node/core/extensions/builtin-menus.js +252 -0
  835. package/dist/package/node/core/extensions/chrome-drawer.js +45 -0
  836. package/dist/package/node/core/extensions/chrome-statusbar.js +26 -0
  837. package/dist/package/node/core/extensions/detached-agents-browser.js +9 -0
  838. package/dist/package/node/core/extensions/detached-files-browser.js +6 -0
  839. package/dist/package/node/core/extensions/editor-commands.js +182 -0
  840. package/dist/package/node/core/extensions/foundation-bus.js +3 -0
  841. package/dist/package/node/core/extensions/foundation-commands.js +6 -0
  842. package/dist/package/node/core/extensions/foundation-storage.js +3 -0
  843. package/dist/package/node/core/extensions/host-commands.js +52 -0
  844. package/dist/package/node/core/extensions/observability.js +18 -0
  845. package/dist/package/node/core/extensions/panels-chat.js +41 -0
  846. package/dist/package/node/core/extensions/panels-editor.js +26 -0
  847. package/dist/package/node/core/extensions/panels-viewport.js +20 -0
  848. package/dist/package/node/core/extensions/session-client.js +42 -0
  849. package/dist/package/node/core/extensions/slots-corner-agent-picker.js +6 -0
  850. package/dist/package/node/core/extensions/slots-main-area-body.js +6 -0
  851. package/dist/package/node/core/extensions/slots-sidebar-agents.js +6 -0
  852. package/dist/package/node/core/extensions/studio-domain-clients.js +15 -0
  853. package/dist/package/node/core/extensions/surfaces-scene-editor.js +6 -0
  854. package/dist/package/node/core/extensions/trajectory.js +50 -0
  855. package/dist/package/node/core/page-navigation.js +1 -0
  856. package/dist/package/node/core/page-platform/activity.js +46 -0
  857. package/dist/package/node/core/page-platform/dockview-layout.js +63 -0
  858. package/dist/package/node/core/page-platform/index.js +8 -0
  859. package/dist/package/node/core/page-platform/layout-store.js +54 -0
  860. package/dist/package/node/core/page-platform/page-dirty-probe.js +4 -0
  861. package/dist/package/node/core/page-platform/registry.js +194 -0
  862. package/dist/package/node/core/page-platform/resource-editor.js +74 -0
  863. package/dist/package/node/core/page-platform/session.js +327 -0
  864. package/dist/package/node/core/page-platform/types.js +10 -0
  865. package/dist/package/node/core/panels/context-expression.js +1 -0
  866. package/dist/package/node/core/panels/drawer.js +1 -0
  867. package/dist/package/node/core/panels/index.js +7 -0
  868. package/dist/package/node/core/panels/panel-action-registry.js +62 -0
  869. package/dist/package/node/core/panels/panel-control-registry.js +54 -0
  870. package/dist/package/node/core/panels/resolve-panel-action-state.js +9 -0
  871. package/dist/package/node/core/panels/strip.js +1 -0
  872. package/dist/package/node/core/panels/types.js +1 -0
  873. package/dist/package/node/i18n/index.js +207 -0
  874. package/dist/package/node/i18n/locales/en.json +1959 -0
  875. package/dist/package/node/i18n/locales/zh.json +1959 -0
  876. package/dist/package/node/index.js +2 -0
  877. package/dist/package/node/lib/a11y-summary.js +66 -0
  878. package/dist/package/node/lib/action-dom-discovery.js +84 -0
  879. package/dist/package/node/lib/action-registry.js +210 -0
  880. package/dist/package/node/lib/aegis.js +230 -0
  881. package/dist/package/node/lib/agent-catalog-url.js +24 -0
  882. package/dist/package/node/lib/agent-cli-provider.js +81 -0
  883. package/dist/package/node/lib/ai-intents.js +52 -0
  884. package/dist/package/node/lib/broadcast-stream.js +163 -0
  885. package/dist/package/node/lib/browser-prefs-sync.js +151 -0
  886. package/dist/package/node/lib/builtin-actions.js +558 -0
  887. package/dist/package/node/lib/bus.js +71 -0
  888. package/dist/package/node/lib/checkpoint-api.js +41 -0
  889. package/dist/package/node/lib/cli-providers.js +61 -0
  890. package/dist/package/node/lib/command-palette-store.js +22 -0
  891. package/dist/package/node/lib/composer-bridge.js +448 -0
  892. package/dist/package/node/lib/dashboard-api.js +125 -0
  893. package/dist/package/node/lib/deep-link-bus.js +35 -0
  894. package/dist/package/node/lib/dialog.js +103 -0
  895. package/dist/package/node/lib/editor-facts-bus.js +25 -0
  896. package/dist/package/node/lib/extension-api.js +90 -0
  897. package/dist/package/node/lib/file-activity-stream.js +123 -0
  898. package/dist/package/node/lib/file-family.js +25 -0
  899. package/dist/package/node/lib/game-templates.js +15 -0
  900. package/dist/package/node/lib/global-shortcuts.js +551 -0
  901. package/dist/package/node/lib/logSink.js +128 -0
  902. package/dist/package/node/lib/lucide-icon.js +20 -0
  903. package/dist/package/node/lib/menu-registry.js +197 -0
  904. package/dist/package/node/lib/model-config.js +72 -0
  905. package/dist/package/node/lib/model-prefs.js +53 -0
  906. package/dist/package/node/lib/model-route/index.js +175 -0
  907. package/dist/package/node/lib/narrative-copilot.js +105 -0
  908. package/dist/package/node/lib/native-menu-bridge.js +151 -0
  909. package/dist/package/node/lib/page-tab-icons.js +64 -0
  910. package/dist/package/node/lib/panel-tab-icons.js +49 -0
  911. package/dist/package/node/lib/passive-feedback.js +171 -0
  912. package/dist/package/node/lib/perception-stream.js +42 -0
  913. package/dist/package/node/lib/platform/index.js +13 -0
  914. package/dist/package/node/lib/platform/runtime.js +42 -0
  915. package/dist/package/node/lib/platform/shell-adapter.js +74 -0
  916. package/dist/package/node/lib/platform/surface-windowing.js +16 -0
  917. package/dist/package/node/lib/platform/surface.js +27 -0
  918. package/dist/package/node/lib/platform/use-surface-windowing.js +6 -0
  919. package/dist/package/node/lib/platform/window-manager.js +82 -0
  920. package/dist/package/node/lib/project-context.js +42 -0
  921. package/dist/package/node/lib/project.js +8 -0
  922. package/dist/package/node/lib/recent-games.js +50 -0
  923. package/dist/package/node/lib/repair-builtin-menus.js +18 -0
  924. package/dist/package/node/lib/reply-language.js +11 -0
  925. package/dist/package/node/lib/resilient-polling.js +16 -0
  926. package/dist/package/node/lib/session-time.js +40 -0
  927. package/dist/package/node/lib/shell-live-data.js +66 -0
  928. package/dist/package/node/lib/sse.js +42 -0
  929. package/dist/package/node/lib/storageKeys.js +89 -0
  930. package/dist/package/node/lib/surface-store.js +62 -0
  931. package/dist/package/node/lib/surface.js +225 -0
  932. package/dist/package/node/lib/surfaceAnchors.js +76 -0
  933. package/dist/package/node/lib/surfaceKeepAliveLayout.js +12 -0
  934. package/dist/package/node/lib/telemetry-test-prelude.js +14 -0
  935. package/dist/package/node/lib/text-edit-actions.js +184 -0
  936. package/dist/package/node/lib/trace.js +273 -0
  937. package/dist/package/node/lib/trustedOrigins.js +36 -0
  938. package/dist/package/node/lib/ui-action-highlight.js +93 -0
  939. package/dist/package/node/lib/ui-bridge.js +224 -0
  940. package/dist/package/node/lib/ui-screenshot.js +155 -0
  941. package/dist/package/node/lib/ui-trajectory.js +99 -0
  942. package/dist/package/node/lib/use-bus-snapshot.js +13 -0
  943. package/dist/package/node/lib/use-extension-manifest.js +67 -0
  944. package/dist/package/node/lib/useConfirmToast.js +120 -0
  945. package/dist/package/node/lib/utils.js +5 -0
  946. package/dist/package/node/lib/vag-action-bridge.js +130 -0
  947. package/dist/package/node/main.js +157 -0
  948. package/dist/package/node/store-parts/domain-clients.js +17 -0
  949. package/dist/package/node/store-parts/observability.js +35 -0
  950. package/dist/package/node/store-parts/persistence.js +245 -0
  951. package/dist/package/node/store-parts/session-client.js +17 -0
  952. package/dist/package/node/store-parts/session-pick.js +21 -0
  953. package/dist/package/node/store-parts/shell.js +37 -0
  954. package/dist/package/node/store.js +890 -0
  955. package/dist/package/node/styles/foundation.tokens.json +2755 -0
  956. package/dist/package/node/styles/semantic.tokens.json +1524 -0
  957. package/dist/package/packages/design/styles/fx-bridge.css +25 -0
  958. package/dist/package/packages/design/styles/primitive.css +199 -0
  959. package/dist/package/packages/design/styles/semantic.css +262 -0
  960. package/dist/package/packages/design/theme.d.ts +15 -0
  961. package/dist/package/packages/design/theme.js +31 -0
  962. package/dist/package/packages/design/tokens.css +14 -0
  963. package/package.json +145 -0
@@ -0,0 +1,2425 @@
1
+ /* P2.6d — Bus admin panel styles. Lives in the MainArea slot so the panel
2
+ fills the same flex column the Preview/Page modes own (vertical
3
+ scroll, no horizontal bleed). */
4
+
5
+ .bus-admin {
6
+ flex: 1;
7
+ min-width: 0;
8
+ overflow-y: auto;
9
+ padding: 18px 22px 32px;
10
+ background: var(--bg-0);
11
+ color: var(--text-secondary, rgba(255, 255, 255, 0.72));
12
+ font-size: 12px;
13
+ }
14
+
15
+ .ba-head {
16
+ display: flex;
17
+ align-items: center;
18
+ gap: 14px;
19
+ margin-bottom: 14px;
20
+ padding-bottom: 10px;
21
+ border-bottom: 1px solid var(--color-border-default);
22
+ }
23
+
24
+ .ba-title {
25
+ display: flex;
26
+ align-items: baseline;
27
+ gap: 10px;
28
+ flex: 1;
29
+ min-width: 0;
30
+ }
31
+
32
+ .ba-title-text {
33
+ font-size: 15px;
34
+ font-weight: 600;
35
+ color: var(--text-primary);
36
+ }
37
+
38
+ .ba-title-meta {
39
+ font-size: 11px;
40
+ color: var(--text-muted, rgba(255, 255, 255, 0.45));
41
+ font-family: var(--font-mono);
42
+ }
43
+
44
+ .ba-refresh {
45
+ background: rgba(212, 255, 72, 0.08);
46
+ border: 1px solid rgba(212, 255, 72, 0.25);
47
+ color: var(--primary);
48
+ padding: 4px 12px;
49
+ border-radius: 4px;
50
+ font-size: 11px;
51
+ cursor: pointer;
52
+ font-family: inherit;
53
+ }
54
+ .ba-refresh:hover { background: rgba(212, 255, 72, 0.16); }
55
+
56
+ .ba-error {
57
+ margin-bottom: 12px;
58
+ padding: 8px 12px;
59
+ border-radius: 4px;
60
+ background: rgba(255, 107, 107, 0.08);
61
+ border: 1px solid rgba(255, 107, 107, 0.25);
62
+ color: var(--accent-error);
63
+ font-size: 11px;
64
+ }
65
+
66
+ .ba-empty {
67
+ padding: 18px;
68
+ text-align: center;
69
+ color: var(--text-muted, rgba(255, 255, 255, 0.4));
70
+ font-style: italic;
71
+ }
72
+
73
+ /* P2.6e — kind chip + search filter bar; sits between head and groups. */
74
+ .ba-filterbar {
75
+ display: flex;
76
+ align-items: center;
77
+ gap: 12px;
78
+ margin-bottom: 14px;
79
+ flex-wrap: wrap;
80
+ }
81
+
82
+ .ba-chips {
83
+ display: inline-flex;
84
+ align-items: center;
85
+ gap: 6px;
86
+ flex-wrap: wrap;
87
+ }
88
+
89
+ .ba-chip {
90
+ display: inline-flex;
91
+ align-items: center;
92
+ gap: 6px;
93
+ padding: 3px 8px 3px 9px;
94
+ border-radius: 999px;
95
+ background: rgba(255, 255, 255, 0.04);
96
+ border: 1px solid rgba(255, 255, 255, 0.08);
97
+ color: var(--text-muted, rgba(255, 255, 255, 0.55));
98
+ font-family: var(--font-mono);
99
+ font-size: 10px;
100
+ font-weight: 700;
101
+ text-transform: uppercase;
102
+ letter-spacing: 0.04em;
103
+ cursor: pointer;
104
+ transition: opacity 0.12s, background 0.12s, border-color 0.12s;
105
+ }
106
+ .ba-chip:hover { background: rgba(255, 255, 255, 0.08); }
107
+ /* P3.57 — focus ring on chip for arrow-key roving tabindex. Pixel-mirrors
108
+ `.ws-icon-btn:focus-visible` (Sidebar P3.51), `.mode-tab:focus-visible`
109
+ (TopBar P3.53), `.dash-nav-item:focus-visible` (Dashboard P3.54),
110
+ `.tab:focus-visible` (TabStrip P3.55). Sixth surface in the family. */
111
+ .ba-chip:focus-visible {
112
+ outline: 2px solid rgba(255, 255, 255, 0.55);
113
+ outline-offset: -1px;
114
+ border-radius: 999px;
115
+ }
116
+ /* P3.57 — `←→` key-cap chip in the filter chip row. Pixel-mirrors `.ts-kbd`
117
+ (P3.55), `.dash-nav-kbd` (P3.54), `.tb-center-kbd` (P3.53),
118
+ `.ss-header-kbd` (P3.51), `.ss-footer-kbd` (P3.50). Sixth surface in the
119
+ key-cap family. Sits before the first kind chip so the keyboard contract
120
+ is visible without any input. */
121
+ .ba-kbd {
122
+ display: inline-flex;
123
+ align-items: center;
124
+ align-self: center;
125
+ font-family: var(--font-mono);
126
+ font-size: 9.5px;
127
+ letter-spacing: 0;
128
+ padding: 0 3px;
129
+ margin: 0 4px 0 0;
130
+ border-radius: 3px;
131
+ background: rgba(255, 255, 255, 0.06);
132
+ border: 1px solid rgba(255, 255, 255, 0.18);
133
+ color: rgba(255, 255, 255, 0.72);
134
+ line-height: 1.5;
135
+ user-select: none;
136
+ flex-shrink: 0;
137
+ }
138
+ .ba-chip.is-off {
139
+ opacity: 0.32;
140
+ filter: grayscale(0.6);
141
+ }
142
+ .ba-chip-count {
143
+ font-size: 10px;
144
+ padding: 0 5px;
145
+ border-radius: 8px;
146
+ background: rgba(0, 0, 0, 0.35);
147
+ color: rgba(255, 255, 255, 0.78);
148
+ font-variant-numeric: tabular-nums;
149
+ }
150
+
151
+ .ba-chip.k-extension { background: rgba(212, 255, 72, 0.10); border-color: rgba(212, 255, 72, 0.32); color: var(--primary); }
152
+ .ba-chip.k-extension { background: rgba(212, 255, 72, 0.10); border-color: rgba(212, 255, 72, 0.32); color: var(--primary); }
153
+ .ba-chip.k-agent { background: rgba(168, 85, 247, 0.12); border-color: rgba(168, 85, 247, 0.35); color: var(--color-role-orchestrator); }
154
+ .ba-chip.k-cli-provider { background: rgba(108, 196, 255, 0.10); border-color: rgba(108, 196, 255, 0.34); color: var(--color-kind-cli-provider); }
155
+ .ba-chip.k-model-binding { background: rgba(126, 231, 196, 0.10); border-color: rgba(126, 231, 196, 0.32); color: var(--accent-mint); }
156
+ .ba-chip.k-skill { background: rgba(255, 200, 120, 0.10); border-color: rgba(255, 200, 120, 0.34); color: var(--color-role-narrative); }
157
+ .ba-chip.k-tool { background: rgba(255, 140, 66, 0.10); border-color: rgba(255, 140, 66, 0.34); color: var(--color-role-coding); }
158
+
159
+ /*
160
+ * P4.84 — kind glyph prefix on .ba-chip-name (filter bar chip label)
161
+ *
162
+ * Mirrors the P4.83 glyph system from .ba-kind-tag::before to the filter
163
+ * bar chip row, so both kind-identity surfaces — section header (top of
164
+ * each kind block) and filter chip row (top of the panel) — share the
165
+ * same 6-glyph alphabet. Player can now scan either surface by
166
+ * silhouette and the eye trains a single ▦/◆/⌘/◈/★/✦ → kind mapping.
167
+ *
168
+ * extension ▦ panel/board
169
+ * agent ◆ diamond
170
+ * cli-provider ⌘ command / process
171
+ * model-binding ◈ containing diamond
172
+ * skill ★ star
173
+ * tool ✦ pointed star
174
+ *
175
+ * Glyph inherits color from .ba-chip.k-* tribe-color (same family as
176
+ * .ba-kind-tag), opacity 0.8 keeps it recessed against the kind text.
177
+ * margin-right 4px (vs P4.83's 5px) is one pixel tighter because the
178
+ * chip pill is more compact than the section header tag.
179
+ */
180
+ .ba-chip-name::before {
181
+ display: inline-block;
182
+ margin-right: 4px;
183
+ opacity: 0.8;
184
+ font-weight: 600;
185
+ }
186
+ .ba-chip.k-extension .ba-chip-name::before { content: '▦'; }
187
+ .ba-chip.k-extension .ba-chip-name::before { content: '▦'; }
188
+ .ba-chip.k-agent .ba-chip-name::before { content: '◆'; }
189
+ .ba-chip.k-cli-provider .ba-chip-name::before { content: '⌘'; }
190
+ .ba-chip.k-model-binding .ba-chip-name::before { content: '◈'; }
191
+ .ba-chip.k-skill .ba-chip-name::before { content: '★'; }
192
+ .ba-chip.k-tool .ba-chip-name::before { content: '✦'; }
193
+
194
+ .ba-search {
195
+ flex: 1 1 220px;
196
+ min-width: 180px;
197
+ max-width: 360px;
198
+ padding: 5px 10px;
199
+ border-radius: 4px;
200
+ background: rgba(255, 255, 255, 0.04);
201
+ border: 1px solid rgba(255, 255, 255, 0.10);
202
+ color: var(--text-primary);
203
+ font-family: inherit;
204
+ font-size: 11px;
205
+ outline: none;
206
+ transition: border-color 0.12s, background 0.12s;
207
+ }
208
+ .ba-search::placeholder { color: rgba(255, 255, 255, 0.32); }
209
+ .ba-search:focus {
210
+ border-color: rgba(212, 255, 72, 0.45);
211
+ background: rgba(212, 255, 72, 0.04);
212
+ }
213
+
214
+ .ba-reset {
215
+ padding: 4px 10px;
216
+ border-radius: 4px;
217
+ background: rgba(255, 107, 107, 0.06);
218
+ border: 1px solid rgba(255, 107, 107, 0.22);
219
+ color: var(--accent-error);
220
+ font-family: inherit;
221
+ font-size: 10px;
222
+ cursor: pointer;
223
+ }
224
+ .ba-reset:hover { background: rgba(255, 107, 107, 0.14); }
225
+
226
+ .ba-groups {
227
+ display: flex;
228
+ flex-direction: column;
229
+ gap: 18px;
230
+ }
231
+
232
+ .ba-kind {
233
+ background: var(--bg-1);
234
+ border: 1px solid var(--color-border-default);
235
+ border-radius: 6px;
236
+ overflow: hidden;
237
+ }
238
+
239
+ .ba-kind-head {
240
+ display: flex;
241
+ align-items: center;
242
+ gap: 10px;
243
+ padding: 10px 14px;
244
+ background: rgba(255, 255, 255, 0.02);
245
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
246
+ }
247
+
248
+ .ba-kind-tag {
249
+ font-size: 10px;
250
+ font-weight: 700;
251
+ text-transform: uppercase;
252
+ letter-spacing: 0.05em;
253
+ padding: 2px 8px;
254
+ border-radius: 3px;
255
+ background: rgba(255, 255, 255, 0.06);
256
+ color: var(--text-secondary, rgba(255, 255, 255, 0.7));
257
+ font-family: var(--font-mono);
258
+ }
259
+ .ba-kind-tag.k-extension { background: rgba(212, 255, 72, 0.12); color: var(--primary); }
260
+ .ba-kind-tag.k-extension { background: rgba(212, 255, 72, 0.12); color: var(--primary); }
261
+ .ba-kind-tag.k-agent { background: rgba(168, 85, 247, 0.14); color: var(--color-role-orchestrator); }
262
+ .ba-kind-tag.k-cli-provider { background: rgba(108, 196, 255, 0.12); color: var(--color-kind-cli-provider); }
263
+ .ba-kind-tag.k-model-binding { background: rgba(126, 231, 196, 0.1); color: var(--accent-mint); }
264
+ .ba-kind-tag.k-skill { background: rgba(255, 200, 120, 0.12); color: var(--color-role-narrative); }
265
+ .ba-kind-tag.k-tool { background: rgba(255, 140, 66, 0.12); color: var(--color-role-coding); }
266
+
267
+ /*
268
+ * P4.83 — kind glyph prefix on .ba-kind-tag (section header kind label)
269
+ *
270
+ * Section headers now show a kind-specific Unicode glyph immediately
271
+ * before the all-caps kind text. Each of the 6 bus kinds gets a
272
+ * 1-character visual anchor that reads faster than mono text alone,
273
+ * letting the player scan kind sections by silhouette rather than by
274
+ * reading every label. Glyphs are picked from Geometric Shapes /
275
+ * Misc Symbols Unicode ranges for cross-platform monospace stability:
276
+ *
277
+ * extension ▦ panel/board
278
+ * agent ◆ diamond
279
+ * cli-provider ⌘ command / process
280
+ * model-binding ◈ containing diamond
281
+ * skill ★ star
282
+ * tool ✦ pointed star
283
+ *
284
+ * The pseudo inherits its color from the parent .ba-kind-tag.k-* rule,
285
+ * so the glyph automatically follows the tribe-color of its kind.
286
+ * opacity 0.85 keeps it subtly recessed against the bolder all-caps
287
+ * text. margin-right 5px separates the glyph from the existing kind
288
+ * text without changing the pill's outer padding or layout footprint.
289
+ */
290
+ .ba-kind-tag::before {
291
+ display: inline-block;
292
+ margin-right: 5px;
293
+ opacity: 0.85;
294
+ font-weight: 600;
295
+ }
296
+ .ba-kind-tag.k-extension::before { content: '▦'; }
297
+ .ba-kind-tag.k-extension::before { content: '▦'; }
298
+ .ba-kind-tag.k-agent::before { content: '◆'; }
299
+ .ba-kind-tag.k-cli-provider::before { content: '⌘'; }
300
+ .ba-kind-tag.k-model-binding::before { content: '◈'; }
301
+ .ba-kind-tag.k-skill::before { content: '★'; }
302
+ .ba-kind-tag.k-tool::before { content: '✦'; }
303
+
304
+ /*
305
+ * P4.85 — 4px tribe-color left strip on .ba-kind-head (section header row).
306
+ *
307
+ * Completes the kind-identity stack inside BusAdminPanel:
308
+ * - .ba-kind-tag.k-* glyph + color (P4.83 — pill silhouette)
309
+ * - .ba-chip-name::before glyph (P4.84 — filter row silhouette)
310
+ * - .ba-kind-head left strip (P4.85 — section banding · this rule)
311
+ *
312
+ * Detected via :has() rather than adding a class to the <header> element,
313
+ * so no markup change is required — the same .k-* tribe colors live on
314
+ * the child .ba-kind-tag and the parent header inherits the identity via
315
+ * descendant selector. Implemented as inset box-shadow (4px wide) instead
316
+ * of border-left so the existing padding/layout is unchanged.
317
+ */
318
+ .ba-kind-head:has(.ba-kind-tag.k-extension) { box-shadow: inset 4px 0 0 var(--primary); }
319
+ .ba-kind-head:has(.ba-kind-tag.k-extension) { box-shadow: inset 4px 0 0 var(--primary); }
320
+ .ba-kind-head:has(.ba-kind-tag.k-agent) { box-shadow: inset 4px 0 0 var(--color-role-orchestrator); }
321
+ .ba-kind-head:has(.ba-kind-tag.k-cli-provider) { box-shadow: inset 4px 0 0 var(--color-kind-cli-provider); }
322
+ .ba-kind-head:has(.ba-kind-tag.k-model-binding) { box-shadow: inset 4px 0 0 var(--accent-mint); }
323
+ .ba-kind-head:has(.ba-kind-tag.k-skill) { box-shadow: inset 4px 0 0 var(--color-role-narrative); }
324
+ .ba-kind-head:has(.ba-kind-tag.k-tool) { box-shadow: inset 4px 0 0 var(--color-role-coding); }
325
+
326
+ /*
327
+ * P3.44 — kind-section header tag becomes the 3rd producer of the
328
+ * pendingSidebarKindFlash store-slot (after P3.38 ba-chip filter row +
329
+ * P3.43 detail-row .ba-backlink-kind). Click any section header kind tag
330
+ * → BUS KINDS chip of same kind pulses for 1.5s in Sidebar footer.
331
+ *
332
+ * The tag is now a <button>, so we reset native chrome (font/family/cursor)
333
+ * and layer hover/focus rings on top of the per-kind background+color so
334
+ * the player gets a visual "I can click this" signal without disturbing
335
+ * the existing color family lock.
336
+ */
337
+ button.ba-kind-tag.is-link {
338
+ border: 1px solid transparent;
339
+ cursor: pointer;
340
+ font-family: var(--font-mono);
341
+ transition: transform 110ms ease, border-color 110ms ease, box-shadow 110ms ease, filter 110ms ease;
342
+ line-height: 1.1;
343
+ }
344
+ button.ba-kind-tag.is-link:hover {
345
+ filter: brightness(1.18);
346
+ transform: translateY(-0.5px);
347
+ border-color: rgba(255, 255, 255, 0.18);
348
+ }
349
+ button.ba-kind-tag.is-link:focus-visible {
350
+ outline: none;
351
+ border-color: currentColor;
352
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.08);
353
+ }
354
+ button.ba-kind-tag.is-link:active {
355
+ transform: translateY(0);
356
+ filter: brightness(0.95);
357
+ }
358
+
359
+ /*
360
+ * P4.96 — detail-row kind tag scoped variant. The kind tag inside the
361
+ * `.ba-detail-grid` cell shares the .ba-kind-tag.is-link base button chrome
362
+ * (P3.43) but advertises a different action than the section-header sibling
363
+ * (section header → setPendingSidebarKindFlash; detail cell → solo-filter
364
+ * BusAdminPanel via setEnabledKinds). To keep the two visually distinct
365
+ * without inventing a new tribe color, we layer a subtle 1px inner ring
366
+ * tinted with currentColor (= kind tribe color, already set by the .k-*
367
+ * rule above) at static rest, then upgrade to the brighter 0.32 ring on
368
+ * hover. Net effect: static state shows a faint outlined chip that reads
369
+ * as "actionable" without flicker, and hover/focus is clearly distinct
370
+ * from the section-header tag's looser border-color treatment.
371
+ */
372
+ .ba-detail-kind-link {
373
+ box-shadow: inset 0 0 0 1px currentColor;
374
+ opacity: 0.92;
375
+ }
376
+ .ba-detail-kind-link:hover {
377
+ box-shadow: inset 0 0 0 1px currentColor, 0 0 0 1px currentColor;
378
+ opacity: 1;
379
+ }
380
+ .ba-detail-kind-link:focus-visible {
381
+ box-shadow: inset 0 0 0 1px currentColor, 0 0 0 2px rgba(255, 255, 255, 0.18);
382
+ opacity: 1;
383
+ }
384
+
385
+ .ba-kind-count {
386
+ font-size: 11px;
387
+ color: var(--text-muted, rgba(255, 255, 255, 0.45));
388
+ font-family: var(--font-mono);
389
+ }
390
+
391
+ .ba-kind-desc {
392
+ font-size: 11px;
393
+ color: var(--text-muted, rgba(255, 255, 255, 0.45));
394
+ }
395
+
396
+ /* P4.14 — cli-provider section health LED. Lives between .ba-kind-count
397
+ and .ba-kind-desc, only rendered for kind === 'cli-provider'. Polls
398
+ /api/cli-providers every 10s; tone classes flip the dot color (lime ok /
399
+ amber warn / red down / dim loading-pulse). Hover title lists each
400
+ provider's ok/down line. Mirrors PreviewMode .pt-prov dot family (P4.7)
401
+ but inlined as a static pill — no click, the section header tag already
402
+ owns the click behaviour. */
403
+ .ba-kind-prov-led {
404
+ display: inline-flex;
405
+ align-items: center;
406
+ gap: 5px;
407
+ padding: 2px 7px 2px 6px;
408
+ border: 1px solid rgba(255, 255, 255, 0.08);
409
+ border-radius: 999px;
410
+ font-size: 10.5px;
411
+ font-family: var(--font-mono);
412
+ color: rgba(255, 255, 255, 0.78);
413
+ background: rgba(255, 255, 255, 0.03);
414
+ user-select: none;
415
+ }
416
+ .ba-kind-prov-dot {
417
+ width: 6px;
418
+ height: 6px;
419
+ border-radius: 50%;
420
+ background: rgba(180, 180, 180, 0.55);
421
+ box-shadow: 0 0 0 0 transparent;
422
+ }
423
+ .ba-kind-prov-led.is-ok .ba-kind-prov-dot {
424
+ background: var(--prim-color-green-400);
425
+ box-shadow: none;
426
+ }
427
+ .ba-kind-prov-led.is-ok {
428
+ border-color: rgba(75, 222, 128, 0.35);
429
+ color: rgba(176, 240, 195, 0.92);
430
+ }
431
+ .ba-kind-prov-led.is-warn .ba-kind-prov-dot {
432
+ background: var(--color-status-amber);
433
+ box-shadow: none;
434
+ }
435
+ .ba-kind-prov-led.is-warn {
436
+ border-color: rgba(245, 178, 67, 0.42);
437
+ color: rgba(248, 213, 153, 0.95);
438
+ }
439
+ .ba-kind-prov-led.is-down .ba-kind-prov-dot {
440
+ background: var(--accent-error);
441
+ box-shadow: none;
442
+ }
443
+ .ba-kind-prov-led.is-down {
444
+ border-color: rgba(255, 107, 107, 0.42);
445
+ color: rgba(255, 196, 196, 0.95);
446
+ }
447
+ .ba-kind-prov-led.is-loading .ba-kind-prov-dot {
448
+ animation: ba-kind-prov-pulse 1.2s ease-in-out infinite;
449
+ }
450
+ .ba-kind-prov-count {
451
+ font-size: 10.5px;
452
+ font-variant-numeric: tabular-nums;
453
+ letter-spacing: 0.01em;
454
+ }
455
+ @keyframes ba-kind-prov-pulse {
456
+ 0%, 100% { opacity: 0.55; }
457
+ 50% { opacity: 1; }
458
+ }
459
+
460
+ /* P4.33 — extension section LED. Lives inside the extension KindSection
461
+ header (between .ba-kind-count and .ba-kind-desc) only. Driven by the
462
+ parent BusAdminPanel polling /api/bus/ui/surfaces every 10s and joining
463
+ mounted plugin-layer wb ids against the extension plugin list. Tone
464
+ classes mirror .ba-kind-prov-led shape but lean on the extension tribe
465
+ color (lime #d4ff48 — same as .ba-kind-tag.k-extension) so the section
466
+ header reads as one visual unit. The pulse + warn/down/loading palette
467
+ stays identical to .ba-kind-prov-led for keyboard muscle memory across
468
+ sections. */
469
+ .ba-kind-page-led {
470
+ display: inline-flex;
471
+ align-items: center;
472
+ gap: 5px;
473
+ padding: 2px 7px 2px 6px;
474
+ border: 1px solid rgba(255, 255, 255, 0.08);
475
+ border-radius: 999px;
476
+ font-size: 10.5px;
477
+ font-family: var(--font-mono);
478
+ color: rgba(255, 255, 255, 0.78);
479
+ background: rgba(255, 255, 255, 0.03);
480
+ user-select: none;
481
+ }
482
+ .ba-kind-page-dot {
483
+ width: 6px;
484
+ height: 6px;
485
+ border-radius: 50%;
486
+ background: rgba(180, 180, 180, 0.55);
487
+ box-shadow: 0 0 0 0 transparent;
488
+ }
489
+ .ba-kind-page-led.is-ok .ba-kind-page-dot {
490
+ background: var(--primary);
491
+ box-shadow: none;
492
+ }
493
+ .ba-kind-page-led.is-ok {
494
+ border-color: rgba(212, 255, 72, 0.38);
495
+ color: rgba(228, 255, 168, 0.95);
496
+ }
497
+ .ba-kind-page-led.is-warn .ba-kind-page-dot {
498
+ background: var(--color-status-amber);
499
+ box-shadow: none;
500
+ }
501
+ .ba-kind-page-led.is-warn {
502
+ border-color: rgba(245, 178, 67, 0.42);
503
+ color: rgba(248, 213, 153, 0.95);
504
+ }
505
+ .ba-kind-page-led.is-down .ba-kind-page-dot {
506
+ background: var(--accent-error);
507
+ box-shadow: none;
508
+ }
509
+ .ba-kind-page-led.is-down {
510
+ border-color: rgba(255, 107, 107, 0.42);
511
+ color: rgba(255, 196, 196, 0.95);
512
+ }
513
+ .ba-kind-page-led.is-loading .ba-kind-page-dot {
514
+ animation: ba-kind-page-pulse 1.2s ease-in-out infinite;
515
+ }
516
+ .ba-kind-page-count {
517
+ font-size: 10.5px;
518
+ font-variant-numeric: tabular-nums;
519
+ letter-spacing: 0.01em;
520
+ }
521
+ @keyframes ba-kind-page-pulse {
522
+ 0%, 100% { opacity: 0.55; }
523
+ 50% { opacity: 1; }
524
+ }
525
+
526
+ /* P4.34 — agent section LED. Lives inside the agent KindSection header
527
+ (between .ba-kind-count and .ba-kind-desc) only. Driven by the parent
528
+ BusAdminPanel polling listBusPlugins('agent') + dashApi.daemons.list()
529
+ every 10s. Tone classes mirror .ba-kind-prov-led / .ba-kind-page-led shape
530
+ but the ok state leans on the agent tribe color (violet #c4a3ff — same
531
+ as .ba-kind-tag.k-agent / TabStrip .ts-agent-chip / TopBar tb-agent) so
532
+ the section header reads as one violet visual unit. Warn / down / loading
533
+ palette stays identical to the prior two LEDs for keyboard muscle
534
+ memory across sections. */
535
+ .ba-kind-agent-led {
536
+ display: inline-flex;
537
+ align-items: center;
538
+ gap: 5px;
539
+ padding: 2px 7px 2px 6px;
540
+ border: 1px solid rgba(255, 255, 255, 0.08);
541
+ border-radius: 999px;
542
+ font-size: 10.5px;
543
+ font-family: var(--font-mono);
544
+ color: rgba(255, 255, 255, 0.78);
545
+ background: rgba(255, 255, 255, 0.03);
546
+ user-select: none;
547
+ white-space: nowrap;
548
+ flex-shrink: 0;
549
+ }
550
+ .ba-kind-agent-dot {
551
+ width: 6px;
552
+ height: 6px;
553
+ border-radius: 50%;
554
+ background: rgba(180, 180, 180, 0.55);
555
+ box-shadow: 0 0 0 0 transparent;
556
+ }
557
+ .ba-kind-agent-led.is-ok .ba-kind-agent-dot {
558
+ background: var(--color-role-orchestrator);
559
+ box-shadow: none;
560
+ }
561
+ .ba-kind-agent-led.is-ok {
562
+ border-color: rgba(196, 163, 255, 0.42);
563
+ color: rgba(228, 215, 255, 0.95);
564
+ }
565
+ .ba-kind-agent-led.is-warn .ba-kind-agent-dot {
566
+ background: var(--color-status-amber);
567
+ box-shadow: none;
568
+ }
569
+ .ba-kind-agent-led.is-warn {
570
+ border-color: rgba(245, 178, 67, 0.42);
571
+ color: rgba(248, 213, 153, 0.95);
572
+ }
573
+ .ba-kind-agent-led.is-down .ba-kind-agent-dot {
574
+ background: var(--accent-error);
575
+ box-shadow: none;
576
+ }
577
+ .ba-kind-agent-led.is-down {
578
+ border-color: rgba(255, 107, 107, 0.42);
579
+ color: rgba(255, 196, 196, 0.95);
580
+ }
581
+ .ba-kind-agent-led.is-loading .ba-kind-agent-dot {
582
+ animation: ba-kind-agent-pulse 1.2s ease-in-out infinite;
583
+ }
584
+ .ba-kind-agent-count {
585
+ font-size: 10.5px;
586
+ font-variant-numeric: tabular-nums;
587
+ letter-spacing: 0.01em;
588
+ }
589
+ @keyframes ba-kind-agent-pulse {
590
+ 0%, 100% { opacity: 0.55; }
591
+ 50% { opacity: 1; }
592
+ }
593
+
594
+ /* P4.35 — model-binding section LED. Lives in the model-binding KindSection
595
+ header (between .ba-kind-count and .ba-kind-desc). Driven by parent
596
+ BusAdminPanel polling listBusPlugins('model-binding') + dashApi.providers()
597
+ every 10s, joined via VENDOR_TO_PROVIDER map. Tone classes mirror the prior
598
+ 3 section LEDs (prov / wb / agent) but ok leans on the model-binding tribe
599
+ color teal #7be7c4 — identical to .ba-kind-tag.k-model-binding /
600
+ .ba-chip.k-model-binding / .ba-backlink-kind.k-model-binding so the section
601
+ header reads as one teal visual unit. Warn / down / loading palette
602
+ identical to prior LEDs for keyboard muscle memory. */
603
+ .ba-kind-mb-led {
604
+ display: inline-flex;
605
+ align-items: center;
606
+ gap: 5px;
607
+ padding: 2px 7px 2px 6px;
608
+ border: 1px solid rgba(255, 255, 255, 0.08);
609
+ border-radius: 999px;
610
+ font-size: 10.5px;
611
+ font-family: var(--font-mono);
612
+ color: rgba(255, 255, 255, 0.78);
613
+ background: rgba(255, 255, 255, 0.03);
614
+ user-select: none;
615
+ white-space: nowrap;
616
+ flex-shrink: 0;
617
+ }
618
+ .ba-kind-mb-dot {
619
+ width: 6px;
620
+ height: 6px;
621
+ border-radius: 50%;
622
+ background: rgba(180, 180, 180, 0.55);
623
+ box-shadow: 0 0 0 0 transparent;
624
+ }
625
+ .ba-kind-mb-led.is-ok .ba-kind-mb-dot {
626
+ background: var(--accent-mint);
627
+ box-shadow: none;
628
+ }
629
+ .ba-kind-mb-led.is-ok {
630
+ border-color: rgba(123, 231, 196, 0.42);
631
+ color: rgba(196, 240, 222, 0.95);
632
+ }
633
+ .ba-kind-mb-led.is-warn .ba-kind-mb-dot {
634
+ background: var(--color-status-amber);
635
+ box-shadow: none;
636
+ }
637
+ .ba-kind-mb-led.is-warn {
638
+ border-color: rgba(245, 178, 67, 0.42);
639
+ color: rgba(248, 213, 153, 0.95);
640
+ }
641
+ .ba-kind-mb-led.is-down .ba-kind-mb-dot {
642
+ background: var(--accent-error);
643
+ box-shadow: none;
644
+ }
645
+ .ba-kind-mb-led.is-down {
646
+ border-color: rgba(255, 107, 107, 0.42);
647
+ color: rgba(255, 196, 196, 0.95);
648
+ }
649
+ .ba-kind-mb-led.is-loading .ba-kind-mb-dot {
650
+ animation: ba-kind-mb-pulse 1.2s ease-in-out infinite;
651
+ }
652
+ .ba-kind-mb-count {
653
+ font-size: 10.5px;
654
+ font-variant-numeric: tabular-nums;
655
+ letter-spacing: 0.01em;
656
+ }
657
+ @keyframes ba-kind-mb-pulse {
658
+ 0%, 100% { opacity: 0.55; }
659
+ 50% { opacity: 1; }
660
+ }
661
+
662
+ /* P4.36 — skill section LED. Lives in the skill KindSection header (between
663
+ .ba-kind-count and .ba-kind-desc). Driven by parent BusAdminPanel polling
664
+ listBusPlugins('skill') every 10s. Tone classes mirror the prior 4 section
665
+ LEDs (prov / wb / agent / mb) but ok leans on the skill tribe color gold
666
+ #ffc878 — identical to .ba-kind-tag.k-skill / .ba-chip.k-skill /
667
+ .ba-backlink-kind.k-skill so the section header reads as one gold visual
668
+ unit. Warn / down / loading palette identical to prior LEDs for keyboard
669
+ muscle memory. 5th of 5 BusAdminPanel section LEDs covered today (with
670
+ `tool` the lone remaining kind for 6/6 ceiling). */
671
+ .ba-kind-skill-led {
672
+ display: inline-flex;
673
+ align-items: center;
674
+ gap: 5px;
675
+ padding: 2px 7px 2px 6px;
676
+ border: 1px solid rgba(255, 255, 255, 0.08);
677
+ border-radius: 999px;
678
+ font-size: 10.5px;
679
+ font-family: var(--font-mono);
680
+ color: rgba(255, 255, 255, 0.78);
681
+ background: rgba(255, 255, 255, 0.03);
682
+ user-select: none;
683
+ white-space: nowrap;
684
+ flex-shrink: 0;
685
+ }
686
+ .ba-kind-skill-dot {
687
+ width: 6px;
688
+ height: 6px;
689
+ border-radius: 50%;
690
+ background: rgba(180, 180, 180, 0.55);
691
+ box-shadow: 0 0 0 0 transparent;
692
+ }
693
+ .ba-kind-skill-led.is-ok .ba-kind-skill-dot {
694
+ background: var(--color-role-narrative);
695
+ box-shadow: none;
696
+ }
697
+ .ba-kind-skill-led.is-ok {
698
+ border-color: rgba(255, 200, 120, 0.42);
699
+ color: rgba(255, 222, 178, 0.95);
700
+ }
701
+ .ba-kind-skill-led.is-warn .ba-kind-skill-dot {
702
+ background: var(--color-status-amber);
703
+ box-shadow: none;
704
+ }
705
+ .ba-kind-skill-led.is-warn {
706
+ border-color: rgba(245, 178, 67, 0.42);
707
+ color: rgba(248, 213, 153, 0.95);
708
+ }
709
+ .ba-kind-skill-led.is-down .ba-kind-skill-dot {
710
+ background: var(--accent-error);
711
+ box-shadow: none;
712
+ }
713
+ .ba-kind-skill-led.is-down {
714
+ border-color: rgba(255, 107, 107, 0.42);
715
+ color: rgba(255, 196, 196, 0.95);
716
+ }
717
+ .ba-kind-skill-led.is-loading .ba-kind-skill-dot {
718
+ animation: ba-kind-skill-pulse 1.2s ease-in-out infinite;
719
+ }
720
+ .ba-kind-skill-count {
721
+ font-size: 10.5px;
722
+ font-variant-numeric: tabular-nums;
723
+ letter-spacing: 0.01em;
724
+ }
725
+ @keyframes ba-kind-skill-pulse {
726
+ 0%, 100% { opacity: 0.55; }
727
+ 50% { opacity: 1; }
728
+ }
729
+
730
+ /* P4.37 — tool section LED. Closes the BusAdminPanel section-LED grid at
731
+ 6/6 (cli-provider P4.14 + extension P4.33 + agent P4.34 + model-binding
732
+ P4.35 + skill P4.36 + tool P4.37). Same pill grammar as prior 5 LEDs;
733
+ ok tone leans on the tool tribe color orange #ff8c42 identical to
734
+ .ba-kind-tag.k-tool / .ba-chip.k-tool / cb-tl-strip (P3.84) so the
735
+ section header reads as one orange visual unit. Warn / down / loading
736
+ palette identical for keyboard muscle memory. */
737
+ .ba-kind-tool-led {
738
+ display: inline-flex;
739
+ align-items: center;
740
+ gap: 5px;
741
+ padding: 2px 7px 2px 6px;
742
+ border: 1px solid rgba(255, 255, 255, 0.08);
743
+ border-radius: 999px;
744
+ font-size: 10.5px;
745
+ font-family: var(--font-mono);
746
+ color: rgba(255, 255, 255, 0.78);
747
+ background: rgba(255, 255, 255, 0.03);
748
+ user-select: none;
749
+ white-space: nowrap;
750
+ flex-shrink: 0;
751
+ }
752
+ .ba-kind-tool-dot {
753
+ width: 6px;
754
+ height: 6px;
755
+ border-radius: 50%;
756
+ background: rgba(180, 180, 180, 0.55);
757
+ box-shadow: 0 0 0 0 transparent;
758
+ }
759
+ .ba-kind-tool-led.is-ok .ba-kind-tool-dot {
760
+ background: var(--color-role-coding);
761
+ box-shadow: none;
762
+ }
763
+ .ba-kind-tool-led.is-ok {
764
+ border-color: rgba(255, 140, 66, 0.42);
765
+ color: rgba(255, 200, 168, 0.95);
766
+ }
767
+ .ba-kind-tool-led.is-warn .ba-kind-tool-dot {
768
+ background: var(--color-status-amber);
769
+ box-shadow: none;
770
+ }
771
+ .ba-kind-tool-led.is-warn {
772
+ border-color: rgba(245, 178, 67, 0.42);
773
+ color: rgba(248, 213, 153, 0.95);
774
+ }
775
+ .ba-kind-tool-led.is-down .ba-kind-tool-dot {
776
+ background: var(--accent-error);
777
+ box-shadow: none;
778
+ }
779
+ .ba-kind-tool-led.is-down {
780
+ border-color: rgba(255, 107, 107, 0.42);
781
+ color: rgba(255, 196, 196, 0.95);
782
+ }
783
+ .ba-kind-tool-led.is-loading .ba-kind-tool-dot {
784
+ animation: ba-kind-tool-pulse 1.2s ease-in-out infinite;
785
+ }
786
+ .ba-kind-tool-count {
787
+ font-size: 10.5px;
788
+ font-variant-numeric: tabular-nums;
789
+ letter-spacing: 0.01em;
790
+ }
791
+ @keyframes ba-kind-tool-pulse {
792
+ 0%, 100% { opacity: 0.55; }
793
+ 50% { opacity: 1; }
794
+ }
795
+
796
+ .ba-table {
797
+ width: 100%;
798
+ border-collapse: collapse;
799
+ font-size: 12px;
800
+ }
801
+
802
+ .ba-table th,
803
+ .ba-table td {
804
+ padding: 7px 12px;
805
+ text-align: left;
806
+ vertical-align: top;
807
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04);
808
+ }
809
+ .ba-table tr:last-child td { border-bottom: none; }
810
+ .ba-table th {
811
+ font-size: 10px;
812
+ font-weight: 600;
813
+ text-transform: uppercase;
814
+ letter-spacing: 0.04em;
815
+ color: var(--text-muted, rgba(255, 255, 255, 0.4));
816
+ background: rgba(255, 255, 255, 0.02);
817
+ }
818
+ .ba-table tr:hover td { background: rgba(255, 255, 255, 0.025); }
819
+ .ba-table tr.is-experimental td { /* subtle stripe for experimental rows */
820
+ box-shadow: inset 2px 0 0 rgba(255, 200, 120, 0.35);
821
+ }
822
+
823
+ .ba-table .c-chev { width: 24px; padding-left: 8px; padding-right: 0; }
824
+ .ba-table .c-id { width: 28%; }
825
+ .ba-table .c-name { width: 32%; }
826
+ .ba-table .c-ver { width: 8%; font-family: var(--font-mono); color: var(--text-muted); }
827
+
828
+ /* P4.62 — bumped-version pill in BusAdminPanel rows.
829
+ Extends the "purple = bumped past 0.0.x = real version" language from
830
+ PageMode (P4.58 tile chip / P4.59 strip pill / P4.60 corner ᵛ /
831
+ P4.61 tile frame) into the 6th surface — the Bus admin table itself.
832
+ Reuses the #c4a3ff purple family verbatim (0.95 text / 0.10 bg / 0.42 border).
833
+ Plain (non-bumped) rows get a neutral pill wrapper for vertical rhythm. */
834
+ .ba-table .ba-ver-pill {
835
+ display: inline-block;
836
+ padding: 1px 5px;
837
+ border-radius: 3px;
838
+ font-size: 11px;
839
+ line-height: 1.3;
840
+ }
841
+ .ba-table .ba-ver-pill.bumped {
842
+ color: rgba(196, 163, 255, 0.95);
843
+ background: rgba(196, 163, 255, 0.10);
844
+ border: 1px solid rgba(196, 163, 255, 0.42);
845
+ font-weight: 600;
846
+ }
847
+ /* P4.63 — row-level bumped accent. Promotes the P4.62 cell pill to row depth
848
+ so a scan of the table catches the bumped manifest at a glance (no need to
849
+ read the version column). Mirrors PageMode P4.61's 2px inset left frame
850
+ edge with the same #c4a3ff purple family. Composes with is-expanded — the
851
+ cyan expanded bg is overridden when bumped, keeping the bumped frame the
852
+ dominant identity signal (the chev still flips so expanded state remains
853
+ readable from the chevron column). */
854
+ .ba-table tr.is-bumped td {
855
+ background: rgba(196, 163, 255, 0.035);
856
+ box-shadow: inset 2px 0 0 rgba(196, 163, 255, 0.55);
857
+ }
858
+ .ba-table tr.is-bumped:hover td {
859
+ background: rgba(196, 163, 255, 0.075);
860
+ box-shadow: inset 2px 0 0 rgba(196, 163, 255, 0.75);
861
+ }
862
+ .ba-table tr.is-bumped.is-expanded td {
863
+ background: rgba(196, 163, 255, 0.085);
864
+ border-bottom-color: rgba(196, 163, 255, 0.32);
865
+ }
866
+ .ba-table .c-page { width: 22%; }
867
+ .ba-table .c-flags { width: 8%; }
868
+
869
+ /* P4.64 — column header semantic legend. Under the `version` th, a single-line
870
+ subtitle spells out the 0.0.x = placeholder ↔ 0.1+ = bumped semantic that
871
+ P4.58–P4.63 painted purple across 6 surfaces (PageMode tile chip /
872
+ strip pill / corner ᵛ / tile frame + BusAdminPanel cell pill / row tint).
873
+ Inline-block second line inside the th so the table header now has 2-axis
874
+ density (label + meaning) — the player no longer has to remember what the
875
+ purple pill means: the legend sits one row above each pill. The <em>bumped</em>
876
+ word is painted in the same #c4a3ff purple family so the legend points back
877
+ to the pixels it describes. text-transform/letter-spacing reset because the
878
+ parent th is uppercase; legend stays readable mixed-case. */
879
+ .ba-table th.c-ver { white-space: nowrap; }
880
+ .ba-table th.c-ver .ba-th-sub {
881
+ display: block;
882
+ margin-top: 2px;
883
+ font-size: 9px;
884
+ font-weight: 400;
885
+ text-transform: none;
886
+ letter-spacing: 0;
887
+ color: rgba(255, 255, 255, 0.32);
888
+ font-family: var(--font-mono);
889
+ }
890
+ .ba-table th.c-ver .ba-th-sub em {
891
+ font-style: normal;
892
+ color: rgba(196, 163, 255, 0.78);
893
+ font-weight: 600;
894
+ }
895
+
896
+ /* P2.6f — chevron + clickable row + detail row */
897
+ .ba-table tr.is-clickable { cursor: pointer; }
898
+ .ba-table tr.is-clickable:hover td { background: rgba(108, 196, 255, 0.045); }
899
+ .ba-table tr.is-expanded td {
900
+ background: rgba(108, 196, 255, 0.07);
901
+ border-bottom-color: rgba(108, 196, 255, 0.22);
902
+ }
903
+ .ba-chev {
904
+ display: inline-block;
905
+ width: 12px;
906
+ font-family: var(--font-mono);
907
+ font-size: 11px;
908
+ color: var(--text-muted, rgba(255, 255, 255, 0.45));
909
+ transition: color 0.12s, transform 0.12s;
910
+ user-select: none;
911
+ }
912
+ .ba-chev.is-open {
913
+ color: var(--color-kind-cli-provider);
914
+ }
915
+ .ba-table tr.is-clickable:hover .ba-chev { color: var(--color-kind-cli-provider); }
916
+
917
+ .ba-detail-row td {
918
+ padding: 0;
919
+ background: rgba(108, 196, 255, 0.04);
920
+ border-bottom: 1px solid rgba(108, 196, 255, 0.18);
921
+ box-shadow: inset 2px 0 0 rgba(108, 196, 255, 0.45);
922
+ }
923
+ .ba-detail {
924
+ padding: 12px 16px 14px 40px;
925
+ display: flex;
926
+ flex-direction: column;
927
+ gap: 10px;
928
+ }
929
+ .ba-detail-block {
930
+ display: flex;
931
+ flex-direction: column;
932
+ gap: 3px;
933
+ }
934
+ .ba-detail-label {
935
+ font-size: 9px;
936
+ font-weight: 600;
937
+ text-transform: uppercase;
938
+ letter-spacing: 0.06em;
939
+ color: var(--text-muted, rgba(255, 255, 255, 0.4));
940
+ font-family: var(--font-mono);
941
+ }
942
+ .ba-detail-body {
943
+ font-size: 12px;
944
+ color: var(--text-primary);
945
+ line-height: 1.55;
946
+ }
947
+ .ba-detail-en {
948
+ font-style: italic;
949
+ color: var(--text-secondary, rgba(255, 255, 255, 0.6));
950
+ font-size: 11px;
951
+ }
952
+ .ba-detail-grid {
953
+ display: grid;
954
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
955
+ gap: 10px 18px;
956
+ margin-top: 2px;
957
+ }
958
+ .ba-detail-cell {
959
+ display: flex;
960
+ flex-direction: column;
961
+ gap: 4px;
962
+ min-width: 0;
963
+ }
964
+ .ba-detail-cell-wide {
965
+ grid-column: 1 / -1;
966
+ }
967
+ .ba-detail-code {
968
+ font-family: var(--font-mono);
969
+ font-size: 11px;
970
+ color: var(--color-kind-cli-provider);
971
+ background: rgba(108, 196, 255, 0.08);
972
+ padding: 2px 6px;
973
+ border-radius: 3px;
974
+ display: inline-block;
975
+ word-break: break-all;
976
+ align-self: flex-start;
977
+ }
978
+ /* P4.93 — entry.frontend pill (relative React panel path). Uses the lime
979
+ * accent family (matches the agent tribe / extension LED) so the player can
980
+ * tell at a glance "this is the UI source", visually distinct from the cyan
981
+ * manifest hint pill living in the sibling cell. */
982
+ .ba-detail-entry {
983
+ color: var(--primary);
984
+ background: rgba(212, 255, 72, 0.08);
985
+ border: 1px solid rgba(212, 255, 72, 0.22);
986
+ }
987
+ /* P4.94 — when the entry.frontend pill is rendered as a deep-link <button>
988
+ * (extension rows), reset native button chrome and add hover/focus affordances
989
+ * so the player learns "this lime path is clickable" without breaking the
990
+ * pill aesthetic. Underline on hover signals the deep-link semantic; bg/border
991
+ * lift gives tactile feedback. Keeps the lime token, no new colors. */
992
+ button.ba-detail-entry-link {
993
+ font: inherit;
994
+ cursor: pointer;
995
+ text-align: left;
996
+ transition: background 120ms ease, border-color 120ms ease, transform 80ms ease;
997
+ }
998
+ button.ba-detail-entry-link:hover {
999
+ background: rgba(212, 255, 72, 0.16);
1000
+ border-color: rgba(212, 255, 72, 0.45);
1001
+ text-decoration: underline;
1002
+ text-underline-offset: 2px;
1003
+ }
1004
+ button.ba-detail-entry-link:active {
1005
+ transform: translateY(1px);
1006
+ }
1007
+ button.ba-detail-entry-link:focus-visible {
1008
+ outline: 1px solid rgba(212, 255, 72, 0.7);
1009
+ outline-offset: 2px;
1010
+ }
1011
+ /* P4.95 — manifest hint cell becomes a click-to-copy button. Sibling pattern
1012
+ * to the lime entry-link from P4.94 but stays in the cyan family that the
1013
+ * .ba-detail-code base already uses for manifest, so the player learns
1014
+ * "cyan = manifest path · lime = panel entry" as paired actionable affordances
1015
+ * without introducing a third color. Hover lifts bg 8%→16% + adds a 1px cyan
1016
+ * border (mirrors entry-link's lift) + underline-2px for the deep-link cue. */
1017
+ button.ba-detail-manifest-link {
1018
+ font: inherit;
1019
+ cursor: pointer;
1020
+ text-align: left;
1021
+ border: 1px solid transparent;
1022
+ transition: background 120ms ease, border-color 120ms ease, transform 80ms ease, box-shadow 200ms ease;
1023
+ }
1024
+ button.ba-detail-manifest-link:hover {
1025
+ background: rgba(108, 196, 255, 0.16);
1026
+ border-color: rgba(108, 196, 255, 0.45);
1027
+ text-decoration: underline;
1028
+ text-underline-offset: 2px;
1029
+ }
1030
+ button.ba-detail-manifest-link:active {
1031
+ transform: translateY(1px);
1032
+ }
1033
+ button.ba-detail-manifest-link:focus-visible {
1034
+ outline: 1px solid rgba(108, 196, 255, 0.7);
1035
+ outline-offset: 2px;
1036
+ }
1037
+ /* Post-click flash: a 1.4s lime-bordered confirmation glow + lime ✓ label.
1038
+ * Uses the lime accent because the entry-link adjacent cell already trained the
1039
+ * player to read lime as "panel/source action complete"; flashing lime here
1040
+ * gives the same "action confirmed" semantic without a new color. */
1041
+ button.ba-detail-manifest-link.copied {
1042
+ background: rgba(212, 255, 72, 0.18);
1043
+ border-color: rgba(212, 255, 72, 0.55);
1044
+ box-shadow: 0 0 0 1px rgba(212, 255, 72, 0.25);
1045
+ }
1046
+ .ba-detail-copy-flash {
1047
+ display: inline-block;
1048
+ margin-left: 6px;
1049
+ font-size: 10px;
1050
+ font-weight: 600;
1051
+ color: var(--primary);
1052
+ opacity: 0;
1053
+ transform: translateY(-1px);
1054
+ transition: opacity 160ms ease, transform 160ms ease;
1055
+ pointer-events: none;
1056
+ }
1057
+ .ba-detail-copy-flash.on {
1058
+ opacity: 0.85;
1059
+ transform: translateY(0);
1060
+ }
1061
+ /* P4.97 — version cell click-to-copy: sibling of P4.95 .ba-detail-manifest-link,
1062
+ * stays in the cyan family (.ba-detail-code base color = cyan) so the player
1063
+ * reads the entire "copy stack" of detail-grid cells as one consistent action
1064
+ * vocabulary. Differs from manifest-link only by being typically a short token
1065
+ * (e.g. "0.1.0") — no break-all needed but inherits it harmlessly. Flash uses
1066
+ * the same lime "action confirmed" cue the manifest-link uses, training the
1067
+ * player on a single "lime flash = copy success" hint across the grid. */
1068
+ button.ba-detail-version-link {
1069
+ font: inherit;
1070
+ cursor: pointer;
1071
+ text-align: left;
1072
+ border: 1px solid transparent;
1073
+ transition: background 120ms ease, border-color 120ms ease, transform 80ms ease, box-shadow 200ms ease;
1074
+ }
1075
+ button.ba-detail-version-link:hover {
1076
+ background: rgba(108, 196, 255, 0.16);
1077
+ border-color: rgba(108, 196, 255, 0.45);
1078
+ text-decoration: underline;
1079
+ text-underline-offset: 2px;
1080
+ }
1081
+ button.ba-detail-version-link:active {
1082
+ transform: translateY(1px);
1083
+ }
1084
+ button.ba-detail-version-link:focus-visible {
1085
+ outline: 1px solid rgba(108, 196, 255, 0.7);
1086
+ outline-offset: 2px;
1087
+ }
1088
+ button.ba-detail-version-link.copied {
1089
+ background: rgba(212, 255, 72, 0.18);
1090
+ border-color: rgba(212, 255, 72, 0.55);
1091
+ box-shadow: 0 0 0 1px rgba(212, 255, 72, 0.25);
1092
+ }
1093
+ .ba-detail-note {
1094
+ font-size: 10px;
1095
+ color: var(--text-muted, rgba(255, 255, 255, 0.38));
1096
+ font-style: italic;
1097
+ padding-top: 4px;
1098
+ border-top: 1px dashed rgba(255, 255, 255, 0.05);
1099
+ }
1100
+
1101
+ /* P3.33 — reverse deep-link button bar. Sky-blue family (matches the .ac-bus-pill
1102
+ * forward direction in Sidebar) so the round-trip reads as one consistent
1103
+ * navigation vocabulary. Two button variants share the same shell but vary by
1104
+ * which target kind is in scope: agent → highlight Sidebar card, extension →
1105
+ * switch to Page mode and open that * tab. */
1106
+ .ba-backlinks {
1107
+ display: flex;
1108
+ gap: 8px;
1109
+ flex-wrap: wrap;
1110
+ margin-top: 4px;
1111
+ }
1112
+ .ba-backlink {
1113
+ font-size: 11px;
1114
+ font-family: var(--font-mono);
1115
+ padding: 4px 10px;
1116
+ border-radius: 4px;
1117
+ background: rgba(109, 211, 255, 0.10);
1118
+ border: 1px solid rgba(109, 211, 255, 0.32);
1119
+ color: rgba(109, 211, 255, 0.90);
1120
+ cursor: pointer;
1121
+ transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
1122
+ }
1123
+ .ba-backlink:hover {
1124
+ background: rgba(109, 211, 255, 0.20);
1125
+ border-color: rgba(109, 211, 255, 0.55);
1126
+ transform: translateY(-0.5px);
1127
+ }
1128
+ .ba-backlink:focus-visible {
1129
+ outline: none;
1130
+ box-shadow: 0 0 0 2px rgba(109, 211, 255, 0.55);
1131
+ }
1132
+ .ba-backlink:active {
1133
+ transform: translateY(0.5px);
1134
+ background: rgba(109, 211, 255, 0.28);
1135
+ }
1136
+
1137
+ /* P3.43 — kind-flash variant. Each per-kind button is painted in the same
1138
+ * color family as .ba-kind-tag.k-* / .ba-chip.k-* / .ss-kind-chip.k-* so the
1139
+ * player learns "this color = that kind" once and reuses it across the
1140
+ * BusAdmin filter chip row, Sidebar BUS KINDS footer, kind cell tag, AND the
1141
+ * detail-row backlink that flashes them. Replaces the default sky-blue with
1142
+ * per-kind hex by overriding background / border-color / color in turn. */
1143
+ .ba-backlink-kind {
1144
+ display: inline-flex;
1145
+ align-items: center;
1146
+ gap: 5px;
1147
+ }
1148
+ .ba-backlink-kind-dot {
1149
+ font-size: 8px;
1150
+ line-height: 1;
1151
+ opacity: 0.85;
1152
+ }
1153
+ .ba-backlink-kind.k-cli-provider {
1154
+ background: rgba(108, 196, 255, 0.10);
1155
+ border-color: rgba(108, 196, 255, 0.34);
1156
+ color: var(--color-kind-cli-provider);
1157
+ }
1158
+ .ba-backlink-kind.k-cli-provider:hover {
1159
+ background: rgba(108, 196, 255, 0.22);
1160
+ border-color: rgba(108, 196, 255, 0.58);
1161
+ }
1162
+ .ba-backlink-kind.k-cli-provider:focus-visible {
1163
+ box-shadow: 0 0 0 2px rgba(108, 196, 255, 0.55);
1164
+ }
1165
+ .ba-backlink-kind.k-model-binding {
1166
+ background: rgba(126, 231, 196, 0.10);
1167
+ border-color: rgba(126, 231, 196, 0.36);
1168
+ color: var(--accent-mint);
1169
+ }
1170
+ .ba-backlink-kind.k-model-binding:hover {
1171
+ background: rgba(126, 231, 196, 0.22);
1172
+ border-color: rgba(126, 231, 196, 0.60);
1173
+ }
1174
+ .ba-backlink-kind.k-model-binding:focus-visible {
1175
+ box-shadow: 0 0 0 2px rgba(126, 231, 196, 0.55);
1176
+ }
1177
+ .ba-backlink-kind.k-skill {
1178
+ background: rgba(255, 200, 120, 0.10);
1179
+ border-color: rgba(255, 200, 120, 0.36);
1180
+ color: var(--color-role-narrative);
1181
+ }
1182
+ .ba-backlink-kind.k-skill:hover {
1183
+ background: rgba(255, 200, 120, 0.22);
1184
+ border-color: rgba(255, 200, 120, 0.60);
1185
+ }
1186
+ .ba-backlink-kind.k-skill:focus-visible {
1187
+ box-shadow: 0 0 0 2px rgba(255, 200, 120, 0.55);
1188
+ }
1189
+ .ba-backlink-kind.k-tool {
1190
+ background: rgba(255, 140, 66, 0.10);
1191
+ border-color: rgba(255, 140, 66, 0.36);
1192
+ color: var(--color-role-coding);
1193
+ }
1194
+ .ba-backlink-kind.k-tool:hover {
1195
+ background: rgba(255, 140, 66, 0.22);
1196
+ border-color: rgba(255, 140, 66, 0.60);
1197
+ }
1198
+ .ba-backlink-kind.k-tool:focus-visible {
1199
+ box-shadow: 0 0 0 2px rgba(255, 140, 66, 0.55);
1200
+ }
1201
+
1202
+ .c-id code {
1203
+ font-family: var(--font-mono);
1204
+ font-size: 11px;
1205
+ color: var(--color-kind-cli-provider);
1206
+ background: rgba(108, 196, 255, 0.06);
1207
+ padding: 1px 5px;
1208
+ border-radius: 3px;
1209
+ }
1210
+
1211
+ .ba-name-zh {
1212
+ font-size: 12px;
1213
+ color: var(--text-primary);
1214
+ }
1215
+ .ba-desc-zh {
1216
+ font-size: 10px;
1217
+ color: var(--text-muted, rgba(255, 255, 255, 0.45));
1218
+ margin-top: 3px;
1219
+ display: -webkit-box;
1220
+ -webkit-line-clamp: 2;
1221
+ -webkit-box-orient: vertical;
1222
+ overflow: hidden;
1223
+ }
1224
+
1225
+ .ba-page-info {
1226
+ display: inline-flex;
1227
+ align-items: center;
1228
+ gap: 5px;
1229
+ flex-wrap: wrap;
1230
+ }
1231
+ .ba-page-icon {
1232
+ font-size: 14px;
1233
+ line-height: 1;
1234
+ }
1235
+ .ba-page-id {
1236
+ font-family: var(--font-mono);
1237
+ font-size: 11px;
1238
+ color: var(--text-secondary, rgba(255, 255, 255, 0.7));
1239
+ }
1240
+ .ba-page-pill {
1241
+ font-size: 9px;
1242
+ padding: 1px 5px;
1243
+ border-radius: 3px;
1244
+ background: rgba(255, 255, 255, 0.06);
1245
+ color: var(--text-muted, rgba(255, 255, 255, 0.5));
1246
+ font-family: var(--font-mono);
1247
+ text-transform: lowercase;
1248
+ }
1249
+ .ba-page-pill.warn {
1250
+ background: rgba(255, 140, 66, 0.12);
1251
+ color: var(--accent-orange);
1252
+ }
1253
+ .ba-dim { color: var(--text-muted, rgba(255, 255, 255, 0.3)); }
1254
+
1255
+ .ba-flag-pill {
1256
+ font-size: 9px;
1257
+ padding: 1px 6px;
1258
+ border-radius: 3px;
1259
+ font-weight: 600;
1260
+ text-transform: uppercase;
1261
+ letter-spacing: 0.03em;
1262
+ }
1263
+ .ba-flag-pill.exp {
1264
+ background: rgba(255, 200, 120, 0.12);
1265
+ color: var(--color-role-narrative);
1266
+ }
1267
+
1268
+ .ba-footnote {
1269
+ margin-top: 18px;
1270
+ padding-top: 10px;
1271
+ border-top: 1px dashed rgba(255, 255, 255, 0.06);
1272
+ font-size: 10px;
1273
+ color: var(--text-muted, rgba(255, 255, 255, 0.4));
1274
+ line-height: 1.6;
1275
+ }
1276
+ .ba-footnote code {
1277
+ background: rgba(255, 255, 255, 0.06);
1278
+ padding: 1px 5px;
1279
+ border-radius: 2px;
1280
+ font-family: var(--font-mono);
1281
+ color: var(--color-kind-cli-provider);
1282
+ }
1283
+
1284
+ /* P2.6g — provides.{skills,tools,events,cliProvider} block inside the detail
1285
+ row. Sits between .ba-detail-grid (kind/version/extension cells) and
1286
+ .ba-detail-note (broken[] reminder). Color tokens reuse the existing kind
1287
+ palette so the player keeps the "6 kind = 6 color" muscle memory:
1288
+ - cliProvider → sky-blue (.k-cli-provider)
1289
+ - skill → amber (.k-skill)
1290
+ - tool → orange (.k-tool)
1291
+ - events → pink-ish 自定 (no kind=event in PluginKind, so we coin a
1292
+ complementary pink to avoid collision; events are tool-adjacent so a
1293
+ cool tint reads "tool family" without overlapping orange)
1294
+ Capability chips on cliProvider use ●/○ filled/hollow dots so on/off reads
1295
+ at a glance even before color parses. */
1296
+ .ba-provides {
1297
+ display: flex;
1298
+ flex-direction: column;
1299
+ gap: 6px;
1300
+ padding: 8px 0 4px 0;
1301
+ border-top: 1px dashed rgba(255, 255, 255, 0.06);
1302
+ margin-top: 2px;
1303
+ }
1304
+ .ba-provides-label {
1305
+ font-size: 9px;
1306
+ font-weight: 600;
1307
+ text-transform: uppercase;
1308
+ letter-spacing: 0.08em;
1309
+ color: var(--text-muted, rgba(255, 255, 255, 0.5));
1310
+ font-family: var(--font-mono);
1311
+ }
1312
+ .ba-provides-body {
1313
+ display: flex;
1314
+ flex-direction: column;
1315
+ gap: 10px;
1316
+ }
1317
+ .ba-prov-tally {
1318
+ display: flex;
1319
+ align-items: center;
1320
+ flex-wrap: wrap;
1321
+ gap: 6px;
1322
+ padding: 4px 6px;
1323
+ border-radius: 5px;
1324
+ background: rgba(255, 255, 255, 0.02);
1325
+ border: 1px dashed rgba(255, 255, 255, 0.06);
1326
+ }
1327
+ .ba-prov-tally.empty {
1328
+ background: rgba(255, 255, 255, 0.015);
1329
+ }
1330
+ .ba-prov-tally-pill {
1331
+ display: inline-flex;
1332
+ align-items: center;
1333
+ gap: 4px;
1334
+ font-family: var(--font-mono);
1335
+ font-size: 10px;
1336
+ padding: 1px 5px 1px 6px;
1337
+ border-radius: 3px;
1338
+ letter-spacing: 0.04em;
1339
+ border: 1px solid transparent;
1340
+ }
1341
+ .ba-prov-tally-pill .ba-prov-tally-label {
1342
+ text-transform: uppercase;
1343
+ font-weight: 600;
1344
+ font-size: 9px;
1345
+ letter-spacing: 0.06em;
1346
+ }
1347
+ .ba-prov-tally-pill .ba-prov-tally-count {
1348
+ font-variant-numeric: tabular-nums;
1349
+ font-weight: 700;
1350
+ font-size: 11px;
1351
+ }
1352
+ .ba-prov-tally-pill.k-cli-provider {
1353
+ background: rgba(108, 196, 255, 0.14);
1354
+ color: var(--color-kind-cli-provider);
1355
+ border-color: rgba(108, 196, 255, 0.22);
1356
+ }
1357
+ .ba-prov-tally-pill.k-skill {
1358
+ background: rgba(255, 200, 120, 0.14);
1359
+ color: var(--color-role-narrative);
1360
+ border-color: rgba(255, 200, 120, 0.22);
1361
+ }
1362
+ .ba-prov-tally-pill.k-tool {
1363
+ background: rgba(255, 140, 66, 0.14);
1364
+ color: var(--color-role-coding);
1365
+ border-color: rgba(255, 140, 66, 0.22);
1366
+ }
1367
+ .ba-prov-tally-pill.k-event {
1368
+ background: rgba(255, 109, 181, 0.12);
1369
+ color: var(--color-role-design);
1370
+ border-color: rgba(255, 109, 181, 0.20);
1371
+ }
1372
+ .ba-prov-tally-pill.dim {
1373
+ background: rgba(255, 255, 255, 0.025);
1374
+ color: var(--text-muted, rgba(255, 255, 255, 0.35));
1375
+ border-color: rgba(255, 255, 255, 0.05);
1376
+ }
1377
+ .ba-prov-tally-pill.dim .ba-prov-tally-count {
1378
+ color: var(--text-muted, rgba(255, 255, 255, 0.3));
1379
+ }
1380
+ .ba-prov-tally-note {
1381
+ font-size: 10px;
1382
+ font-style: italic;
1383
+ color: var(--text-muted, rgba(255, 255, 255, 0.4));
1384
+ margin-left: 4px;
1385
+ }
1386
+ .ba-prov-block {
1387
+ display: flex;
1388
+ flex-direction: column;
1389
+ gap: 5px;
1390
+ padding: 7px 9px 8px 9px;
1391
+ border-radius: 6px;
1392
+ background: rgba(255, 255, 255, 0.025);
1393
+ border: 1px solid rgba(255, 255, 255, 0.05);
1394
+ }
1395
+ .ba-prov-block.ba-prov-cli {
1396
+ background: rgba(108, 196, 255, 0.05);
1397
+ border-color: rgba(108, 196, 255, 0.18);
1398
+ }
1399
+ .ba-prov-block.ba-prov-skills {
1400
+ background: rgba(255, 200, 120, 0.05);
1401
+ border-color: rgba(255, 200, 120, 0.18);
1402
+ }
1403
+ .ba-prov-block.ba-prov-tools {
1404
+ background: rgba(255, 140, 66, 0.05);
1405
+ border-color: rgba(255, 140, 66, 0.18);
1406
+ }
1407
+ .ba-prov-block.ba-prov-events {
1408
+ background: rgba(255, 109, 181, 0.04);
1409
+ border-color: rgba(255, 109, 181, 0.16);
1410
+ }
1411
+ .ba-prov-head {
1412
+ display: flex;
1413
+ align-items: center;
1414
+ gap: 8px;
1415
+ flex-wrap: wrap;
1416
+ min-height: 18px;
1417
+ }
1418
+ .ba-prov-tag {
1419
+ font-size: 9px;
1420
+ font-weight: 700;
1421
+ text-transform: uppercase;
1422
+ letter-spacing: 0.06em;
1423
+ padding: 2px 6px;
1424
+ border-radius: 3px;
1425
+ font-family: var(--font-mono);
1426
+ }
1427
+ .ba-prov-tag.k-cli-provider {
1428
+ background: rgba(108, 196, 255, 0.16);
1429
+ color: var(--color-kind-cli-provider);
1430
+ }
1431
+ .ba-prov-tag.k-skill {
1432
+ background: rgba(255, 200, 120, 0.16);
1433
+ color: var(--color-role-narrative);
1434
+ }
1435
+ .ba-prov-tag.k-tool {
1436
+ background: rgba(255, 140, 66, 0.16);
1437
+ color: var(--color-role-coding);
1438
+ }
1439
+ .ba-prov-tag.k-event {
1440
+ background: rgba(255, 109, 181, 0.14);
1441
+ color: var(--color-role-design);
1442
+ }
1443
+ .ba-prov-id {
1444
+ font-family: var(--font-mono);
1445
+ font-size: 11px;
1446
+ color: var(--color-kind-cli-provider);
1447
+ background: rgba(108, 196, 255, 0.08);
1448
+ padding: 1px 5px;
1449
+ border-radius: 3px;
1450
+ }
1451
+ .ba-prov-display {
1452
+ font-size: 11px;
1453
+ color: var(--text-primary);
1454
+ font-weight: 500;
1455
+ }
1456
+ .ba-prov-count {
1457
+ font-family: var(--font-mono);
1458
+ font-variant-numeric: tabular-nums;
1459
+ font-size: 10px;
1460
+ color: var(--text-secondary, rgba(255, 255, 255, 0.55));
1461
+ background: rgba(255, 255, 255, 0.05);
1462
+ padding: 1px 6px;
1463
+ border-radius: 999px;
1464
+ border: 1px solid rgba(255, 255, 255, 0.06);
1465
+ }
1466
+ .ba-prov-row {
1467
+ display: flex;
1468
+ align-items: flex-start;
1469
+ gap: 8px;
1470
+ flex-wrap: wrap;
1471
+ }
1472
+ .ba-prov-rowlabel {
1473
+ font-size: 9px;
1474
+ text-transform: uppercase;
1475
+ letter-spacing: 0.06em;
1476
+ color: var(--text-muted, rgba(255, 255, 255, 0.4));
1477
+ font-family: var(--font-mono);
1478
+ padding-top: 3px;
1479
+ min-width: 78px;
1480
+ }
1481
+ .ba-prov-pills {
1482
+ display: flex;
1483
+ flex-wrap: wrap;
1484
+ gap: 4px;
1485
+ }
1486
+ .ba-prov-pill {
1487
+ font-family: var(--font-mono);
1488
+ font-size: 10px;
1489
+ background: rgba(255, 255, 255, 0.04);
1490
+ border: 1px solid rgba(255, 255, 255, 0.08);
1491
+ padding: 1px 6px;
1492
+ border-radius: 3px;
1493
+ color: var(--text-secondary, rgba(255, 255, 255, 0.7));
1494
+ }
1495
+ .ba-prov-model {
1496
+ color: var(--primary);
1497
+ border-color: rgba(212, 255, 72, 0.20);
1498
+ background: rgba(212, 255, 72, 0.06);
1499
+ }
1500
+ .ba-prov-skill-id {
1501
+ color: var(--color-role-narrative);
1502
+ border-color: rgba(255, 200, 120, 0.20);
1503
+ background: rgba(255, 200, 120, 0.06);
1504
+ }
1505
+ .ba-prov-trigger {
1506
+ color: var(--color-kind-cli-provider);
1507
+ border-color: rgba(108, 196, 255, 0.20);
1508
+ background: rgba(108, 196, 255, 0.06);
1509
+ }
1510
+ .ba-prov-tool-id {
1511
+ color: var(--color-role-coding);
1512
+ border-color: rgba(255, 140, 66, 0.20);
1513
+ background: rgba(255, 140, 66, 0.06);
1514
+ }
1515
+ .ba-prov-event-name {
1516
+ color: var(--color-role-design);
1517
+ border-color: rgba(255, 109, 181, 0.18);
1518
+ background: rgba(255, 109, 181, 0.05);
1519
+ }
1520
+ .ba-prov-list {
1521
+ list-style: none;
1522
+ margin: 0;
1523
+ padding: 0;
1524
+ display: flex;
1525
+ flex-direction: column;
1526
+ gap: 3px;
1527
+ }
1528
+ .ba-prov-list li {
1529
+ display: inline-flex;
1530
+ align-items: center;
1531
+ gap: 5px;
1532
+ flex-wrap: wrap;
1533
+ }
1534
+ .ba-prov-sep {
1535
+ color: var(--text-muted, rgba(255, 255, 255, 0.3));
1536
+ font-size: 10px;
1537
+ }
1538
+ .ba-prov-flag {
1539
+ font-family: var(--font-mono);
1540
+ font-size: 8px;
1541
+ font-weight: 700;
1542
+ letter-spacing: 0.08em;
1543
+ color: var(--primary);
1544
+ background: rgba(212, 255, 72, 0.10);
1545
+ border: 1px solid rgba(212, 255, 72, 0.26);
1546
+ padding: 0px 4px;
1547
+ border-radius: 2px;
1548
+ }
1549
+ .ba-prov-cap {
1550
+ display: inline-flex;
1551
+ align-items: center;
1552
+ gap: 3px;
1553
+ font-family: var(--font-mono);
1554
+ font-size: 9px;
1555
+ padding: 1px 6px;
1556
+ border-radius: 3px;
1557
+ border: 1px solid rgba(255, 255, 255, 0.08);
1558
+ }
1559
+ .ba-prov-cap.is-on {
1560
+ color: var(--primary);
1561
+ background: rgba(212, 255, 72, 0.08);
1562
+ border-color: rgba(212, 255, 72, 0.24);
1563
+ }
1564
+ .ba-prov-cap.is-off {
1565
+ color: var(--text-muted, rgba(255, 255, 255, 0.32));
1566
+ background: rgba(255, 255, 255, 0.02);
1567
+ }
1568
+ .ba-prov-cap-dot {
1569
+ font-size: 8px;
1570
+ line-height: 1;
1571
+ }
1572
+
1573
+ /* P3.21 — cli-provider capability matrix (sits between kind header and table).
1574
+ * 5-col compact grid · lime ● on / dim ○ off · per-col coverage "n/m" pill.
1575
+ * Sky-blue accent borders match .ba-kind-tag.k-cli-provider (#6cc4ff) so the
1576
+ * matrix visually belongs to the cli-provider kind section. Lime ● matches
1577
+ * .ba-prov-cap.is-on so the "on" semantic carries across both surfaces. */
1578
+ .ba-cli-matrix {
1579
+ margin: 0 0 12px;
1580
+ padding: 8px 12px 10px;
1581
+ background: rgba(108, 196, 255, 0.04);
1582
+ border-bottom: 1px solid rgba(108, 196, 255, 0.18);
1583
+ }
1584
+ .ba-cli-matrix-head {
1585
+ display: flex;
1586
+ align-items: baseline;
1587
+ gap: 8px;
1588
+ margin-bottom: 6px;
1589
+ }
1590
+ .ba-cli-matrix-label {
1591
+ font-family: var(--font-mono);
1592
+ font-size: 9px;
1593
+ font-weight: 700;
1594
+ letter-spacing: 0.10em;
1595
+ text-transform: uppercase;
1596
+ color: var(--color-kind-cli-provider);
1597
+ }
1598
+ .ba-cli-matrix-meta {
1599
+ font-family: var(--font-mono);
1600
+ font-size: 9px;
1601
+ color: var(--text-muted, rgba(255, 255, 255, 0.45));
1602
+ letter-spacing: 0.04em;
1603
+ }
1604
+ .ba-cli-matrix-table {
1605
+ border-collapse: collapse;
1606
+ font-family: var(--font-mono);
1607
+ font-size: 10px;
1608
+ }
1609
+ .ba-cli-matrix-corner {
1610
+ width: 168px;
1611
+ background: transparent;
1612
+ }
1613
+ .ba-cli-matrix-th {
1614
+ padding: 3px 8px;
1615
+ text-align: center;
1616
+ font-weight: 600;
1617
+ color: var(--text-secondary, rgba(255, 255, 255, 0.72));
1618
+ border-bottom: 1px solid rgba(108, 196, 255, 0.16);
1619
+ vertical-align: bottom;
1620
+ }
1621
+ .ba-cli-matrix-th-name {
1622
+ display: block;
1623
+ font-size: 10px;
1624
+ letter-spacing: 0.04em;
1625
+ color: var(--color-kind-cli-provider);
1626
+ margin-bottom: 2px;
1627
+ }
1628
+ .ba-cli-matrix-coverage {
1629
+ display: inline-block;
1630
+ font-size: 8px;
1631
+ font-weight: 700;
1632
+ padding: 0 4px;
1633
+ border-radius: 2px;
1634
+ font-variant-numeric: tabular-nums;
1635
+ }
1636
+ .ba-cli-matrix-coverage.is-full {
1637
+ color: var(--primary);
1638
+ background: rgba(212, 255, 72, 0.10);
1639
+ border: 1px solid rgba(212, 255, 72, 0.24);
1640
+ }
1641
+ .ba-cli-matrix-coverage.is-partial {
1642
+ color: var(--color-role-narrative);
1643
+ background: rgba(255, 200, 120, 0.10);
1644
+ border: 1px solid rgba(255, 200, 120, 0.28);
1645
+ }
1646
+ .ba-cli-matrix-rowname {
1647
+ width: 168px;
1648
+ padding: 4px 8px 4px 0;
1649
+ border-bottom: 1px dashed rgba(255, 255, 255, 0.04);
1650
+ white-space: nowrap;
1651
+ }
1652
+ .ba-cli-matrix-rowname-zh {
1653
+ display: inline-block;
1654
+ font-family: var(--font-base);
1655
+ font-size: 11px;
1656
+ color: var(--text-primary, rgba(255, 255, 255, 0.92));
1657
+ margin-right: 6px;
1658
+ }
1659
+ .ba-cli-matrix-rowname-id {
1660
+ font-size: 9px;
1661
+ color: var(--text-muted, rgba(255, 255, 255, 0.36));
1662
+ font-family: var(--font-mono);
1663
+ }
1664
+ .ba-cli-matrix-cell {
1665
+ text-align: center;
1666
+ padding: 4px 8px;
1667
+ border-bottom: 1px dashed rgba(255, 255, 255, 0.04);
1668
+ min-width: 52px;
1669
+ }
1670
+ .ba-cli-matrix-cell.is-on {
1671
+ background: rgba(212, 255, 72, 0.05);
1672
+ }
1673
+ .ba-cli-matrix-cell.is-on .ba-cli-matrix-dot {
1674
+ color: var(--primary);
1675
+ }
1676
+ .ba-cli-matrix-cell.is-off .ba-cli-matrix-dot {
1677
+ color: var(--text-muted, rgba(255, 255, 255, 0.22));
1678
+ }
1679
+ .ba-cli-matrix-dot {
1680
+ font-size: 11px;
1681
+ line-height: 1;
1682
+ }
1683
+ .ba-cli-matrix-summary {
1684
+ display: inline-flex;
1685
+ align-items: center;
1686
+ gap: 6px;
1687
+ margin-top: 8px;
1688
+ padding: 3px 9px;
1689
+ border-radius: 3px;
1690
+ font-family: var(--font-mono);
1691
+ font-size: 10px;
1692
+ font-weight: 600;
1693
+ letter-spacing: 0.04em;
1694
+ }
1695
+ .ba-cli-matrix-summary.is-full {
1696
+ color: var(--primary);
1697
+ background: rgba(212, 255, 72, 0.08);
1698
+ border: 1px solid rgba(212, 255, 72, 0.24);
1699
+ }
1700
+ .ba-cli-matrix-summary.is-partial {
1701
+ color: var(--color-role-narrative);
1702
+ background: rgba(255, 200, 120, 0.08);
1703
+ border: 1px solid rgba(255, 200, 120, 0.28);
1704
+ }
1705
+ .ba-cli-matrix-summary-dot {
1706
+ font-size: 9px;
1707
+ line-height: 1;
1708
+ }
1709
+
1710
+ /* P3.58 — `↑↓` key-cap hint bar between the filter bar and the kind sections.
1711
+ Seventh surface in the key-cap chip family (P3.50 footer / P3.51 extension
1712
+ header / P3.53 TopBar mode-tab / P3.54 Dashboard nav / P3.55 ChatPanel
1713
+ TabStrip / P3.57 BusAdmin filter chips ←→ / this bar ↑↓). Sits as a thin
1714
+ row immediately above the kind sections so the keyboard contract is visible
1715
+ without any input. */
1716
+ .ba-row-kbd-bar {
1717
+ display: flex;
1718
+ align-items: center;
1719
+ gap: 6px;
1720
+ padding: 4px 12px 6px;
1721
+ margin: 2px 0 0;
1722
+ border-top: 1px dashed rgba(255, 255, 255, 0.06);
1723
+ user-select: none;
1724
+ }
1725
+ .ba-row-kbd-label {
1726
+ font-family: var(--font-mono);
1727
+ font-size: 9.5px;
1728
+ letter-spacing: 0.06em;
1729
+ text-transform: uppercase;
1730
+ color: rgba(255, 255, 255, 0.42);
1731
+ }
1732
+ /* P3.58 — keyboard focus ring on table rows. Roving tabindex means at most
1733
+ one row is in the tab order; ↑↓/Home/End move focus internally. Sky-blue
1734
+ 2px outline mirrors `.ba-detail-row` accent shadow (same #6cc4ff family),
1735
+ anchoring "focused row" to the same color as "expanded row" so the player
1736
+ reads them as the same axis. */
1737
+ .ba-table tr:focus { outline: none; }
1738
+ .ba-table tr.is-clickable:focus-visible {
1739
+ outline: 2px solid rgba(108, 196, 255, 0.62);
1740
+ outline-offset: -2px;
1741
+ background: rgba(108, 196, 255, 0.06);
1742
+ }
1743
+ .ba-table tr.is-clickable:focus-visible td {
1744
+ background: rgba(108, 196, 255, 0.06);
1745
+ }
1746
+
1747
+ /* P-UI-SURFACES — bus.ui registry strip. Sits between head and filterbar so it
1748
+ reads as a sibling primitive of the plugin table: bus.plugins.list() ↔
1749
+ bus.ui.surfaces.list(). Sky-blue accent (#7dd3fc — same as cli-provider /
1750
+ ChatPanel agent bar) anchors it to the "AI-controllable" theme already
1751
+ established for AI deep-links in the rest of the UI. */
1752
+ .ba-ui-surfaces {
1753
+ margin: 0 0 14px 0;
1754
+ padding: 10px 12px;
1755
+ border-radius: 8px;
1756
+ border: 1px solid rgba(125, 211, 252, 0.22);
1757
+ background: rgba(125, 211, 252, 0.05);
1758
+ }
1759
+ .ba-uis-head {
1760
+ display: flex;
1761
+ align-items: center;
1762
+ gap: 8px;
1763
+ font-size: 11px;
1764
+ line-height: 1.4;
1765
+ margin-bottom: 8px;
1766
+ }
1767
+ .ba-uis-dot {
1768
+ width: 7px;
1769
+ height: 7px;
1770
+ border-radius: 50%;
1771
+ background: var(--color-role-art);
1772
+ box-shadow: none;
1773
+ }
1774
+ .ba-uis-label {
1775
+ text-transform: uppercase;
1776
+ letter-spacing: 0.10em;
1777
+ color: var(--color-role-art);
1778
+ font-weight: 600;
1779
+ font-size: 10.5px;
1780
+ }
1781
+ .ba-uis-count {
1782
+ display: inline-flex;
1783
+ align-items: center;
1784
+ padding: 1px 7px;
1785
+ border-radius: 999px;
1786
+ background: rgba(212, 255, 72, 0.14);
1787
+ border: 1px solid rgba(212, 255, 72, 0.38);
1788
+ color: var(--primary);
1789
+ font: 600 11px/1 var(--font-mono);
1790
+ font-variant-numeric: tabular-nums;
1791
+ }
1792
+ .ba-uis-sub {
1793
+ color: var(--text-muted, rgba(255, 255, 255, 0.5));
1794
+ font-size: 10.5px;
1795
+ }
1796
+ .ba-uis-sub code {
1797
+ font: inherit;
1798
+ font-family: var(--font-mono);
1799
+ color: rgba(125, 211, 252, 0.85);
1800
+ background: rgba(125, 211, 252, 0.08);
1801
+ padding: 0 4px;
1802
+ border-radius: 3px;
1803
+ }
1804
+ .ba-uis-row {
1805
+ display: flex;
1806
+ flex-wrap: wrap;
1807
+ gap: 6px;
1808
+ }
1809
+ .ba-uis-chip {
1810
+ display: inline-flex;
1811
+ align-items: center;
1812
+ gap: 6px;
1813
+ padding: 3px 8px;
1814
+ border-radius: 6px;
1815
+ border: 1px solid rgba(255, 255, 255, 0.10);
1816
+ background: rgba(255, 255, 255, 0.03);
1817
+ font-size: 10.5px;
1818
+ line-height: 1.3;
1819
+ }
1820
+ .ba-uis-chip.is-dim {
1821
+ opacity: 0.55;
1822
+ }
1823
+ .ba-uis-chip.layer-host {
1824
+ border-color: rgba(212, 255, 72, 0.32);
1825
+ background: rgba(212, 255, 72, 0.06);
1826
+ }
1827
+ .ba-uis-chip.layer-plugin {
1828
+ border-color: rgba(125, 211, 252, 0.32);
1829
+ background: rgba(125, 211, 252, 0.06);
1830
+ }
1831
+ .ba-uis-chip.layer-iframe {
1832
+ border-color: rgba(255, 200, 120, 0.32);
1833
+ background: rgba(255, 200, 120, 0.06);
1834
+ }
1835
+ .ba-uis-layer {
1836
+ text-transform: uppercase;
1837
+ letter-spacing: 0.08em;
1838
+ font: 600 9.5px/1 var(--font-mono);
1839
+ padding: 1px 5px;
1840
+ border-radius: 3px;
1841
+ background: rgba(0, 0, 0, 0.32);
1842
+ }
1843
+ .layer-host .ba-uis-layer { color: var(--primary); }
1844
+ .layer-plugin .ba-uis-layer { color: var(--color-role-art); }
1845
+ .layer-iframe .ba-uis-layer { color: var(--color-role-narrative); }
1846
+ .ba-uis-id {
1847
+ font: 11px/1.3 var(--font-mono);
1848
+ color: var(--text-primary, rgba(255, 255, 255, 0.95));
1849
+ }
1850
+ .ba-uis-actions {
1851
+ display: inline-flex;
1852
+ align-items: baseline;
1853
+ gap: 3px;
1854
+ font: 10.5px/1 var(--font-mono);
1855
+ font-variant-numeric: tabular-nums;
1856
+ color: var(--text-muted, rgba(255, 255, 255, 0.5));
1857
+ }
1858
+ .ba-uis-ai {
1859
+ color: var(--primary);
1860
+ font-weight: 600;
1861
+ }
1862
+ .ba-uis-sep {
1863
+ color: rgba(255, 255, 255, 0.3);
1864
+ }
1865
+ .ba-uis-total {
1866
+ color: rgba(255, 255, 255, 0.65);
1867
+ }
1868
+ .ba-uis-actions-lbl {
1869
+ margin-left: 3px;
1870
+ font-size: 9.5px;
1871
+ text-transform: uppercase;
1872
+ letter-spacing: 0.06em;
1873
+ color: rgba(255, 255, 255, 0.32);
1874
+ }
1875
+
1876
+ /* Shared capability snapshot. This mirrors the server-side
1877
+ CapabilityDescriptor fields so users can see what crosses kernel boundaries:
1878
+ kind, extension/version, lifecycle and origin/trust. */
1879
+ .ba-capability-overview {
1880
+ margin: 0 0 14px;
1881
+ padding: 10px 12px;
1882
+ border: 1px solid rgba(212, 255, 72, 0.20);
1883
+ border-radius: 8px;
1884
+ background: rgba(212, 255, 72, 0.035);
1885
+ }
1886
+ .ba-capability-head {
1887
+ display: flex;
1888
+ align-items: center;
1889
+ gap: 8px;
1890
+ margin-bottom: 8px;
1891
+ font-size: 11px;
1892
+ }
1893
+ .ba-capability-dot {
1894
+ width: 7px;
1895
+ height: 7px;
1896
+ border-radius: 50%;
1897
+ background: var(--primary);
1898
+ box-shadow: 0 0 8px rgba(212, 255, 72, 0.6);
1899
+ }
1900
+ .ba-capability-label {
1901
+ color: var(--primary);
1902
+ font-size: 10.5px;
1903
+ font-weight: 600;
1904
+ letter-spacing: 0.10em;
1905
+ text-transform: uppercase;
1906
+ }
1907
+ .ba-capability-count,
1908
+ .ba-capability-generation {
1909
+ font: 600 10px/1 var(--font-mono);
1910
+ font-variant-numeric: tabular-nums;
1911
+ }
1912
+ .ba-capability-count {
1913
+ padding: 2px 7px;
1914
+ border: 1px solid rgba(212, 255, 72, 0.35);
1915
+ border-radius: 999px;
1916
+ color: var(--primary);
1917
+ background: rgba(212, 255, 72, 0.12);
1918
+ }
1919
+ .ba-capability-generation {
1920
+ margin-left: auto;
1921
+ color: rgba(255, 255, 255, 0.40);
1922
+ }
1923
+ .ba-capability-kinds,
1924
+ .ba-capability-list {
1925
+ display: flex;
1926
+ flex-wrap: wrap;
1927
+ gap: 6px;
1928
+ }
1929
+ .ba-capability-kinds {
1930
+ margin-bottom: 8px;
1931
+ }
1932
+ .ba-capability-kind {
1933
+ display: inline-flex;
1934
+ align-items: center;
1935
+ gap: 5px;
1936
+ padding: 3px 8px;
1937
+ border: 1px solid rgba(255, 255, 255, 0.10);
1938
+ border-radius: 999px;
1939
+ color: rgba(255, 255, 255, 0.72);
1940
+ background: rgba(255, 255, 255, 0.03);
1941
+ font: 10px/1 var(--font-mono);
1942
+ }
1943
+ .ba-capability-kind strong {
1944
+ color: rgba(255, 255, 255, 0.95);
1945
+ font-variant-numeric: tabular-nums;
1946
+ }
1947
+ .ba-capability-kind-skill { border-color: rgba(255, 200, 120, 0.35); }
1948
+ .ba-capability-kind-command { border-color: rgba(125, 211, 252, 0.35); }
1949
+ .ba-capability-kind-mcp { border-color: rgba(123, 231, 196, 0.35); }
1950
+ .ba-capability-kind-extension { border-color: rgba(196, 163, 255, 0.35); }
1951
+ .ba-capability-kind-memory { border-color: rgba(212, 255, 72, 0.35); }
1952
+ .ba-capability-kind-tool { border-color: rgba(255, 140, 66, 0.35); }
1953
+ .ba-capability-list {
1954
+ max-height: 180px;
1955
+ overflow: auto;
1956
+ padding-top: 2px;
1957
+ }
1958
+ .ba-capability-row {
1959
+ display: flex;
1960
+ align-items: center;
1961
+ gap: 7px;
1962
+ width: 100%;
1963
+ min-width: 0;
1964
+ padding: 5px 7px;
1965
+ border: 1px solid rgba(255, 255, 255, 0.06);
1966
+ border-radius: 5px;
1967
+ background: rgba(0, 0, 0, 0.14);
1968
+ font-size: 10px;
1969
+ }
1970
+ .ba-capability-type {
1971
+ flex: 0 0 auto;
1972
+ font: 600 9px/1 var(--font-mono);
1973
+ letter-spacing: 0.05em;
1974
+ text-transform: uppercase;
1975
+ }
1976
+ .ba-capability-id,
1977
+ .ba-capability-extension,
1978
+ .ba-capability-version,
1979
+ .ba-capability-origin,
1980
+ .ba-capability-state,
1981
+ .ba-capability-restart {
1982
+ overflow: hidden;
1983
+ text-overflow: ellipsis;
1984
+ white-space: nowrap;
1985
+ }
1986
+ .ba-capability-id {
1987
+ flex: 0 1 150px;
1988
+ color: rgba(255, 255, 255, 0.90);
1989
+ }
1990
+ .ba-capability-extension {
1991
+ flex: 1 1 180px;
1992
+ min-width: 80px;
1993
+ color: rgba(255, 255, 255, 0.50);
1994
+ }
1995
+ .ba-capability-version,
1996
+ .ba-capability-origin {
1997
+ color: rgba(255, 255, 255, 0.42);
1998
+ font: 9px/1 var(--font-mono);
1999
+ }
2000
+ .ba-capability-state {
2001
+ color: var(--primary);
2002
+ font: 600 9px/1 var(--font-mono);
2003
+ }
2004
+ .ba-capability-state.is-broken,
2005
+ .ba-capability-restart {
2006
+ color: #ff9c8c;
2007
+ }
2008
+ .ba-capability-restart {
2009
+ padding: 2px 4px;
2010
+ border: 1px solid rgba(255, 156, 140, 0.28);
2011
+ border-radius: 3px;
2012
+ font: 9px/1 var(--font-mono);
2013
+ }
2014
+ .ba-capability-issues {
2015
+ margin-top: 7px;
2016
+ color: #ffcc80;
2017
+ font-size: 10px;
2018
+ }
2019
+
2020
+ /* P4.38 — Bus kind mini-dashboard. One horizontal row of 6 colored mini-LED
2021
+ pills sitting between `.ba-head` and `.ba-ui-surfaces` (or `.ba-filterbar`
2022
+ when no UI surfaces are registered). Each pill is a button — clicking solos
2023
+ that kind in the filter (same semantics as ba-chip solo), repeat-click
2024
+ resets to "all on". Tones reuse the 4-state grammar already established by
2025
+ the section LEDs (loading / ok / warn / down) but the is-ok base color is
2026
+ the **per-kind tribe color** (extension lime · agent violet · cli-provider
2027
+ green · model-binding teal · skill gold · tool orange) so the dashboard
2028
+ reads as a rainbow strip when all 6 kinds are healthy and visually alarms
2029
+ amber/red when any kind degrades. `.is-soloed` adds a stronger bg + ring
2030
+ to mark which pill is currently filtering the panel. */
2031
+ .ba-mini-dashboard {
2032
+ display: flex;
2033
+ align-items: center;
2034
+ gap: 8px;
2035
+ flex-wrap: wrap;
2036
+ margin-bottom: 14px;
2037
+ padding: 8px 10px;
2038
+ border: 1px solid rgba(255, 255, 255, 0.06);
2039
+ border-radius: 6px;
2040
+ background: rgba(255, 255, 255, 0.015);
2041
+ }
2042
+ .ba-md-label {
2043
+ font-size: 10px;
2044
+ font-family: var(--font-mono);
2045
+ letter-spacing: 0.06em;
2046
+ color: rgba(255, 255, 255, 0.4);
2047
+ padding: 0 4px 0 2px;
2048
+ user-select: none;
2049
+ }
2050
+ .ba-md-led {
2051
+ display: inline-flex;
2052
+ align-items: center;
2053
+ gap: 6px;
2054
+ padding: 3px 9px 3px 7px;
2055
+ border: 1px solid rgba(255, 255, 255, 0.08);
2056
+ border-radius: 999px;
2057
+ background: rgba(255, 255, 255, 0.025);
2058
+ color: rgba(255, 255, 255, 0.78);
2059
+ font-size: 10.5px;
2060
+ font-family: inherit;
2061
+ cursor: pointer;
2062
+ user-select: none;
2063
+ transition: background 120ms ease, border-color 120ms ease,
2064
+ transform 120ms ease, box-shadow 120ms ease;
2065
+ }
2066
+ .ba-md-led:hover {
2067
+ background: rgba(255, 255, 255, 0.05);
2068
+ transform: translateY(-0.5px);
2069
+ }
2070
+ .ba-md-led:active {
2071
+ transform: translateY(0.5px);
2072
+ }
2073
+ .ba-md-led:focus-visible {
2074
+ outline: 2px solid rgba(212, 255, 72, 0.6);
2075
+ outline-offset: 1px;
2076
+ }
2077
+ .ba-md-dot {
2078
+ width: 6px;
2079
+ height: 6px;
2080
+ border-radius: 50%;
2081
+ background: rgba(180, 180, 180, 0.55);
2082
+ box-shadow: 0 0 0 0 transparent;
2083
+ flex-shrink: 0;
2084
+ }
2085
+ .ba-md-kind {
2086
+ font-size: 9.5px;
2087
+ font-family: var(--font-mono);
2088
+ letter-spacing: 0.06em;
2089
+ text-transform: uppercase;
2090
+ opacity: 0.78;
2091
+ }
2092
+ .ba-md-count {
2093
+ font-size: 10.5px;
2094
+ font-family: var(--font-mono);
2095
+ font-variant-numeric: tabular-nums;
2096
+ letter-spacing: 0.01em;
2097
+ }
2098
+
2099
+ /* loading — dim gray pulse */
2100
+ .ba-md-led.is-loading .ba-md-dot {
2101
+ animation: ba-md-pulse 1.4s ease-in-out infinite;
2102
+ }
2103
+ @keyframes ba-md-pulse {
2104
+ 0%, 100% { opacity: 0.45; }
2105
+ 50% { opacity: 1; }
2106
+ }
2107
+
2108
+ /* warn — amber (shared across all kinds) */
2109
+ .ba-md-led.is-warn {
2110
+ border-color: rgba(245, 178, 67, 0.42);
2111
+ color: rgba(248, 213, 153, 0.95);
2112
+ }
2113
+ .ba-md-led.is-warn .ba-md-dot {
2114
+ background: var(--color-status-amber);
2115
+ box-shadow: none;
2116
+ }
2117
+
2118
+ /* down — red (shared across all kinds) */
2119
+ .ba-md-led.is-down {
2120
+ border-color: rgba(255, 107, 107, 0.42);
2121
+ color: rgba(255, 196, 196, 0.95);
2122
+ }
2123
+ .ba-md-led.is-down .ba-md-dot {
2124
+ background: var(--accent-error);
2125
+ box-shadow: none;
2126
+ }
2127
+
2128
+ /* is-ok per-kind tribe color — 6 variants */
2129
+ .ba-md-k-extension.is-ok {
2130
+ border-color: rgba(212, 255, 72, 0.38);
2131
+ color: rgba(228, 255, 168, 0.95);
2132
+ }
2133
+ .ba-md-k-extension.is-ok .ba-md-dot {
2134
+ background: var(--primary);
2135
+ box-shadow: none;
2136
+ }
2137
+ .ba-md-k-agent.is-ok {
2138
+ border-color: rgba(196, 163, 255, 0.42);
2139
+ color: rgba(228, 215, 255, 0.95);
2140
+ }
2141
+ .ba-md-k-agent.is-ok .ba-md-dot {
2142
+ background: var(--color-role-orchestrator);
2143
+ box-shadow: none;
2144
+ }
2145
+ .ba-md-k-cli-provider.is-ok {
2146
+ border-color: rgba(75, 222, 128, 0.38);
2147
+ color: rgba(176, 240, 195, 0.95);
2148
+ }
2149
+ .ba-md-k-cli-provider.is-ok .ba-md-dot {
2150
+ background: var(--prim-color-green-400);
2151
+ box-shadow: none;
2152
+ }
2153
+ .ba-md-k-model-binding.is-ok {
2154
+ border-color: rgba(123, 231, 196, 0.42);
2155
+ color: rgba(196, 240, 222, 0.95);
2156
+ }
2157
+ .ba-md-k-model-binding.is-ok .ba-md-dot {
2158
+ background: var(--accent-mint);
2159
+ box-shadow: none;
2160
+ }
2161
+ .ba-md-k-skill.is-ok {
2162
+ border-color: rgba(255, 200, 120, 0.42);
2163
+ color: rgba(255, 222, 178, 0.95);
2164
+ }
2165
+ .ba-md-k-skill.is-ok .ba-md-dot {
2166
+ background: var(--color-role-narrative);
2167
+ box-shadow: none;
2168
+ }
2169
+ .ba-md-k-tool.is-ok {
2170
+ border-color: rgba(255, 140, 66, 0.42);
2171
+ color: rgba(255, 200, 168, 0.95);
2172
+ }
2173
+ .ba-md-k-tool.is-ok .ba-md-dot {
2174
+ background: var(--color-role-coding);
2175
+ box-shadow: none;
2176
+ }
2177
+
2178
+ /* soloed — currently filtering the panel. Stronger bg + outer ring. */
2179
+ .ba-md-led.is-soloed {
2180
+ background: rgba(255, 255, 255, 0.07);
2181
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
2182
+ }
2183
+ .ba-md-k-extension.is-soloed {
2184
+ background: rgba(212, 255, 72, 0.1);
2185
+ box-shadow: 0 0 0 1px rgba(212, 255, 72, 0.32);
2186
+ }
2187
+ .ba-md-k-agent.is-soloed {
2188
+ background: rgba(196, 163, 255, 0.12);
2189
+ box-shadow: 0 0 0 1px rgba(196, 163, 255, 0.38);
2190
+ }
2191
+ .ba-md-k-cli-provider.is-soloed {
2192
+ background: rgba(75, 222, 128, 0.1);
2193
+ box-shadow: 0 0 0 1px rgba(75, 222, 128, 0.32);
2194
+ }
2195
+ .ba-md-k-model-binding.is-soloed {
2196
+ background: rgba(123, 231, 196, 0.12);
2197
+ box-shadow: 0 0 0 1px rgba(123, 231, 196, 0.34);
2198
+ }
2199
+ .ba-md-k-skill.is-soloed {
2200
+ background: rgba(255, 200, 120, 0.12);
2201
+ box-shadow: 0 0 0 1px rgba(255, 200, 120, 0.34);
2202
+ }
2203
+ .ba-md-k-tool.is-soloed {
2204
+ background: rgba(255, 140, 66, 0.12);
2205
+ box-shadow: 0 0 0 1px rgba(255, 140, 66, 0.34);
2206
+ }
2207
+
2208
+ /* P4.39 — per-kind health dot prefix inside `.ba-chip` filter row. Mirrors the
2209
+ 4-state grammar (loading / ok / warn / down) of the mini-dashboard LED
2210
+ (P4.38) and section-header LEDs (P4.14–P4.37), but compressed to a 5px round
2211
+ dot so the existing chip layout (6px gap, 10px label, count pill) keeps the
2212
+ same height + cap-line. Each kind paints its own tribe color on `is-ok`
2213
+ (extension lime · agent violet · cli-provider lime-green · model-binding
2214
+ teal · skill gold · tool orange) so the dashboard at the top and the chip
2215
+ row right below it light up the same color on the same 10s tick. */
2216
+ .ba-chip-dot {
2217
+ display: inline-block;
2218
+ width: 5px;
2219
+ height: 5px;
2220
+ border-radius: 50%;
2221
+ flex-shrink: 0;
2222
+ background: rgba(255, 255, 255, 0.32);
2223
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.28) inset;
2224
+ transition: background 0.2s, box-shadow 0.2s;
2225
+ }
2226
+ .ba-chip-dot.is-loading {
2227
+ background: rgba(255, 255, 255, 0.25);
2228
+ animation: ba-chip-dot-pulse 1.4s ease-in-out infinite;
2229
+ }
2230
+ @keyframes ba-chip-dot-pulse {
2231
+ 0%, 100% { opacity: 0.32; }
2232
+ 50% { opacity: 0.72; }
2233
+ }
2234
+ .ba-chip-dot.is-warn {
2235
+ background: var(--color-status-amber);
2236
+ box-shadow: none;
2237
+ }
2238
+ .ba-chip-dot.is-down {
2239
+ background: var(--accent-error);
2240
+ box-shadow: none;
2241
+ }
2242
+ /* Per-kind tribe color when ok — matches `.ba-md-k-{kind}.is-ok` (P4.38) and
2243
+ `.ba-kind-{kind}-led.is-ok` (P4.14–P4.37) so the eye reads "same kind, same
2244
+ color" across all three Bus admin surfaces. */
2245
+ .ba-chip.k-extension .ba-chip-dot.is-ok {
2246
+ background: var(--primary);
2247
+ box-shadow: none;
2248
+ }
2249
+ .ba-chip.k-agent .ba-chip-dot.is-ok {
2250
+ background: var(--color-role-orchestrator);
2251
+ box-shadow: none;
2252
+ }
2253
+ .ba-chip.k-cli-provider .ba-chip-dot.is-ok {
2254
+ background: var(--prim-color-green-400);
2255
+ box-shadow: none;
2256
+ }
2257
+ .ba-chip.k-model-binding .ba-chip-dot.is-ok {
2258
+ background: var(--accent-mint);
2259
+ box-shadow: none;
2260
+ }
2261
+ .ba-chip.k-skill .ba-chip-dot.is-ok {
2262
+ background: var(--color-role-narrative);
2263
+ box-shadow: none;
2264
+ }
2265
+ .ba-chip.k-tool .ba-chip-dot.is-ok {
2266
+ background: var(--color-role-coding);
2267
+ box-shadow: none;
2268
+ }
2269
+ /* When chip is dimmed (is-off), drop the dot's glow so the chip+dot read as a
2270
+ single muted unit instead of "off chip, on dot". */
2271
+ .ba-chip.is-off .ba-chip-dot {
2272
+ box-shadow: none;
2273
+ opacity: 0.7;
2274
+ }
2275
+
2276
+ /* P4.40 — mini-dashboard aggregate summary pill (`.ba-md-summary`). Sits to
2277
+ the right of the 6 `.ba-md-led` pills inside `.ba-mini-dashboard`. Bucket
2278
+ counts `N ✓ · M ⚠ · K ✗` use the same per-tone colors as the LEDs
2279
+ (lime / amber / red) and a small subscript dot before each digit. Outer
2280
+ ring + ring-glow reflect the *worst* tone present (down > warn > ok). The
2281
+ trailing arrow glyph `↺ / ⤺` shifts on `.has-solo` to hint the click will
2282
+ undo the active filter (not just no-op refresh). */
2283
+ .ba-md-summary {
2284
+ display: inline-flex;
2285
+ align-items: center;
2286
+ gap: 4px;
2287
+ margin-left: auto;
2288
+ padding: 3px 9px 3px 8px;
2289
+ border: 1px solid rgba(255, 255, 255, 0.08);
2290
+ border-radius: 999px;
2291
+ background: rgba(255, 255, 255, 0.025);
2292
+ color: rgba(255, 255, 255, 0.72);
2293
+ font-size: 10.5px;
2294
+ font-family: var(--font-mono);
2295
+ font-variant-numeric: tabular-nums;
2296
+ cursor: pointer;
2297
+ user-select: none;
2298
+ transition: background 120ms ease, border-color 120ms ease,
2299
+ transform 120ms ease, box-shadow 120ms ease;
2300
+ }
2301
+ .ba-md-summary:hover {
2302
+ background: rgba(255, 255, 255, 0.05);
2303
+ transform: translateY(-0.5px);
2304
+ }
2305
+ .ba-md-summary:active {
2306
+ transform: translateY(0.5px);
2307
+ }
2308
+ .ba-md-summary:focus-visible {
2309
+ outline: 2px solid rgba(212, 255, 72, 0.6);
2310
+ outline-offset: 1px;
2311
+ }
2312
+ .ba-md-sum-cell {
2313
+ display: inline-flex;
2314
+ align-items: center;
2315
+ gap: 3px;
2316
+ }
2317
+ .ba-md-sum-dot {
2318
+ width: 5px;
2319
+ height: 5px;
2320
+ border-radius: 50%;
2321
+ background: rgba(180, 180, 180, 0.4);
2322
+ flex-shrink: 0;
2323
+ }
2324
+ .ba-md-sum-ok .ba-md-sum-dot {
2325
+ background: var(--prim-color-green-400);
2326
+ box-shadow: none;
2327
+ }
2328
+ .ba-md-sum-warn .ba-md-sum-dot {
2329
+ background: var(--color-status-amber);
2330
+ box-shadow: none;
2331
+ }
2332
+ .ba-md-sum-down .ba-md-sum-dot {
2333
+ background: var(--accent-error);
2334
+ box-shadow: none;
2335
+ }
2336
+ .ba-md-sum-ok {
2337
+ color: var(--primary);
2338
+ }
2339
+ .ba-md-sum-warn {
2340
+ color: var(--color-status-amber);
2341
+ }
2342
+ .ba-md-sum-down {
2343
+ color: var(--accent-error);
2344
+ }
2345
+ .ba-md-sum-sep {
2346
+ opacity: 0.32;
2347
+ padding: 0 1px;
2348
+ }
2349
+ .ba-md-sum-arrow {
2350
+ margin-left: 4px;
2351
+ font-size: 11px;
2352
+ opacity: 0.55;
2353
+ transition: opacity 120ms ease, transform 120ms ease;
2354
+ }
2355
+ .ba-md-summary:hover .ba-md-sum-arrow {
2356
+ opacity: 0.95;
2357
+ transform: translateX(-1px);
2358
+ }
2359
+ .ba-md-summary.has-solo {
2360
+ border-color: rgba(196, 163, 255, 0.45);
2361
+ background: rgba(196, 163, 255, 0.08);
2362
+ }
2363
+ .ba-md-summary.has-solo .ba-md-sum-arrow {
2364
+ color: var(--color-role-orchestrator);
2365
+ opacity: 0.85;
2366
+ }
2367
+ .ba-md-summary.is-loading {
2368
+ border-color: rgba(255, 255, 255, 0.06);
2369
+ }
2370
+ .ba-md-summary.is-loading .ba-md-sum-loading {
2371
+ animation: ba-md-pulse 1.4s ease-in-out infinite;
2372
+ opacity: 0.55;
2373
+ }
2374
+ .ba-md-summary.is-ok {
2375
+ border-color: rgba(75, 222, 128, 0.4);
2376
+ box-shadow: inset 0 0 0 1px rgba(75, 222, 128, 0.18);
2377
+ }
2378
+ .ba-md-summary.is-warn {
2379
+ border-color: rgba(245, 178, 67, 0.45);
2380
+ box-shadow: inset 0 0 0 1px rgba(245, 178, 67, 0.18);
2381
+ }
2382
+ .ba-md-summary.is-down {
2383
+ border-color: rgba(255, 107, 107, 0.55);
2384
+ box-shadow: inset 0 0 0 1px rgba(255, 107, 107, 0.22);
2385
+ }
2386
+
2387
+ /* P4.42 — `Σ{N}` total-plugins cell prepended to the summary pill. Quiet
2388
+ white (0.72) so the band doesn't compete with the colored tone cells; the
2389
+ `Σ` glyph is rendered as its own span so it can scale slightly larger than
2390
+ the digit count and pick up a soft glow on hover. `.ba-md-sum-vsep` is a
2391
+ 1px vertical hairline that cleanly splits the «total» band from the «tone
2392
+ bucket» band; height clamped to 11px so it doesn't touch the pill edges. */
2393
+ .ba-md-sum-total {
2394
+ color: rgba(255, 255, 255, 0.78);
2395
+ font-weight: 600;
2396
+ letter-spacing: 0.02em;
2397
+ }
2398
+ .ba-md-sum-sigma {
2399
+ font-size: 12px;
2400
+ line-height: 1;
2401
+ color: rgba(255, 255, 255, 0.62);
2402
+ margin-right: 1px;
2403
+ transition: color 120ms ease, text-shadow 120ms ease;
2404
+ }
2405
+ .ba-md-summary:hover .ba-md-sum-sigma {
2406
+ color: rgba(212, 255, 72, 0.85);
2407
+ text-shadow: 0 0 4px rgba(212, 255, 72, 0.4);
2408
+ }
2409
+ .ba-md-sum-vsep {
2410
+ display: inline-block;
2411
+ width: 1px;
2412
+ height: 11px;
2413
+ background: rgba(255, 255, 255, 0.18);
2414
+ margin: 0 3px;
2415
+ flex-shrink: 0;
2416
+ }
2417
+ .ba-md-summary.is-ok .ba-md-sum-vsep {
2418
+ background: rgba(75, 222, 128, 0.28);
2419
+ }
2420
+ .ba-md-summary.is-warn .ba-md-sum-vsep {
2421
+ background: rgba(245, 178, 67, 0.32);
2422
+ }
2423
+ .ba-md-summary.is-down .ba-md-sum-vsep {
2424
+ background: rgba(255, 107, 107, 0.38);
2425
+ }