@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.
- package/LICENSE +202 -0
- package/NOTICE +9 -0
- package/README.md +111 -0
- package/dist/package/browser/App.css +192 -0
- package/dist/package/browser/App.d.ts +11 -0
- package/dist/package/browser/App.js +11 -0
- package/dist/package/browser/ApplicationDetachedShell.d.ts +13 -0
- package/dist/package/browser/ApplicationDetachedShell.js +10 -0
- package/dist/package/browser/ApplicationShell.d.ts +19 -0
- package/dist/package/browser/ApplicationShell.js +62 -0
- package/dist/package/browser/app-kit.d.ts +1 -0
- package/dist/package/browser/app-kit.js +4 -0
- package/dist/package/browser/appHostBootstrap.d.ts +16 -0
- package/dist/package/browser/appHostBootstrap.js +145 -0
- package/dist/package/browser/application.d.ts +35 -0
- package/dist/package/browser/application.js +64 -0
- package/dist/package/browser/assets/icons/agent-icon.png +0 -0
- package/dist/package/browser/assets/icons/at.svg +3 -0
- package/dist/package/browser/assets/icons/chevron-collapse.svg +3 -0
- package/dist/package/browser/assets/icons/chevron-expand.svg +3 -0
- package/dist/package/browser/assets/icons/chevron-up.svg +3 -0
- package/dist/package/browser/assets/icons/close-x.svg +3 -0
- package/dist/package/browser/assets/icons/close.svg +3 -0
- package/dist/package/browser/assets/icons/copy.svg +4 -0
- package/dist/package/browser/assets/icons/edit.svg +3 -0
- package/dist/package/browser/assets/icons/fullscreen.svg +3 -0
- package/dist/package/browser/assets/icons/pause.svg +4 -0
- package/dist/package/browser/assets/icons/play.svg +3 -0
- package/dist/package/browser/assets/icons/select.svg +3 -0
- package/dist/package/browser/assets/icons/sendMessage-enable.svg +4 -0
- package/dist/package/browser/assets/icons/sendMessage.svg +4 -0
- package/dist/package/browser/assets/icons/status-done.svg +11 -0
- package/dist/package/browser/assets/icons/status-running.svg +10 -0
- package/dist/package/browser/assets/icons/status-waiting.svg +10 -0
- package/dist/package/browser/assets/icons/tool-execute-script.svg +3 -0
- package/dist/package/browser/assets/icons/tool-other.svg +10 -0
- package/dist/package/browser/assets/icons/tool-read-file.svg +3 -0
- package/dist/package/browser/assets/icons/tool-resource-search.svg +3 -0
- package/dist/package/browser/assets/icons/tool-task-todo.svg +4 -0
- package/dist/package/browser/assets/icons/tool-write-file.svg +3 -0
- package/dist/package/browser/boot/SettingsSection.d.ts +14 -0
- package/dist/package/browser/boot/SettingsSection.js +82 -0
- package/dist/package/browser/boot/broadcast.d.ts +2 -0
- package/dist/package/browser/boot/broadcast.js +32 -0
- package/dist/package/browser/boot/driver.d.ts +22 -0
- package/dist/package/browser/boot/driver.js +47 -0
- package/dist/package/browser/boot/store.d.ts +29 -0
- package/dist/package/browser/boot/store.js +114 -0
- package/dist/package/browser/boot/themes.d.ts +19 -0
- package/dist/package/browser/boot/themes.js +21 -0
- package/dist/package/browser/boot/types.d.ts +22 -0
- package/dist/package/browser/boot/types.js +30 -0
- package/dist/package/browser/brand/BrandProvider.d.ts +19 -0
- package/dist/package/browser/brand/BrandProvider.js +35 -0
- package/dist/package/browser/brand/index.d.ts +4 -0
- package/dist/package/browser/brand/index.js +3 -0
- package/dist/package/browser/brand/runtime.d.ts +17 -0
- package/dist/package/browser/brand/runtime.js +71 -0
- package/dist/package/browser/brand/types.d.ts +77 -0
- package/dist/package/browser/brand/types.js +9 -0
- package/dist/package/browser/components/ActivityRail/ActivityRail.css +294 -0
- package/dist/package/browser/components/ActivityRail/ActivityRail.d.ts +2 -0
- package/dist/package/browser/components/ActivityRail/ActivityRail.js +164 -0
- package/dist/package/browser/components/ActivityRail/activity-rail-model.d.ts +18 -0
- package/dist/package/browser/components/ActivityRail/activity-rail-model.js +144 -0
- package/dist/package/browser/components/AgentAvatar/AgentAvatar.d.ts +17 -0
- package/dist/package/browser/components/AgentAvatar/AgentAvatar.js +50 -0
- package/dist/package/browser/components/BuildBadge/BuildBadge.d.ts +1 -0
- package/dist/package/browser/components/BuildBadge/BuildBadge.js +279 -0
- package/dist/package/browser/components/Bus/BusAdminPanel.css +2425 -0
- package/dist/package/browser/components/Bus/BusAdminPanel.d.ts +2 -0
- package/dist/package/browser/components/Bus/BusAdminPanel.js +1385 -0
- package/dist/package/browser/components/Bus/CapabilityOverview.d.ts +3 -0
- package/dist/package/browser/components/Bus/CapabilityOverview.js +50 -0
- package/dist/package/browser/components/ChatColumn/ChatColumn.d.ts +2 -0
- package/dist/package/browser/components/ChatColumn/ChatColumn.js +18 -0
- package/dist/package/browser/components/ChatColumn/SessionTabStrip.d.ts +1 -0
- package/dist/package/browser/components/ChatColumn/SessionTabStrip.js +103 -0
- package/dist/package/browser/components/ChatColumn/useChatWidth.d.ts +5 -0
- package/dist/package/browser/components/ChatColumn/useChatWidth.js +13 -0
- package/dist/package/browser/components/CommandPalette/CommandPalette.css +199 -0
- package/dist/package/browser/components/CommandPalette/CommandPalette.d.ts +2 -0
- package/dist/package/browser/components/CommandPalette/CommandPalette.js +242 -0
- package/dist/package/browser/components/Confirm/ConfirmDialog.d.ts +2 -0
- package/dist/package/browser/components/Confirm/ConfirmDialog.js +113 -0
- package/dist/package/browser/components/ContextMenu/ContextMenu.d.ts +10 -0
- package/dist/package/browser/components/ContextMenu/ContextMenu.js +218 -0
- package/dist/package/browser/components/ContextMenu/menuRegistry.d.ts +18 -0
- package/dist/package/browser/components/ContextMenu/menuRegistry.js +152 -0
- package/dist/package/browser/components/DetachedSurface.d.ts +20 -0
- package/dist/package/browser/components/DetachedSurface.js +102 -0
- package/dist/package/browser/components/DockShell/DockPanelHost.d.ts +4 -0
- package/dist/package/browser/components/DockShell/DockPanelHost.js +7 -0
- package/dist/package/browser/components/DockShell/DockRegion.d.ts +7 -0
- package/dist/package/browser/components/DockShell/DockRegion.js +315 -0
- package/dist/package/browser/components/DockShell/DockShell.css +1018 -0
- package/dist/package/browser/components/DockShell/DockTab.d.ts +3 -0
- package/dist/package/browser/components/DockShell/DockTab.js +139 -0
- package/dist/package/browser/components/DockShell/ExtensionHostPanel.d.ts +9 -0
- package/dist/package/browser/components/DockShell/ExtensionHostPanel.js +68 -0
- package/dist/package/browser/components/DockShell/ExtensionRuntimeFrame.d.ts +14 -0
- package/dist/package/browser/components/DockShell/ExtensionRuntimeFrame.js +56 -0
- package/dist/package/browser/components/DockShell/PanelWindowingBoundary.d.ts +6 -0
- package/dist/package/browser/components/DockShell/PanelWindowingBoundary.js +9 -0
- package/dist/package/browser/components/DockShell/chatDockAnimation.d.ts +45 -0
- package/dist/package/browser/components/DockShell/chatDockAnimation.js +101 -0
- package/dist/package/browser/components/DockShell/chatDockFullscreen.d.ts +17 -0
- package/dist/package/browser/components/DockShell/chatDockFullscreen.js +22 -0
- package/dist/package/browser/components/DockShell/chatDockLayout.d.ts +10 -0
- package/dist/package/browser/components/DockShell/chatDockLayout.js +11 -0
- package/dist/package/browser/components/DockShell/compact-empty-dock-groups.d.ts +16 -0
- package/dist/package/browser/components/DockShell/compact-empty-dock-groups.js +28 -0
- package/dist/package/browser/components/DockShell/crossInstanceDrop.d.ts +1 -0
- package/dist/package/browser/components/DockShell/crossInstanceDrop.js +1 -0
- package/dist/package/browser/components/DockShell/dockResetEpoch.d.ts +2 -0
- package/dist/package/browser/components/DockShell/dockResetEpoch.js +13 -0
- package/dist/package/browser/components/DockShell/dockTitle.d.ts +12 -0
- package/dist/package/browser/components/DockShell/dockTitle.js +36 -0
- package/dist/package/browser/components/DockShell/dockviewRegistry.d.ts +1 -0
- package/dist/package/browser/components/DockShell/dockviewRegistry.js +1 -0
- package/dist/package/browser/components/DockShell/edgeDrawer.d.ts +24 -0
- package/dist/package/browser/components/DockShell/edgeDrawer.js +1144 -0
- package/dist/package/browser/components/DockShell/edgePinStore.d.ts +12 -0
- package/dist/package/browser/components/DockShell/edgePinStore.js +37 -0
- package/dist/package/browser/components/DockShell/extension-editor-bridge.d.ts +13 -0
- package/dist/package/browser/components/DockShell/extension-editor-bridge.js +100 -0
- package/dist/package/browser/components/DockShell/extension-runtime-selection.d.ts +8 -0
- package/dist/package/browser/components/DockShell/extension-runtime-selection.js +6 -0
- package/dist/package/browser/components/DockShell/extensionRuntime.d.ts +17 -0
- package/dist/package/browser/components/DockShell/extensionRuntime.js +84 -0
- package/dist/package/browser/components/DockShell/footer-panel-visibility.d.ts +7 -0
- package/dist/package/browser/components/DockShell/footer-panel-visibility.js +43 -0
- package/dist/package/browser/components/DockShell/footer-panels.d.ts +2 -0
- package/dist/package/browser/components/DockShell/footer-panels.js +7 -0
- package/dist/package/browser/components/DockShell/panelRegistry.d.ts +37 -0
- package/dist/package/browser/components/DockShell/panelRegistry.js +126 -0
- package/dist/package/browser/components/DockShell/panelRenderers.d.ts +325 -0
- package/dist/package/browser/components/DockShell/panelRenderers.js +25 -0
- package/dist/package/browser/components/DockShell/panelTabCommands.d.ts +18 -0
- package/dist/package/browser/components/DockShell/panelTabCommands.js +133 -0
- package/dist/package/browser/components/DockShell/panelWindowing.d.ts +32 -0
- package/dist/package/browser/components/DockShell/panelWindowing.js +42 -0
- package/dist/package/browser/components/DockShell/regions.d.ts +1 -0
- package/dist/package/browser/components/DockShell/regions.js +1 -0
- package/dist/package/browser/components/DockShell/resolveRegion.d.ts +1 -0
- package/dist/package/browser/components/DockShell/resolveRegion.js +1 -0
- package/dist/package/browser/components/DockShell/sanitizeDockLayout.d.ts +3 -0
- package/dist/package/browser/components/DockShell/sanitizeDockLayout.js +46 -0
- package/dist/package/browser/components/DockShell/sideEdgeMove.d.ts +1 -0
- package/dist/package/browser/components/DockShell/sideEdgeMove.js +1 -0
- package/dist/package/browser/components/DockShell/studioTabMenuProvider.d.ts +13 -0
- package/dist/package/browser/components/DockShell/studioTabMenuProvider.js +39 -0
- package/dist/package/browser/components/DockShell/tabContextMenu.d.ts +29 -0
- package/dist/package/browser/components/DockShell/tabContextMenu.js +68 -0
- package/dist/package/browser/components/DockShell/ueDrag/controller.d.ts +80 -0
- package/dist/package/browser/components/DockShell/ueDrag/controller.js +785 -0
- package/dist/package/browser/components/DockShell/ueDrag/geometry.d.ts +94 -0
- package/dist/package/browser/components/DockShell/ueDrag/geometry.js +217 -0
- package/dist/package/browser/components/DockShell/ueDrag/overlay.d.ts +32 -0
- package/dist/package/browser/components/DockShell/ueDrag/overlay.js +206 -0
- package/dist/package/browser/components/DockShell/ueDrag/ueDrag.css +199 -0
- package/dist/package/browser/components/DockShell/useAuxBarWidth.d.ts +5 -0
- package/dist/package/browser/components/DockShell/useAuxBarWidth.js +13 -0
- package/dist/package/browser/components/Drawer/DrawerHostView.css +143 -0
- package/dist/package/browser/components/Drawer/DrawerHostView.d.ts +19 -0
- package/dist/package/browser/components/Drawer/DrawerHostView.js +93 -0
- package/dist/package/browser/components/Drawer/DrawerLauncher.d.ts +12 -0
- package/dist/package/browser/components/Drawer/DrawerLauncher.js +22 -0
- package/dist/package/browser/components/Drawer/useDrawerStore.d.ts +15 -0
- package/dist/package/browser/components/Drawer/useDrawerStore.js +80 -0
- package/dist/package/browser/components/ErrorBoundary.d.ts +55 -0
- package/dist/package/browser/components/ErrorBoundary.js +131 -0
- package/dist/package/browser/components/ExtensionHost/ExtensionIframeHost.d.ts +28 -0
- package/dist/package/browser/components/ExtensionHost/ExtensionIframeHost.js +179 -0
- package/dist/package/browser/components/ExtensionHost/NativeExtensionHost.d.ts +14 -0
- package/dist/package/browser/components/ExtensionHost/NativeExtensionHost.js +152 -0
- package/dist/package/browser/components/Feedback/FeedbackPanel.css +640 -0
- package/dist/package/browser/components/Feedback/FeedbackPanel.d.ts +8 -0
- package/dist/package/browser/components/Feedback/FeedbackPanel.js +118 -0
- package/dist/package/browser/components/Feedback/PassiveFeedback.css +179 -0
- package/dist/package/browser/components/Feedback/PassiveFeedback.d.ts +2 -0
- package/dist/package/browser/components/Feedback/PassiveFeedback.js +218 -0
- package/dist/package/browser/components/Feedback/collect.d.ts +15 -0
- package/dist/package/browser/components/Feedback/collect.js +80 -0
- package/dist/package/browser/components/Feedback/store.d.ts +61 -0
- package/dist/package/browser/components/Feedback/store.js +174 -0
- package/dist/package/browser/components/LangSwitcher/LangSwitcher.css +78 -0
- package/dist/package/browser/components/LangSwitcher/LangSwitcher.d.ts +14 -0
- package/dist/package/browser/components/LangSwitcher/LangSwitcher.js +44 -0
- package/dist/package/browser/components/MainArea/ConsolePanel.d.ts +1 -0
- package/dist/package/browser/components/MainArea/ConsolePanel.js +16 -0
- package/dist/package/browser/components/MainArea/MainArea.css +2130 -0
- package/dist/package/browser/components/MainArea/MainArea.d.ts +2 -0
- package/dist/package/browser/components/MainArea/MainArea.js +20 -0
- package/dist/package/browser/components/MainArea/StandaloneExtensionIframe.d.ts +25 -0
- package/dist/package/browser/components/MainArea/StandaloneExtensionIframe.js +155 -0
- package/dist/package/browser/components/MainArea/SurfacePanels.d.ts +3 -0
- package/dist/package/browser/components/MainArea/SurfacePanels.js +27 -0
- package/dist/package/browser/components/MainArea/TelemetryViewer.css +122 -0
- package/dist/package/browser/components/MainArea/TelemetryViewer.d.ts +36 -0
- package/dist/package/browser/components/MainArea/TelemetryViewer.js +116 -0
- package/dist/package/browser/components/MenuBar/MenuBar.css +186 -0
- package/dist/package/browser/components/MenuBar/MenuBar.d.ts +27 -0
- package/dist/package/browser/components/MenuBar/MenuBar.js +286 -0
- package/dist/package/browser/components/MenuBar/index.d.ts +1 -0
- package/dist/package/browser/components/MenuBar/index.js +1 -0
- package/dist/package/browser/components/MenuBar/menubar-open-state.d.ts +8 -0
- package/dist/package/browser/components/MenuBar/menubar-open-state.js +11 -0
- package/dist/package/browser/components/MenuBar/menubar-surface.d.ts +30 -0
- package/dist/package/browser/components/MenuBar/menubar-surface.js +201 -0
- package/dist/package/browser/components/ModelPicker/index.d.ts +1 -0
- package/dist/package/browser/components/ModelPicker/index.js +1 -0
- package/dist/package/browser/components/ModelPicker/useModelCatalog.d.ts +22 -0
- package/dist/package/browser/components/ModelPicker/useModelCatalog.js +100 -0
- package/dist/package/browser/components/Onboarding/ConnectModelPrompt.d.ts +2 -0
- package/dist/package/browser/components/Onboarding/ConnectModelPrompt.js +40 -0
- package/dist/package/browser/components/Onboarding/Onboarding.css +232 -0
- package/dist/package/browser/components/Onboarding/OnboardingController.d.ts +10 -0
- package/dist/package/browser/components/Onboarding/OnboardingController.js +549 -0
- package/dist/package/browser/components/Onboarding/connect-selection.d.ts +17 -0
- package/dist/package/browser/components/Onboarding/connect-selection.js +18 -0
- package/dist/package/browser/components/Onboarding/home-transition.d.ts +9 -0
- package/dist/package/browser/components/Onboarding/home-transition.js +20 -0
- package/dist/package/browser/components/Onboarding/index.d.ts +4 -0
- package/dist/package/browser/components/Onboarding/index.js +3 -0
- package/dist/package/browser/components/Onboarding/prepareTourShell.d.ts +5 -0
- package/dist/package/browser/components/Onboarding/prepareTourShell.js +11 -0
- package/dist/package/browser/components/Onboarding/project-name.d.ts +17 -0
- package/dist/package/browser/components/Onboarding/project-name.js +29 -0
- package/dist/package/browser/components/Onboarding/types.d.ts +31 -0
- package/dist/package/browser/components/Onboarding/types.js +77 -0
- package/dist/package/browser/components/PageTabs/PageTabStrip.css +221 -0
- package/dist/package/browser/components/PageTabs/PageTabStrip.d.ts +3 -0
- package/dist/package/browser/components/PageTabs/PageTabStrip.js +214 -0
- package/dist/package/browser/components/PageTabs/openablePageTypes.d.ts +9 -0
- package/dist/package/browser/components/PageTabs/openablePageTypes.js +13 -0
- package/dist/package/browser/components/PanelShell/PanelShell.css +517 -0
- package/dist/package/browser/components/PanelShell/PanelShell.d.ts +7 -0
- package/dist/package/browser/components/PanelShell/PanelShell.js +459 -0
- package/dist/package/browser/components/Resize/ResizeHandle.d.ts +1 -0
- package/dist/package/browser/components/Resize/ResizeHandle.js +1 -0
- package/dist/package/browser/components/SceneBackground/SceneBackground.d.ts +2 -0
- package/dist/package/browser/components/SceneBackground/SceneBackground.js +5 -0
- package/dist/package/browser/components/SchemaForm/SchemaForm.css +138 -0
- package/dist/package/browser/components/SchemaForm/SchemaForm.d.ts +17 -0
- package/dist/package/browser/components/SchemaForm/SchemaForm.js +86 -0
- package/dist/package/browser/components/SchemaForm/schema-form-utils.d.ts +30 -0
- package/dist/package/browser/components/SchemaForm/schema-form-utils.js +51 -0
- package/dist/package/browser/components/SettingsPrimitives.d.ts +24 -0
- package/dist/package/browser/components/SettingsPrimitives.js +145 -0
- package/dist/package/browser/components/Sidebar/BusHealthLamp.d.ts +1 -0
- package/dist/package/browser/components/Sidebar/BusHealthLamp.js +72 -0
- package/dist/package/browser/components/Sidebar/FilesPanel.d.ts +1 -0
- package/dist/package/browser/components/Sidebar/FilesPanel.js +234 -0
- package/dist/package/browser/components/Sidebar/Sidebar.css +1393 -0
- package/dist/package/browser/components/Sidebar/Sidebar.d.ts +3 -0
- package/dist/package/browser/components/Sidebar/Sidebar.js +8 -0
- package/dist/package/browser/components/Sidebar/sidebar-types.d.ts +18 -0
- package/dist/package/browser/components/Sidebar/sidebar-types.js +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/SlotDebugOverlay.d.ts +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/SlotDebugOverlay.js +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/hashHue.d.ts +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/hashHue.js +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/index.d.ts +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/index.js +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/isSlotDebugEnabled.d.ts +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/isSlotDebugEnabled.js +1 -0
- package/dist/package/browser/components/StatusBar/FatalBanner.d.ts +25 -0
- package/dist/package/browser/components/StatusBar/FatalBanner.js +52 -0
- package/dist/package/browser/components/StatusBar/GlobalStatusBar.css +304 -0
- package/dist/package/browser/components/StatusBar/InfoPanel.css +174 -0
- package/dist/package/browser/components/StatusBar/InfoPanel.d.ts +19 -0
- package/dist/package/browser/components/StatusBar/InfoPanel.js +128 -0
- package/dist/package/browser/components/StatusBar/StatusChip.css +52 -0
- package/dist/package/browser/components/StatusBar/StatusChip.d.ts +40 -0
- package/dist/package/browser/components/StatusBar/StatusChip.js +13 -0
- package/dist/package/browser/components/StatusBar/StripHostView.d.ts +2 -0
- package/dist/package/browser/components/StatusBar/StripHostView.js +91 -0
- package/dist/package/browser/components/StatusBar/StripPopover.css +58 -0
- package/dist/package/browser/components/StatusBar/StripPopover.d.ts +16 -0
- package/dist/package/browser/components/StatusBar/StripPopover.js +15 -0
- package/dist/package/browser/components/StatusBar/feeds/PulseFeeds.d.ts +16 -0
- package/dist/package/browser/components/StatusBar/feeds/PulseFeeds.js +88 -0
- package/dist/package/browser/components/StatusBar/footer/CheckpointsDrawer.d.ts +4 -0
- package/dist/package/browser/components/StatusBar/footer/CheckpointsDrawer.js +77 -0
- package/dist/package/browser/components/StatusBar/footer/DiagnosticsPopover.d.ts +4 -0
- package/dist/package/browser/components/StatusBar/footer/DiagnosticsPopover.js +108 -0
- package/dist/package/browser/components/StatusBar/footer/EventsDrawer.d.ts +14 -0
- package/dist/package/browser/components/StatusBar/footer/EventsDrawer.js +25 -0
- package/dist/package/browser/components/StatusBar/footer/ForgeaxBuildPopover.d.ts +4 -0
- package/dist/package/browser/components/StatusBar/footer/ForgeaxBuildPopover.js +62 -0
- package/dist/package/browser/components/StatusBar/footer/footer.css +178 -0
- package/dist/package/browser/components/StatusBar/healthBridge.d.ts +38 -0
- package/dist/package/browser/components/StatusBar/healthBridge.js +245 -0
- package/dist/package/browser/components/StatusBar/healthStore.d.ts +80 -0
- package/dist/package/browser/components/StatusBar/healthStore.js +129 -0
- package/dist/package/browser/components/StatusBar/useStatusItem.d.ts +10 -0
- package/dist/package/browser/components/StatusBar/useStatusItem.js +35 -0
- package/dist/package/browser/components/Surfaces/SurfaceKeepAlive.css +34 -0
- package/dist/package/browser/components/Surfaces/SurfaceKeepAliveLayer.d.ts +3 -0
- package/dist/package/browser/components/Surfaces/SurfaceKeepAliveLayer.js +218 -0
- package/dist/package/browser/components/Surfaces/SurfaceOverlay.css +160 -0
- package/dist/package/browser/components/Surfaces/SurfaceOverlay.d.ts +9 -0
- package/dist/package/browser/components/Surfaces/SurfaceOverlay.js +144 -0
- package/dist/package/browser/components/TopBar/AndroidPackageDialog.d.ts +23 -0
- package/dist/package/browser/components/TopBar/AndroidPackageDialog.js +115 -0
- package/dist/package/browser/components/TopBar/FsBrowser.css +156 -0
- package/dist/package/browser/components/TopBar/FsBrowser.d.ts +8 -0
- package/dist/package/browser/components/TopBar/FsBrowser.js +93 -0
- package/dist/package/browser/components/TopBar/GameSwitcher.d.ts +29 -0
- package/dist/package/browser/components/TopBar/GameSwitcher.js +157 -0
- package/dist/package/browser/components/TopBar/IosPackageDialog.d.ts +23 -0
- package/dist/package/browser/components/TopBar/IosPackageDialog.js +115 -0
- package/dist/package/browser/components/TopBar/ProjectSwitcher.d.ts +3 -0
- package/dist/package/browser/components/TopBar/ProjectSwitcher.js +41 -0
- package/dist/package/browser/components/TopBar/PublishOnboarding.css +133 -0
- package/dist/package/browser/components/TopBar/PublishOnboarding.d.ts +10 -0
- package/dist/package/browser/components/TopBar/PublishOnboarding.js +144 -0
- package/dist/package/browser/components/TopBar/SessionSwitcher.d.ts +2 -0
- package/dist/package/browser/components/TopBar/SessionSwitcher.js +124 -0
- package/dist/package/browser/components/TopBar/TopBar.css +1672 -0
- package/dist/package/browser/components/TopBar/TopBar.d.ts +2 -0
- package/dist/package/browser/components/TopBar/TopBar.js +606 -0
- package/dist/package/browser/components/TopBar/publish-options.d.ts +20 -0
- package/dist/package/browser/components/TopBar/publish-options.js +28 -0
- package/dist/package/browser/components/TourOverlay/TourOverlay.css +122 -0
- package/dist/package/browser/components/TourOverlay/TourOverlay.d.ts +26 -0
- package/dist/package/browser/components/TourOverlay/TourOverlay.js +233 -0
- package/dist/package/browser/components/TourOverlay/index.d.ts +2 -0
- package/dist/package/browser/components/TourOverlay/index.js +1 -0
- package/dist/package/browser/components/ownership.d.ts +7 -0
- package/dist/package/browser/components/ownership.js +7 -0
- package/dist/package/browser/components/ui/SearchableMenu.css +143 -0
- package/dist/package/browser/components/ui/SearchableMenu.d.ts +30 -0
- package/dist/package/browser/components/ui/SearchableMenu.js +40 -0
- package/dist/package/browser/components/ui/alert-dialog.d.ts +20 -0
- package/dist/package/browser/components/ui/alert-dialog.js +38 -0
- package/dist/package/browser/components/ui/button.d.ts +11 -0
- package/dist/package/browser/components/ui/button.js +33 -0
- package/dist/package/browser/components/ui/checkbox.d.ts +4 -0
- package/dist/package/browser/components/ui/checkbox.js +8 -0
- package/dist/package/browser/components/ui/command.d.ts +74 -0
- package/dist/package/browser/components/ui/command.js +20 -0
- package/dist/package/browser/components/ui/dialog.d.ts +21 -0
- package/dist/package/browser/components/ui/dialog.js +34 -0
- package/dist/package/browser/components/ui/dropdown-menu.d.ts +18 -0
- package/dist/package/browser/components/ui/dropdown-menu.js +30 -0
- package/dist/package/browser/components/ui/input.d.ts +3 -0
- package/dist/package/browser/components/ui/input.js +8 -0
- package/dist/package/browser/components/ui/label.d.ts +4 -0
- package/dist/package/browser/components/ui/label.js +7 -0
- package/dist/package/browser/components/ui/popover.d.ts +7 -0
- package/dist/package/browser/components/ui/popover.js +10 -0
- package/dist/package/browser/components/ui/select.d.ts +11 -0
- package/dist/package/browser/components/ui/select.js +31 -0
- package/dist/package/browser/components/ui/tabs.d.ts +7 -0
- package/dist/package/browser/components/ui/tabs.js +12 -0
- package/dist/package/browser/components/ui/textarea.d.ts +3 -0
- package/dist/package/browser/components/ui/textarea.js +8 -0
- package/dist/package/browser/components/ui/tooltip.d.ts +7 -0
- package/dist/package/browser/components/ui/tooltip.js +10 -0
- package/dist/package/browser/core/app-shell/catalog-page-extensions.d.ts +28 -0
- package/dist/package/browser/core/app-shell/catalog-page-extensions.js +234 -0
- package/dist/package/browser/core/app-shell/derive-panel-renderers.d.ts +2 -0
- package/dist/package/browser/core/app-shell/derive-panel-renderers.js +17 -0
- package/dist/package/browser/core/app-shell/host.d.ts +31 -0
- package/dist/package/browser/core/app-shell/host.js +188 -0
- package/dist/package/browser/core/app-shell/index.d.ts +7 -0
- package/dist/package/browser/core/app-shell/index.js +8 -0
- package/dist/package/browser/core/app-shell/logger.d.ts +2 -0
- package/dist/package/browser/core/app-shell/logger.js +6 -0
- package/dist/package/browser/core/app-shell/ownership.d.ts +7 -0
- package/dist/package/browser/core/app-shell/ownership.js +7 -0
- package/dist/package/browser/core/app-shell/react/HostProvider.d.ts +10 -0
- package/dist/package/browser/core/app-shell/react/HostProvider.js +35 -0
- package/dist/package/browser/core/app-shell/surface-extension.d.ts +17 -0
- package/dist/package/browser/core/app-shell/surface-extension.js +33 -0
- package/dist/package/browser/core/app-shell/types.d.ts +176 -0
- package/dist/package/browser/core/app-shell/types.js +1 -0
- package/dist/package/browser/core/contextual-keybindings.d.ts +71 -0
- package/dist/package/browser/core/contextual-keybindings.js +198 -0
- package/dist/package/browser/core/extension-foundation/bus.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/bus.js +3 -0
- package/dist/package/browser/core/extension-foundation/capabilities.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/capabilities.js +3 -0
- package/dist/package/browser/core/extension-foundation/commands.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/commands.js +3 -0
- package/dist/package/browser/core/extension-foundation/context-keys.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/context-keys.js +3 -0
- package/dist/package/browser/core/extension-foundation/contribution-registry.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/contribution-registry.js +3 -0
- package/dist/package/browser/core/extension-foundation/errors.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/errors.js +3 -0
- package/dist/package/browser/core/extension-foundation/index.d.ts +8 -0
- package/dist/package/browser/core/extension-foundation/index.js +9 -0
- package/dist/package/browser/core/extension-foundation/loader.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/loader.js +3 -0
- package/dist/package/browser/core/extension-foundation/storage.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/storage.js +3 -0
- package/dist/package/browser/core/extension-foundation/types.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/types.js +1 -0
- package/dist/package/browser/core/extensions/builtin-commands.d.ts +2 -0
- package/dist/package/browser/core/extensions/builtin-commands.js +256 -0
- package/dist/package/browser/core/extensions/builtin-menus.d.ts +2 -0
- package/dist/package/browser/core/extensions/builtin-menus.js +252 -0
- package/dist/package/browser/core/extensions/chrome-drawer.d.ts +3 -0
- package/dist/package/browser/core/extensions/chrome-drawer.js +45 -0
- package/dist/package/browser/core/extensions/chrome-statusbar.d.ts +6 -0
- package/dist/package/browser/core/extensions/chrome-statusbar.js +26 -0
- package/dist/package/browser/core/extensions/detached-agents-browser.d.ts +3 -0
- package/dist/package/browser/core/extensions/detached-agents-browser.js +9 -0
- package/dist/package/browser/core/extensions/detached-files-browser.d.ts +3 -0
- package/dist/package/browser/core/extensions/detached-files-browser.js +6 -0
- package/dist/package/browser/core/extensions/editor-commands.d.ts +2 -0
- package/dist/package/browser/core/extensions/editor-commands.js +182 -0
- package/dist/package/browser/core/extensions/foundation-bus.d.ts +2 -0
- package/dist/package/browser/core/extensions/foundation-bus.js +3 -0
- package/dist/package/browser/core/extensions/foundation-commands.d.ts +2 -0
- package/dist/package/browser/core/extensions/foundation-commands.js +6 -0
- package/dist/package/browser/core/extensions/foundation-storage.d.ts +2 -0
- package/dist/package/browser/core/extensions/foundation-storage.js +3 -0
- package/dist/package/browser/core/extensions/host-commands.d.ts +18 -0
- package/dist/package/browser/core/extensions/host-commands.js +52 -0
- package/dist/package/browser/core/extensions/observability.d.ts +14 -0
- package/dist/package/browser/core/extensions/observability.js +18 -0
- package/dist/package/browser/core/extensions/panels-chat.d.ts +2 -0
- package/dist/package/browser/core/extensions/panels-chat.js +41 -0
- package/dist/package/browser/core/extensions/panels-editor.d.ts +8 -0
- package/dist/package/browser/core/extensions/panels-editor.js +26 -0
- package/dist/package/browser/core/extensions/panels-viewport.d.ts +2 -0
- package/dist/package/browser/core/extensions/panels-viewport.js +20 -0
- package/dist/package/browser/core/extensions/session-client.d.ts +29 -0
- package/dist/package/browser/core/extensions/session-client.js +42 -0
- package/dist/package/browser/core/extensions/slots-corner-agent-picker.d.ts +5 -0
- package/dist/package/browser/core/extensions/slots-corner-agent-picker.js +6 -0
- package/dist/package/browser/core/extensions/slots-main-area-body.d.ts +3 -0
- package/dist/package/browser/core/extensions/slots-main-area-body.js +6 -0
- package/dist/package/browser/core/extensions/slots-sidebar-agents.d.ts +3 -0
- package/dist/package/browser/core/extensions/slots-sidebar-agents.js +6 -0
- package/dist/package/browser/core/extensions/studio-domain-clients.d.ts +12 -0
- package/dist/package/browser/core/extensions/studio-domain-clients.js +15 -0
- package/dist/package/browser/core/extensions/surfaces-scene-editor.d.ts +3 -0
- package/dist/package/browser/core/extensions/surfaces-scene-editor.js +6 -0
- package/dist/package/browser/core/extensions/trajectory.d.ts +2 -0
- package/dist/package/browser/core/extensions/trajectory.js +50 -0
- package/dist/package/browser/core/page-navigation.d.ts +1 -0
- package/dist/package/browser/core/page-navigation.js +1 -0
- package/dist/package/browser/core/page-platform/activity.d.ts +4 -0
- package/dist/package/browser/core/page-platform/activity.js +46 -0
- package/dist/package/browser/core/page-platform/dockview-layout.d.ts +7 -0
- package/dist/package/browser/core/page-platform/dockview-layout.js +63 -0
- package/dist/package/browser/core/page-platform/index.d.ts +8 -0
- package/dist/package/browser/core/page-platform/index.js +8 -0
- package/dist/package/browser/core/page-platform/layout-store.d.ts +18 -0
- package/dist/package/browser/core/page-platform/layout-store.js +54 -0
- package/dist/package/browser/core/page-platform/page-dirty-probe.d.ts +1 -0
- package/dist/package/browser/core/page-platform/page-dirty-probe.js +4 -0
- package/dist/package/browser/core/page-platform/registry.d.ts +3 -0
- package/dist/package/browser/core/page-platform/registry.js +194 -0
- package/dist/package/browser/core/page-platform/resource-editor.d.ts +3 -0
- package/dist/package/browser/core/page-platform/resource-editor.js +74 -0
- package/dist/package/browser/core/page-platform/session.d.ts +10 -0
- package/dist/package/browser/core/page-platform/session.js +327 -0
- package/dist/package/browser/core/page-platform/types.d.ts +242 -0
- package/dist/package/browser/core/page-platform/types.js +10 -0
- package/dist/package/browser/core/panels/context-expression.d.ts +1 -0
- package/dist/package/browser/core/panels/context-expression.js +1 -0
- package/dist/package/browser/core/panels/drawer.d.ts +23 -0
- package/dist/package/browser/core/panels/drawer.js +1 -0
- package/dist/package/browser/core/panels/index.d.ts +7 -0
- package/dist/package/browser/core/panels/index.js +7 -0
- package/dist/package/browser/core/panels/panel-action-registry.d.ts +6 -0
- package/dist/package/browser/core/panels/panel-action-registry.js +62 -0
- package/dist/package/browser/core/panels/panel-control-registry.d.ts +6 -0
- package/dist/package/browser/core/panels/panel-control-registry.js +54 -0
- package/dist/package/browser/core/panels/resolve-panel-action-state.d.ts +10 -0
- package/dist/package/browser/core/panels/resolve-panel-action-state.js +9 -0
- package/dist/package/browser/core/panels/strip.d.ts +40 -0
- package/dist/package/browser/core/panels/strip.js +1 -0
- package/dist/package/browser/core/panels/types.d.ts +143 -0
- package/dist/package/browser/core/panels/types.js +1 -0
- package/dist/package/browser/i18n/index.d.ts +50 -0
- package/dist/package/browser/i18n/index.js +207 -0
- package/dist/package/browser/i18n/locales/en.json +1959 -0
- package/dist/package/browser/i18n/locales/zh.json +1959 -0
- package/dist/package/browser/index.d.ts +2 -0
- package/dist/package/browser/index.js +2 -0
- package/dist/package/browser/lib/a11y-summary.d.ts +17 -0
- package/dist/package/browser/lib/a11y-summary.js +66 -0
- package/dist/package/browser/lib/action-dom-discovery.d.ts +2 -0
- package/dist/package/browser/lib/action-dom-discovery.js +84 -0
- package/dist/package/browser/lib/action-registry.d.ts +94 -0
- package/dist/package/browser/lib/action-registry.js +210 -0
- package/dist/package/browser/lib/aegis.d.ts +40 -0
- package/dist/package/browser/lib/aegis.js +230 -0
- package/dist/package/browser/lib/agent-catalog-url.d.ts +9 -0
- package/dist/package/browser/lib/agent-catalog-url.js +24 -0
- package/dist/package/browser/lib/agent-cli-provider.d.ts +10 -0
- package/dist/package/browser/lib/agent-cli-provider.js +81 -0
- package/dist/package/browser/lib/ai-intents.d.ts +30 -0
- package/dist/package/browser/lib/ai-intents.js +52 -0
- package/dist/package/browser/lib/broadcast-stream.d.ts +17 -0
- package/dist/package/browser/lib/broadcast-stream.js +163 -0
- package/dist/package/browser/lib/browser-prefs-sync.d.ts +16 -0
- package/dist/package/browser/lib/browser-prefs-sync.js +151 -0
- package/dist/package/browser/lib/builtin-actions.d.ts +2 -0
- package/dist/package/browser/lib/builtin-actions.js +558 -0
- package/dist/package/browser/lib/bus.d.ts +25 -0
- package/dist/package/browser/lib/bus.js +71 -0
- package/dist/package/browser/lib/checkpoint-api.d.ts +54 -0
- package/dist/package/browser/lib/checkpoint-api.js +41 -0
- package/dist/package/browser/lib/cli-providers.d.ts +33 -0
- package/dist/package/browser/lib/cli-providers.js +61 -0
- package/dist/package/browser/lib/command-palette-store.d.ts +5 -0
- package/dist/package/browser/lib/command-palette-store.js +22 -0
- package/dist/package/browser/lib/composer-bridge.d.ts +103 -0
- package/dist/package/browser/lib/composer-bridge.js +448 -0
- package/dist/package/browser/lib/dashboard-api.d.ts +104 -0
- package/dist/package/browser/lib/dashboard-api.js +125 -0
- package/dist/package/browser/lib/deep-link-bus.d.ts +10 -0
- package/dist/package/browser/lib/deep-link-bus.js +35 -0
- package/dist/package/browser/lib/dialog.d.ts +40 -0
- package/dist/package/browser/lib/dialog.js +103 -0
- package/dist/package/browser/lib/editor-facts-bus.d.ts +27 -0
- package/dist/package/browser/lib/editor-facts-bus.js +25 -0
- package/dist/package/browser/lib/extension-api.d.ts +140 -0
- package/dist/package/browser/lib/extension-api.js +90 -0
- package/dist/package/browser/lib/file-activity-stream.d.ts +54 -0
- package/dist/package/browser/lib/file-activity-stream.js +123 -0
- package/dist/package/browser/lib/file-family.d.ts +15 -0
- package/dist/package/browser/lib/file-family.js +25 -0
- package/dist/package/browser/lib/game-templates.d.ts +7 -0
- package/dist/package/browser/lib/game-templates.js +15 -0
- package/dist/package/browser/lib/global-shortcuts.d.ts +121 -0
- package/dist/package/browser/lib/global-shortcuts.js +551 -0
- package/dist/package/browser/lib/logSink.d.ts +16 -0
- package/dist/package/browser/lib/logSink.js +128 -0
- package/dist/package/browser/lib/lucide-icon.d.ts +5 -0
- package/dist/package/browser/lib/lucide-icon.js +20 -0
- package/dist/package/browser/lib/menu-registry.d.ts +113 -0
- package/dist/package/browser/lib/menu-registry.js +197 -0
- package/dist/package/browser/lib/model-config.d.ts +89 -0
- package/dist/package/browser/lib/model-config.js +72 -0
- package/dist/package/browser/lib/model-prefs.d.ts +5 -0
- package/dist/package/browser/lib/model-prefs.js +53 -0
- package/dist/package/browser/lib/model-route/index.d.ts +81 -0
- package/dist/package/browser/lib/model-route/index.js +175 -0
- package/dist/package/browser/lib/narrative-copilot.d.ts +20 -0
- package/dist/package/browser/lib/narrative-copilot.js +105 -0
- package/dist/package/browser/lib/native-menu-bridge.d.ts +37 -0
- package/dist/package/browser/lib/native-menu-bridge.js +151 -0
- package/dist/package/browser/lib/page-tab-icons.d.ts +21 -0
- package/dist/package/browser/lib/page-tab-icons.js +64 -0
- package/dist/package/browser/lib/panel-tab-icons.d.ts +21 -0
- package/dist/package/browser/lib/panel-tab-icons.js +49 -0
- package/dist/package/browser/lib/passive-feedback.d.ts +50 -0
- package/dist/package/browser/lib/passive-feedback.js +171 -0
- package/dist/package/browser/lib/perception-stream.d.ts +27 -0
- package/dist/package/browser/lib/perception-stream.js +42 -0
- package/dist/package/browser/lib/platform/index.d.ts +14 -0
- package/dist/package/browser/lib/platform/index.js +13 -0
- package/dist/package/browser/lib/platform/runtime.d.ts +22 -0
- package/dist/package/browser/lib/platform/runtime.js +42 -0
- package/dist/package/browser/lib/platform/shell-adapter.d.ts +24 -0
- package/dist/package/browser/lib/platform/shell-adapter.js +74 -0
- package/dist/package/browser/lib/platform/surface-windowing.d.ts +4 -0
- package/dist/package/browser/lib/platform/surface-windowing.js +16 -0
- package/dist/package/browser/lib/platform/surface.d.ts +13 -0
- package/dist/package/browser/lib/platform/surface.js +27 -0
- package/dist/package/browser/lib/platform/use-surface-windowing.d.ts +1 -0
- package/dist/package/browser/lib/platform/use-surface-windowing.js +6 -0
- package/dist/package/browser/lib/platform/window-manager.d.ts +2 -0
- package/dist/package/browser/lib/platform/window-manager.js +82 -0
- package/dist/package/browser/lib/project-context.d.ts +4 -0
- package/dist/package/browser/lib/project-context.js +42 -0
- package/dist/package/browser/lib/project.d.ts +5 -0
- package/dist/package/browser/lib/project.js +8 -0
- package/dist/package/browser/lib/recent-games.d.ts +24 -0
- package/dist/package/browser/lib/recent-games.js +50 -0
- package/dist/package/browser/lib/repair-builtin-menus.d.ts +6 -0
- package/dist/package/browser/lib/repair-builtin-menus.js +18 -0
- package/dist/package/browser/lib/reply-language.d.ts +9 -0
- package/dist/package/browser/lib/reply-language.js +11 -0
- package/dist/package/browser/lib/resilient-polling.d.ts +9 -0
- package/dist/package/browser/lib/resilient-polling.js +16 -0
- package/dist/package/browser/lib/session-time.d.ts +8 -0
- package/dist/package/browser/lib/session-time.js +40 -0
- package/dist/package/browser/lib/shell-live-data.d.ts +12 -0
- package/dist/package/browser/lib/shell-live-data.js +66 -0
- package/dist/package/browser/lib/sse.d.ts +5 -0
- package/dist/package/browser/lib/sse.js +42 -0
- package/dist/package/browser/lib/storageKeys.d.ts +70 -0
- package/dist/package/browser/lib/storageKeys.js +89 -0
- package/dist/package/browser/lib/surface-store.d.ts +38 -0
- package/dist/package/browser/lib/surface-store.js +62 -0
- package/dist/package/browser/lib/surface.d.ts +56 -0
- package/dist/package/browser/lib/surface.js +225 -0
- package/dist/package/browser/lib/surfaceAnchors.d.ts +16 -0
- package/dist/package/browser/lib/surfaceAnchors.js +76 -0
- package/dist/package/browser/lib/surfaceKeepAliveLayout.d.ts +7 -0
- package/dist/package/browser/lib/surfaceKeepAliveLayout.js +12 -0
- package/dist/package/browser/lib/telemetry-test-prelude.d.ts +0 -0
- package/dist/package/browser/lib/telemetry-test-prelude.js +14 -0
- package/dist/package/browser/lib/text-edit-actions.d.ts +14 -0
- package/dist/package/browser/lib/text-edit-actions.js +184 -0
- package/dist/package/browser/lib/trace.d.ts +34 -0
- package/dist/package/browser/lib/trace.js +273 -0
- package/dist/package/browser/lib/trustedOrigins.d.ts +4 -0
- package/dist/package/browser/lib/trustedOrigins.js +36 -0
- package/dist/package/browser/lib/ui-action-highlight.d.ts +2 -0
- package/dist/package/browser/lib/ui-action-highlight.js +93 -0
- package/dist/package/browser/lib/ui-bridge.d.ts +2 -0
- package/dist/package/browser/lib/ui-bridge.js +224 -0
- package/dist/package/browser/lib/ui-screenshot.d.ts +31 -0
- package/dist/package/browser/lib/ui-screenshot.js +155 -0
- package/dist/package/browser/lib/ui-trajectory.d.ts +47 -0
- package/dist/package/browser/lib/ui-trajectory.js +99 -0
- package/dist/package/browser/lib/use-bus-snapshot.d.ts +3 -0
- package/dist/package/browser/lib/use-bus-snapshot.js +13 -0
- package/dist/package/browser/lib/use-extension-manifest.d.ts +19 -0
- package/dist/package/browser/lib/use-extension-manifest.js +67 -0
- package/dist/package/browser/lib/useConfirmToast.d.ts +26 -0
- package/dist/package/browser/lib/useConfirmToast.js +120 -0
- package/dist/package/browser/lib/utils.d.ts +2 -0
- package/dist/package/browser/lib/utils.js +5 -0
- package/dist/package/browser/lib/vag-action-bridge.d.ts +2 -0
- package/dist/package/browser/lib/vag-action-bridge.js +130 -0
- package/dist/package/browser/main.d.ts +1 -0
- package/dist/package/browser/main.js +157 -0
- package/dist/package/browser/store-parts/domain-clients.d.ts +149 -0
- package/dist/package/browser/store-parts/domain-clients.js +17 -0
- package/dist/package/browser/store-parts/observability.d.ts +4 -0
- package/dist/package/browser/store-parts/observability.js +35 -0
- package/dist/package/browser/store-parts/persistence.d.ts +40 -0
- package/dist/package/browser/store-parts/persistence.js +245 -0
- package/dist/package/browser/store-parts/session-client.d.ts +73 -0
- package/dist/package/browser/store-parts/session-client.js +17 -0
- package/dist/package/browser/store-parts/session-pick.d.ts +8 -0
- package/dist/package/browser/store-parts/session-pick.js +21 -0
- package/dist/package/browser/store-parts/shell.d.ts +5 -0
- package/dist/package/browser/store-parts/shell.js +37 -0
- package/dist/package/browser/store.d.ts +455 -0
- package/dist/package/browser/store.js +890 -0
- package/dist/package/browser/styles/forgeax-preview/agent-avatar.css +69 -0
- package/dist/package/browser/styles/forgeax-preview/aliases.css +21 -0
- package/dist/package/browser/styles/forgeax-preview/chat-popover.css +141 -0
- package/dist/package/browser/styles/forgeax-preview/chat-session.css +896 -0
- package/dist/package/browser/styles/forgeax-preview/composer-port.css +531 -0
- package/dist/package/browser/styles/forgeax-preview/design-tokens.css +25 -0
- package/dist/package/browser/styles/forgeax-preview/index.css +9 -0
- package/dist/package/browser/styles/forgeax-preview/scene-fx.css +117 -0
- package/dist/package/browser/styles/forgeax-preview/shell-layout.css +280 -0
- package/dist/package/browser/styles/forgeax-preview/shell-skin.css +128 -0
- package/dist/package/browser/styles/foundation.tokens.json +2755 -0
- package/dist/package/browser/styles/global.css +196 -0
- package/dist/package/browser/styles/motion.css +558 -0
- package/dist/package/browser/styles/plugin-token-bridge.css +19 -0
- package/dist/package/browser/styles/primitive.css +197 -0
- package/dist/package/browser/styles/semantic.tokens.json +1524 -0
- package/dist/package/browser/styles/tokens.css +304 -0
- package/dist/package/node/App.js +11 -0
- package/dist/package/node/ApplicationDetachedShell.js +10 -0
- package/dist/package/node/ApplicationShell.js +62 -0
- package/dist/package/node/app-kit.js +4 -0
- package/dist/package/node/appHostBootstrap.js +145 -0
- package/dist/package/node/application.js +64 -0
- package/dist/package/node/boot/SettingsSection.js +82 -0
- package/dist/package/node/boot/broadcast.js +32 -0
- package/dist/package/node/boot/driver.js +47 -0
- package/dist/package/node/boot/store.js +114 -0
- package/dist/package/node/boot/themes.js +21 -0
- package/dist/package/node/boot/types.js +30 -0
- package/dist/package/node/brand/BrandProvider.js +35 -0
- package/dist/package/node/brand/index.js +3 -0
- package/dist/package/node/brand/runtime.js +71 -0
- package/dist/package/node/brand/types.js +9 -0
- package/dist/package/node/components/ActivityRail/ActivityRail.js +164 -0
- package/dist/package/node/components/ActivityRail/activity-rail-model.js +144 -0
- package/dist/package/node/components/AgentAvatar/AgentAvatar.js +50 -0
- package/dist/package/node/components/BuildBadge/BuildBadge.js +279 -0
- package/dist/package/node/components/Bus/BusAdminPanel.js +1385 -0
- package/dist/package/node/components/Bus/CapabilityOverview.js +50 -0
- package/dist/package/node/components/ChatColumn/ChatColumn.js +18 -0
- package/dist/package/node/components/ChatColumn/SessionTabStrip.js +103 -0
- package/dist/package/node/components/ChatColumn/useChatWidth.js +13 -0
- package/dist/package/node/components/CommandPalette/CommandPalette.js +242 -0
- package/dist/package/node/components/Confirm/ConfirmDialog.js +113 -0
- package/dist/package/node/components/ContextMenu/ContextMenu.js +218 -0
- package/dist/package/node/components/ContextMenu/menuRegistry.js +152 -0
- package/dist/package/node/components/DetachedSurface.js +102 -0
- package/dist/package/node/components/DockShell/DockPanelHost.js +7 -0
- package/dist/package/node/components/DockShell/DockRegion.js +315 -0
- package/dist/package/node/components/DockShell/DockTab.js +139 -0
- package/dist/package/node/components/DockShell/ExtensionHostPanel.js +68 -0
- package/dist/package/node/components/DockShell/ExtensionRuntimeFrame.js +56 -0
- package/dist/package/node/components/DockShell/PanelWindowingBoundary.js +9 -0
- package/dist/package/node/components/DockShell/chatDockAnimation.js +101 -0
- package/dist/package/node/components/DockShell/chatDockFullscreen.js +22 -0
- package/dist/package/node/components/DockShell/chatDockLayout.js +11 -0
- package/dist/package/node/components/DockShell/compact-empty-dock-groups.js +28 -0
- package/dist/package/node/components/DockShell/crossInstanceDrop.js +1 -0
- package/dist/package/node/components/DockShell/dockResetEpoch.js +13 -0
- package/dist/package/node/components/DockShell/dockTitle.js +36 -0
- package/dist/package/node/components/DockShell/dockviewRegistry.js +1 -0
- package/dist/package/node/components/DockShell/edgeDrawer.js +1144 -0
- package/dist/package/node/components/DockShell/edgePinStore.js +37 -0
- package/dist/package/node/components/DockShell/extension-editor-bridge.js +100 -0
- package/dist/package/node/components/DockShell/extension-runtime-selection.js +6 -0
- package/dist/package/node/components/DockShell/extensionRuntime.js +84 -0
- package/dist/package/node/components/DockShell/footer-panel-visibility.js +43 -0
- package/dist/package/node/components/DockShell/footer-panels.js +7 -0
- package/dist/package/node/components/DockShell/panelRegistry.js +126 -0
- package/dist/package/node/components/DockShell/panelRenderers.js +25 -0
- package/dist/package/node/components/DockShell/panelTabCommands.js +133 -0
- package/dist/package/node/components/DockShell/panelWindowing.js +42 -0
- package/dist/package/node/components/DockShell/regions.js +1 -0
- package/dist/package/node/components/DockShell/resolveRegion.js +1 -0
- package/dist/package/node/components/DockShell/sanitizeDockLayout.js +46 -0
- package/dist/package/node/components/DockShell/sideEdgeMove.js +1 -0
- package/dist/package/node/components/DockShell/studioTabMenuProvider.js +39 -0
- package/dist/package/node/components/DockShell/tabContextMenu.js +68 -0
- package/dist/package/node/components/DockShell/ueDrag/controller.js +785 -0
- package/dist/package/node/components/DockShell/ueDrag/geometry.js +217 -0
- package/dist/package/node/components/DockShell/ueDrag/overlay.js +206 -0
- package/dist/package/node/components/DockShell/useAuxBarWidth.js +13 -0
- package/dist/package/node/components/Drawer/DrawerHostView.js +93 -0
- package/dist/package/node/components/Drawer/DrawerLauncher.js +22 -0
- package/dist/package/node/components/Drawer/useDrawerStore.js +80 -0
- package/dist/package/node/components/ErrorBoundary.js +131 -0
- package/dist/package/node/components/ExtensionHost/ExtensionIframeHost.js +179 -0
- package/dist/package/node/components/ExtensionHost/NativeExtensionHost.js +152 -0
- package/dist/package/node/components/Feedback/FeedbackPanel.js +118 -0
- package/dist/package/node/components/Feedback/PassiveFeedback.js +218 -0
- package/dist/package/node/components/Feedback/collect.js +80 -0
- package/dist/package/node/components/Feedback/store.js +174 -0
- package/dist/package/node/components/LangSwitcher/LangSwitcher.js +44 -0
- package/dist/package/node/components/MainArea/ConsolePanel.js +16 -0
- package/dist/package/node/components/MainArea/MainArea.js +20 -0
- package/dist/package/node/components/MainArea/StandaloneExtensionIframe.js +155 -0
- package/dist/package/node/components/MainArea/SurfacePanels.js +27 -0
- package/dist/package/node/components/MainArea/TelemetryViewer.js +116 -0
- package/dist/package/node/components/MenuBar/MenuBar.js +286 -0
- package/dist/package/node/components/MenuBar/index.js +1 -0
- package/dist/package/node/components/MenuBar/menubar-open-state.js +11 -0
- package/dist/package/node/components/MenuBar/menubar-surface.js +201 -0
- package/dist/package/node/components/ModelPicker/index.js +1 -0
- package/dist/package/node/components/ModelPicker/useModelCatalog.js +100 -0
- package/dist/package/node/components/Onboarding/ConnectModelPrompt.js +40 -0
- package/dist/package/node/components/Onboarding/OnboardingController.js +549 -0
- package/dist/package/node/components/Onboarding/connect-selection.js +18 -0
- package/dist/package/node/components/Onboarding/home-transition.js +20 -0
- package/dist/package/node/components/Onboarding/index.js +3 -0
- package/dist/package/node/components/Onboarding/prepareTourShell.js +11 -0
- package/dist/package/node/components/Onboarding/project-name.js +29 -0
- package/dist/package/node/components/Onboarding/types.js +77 -0
- package/dist/package/node/components/PageTabs/PageTabStrip.js +214 -0
- package/dist/package/node/components/PageTabs/openablePageTypes.js +13 -0
- package/dist/package/node/components/PanelShell/PanelShell.js +459 -0
- package/dist/package/node/components/Resize/ResizeHandle.js +1 -0
- package/dist/package/node/components/SceneBackground/SceneBackground.js +5 -0
- package/dist/package/node/components/SchemaForm/SchemaForm.js +86 -0
- package/dist/package/node/components/SchemaForm/schema-form-utils.js +51 -0
- package/dist/package/node/components/SettingsPrimitives.js +145 -0
- package/dist/package/node/components/Sidebar/BusHealthLamp.js +72 -0
- package/dist/package/node/components/Sidebar/FilesPanel.js +234 -0
- package/dist/package/node/components/Sidebar/Sidebar.js +8 -0
- package/dist/package/node/components/Sidebar/sidebar-types.js +1 -0
- package/dist/package/node/components/SlotDebugOverlay/SlotDebugOverlay.js +1 -0
- package/dist/package/node/components/SlotDebugOverlay/hashHue.js +1 -0
- package/dist/package/node/components/SlotDebugOverlay/index.js +1 -0
- package/dist/package/node/components/SlotDebugOverlay/isSlotDebugEnabled.js +1 -0
- package/dist/package/node/components/StatusBar/FatalBanner.js +52 -0
- package/dist/package/node/components/StatusBar/InfoPanel.js +128 -0
- package/dist/package/node/components/StatusBar/StatusChip.js +13 -0
- package/dist/package/node/components/StatusBar/StripHostView.js +91 -0
- package/dist/package/node/components/StatusBar/StripPopover.js +15 -0
- package/dist/package/node/components/StatusBar/feeds/PulseFeeds.js +88 -0
- package/dist/package/node/components/StatusBar/footer/CheckpointsDrawer.js +77 -0
- package/dist/package/node/components/StatusBar/footer/DiagnosticsPopover.js +108 -0
- package/dist/package/node/components/StatusBar/footer/EventsDrawer.js +25 -0
- package/dist/package/node/components/StatusBar/footer/ForgeaxBuildPopover.js +62 -0
- package/dist/package/node/components/StatusBar/healthBridge.js +245 -0
- package/dist/package/node/components/StatusBar/healthStore.js +129 -0
- package/dist/package/node/components/StatusBar/useStatusItem.js +35 -0
- package/dist/package/node/components/Surfaces/SurfaceKeepAliveLayer.js +218 -0
- package/dist/package/node/components/Surfaces/SurfaceOverlay.js +144 -0
- package/dist/package/node/components/TopBar/AndroidPackageDialog.js +115 -0
- package/dist/package/node/components/TopBar/FsBrowser.js +93 -0
- package/dist/package/node/components/TopBar/GameSwitcher.js +157 -0
- package/dist/package/node/components/TopBar/IosPackageDialog.js +115 -0
- package/dist/package/node/components/TopBar/ProjectSwitcher.js +41 -0
- package/dist/package/node/components/TopBar/PublishOnboarding.js +144 -0
- package/dist/package/node/components/TopBar/SessionSwitcher.js +124 -0
- package/dist/package/node/components/TopBar/TopBar.js +606 -0
- package/dist/package/node/components/TopBar/publish-options.js +28 -0
- package/dist/package/node/components/TourOverlay/TourOverlay.js +233 -0
- package/dist/package/node/components/TourOverlay/index.js +1 -0
- package/dist/package/node/components/ownership.js +7 -0
- package/dist/package/node/components/ui/SearchableMenu.js +40 -0
- package/dist/package/node/components/ui/alert-dialog.js +38 -0
- package/dist/package/node/components/ui/button.js +33 -0
- package/dist/package/node/components/ui/checkbox.js +8 -0
- package/dist/package/node/components/ui/command.js +20 -0
- package/dist/package/node/components/ui/dialog.js +34 -0
- package/dist/package/node/components/ui/dropdown-menu.js +30 -0
- package/dist/package/node/components/ui/input.js +8 -0
- package/dist/package/node/components/ui/label.js +7 -0
- package/dist/package/node/components/ui/popover.js +10 -0
- package/dist/package/node/components/ui/select.js +31 -0
- package/dist/package/node/components/ui/tabs.js +12 -0
- package/dist/package/node/components/ui/textarea.js +8 -0
- package/dist/package/node/components/ui/tooltip.js +10 -0
- package/dist/package/node/core/app-shell/catalog-page-extensions.js +234 -0
- package/dist/package/node/core/app-shell/derive-panel-renderers.js +17 -0
- package/dist/package/node/core/app-shell/host.js +188 -0
- package/dist/package/node/core/app-shell/index.js +8 -0
- package/dist/package/node/core/app-shell/logger.js +6 -0
- package/dist/package/node/core/app-shell/ownership.js +7 -0
- package/dist/package/node/core/app-shell/react/HostProvider.js +35 -0
- package/dist/package/node/core/app-shell/surface-extension.js +33 -0
- package/dist/package/node/core/app-shell/types.js +1 -0
- package/dist/package/node/core/contextual-keybindings.js +198 -0
- package/dist/package/node/core/extension-foundation/bus.js +3 -0
- package/dist/package/node/core/extension-foundation/capabilities.js +3 -0
- package/dist/package/node/core/extension-foundation/commands.js +3 -0
- package/dist/package/node/core/extension-foundation/context-keys.js +3 -0
- package/dist/package/node/core/extension-foundation/contribution-registry.js +3 -0
- package/dist/package/node/core/extension-foundation/errors.js +3 -0
- package/dist/package/node/core/extension-foundation/index.js +9 -0
- package/dist/package/node/core/extension-foundation/loader.js +3 -0
- package/dist/package/node/core/extension-foundation/storage.js +3 -0
- package/dist/package/node/core/extension-foundation/types.js +1 -0
- package/dist/package/node/core/extensions/builtin-commands.js +256 -0
- package/dist/package/node/core/extensions/builtin-menus.js +252 -0
- package/dist/package/node/core/extensions/chrome-drawer.js +45 -0
- package/dist/package/node/core/extensions/chrome-statusbar.js +26 -0
- package/dist/package/node/core/extensions/detached-agents-browser.js +9 -0
- package/dist/package/node/core/extensions/detached-files-browser.js +6 -0
- package/dist/package/node/core/extensions/editor-commands.js +182 -0
- package/dist/package/node/core/extensions/foundation-bus.js +3 -0
- package/dist/package/node/core/extensions/foundation-commands.js +6 -0
- package/dist/package/node/core/extensions/foundation-storage.js +3 -0
- package/dist/package/node/core/extensions/host-commands.js +52 -0
- package/dist/package/node/core/extensions/observability.js +18 -0
- package/dist/package/node/core/extensions/panels-chat.js +41 -0
- package/dist/package/node/core/extensions/panels-editor.js +26 -0
- package/dist/package/node/core/extensions/panels-viewport.js +20 -0
- package/dist/package/node/core/extensions/session-client.js +42 -0
- package/dist/package/node/core/extensions/slots-corner-agent-picker.js +6 -0
- package/dist/package/node/core/extensions/slots-main-area-body.js +6 -0
- package/dist/package/node/core/extensions/slots-sidebar-agents.js +6 -0
- package/dist/package/node/core/extensions/studio-domain-clients.js +15 -0
- package/dist/package/node/core/extensions/surfaces-scene-editor.js +6 -0
- package/dist/package/node/core/extensions/trajectory.js +50 -0
- package/dist/package/node/core/page-navigation.js +1 -0
- package/dist/package/node/core/page-platform/activity.js +46 -0
- package/dist/package/node/core/page-platform/dockview-layout.js +63 -0
- package/dist/package/node/core/page-platform/index.js +8 -0
- package/dist/package/node/core/page-platform/layout-store.js +54 -0
- package/dist/package/node/core/page-platform/page-dirty-probe.js +4 -0
- package/dist/package/node/core/page-platform/registry.js +194 -0
- package/dist/package/node/core/page-platform/resource-editor.js +74 -0
- package/dist/package/node/core/page-platform/session.js +327 -0
- package/dist/package/node/core/page-platform/types.js +10 -0
- package/dist/package/node/core/panels/context-expression.js +1 -0
- package/dist/package/node/core/panels/drawer.js +1 -0
- package/dist/package/node/core/panels/index.js +7 -0
- package/dist/package/node/core/panels/panel-action-registry.js +62 -0
- package/dist/package/node/core/panels/panel-control-registry.js +54 -0
- package/dist/package/node/core/panels/resolve-panel-action-state.js +9 -0
- package/dist/package/node/core/panels/strip.js +1 -0
- package/dist/package/node/core/panels/types.js +1 -0
- package/dist/package/node/i18n/index.js +207 -0
- package/dist/package/node/i18n/locales/en.json +1959 -0
- package/dist/package/node/i18n/locales/zh.json +1959 -0
- package/dist/package/node/index.js +2 -0
- package/dist/package/node/lib/a11y-summary.js +66 -0
- package/dist/package/node/lib/action-dom-discovery.js +84 -0
- package/dist/package/node/lib/action-registry.js +210 -0
- package/dist/package/node/lib/aegis.js +230 -0
- package/dist/package/node/lib/agent-catalog-url.js +24 -0
- package/dist/package/node/lib/agent-cli-provider.js +81 -0
- package/dist/package/node/lib/ai-intents.js +52 -0
- package/dist/package/node/lib/broadcast-stream.js +163 -0
- package/dist/package/node/lib/browser-prefs-sync.js +151 -0
- package/dist/package/node/lib/builtin-actions.js +558 -0
- package/dist/package/node/lib/bus.js +71 -0
- package/dist/package/node/lib/checkpoint-api.js +41 -0
- package/dist/package/node/lib/cli-providers.js +61 -0
- package/dist/package/node/lib/command-palette-store.js +22 -0
- package/dist/package/node/lib/composer-bridge.js +448 -0
- package/dist/package/node/lib/dashboard-api.js +125 -0
- package/dist/package/node/lib/deep-link-bus.js +35 -0
- package/dist/package/node/lib/dialog.js +103 -0
- package/dist/package/node/lib/editor-facts-bus.js +25 -0
- package/dist/package/node/lib/extension-api.js +90 -0
- package/dist/package/node/lib/file-activity-stream.js +123 -0
- package/dist/package/node/lib/file-family.js +25 -0
- package/dist/package/node/lib/game-templates.js +15 -0
- package/dist/package/node/lib/global-shortcuts.js +551 -0
- package/dist/package/node/lib/logSink.js +128 -0
- package/dist/package/node/lib/lucide-icon.js +20 -0
- package/dist/package/node/lib/menu-registry.js +197 -0
- package/dist/package/node/lib/model-config.js +72 -0
- package/dist/package/node/lib/model-prefs.js +53 -0
- package/dist/package/node/lib/model-route/index.js +175 -0
- package/dist/package/node/lib/narrative-copilot.js +105 -0
- package/dist/package/node/lib/native-menu-bridge.js +151 -0
- package/dist/package/node/lib/page-tab-icons.js +64 -0
- package/dist/package/node/lib/panel-tab-icons.js +49 -0
- package/dist/package/node/lib/passive-feedback.js +171 -0
- package/dist/package/node/lib/perception-stream.js +42 -0
- package/dist/package/node/lib/platform/index.js +13 -0
- package/dist/package/node/lib/platform/runtime.js +42 -0
- package/dist/package/node/lib/platform/shell-adapter.js +74 -0
- package/dist/package/node/lib/platform/surface-windowing.js +16 -0
- package/dist/package/node/lib/platform/surface.js +27 -0
- package/dist/package/node/lib/platform/use-surface-windowing.js +6 -0
- package/dist/package/node/lib/platform/window-manager.js +82 -0
- package/dist/package/node/lib/project-context.js +42 -0
- package/dist/package/node/lib/project.js +8 -0
- package/dist/package/node/lib/recent-games.js +50 -0
- package/dist/package/node/lib/repair-builtin-menus.js +18 -0
- package/dist/package/node/lib/reply-language.js +11 -0
- package/dist/package/node/lib/resilient-polling.js +16 -0
- package/dist/package/node/lib/session-time.js +40 -0
- package/dist/package/node/lib/shell-live-data.js +66 -0
- package/dist/package/node/lib/sse.js +42 -0
- package/dist/package/node/lib/storageKeys.js +89 -0
- package/dist/package/node/lib/surface-store.js +62 -0
- package/dist/package/node/lib/surface.js +225 -0
- package/dist/package/node/lib/surfaceAnchors.js +76 -0
- package/dist/package/node/lib/surfaceKeepAliveLayout.js +12 -0
- package/dist/package/node/lib/telemetry-test-prelude.js +14 -0
- package/dist/package/node/lib/text-edit-actions.js +184 -0
- package/dist/package/node/lib/trace.js +273 -0
- package/dist/package/node/lib/trustedOrigins.js +36 -0
- package/dist/package/node/lib/ui-action-highlight.js +93 -0
- package/dist/package/node/lib/ui-bridge.js +224 -0
- package/dist/package/node/lib/ui-screenshot.js +155 -0
- package/dist/package/node/lib/ui-trajectory.js +99 -0
- package/dist/package/node/lib/use-bus-snapshot.js +13 -0
- package/dist/package/node/lib/use-extension-manifest.js +67 -0
- package/dist/package/node/lib/useConfirmToast.js +120 -0
- package/dist/package/node/lib/utils.js +5 -0
- package/dist/package/node/lib/vag-action-bridge.js +130 -0
- package/dist/package/node/main.js +157 -0
- package/dist/package/node/store-parts/domain-clients.js +17 -0
- package/dist/package/node/store-parts/observability.js +35 -0
- package/dist/package/node/store-parts/persistence.js +245 -0
- package/dist/package/node/store-parts/session-client.js +17 -0
- package/dist/package/node/store-parts/session-pick.js +21 -0
- package/dist/package/node/store-parts/shell.js +37 -0
- package/dist/package/node/store.js +890 -0
- package/dist/package/node/styles/foundation.tokens.json +2755 -0
- package/dist/package/node/styles/semantic.tokens.json +1524 -0
- package/dist/package/packages/design/styles/fx-bridge.css +25 -0
- package/dist/package/packages/design/styles/primitive.css +199 -0
- package/dist/package/packages/design/styles/semantic.css +262 -0
- package/dist/package/packages/design/theme.d.ts +15 -0
- package/dist/package/packages/design/theme.js +31 -0
- package/dist/package/packages/design/tokens.css +14 -0
- package/package.json +145 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import { listSharedCapabilities, } from '../../lib/extension-api.js';
|
|
4
|
+
const KIND_ORDER = ['skill', 'command', 'mcp', 'extension', 'memory', 'tool'];
|
|
5
|
+
const KIND_LABELS = {
|
|
6
|
+
skill: 'Skill',
|
|
7
|
+
command: 'Command',
|
|
8
|
+
mcp: 'MCP',
|
|
9
|
+
extension: 'Plugin',
|
|
10
|
+
memory: 'Memory',
|
|
11
|
+
tool: 'Tool',
|
|
12
|
+
};
|
|
13
|
+
function originLabel(capability) {
|
|
14
|
+
return `${capability.origin}/${capability.trustTier}`;
|
|
15
|
+
}
|
|
16
|
+
export function CapabilityOverview({ refreshKey }) {
|
|
17
|
+
const [capabilities, setCapabilities] = useState([]);
|
|
18
|
+
const [generation, setGeneration] = useState(0);
|
|
19
|
+
const [issues, setIssues] = useState([]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
let cancelled = false;
|
|
22
|
+
void listSharedCapabilities()
|
|
23
|
+
.then((result) => {
|
|
24
|
+
if (cancelled)
|
|
25
|
+
return;
|
|
26
|
+
setCapabilities(result.capabilities);
|
|
27
|
+
setGeneration(result.generation);
|
|
28
|
+
setIssues(result.issues);
|
|
29
|
+
})
|
|
30
|
+
.catch(() => {
|
|
31
|
+
if (!cancelled) {
|
|
32
|
+
setCapabilities([]);
|
|
33
|
+
setIssues(['Capability snapshot unavailable']);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return () => {
|
|
37
|
+
cancelled = true;
|
|
38
|
+
};
|
|
39
|
+
}, [refreshKey]);
|
|
40
|
+
const counts = useMemo(() => {
|
|
41
|
+
const result = new Map();
|
|
42
|
+
for (const kind of KIND_ORDER)
|
|
43
|
+
result.set(kind, 0);
|
|
44
|
+
for (const capability of capabilities) {
|
|
45
|
+
result.set(capability.kind, (result.get(capability.kind) ?? 0) + 1);
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}, [capabilities]);
|
|
49
|
+
return (_jsxs("section", { className: "ba-capability-overview", "aria-label": "Shared capabilities", children: [_jsxs("div", { className: "ba-capability-head", children: [_jsx("span", { className: "ba-capability-dot", "aria-hidden": true }), _jsx("span", { className: "ba-capability-label", children: "Shared capabilities" }), _jsx("span", { className: "ba-capability-count", children: capabilities.length }), _jsxs("span", { className: "ba-capability-generation", children: ["generation ", generation] })] }), _jsx("div", { className: "ba-capability-kinds", role: "list", "aria-label": "Capability kinds", children: KIND_ORDER.map((kind) => (_jsxs("span", { className: `ba-capability-kind ba-capability-kind-${kind}`, role: "listitem", children: [_jsx("span", { children: KIND_LABELS[kind] }), _jsx("strong", { children: counts.get(kind) ?? 0 })] }, kind))) }), capabilities.length > 0 && (_jsx("div", { className: "ba-capability-list", children: capabilities.map((capability) => (_jsxs("div", { className: "ba-capability-row", children: [_jsx("span", { className: `ba-capability-type ba-capability-kind-${capability.kind}`, children: KIND_LABELS[capability.kind] }), _jsx("code", { className: "ba-capability-id", children: capability.localId }), _jsx("span", { className: "ba-capability-extension", children: capability.extensionId }), _jsxs("span", { className: "ba-capability-version", children: ["v", capability.extensionVersion] }), _jsx("span", { className: `ba-capability-state is-${capability.lifecycle.state}`, children: capability.lifecycle.state }), _jsx("span", { className: "ba-capability-origin", children: originLabel(capability) }), capability.lifecycle.requiresRestart && (_jsx("span", { className: "ba-capability-restart", children: "restart" }))] }, capability.capabilityId))) })), issues.length > 0 && (_jsxs("div", { className: "ba-capability-issues", role: "status", children: [issues.length, " capability issue", issues.length === 1 ? '' : 's', " \u2014 open the snapshot API for details"] }))] }));
|
|
50
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { AnchoredResizeHandle } from '@forgeax/app-shell/react';
|
|
3
|
+
import { usePanelRenderers } from '../DockShell/panelRenderers.js';
|
|
4
|
+
import { DockPanelHost } from '../DockShell/DockPanelHost.js';
|
|
5
|
+
import { useShellStore } from '../../store.js';
|
|
6
|
+
import { chatWidthStore, useChatWidth } from './useChatWidth.js';
|
|
7
|
+
// Fixed shell-level chat column (right of the ActivityRail). Chat was pulled out
|
|
8
|
+
// of the dockview so a shell rail can sit immediately to its left; this keeps it
|
|
9
|
+
// drag-resizable via a left-edge handle. Product geometry and styling stay here;
|
|
10
|
+
// App Shell owns the generic anchored pointer lifecycle.
|
|
11
|
+
export function ChatColumn() {
|
|
12
|
+
const hasChat = !!usePanelRenderers().panels?.chat;
|
|
13
|
+
const collapsed = useShellStore((s) => s.chatpanelCollapsed);
|
|
14
|
+
const width = useChatWidth();
|
|
15
|
+
if (!hasChat || collapsed)
|
|
16
|
+
return null;
|
|
17
|
+
return (_jsxs("aside", { className: "studio-chat-col", "data-fx-slot": "ChatColumn", "data-tour-id": "chat", style: { width }, children: [_jsx(AnchoredResizeHandle, { orientation: "col", className: "fx-chat-resizer", ariaLabel: "Resize chat panel", direction: "subtract", readSize: chatWidthStore.getSnapshot, writeSize: chatWidthStore.setSize, resizingBodyClassName: "fx-chat-resizing" }), _jsx(DockPanelHost, { id: "chat" })] }));
|
|
18
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { History, MessageSquare, Plus, X } from 'lucide-react';
|
|
4
|
+
import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover.js';
|
|
5
|
+
import { useTranslation } from '../../i18n/index.js';
|
|
6
|
+
import { tabLabel, useShellStore } from '../../store.js';
|
|
7
|
+
import { confirmDialog } from '../../lib/dialog.js';
|
|
8
|
+
import { formatSessionTime } from '../../lib/session-time.js';
|
|
9
|
+
export function SessionTabStrip() {
|
|
10
|
+
const { t } = useTranslation();
|
|
11
|
+
const tabs = useShellStore((state) => state.tabs);
|
|
12
|
+
const activeSid = useShellStore((state) => state.activeSid);
|
|
13
|
+
const activeGameSlug = useShellStore((state) => state.activeGameSlug);
|
|
14
|
+
const switchToSession = useShellStore((state) => state.switchToSession);
|
|
15
|
+
const closeSession = useShellStore((state) => state.closeSession);
|
|
16
|
+
const createNewSession = useShellStore((state) => state.createNewSession);
|
|
17
|
+
const refreshSessions = useShellStore((state) => state.refreshSessions);
|
|
18
|
+
const [historyOpen, setHistoryOpen] = useState(false);
|
|
19
|
+
const [creating, setCreating] = useState(false);
|
|
20
|
+
const [closingSid, setClosingSid] = useState(null);
|
|
21
|
+
const tabListRef = useRef(null);
|
|
22
|
+
const activeTabRef = useRef(null);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
activeTabRef.current?.scrollIntoView?.({ block: 'nearest', inline: 'nearest' });
|
|
25
|
+
}, [activeSid]);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!historyOpen)
|
|
28
|
+
return;
|
|
29
|
+
void refreshSessions();
|
|
30
|
+
}, [activeGameSlug, historyOpen, refreshSessions]);
|
|
31
|
+
const sortedHistory = useMemo(() => {
|
|
32
|
+
const now = Date.now();
|
|
33
|
+
return [...tabs].sort((a, b) => {
|
|
34
|
+
const aTime = a.lastActivityAt ?? now;
|
|
35
|
+
const bTime = b.lastActivityAt ?? now;
|
|
36
|
+
if (aTime !== bTime)
|
|
37
|
+
return bTime - aTime;
|
|
38
|
+
return a.sid.localeCompare(b.sid);
|
|
39
|
+
});
|
|
40
|
+
}, [historyOpen, tabs]);
|
|
41
|
+
const selectSession = async (sid, closeHistory = false) => {
|
|
42
|
+
if (sid !== activeSid)
|
|
43
|
+
await switchToSession(sid);
|
|
44
|
+
if (closeHistory)
|
|
45
|
+
setHistoryOpen(false);
|
|
46
|
+
};
|
|
47
|
+
const createSession = async () => {
|
|
48
|
+
if (creating)
|
|
49
|
+
return;
|
|
50
|
+
setCreating(true);
|
|
51
|
+
try {
|
|
52
|
+
await createNewSession({ scope: activeGameSlug ?? undefined });
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
setCreating(false);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const deleteSession = async (sid, label) => {
|
|
59
|
+
if (closingSid)
|
|
60
|
+
return;
|
|
61
|
+
const confirmed = await confirmDialog({
|
|
62
|
+
body: t('sessionTabs.closeConfirm', { label }),
|
|
63
|
+
danger: true,
|
|
64
|
+
});
|
|
65
|
+
if (!confirmed)
|
|
66
|
+
return;
|
|
67
|
+
setClosingSid(sid);
|
|
68
|
+
try {
|
|
69
|
+
await closeSession(sid);
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
setClosingSid(null);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const moveFocus = (event, sid) => {
|
|
76
|
+
if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key))
|
|
77
|
+
return;
|
|
78
|
+
const tabButtons = [...(tabListRef.current?.querySelectorAll('[role="tab"]') ?? [])];
|
|
79
|
+
if (tabButtons.length === 0)
|
|
80
|
+
return;
|
|
81
|
+
const index = Math.max(0, tabs.findIndex((tab) => tab.sid === sid));
|
|
82
|
+
const nextIndex = event.key === 'Home'
|
|
83
|
+
? 0
|
|
84
|
+
: event.key === 'End'
|
|
85
|
+
? tabButtons.length - 1
|
|
86
|
+
: (index + (event.key === 'ArrowRight' ? 1 : -1) + tabButtons.length) % tabButtons.length;
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
tabButtons[nextIndex]?.focus();
|
|
89
|
+
// Manual activation: arrows only move focus. Enter/Space/click activates
|
|
90
|
+
// the focused button, avoiding overlapping async switchToSession calls
|
|
91
|
+
// whose provider reconciliation can resolve out of order.
|
|
92
|
+
};
|
|
93
|
+
return (_jsxs("div", { className: "chat-session-tabs", "data-testid": "chat-session-tabs", children: [_jsx("div", { ref: tabListRef, className: "chat-session-tab-list", role: "tablist", "aria-label": t('sessionTabs.historyTitle'), children: tabs.map((tab) => {
|
|
94
|
+
const active = tab.sid === activeSid;
|
|
95
|
+
const label = tabLabel(tab);
|
|
96
|
+
return (_jsxs("div", { ref: active ? activeTabRef : undefined, className: `chat-session-tab${active ? ' is-active' : ''}`, "data-session-id": tab.sid, children: [_jsx("button", { type: "button", className: "chat-session-tab-button no-motion-lift", role: "tab", "aria-selected": active, tabIndex: active ? 0 : -1, title: label, onClick: () => void selectSession(tab.sid), onKeyDown: (event) => moveFocus(event, tab.sid), children: _jsx("span", { className: "chat-session-tab-label", children: label }) }), active && (_jsx("button", { type: "button", className: "chat-session-tab-close no-motion-lift", "aria-label": t('sessionTabs.closeTab', { label }), title: t('sessionTabs.closeTab', { label }), disabled: closingSid === tab.sid, onClick: () => void deleteSession(tab.sid, label), children: _jsx(X, { size: 13 }) }))] }, tab.sid));
|
|
97
|
+
}) }), _jsxs("div", { className: "chat-session-tab-tools", children: [_jsx("button", { type: "button", className: "chat-session-tab-tool no-motion-lift", "aria-label": t('sessionTabs.newSession'), title: t('sessionTabs.newSession'), disabled: creating, onClick: () => void createSession(), children: _jsx(Plus, { size: 16 }) }), _jsxs(Popover, { open: historyOpen, onOpenChange: setHistoryOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx("button", { type: "button", className: `chat-session-tab-tool no-motion-lift${historyOpen ? ' is-active' : ''}`, "aria-label": t('sessionTabs.history'), title: t('sessionTabs.history'), "aria-expanded": historyOpen, children: _jsx(History, { size: 16 }) }) }), _jsx(PopoverContent, { align: "end", sideOffset: 6, className: "w-auto border-0 bg-transparent p-0 shadow-none", children: _jsxs("div", { className: "chat-session-history", "data-testid": "chat-session-history", children: [_jsxs("div", { className: "chat-session-history-title", children: [_jsx(History, { size: 16 }), _jsx("span", { children: t('sessionTabs.historyTitle') })] }), _jsxs("div", { className: "chat-session-history-list", children: [sortedHistory.length === 0 && (_jsx("div", { className: "chat-session-history-empty", children: t('sessionTabs.empty') })), sortedHistory.map((tab) => {
|
|
98
|
+
const label = tabLabel(tab);
|
|
99
|
+
const time = formatSessionTime(tab.lastActivityAt);
|
|
100
|
+
const active = tab.sid === activeSid;
|
|
101
|
+
return (_jsxs("button", { type: "button", className: `chat-session-history-row no-motion-lift${active ? ' is-active' : ''}`, "data-session-id": tab.sid, "aria-current": active ? 'true' : undefined, onClick: () => void selectSession(tab.sid, true), children: [_jsx(MessageSquare, { size: 15 }), _jsx("span", { className: "chat-session-history-name", children: label }), time && _jsx("span", { className: "chat-session-history-time", children: time })] }, tab.sid));
|
|
102
|
+
})] })] }) })] })] })] }));
|
|
103
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createPersistentSizeStore, usePersistentSizeStore, } from '@forgeax/app-shell/react';
|
|
2
|
+
export const CHAT_MIN_WIDTH = 280;
|
|
3
|
+
export const CHAT_MAX_WIDTH = 720;
|
|
4
|
+
export const CHAT_DEFAULT_WIDTH = 360;
|
|
5
|
+
export const chatWidthStore = createPersistentSizeStore({
|
|
6
|
+
storageKey: 'forgeax:chat-width',
|
|
7
|
+
defaultSize: CHAT_DEFAULT_WIDTH,
|
|
8
|
+
minSize: CHAT_MIN_WIDTH,
|
|
9
|
+
maxSize: CHAT_MAX_WIDTH,
|
|
10
|
+
});
|
|
11
|
+
export function useChatWidth() {
|
|
12
|
+
return usePersistentSizeStore(chatWidthStore);
|
|
13
|
+
}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/** CommandPalette —— cmdk 命令面板(P2-15,激活死依赖)。
|
|
3
|
+
*
|
|
4
|
+
* 数据源 = ActionRegistry(与按钮 / AI 同一张注册表,压缩公理:一表三消费者)。
|
|
5
|
+
* 执行走 `dispatchAction` 单入口(source:'human')。Ctrl/⌘+K 开合。
|
|
6
|
+
*
|
|
7
|
+
* 两段式(P2-16):选中带参数的 action 不再盲发空参被静默拒,而是进「参数引导」
|
|
8
|
+
* 子界面——用 action 的 description 作使用说明,按 schema 逐字段给输入(enum 下拉 /
|
|
9
|
+
* 布尔 / 数字 / 文本),提交后校验通过再派发。无参 action 直接执行。任何结果
|
|
10
|
+
* (完成 / 受理 / 被拒原因)都在面板内回显,不再「点了没反应」。
|
|
11
|
+
*/
|
|
12
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
13
|
+
import { Command } from 'cmdk';
|
|
14
|
+
import { createRestartableTimeoutTaskLifecycle } from '@forgeax/app-shell/react';
|
|
15
|
+
import { dispatchAction, getAction, snapshotActions, } from '../../lib/action-registry.js';
|
|
16
|
+
import { setCommandPaletteOpen, useCommandPaletteOpen } from '../../lib/command-palette-store.js';
|
|
17
|
+
|
|
18
|
+
/** 从 action 的 JSON Schema 派生顶层参数清单(与 registry 的 validateArgs 同口径)。 */
|
|
19
|
+
function paramsOf(def) {
|
|
20
|
+
const schema = def.schema;
|
|
21
|
+
if (!schema || typeof schema !== 'object')
|
|
22
|
+
return [];
|
|
23
|
+
const props = schema.properties && typeof schema.properties === 'object'
|
|
24
|
+
? schema.properties
|
|
25
|
+
: {};
|
|
26
|
+
const required = new Set(Array.isArray(schema.required) ? schema.required.filter((k) => typeof k === 'string') : []);
|
|
27
|
+
return Object.entries(props).map(([key, p]) => ({
|
|
28
|
+
key,
|
|
29
|
+
type: typeof p?.type === 'string' ? p.type : undefined,
|
|
30
|
+
enum: Array.isArray(p?.enum) ? p.enum : undefined,
|
|
31
|
+
description: typeof p?.description === 'string' ? p.description : undefined,
|
|
32
|
+
required: required.has(key),
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
/** 把表单里的字符串按声明类型转回 JS 值(布尔 / 数字 / JSON),供派发。 */
|
|
36
|
+
function coerce(raw, type) {
|
|
37
|
+
if (type === 'number' || type === 'integer') {
|
|
38
|
+
const n = Number(raw);
|
|
39
|
+
if (raw.trim() === '' || Number.isNaN(n))
|
|
40
|
+
return { ok: false, err: '需要数字' };
|
|
41
|
+
if (type === 'integer' && !Number.isInteger(n))
|
|
42
|
+
return { ok: false, err: '需要整数' };
|
|
43
|
+
return { ok: true, value: n };
|
|
44
|
+
}
|
|
45
|
+
if (type === 'boolean')
|
|
46
|
+
return { ok: true, value: raw === 'true' };
|
|
47
|
+
if (type === 'object' || type === 'array') {
|
|
48
|
+
try {
|
|
49
|
+
return { ok: true, value: JSON.parse(raw) };
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return { ok: false, err: '需要合法 JSON' };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return { ok: true, value: raw };
|
|
56
|
+
}
|
|
57
|
+
function typeHint(p) {
|
|
58
|
+
const bits = [];
|
|
59
|
+
if (p.enum?.length)
|
|
60
|
+
bits.push(`可选:${p.enum.map(String).join(' / ')}`);
|
|
61
|
+
else if (p.type)
|
|
62
|
+
bits.push(p.type);
|
|
63
|
+
bits.push(p.required ? '必填' : '可选');
|
|
64
|
+
return bits.join(' · ');
|
|
65
|
+
}
|
|
66
|
+
export function CommandPalette() {
|
|
67
|
+
const open = useCommandPaletteOpen();
|
|
68
|
+
const [rows, setRows] = useState([]);
|
|
69
|
+
const [formDef, setFormDef] = useState(null); // 非空 = 处于参数引导子界面
|
|
70
|
+
const [values, setValues] = useState({});
|
|
71
|
+
const [feedback, setFeedback] = useState(null);
|
|
72
|
+
// 动态候选:paramKey → 取值列表(undefined=还在解析,[]=解析完但无项)。
|
|
73
|
+
const [choices, setChoices] = useState({});
|
|
74
|
+
const firstFieldRef = useRef(null);
|
|
75
|
+
const closeTask = useRef(null);
|
|
76
|
+
const close = useCallback(() => {
|
|
77
|
+
closeTask.current?.cancel();
|
|
78
|
+
setCommandPaletteOpen(false);
|
|
79
|
+
setFormDef(null);
|
|
80
|
+
setValues({});
|
|
81
|
+
setFeedback(null);
|
|
82
|
+
}, []);
|
|
83
|
+
// 成功后不立刻关:先让绿色回报(含 stateDigest,如 console.clear 的 {cleared:N})显示一下再自动关。
|
|
84
|
+
const scheduleClose = useCallback(() => {
|
|
85
|
+
closeTask.current?.schedule();
|
|
86
|
+
}, []);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
const task = createRestartableTimeoutTaskLifecycle({ delayMs: 1100, task: close });
|
|
89
|
+
closeTask.current = task;
|
|
90
|
+
return () => {
|
|
91
|
+
task.dispose();
|
|
92
|
+
closeTask.current = null;
|
|
93
|
+
};
|
|
94
|
+
}, [close]);
|
|
95
|
+
// 打开时取一次注册表快照;available 的排前面。
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
if (!open)
|
|
98
|
+
return;
|
|
99
|
+
const snap = snapshotActions();
|
|
100
|
+
snap.sort((a, b) => Number(b.available) - Number(a.available) || a.title.localeCompare(b.title));
|
|
101
|
+
setRows(snap);
|
|
102
|
+
}, [open]);
|
|
103
|
+
// 进入参数界面:解析动态候选(choices),就绪后把候选字段默认选到第一项,并聚焦首字段。
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (!formDef) {
|
|
106
|
+
setChoices({});
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
firstFieldRef.current?.focus();
|
|
110
|
+
const provs = formDef.choices ?? {};
|
|
111
|
+
const keys = Object.keys(provs);
|
|
112
|
+
if (keys.length === 0)
|
|
113
|
+
return;
|
|
114
|
+
let cancelled = false;
|
|
115
|
+
void (async () => {
|
|
116
|
+
const resolved = {};
|
|
117
|
+
await Promise.all(keys.map(async (k) => {
|
|
118
|
+
try {
|
|
119
|
+
resolved[k] = (await provs[k]()) ?? [];
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
resolved[k] = [];
|
|
123
|
+
}
|
|
124
|
+
}));
|
|
125
|
+
if (cancelled)
|
|
126
|
+
return;
|
|
127
|
+
setChoices(resolved);
|
|
128
|
+
setValues((v) => {
|
|
129
|
+
const next = { ...v };
|
|
130
|
+
for (const k of keys)
|
|
131
|
+
if (resolved[k]?.length && !next[k])
|
|
132
|
+
next[k] = resolved[k][0];
|
|
133
|
+
return next;
|
|
134
|
+
});
|
|
135
|
+
})();
|
|
136
|
+
return () => {
|
|
137
|
+
cancelled = true;
|
|
138
|
+
};
|
|
139
|
+
}, [formDef]);
|
|
140
|
+
/** 真正派发 + 结果回显。成功(完成/受理)返回 true,被拒返回 false。 */
|
|
141
|
+
const execute = useCallback(async (id, args) => {
|
|
142
|
+
const res = await dispatchAction(id, args, { source: 'human' });
|
|
143
|
+
if (res.status === 'rejected') {
|
|
144
|
+
setFeedback({ kind: 'err', text: res.reason ?? '执行被拒绝' });
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
// 带上 stateDigest 做可见回报(如 console.clear 的 {cleared:N}),避免「点了没反应」。
|
|
148
|
+
const digest = res.stateDigest !== undefined ? ` · ${JSON.stringify(res.stateDigest)}` : '';
|
|
149
|
+
setFeedback({ kind: 'ok', text: (res.status === 'accepted' ? '已受理(异步执行中)' : '已执行') + digest });
|
|
150
|
+
return true;
|
|
151
|
+
}, []);
|
|
152
|
+
/** 列表里选中一条:有参数 → 进引导;无参数 → 直接执行。 */
|
|
153
|
+
const onSelect = useCallback((id) => {
|
|
154
|
+
const def = getAction(id);
|
|
155
|
+
const params = def ? paramsOf(def) : [];
|
|
156
|
+
if (def && params.length > 0) {
|
|
157
|
+
const init = {};
|
|
158
|
+
for (const p of params) {
|
|
159
|
+
init[p.key] = p.enum?.length ? String(p.enum[0]) : p.type === 'boolean' ? 'true' : '';
|
|
160
|
+
}
|
|
161
|
+
setFeedback(null);
|
|
162
|
+
setValues(init);
|
|
163
|
+
setFormDef(def);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
void execute(id, {}).then((ok) => {
|
|
167
|
+
if (ok)
|
|
168
|
+
scheduleClose();
|
|
169
|
+
});
|
|
170
|
+
}, [execute, scheduleClose]);
|
|
171
|
+
const submit = useCallback(async () => {
|
|
172
|
+
if (!formDef)
|
|
173
|
+
return;
|
|
174
|
+
const args = {};
|
|
175
|
+
for (const p of paramsOf(formDef)) {
|
|
176
|
+
const raw = values[p.key] ?? '';
|
|
177
|
+
if (raw === '') {
|
|
178
|
+
if (p.required) {
|
|
179
|
+
setFeedback({ kind: 'err', text: `「${p.key}」为必填` });
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
continue; // 可选留空 → 不发该键
|
|
183
|
+
}
|
|
184
|
+
const c = coerce(raw, p.type);
|
|
185
|
+
if (!c.ok) {
|
|
186
|
+
setFeedback({ kind: 'err', text: `「${p.key}」${c.err}` });
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
args[p.key] = c.value;
|
|
190
|
+
}
|
|
191
|
+
const ok = await execute(formDef.id, args);
|
|
192
|
+
if (ok)
|
|
193
|
+
scheduleClose();
|
|
194
|
+
}, [formDef, values, execute, scheduleClose]);
|
|
195
|
+
const enabled = useMemo(() => rows.filter((r) => r.available), [rows]);
|
|
196
|
+
const disabled = useMemo(() => rows.filter((r) => !r.available), [rows]);
|
|
197
|
+
if (!open)
|
|
198
|
+
return null;
|
|
199
|
+
// ── 参数引导子界面 ────────────────────────────────────────────────────────
|
|
200
|
+
if (formDef) {
|
|
201
|
+
const params = paramsOf(formDef);
|
|
202
|
+
return (_jsx("div", { className: "fx-cmdk-overlay", onClick: close, onKeyDown: (e) => {
|
|
203
|
+
if (e.nativeEvent.isComposing)
|
|
204
|
+
return;
|
|
205
|
+
if (e.key === 'Escape') {
|
|
206
|
+
e.preventDefault();
|
|
207
|
+
if (formDef) {
|
|
208
|
+
setFormDef(null);
|
|
209
|
+
setValues({});
|
|
210
|
+
setFeedback(null);
|
|
211
|
+
}
|
|
212
|
+
else
|
|
213
|
+
close();
|
|
214
|
+
}
|
|
215
|
+
}, tabIndex: -1, children: _jsxs("div", { className: "fx-cmdk-panel", onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "fx-cmdk-form-head", children: [_jsx("button", { className: "fx-cmdk-back", type: "button", onClick: () => setFormDef(null), title: "\u8FD4\u56DE\u547D\u4EE4\u5217\u8868", children: "\u2190 \u8FD4\u56DE" }), _jsx("span", { className: "fx-cmdk-title", children: formDef.title }), _jsx("span", { className: "fx-cmdk-id", children: formDef.id })] }), formDef.description && _jsx("p", { className: "fx-cmdk-guide", children: formDef.description }), _jsxs("form", { className: "fx-cmdk-form", onSubmit: (e) => {
|
|
216
|
+
e.preventDefault();
|
|
217
|
+
void submit();
|
|
218
|
+
}, children: [params.map((p, i) => {
|
|
219
|
+
const setRef = (el) => {
|
|
220
|
+
if (i === 0)
|
|
221
|
+
firstFieldRef.current = el;
|
|
222
|
+
};
|
|
223
|
+
const val = values[p.key] ?? '';
|
|
224
|
+
const onChange = (v) => setValues((s) => ({ ...s, [p.key]: v }));
|
|
225
|
+
const isDyn = !!formDef.choices?.[p.key]; // 该字段有动态候选提供器
|
|
226
|
+
const dynList = choices[p.key]; // undefined=解析中,[]=无项,[...]=候选
|
|
227
|
+
return (_jsxs("label", { className: "fx-cmdk-field", children: [_jsxs("span", { className: "fx-cmdk-field-label", children: [p.key, p.required && _jsx("em", { className: "fx-cmdk-req", children: "*" }), _jsx("small", { className: "fx-cmdk-field-hint", children: typeHint(p) })] }), p.enum?.length ? (_jsx("select", { ref: setRef, value: val, onChange: (e) => onChange(e.target.value), children: p.enum.map((o) => (_jsx("option", { value: String(o), children: String(o) }, String(o)))) })) : isDyn ? (dynList === undefined ? (_jsx("select", { disabled: true, ref: setRef, children: _jsx("option", { children: "\u52A0\u8F7D\u4E2D\u2026" }) })) : dynList.length === 0 ? (_jsx("select", { disabled: true, ref: setRef, children: _jsx("option", { children: "\u65E0\u53EF\u7528\u9879" }) })) : (_jsx("select", { ref: setRef, value: val, onChange: (e) => onChange(e.target.value), children: dynList.map((o) => (_jsx("option", { value: o, children: o }, o))) }))) : p.type === 'boolean' ? (_jsxs("select", { ref: setRef, value: val, onChange: (e) => onChange(e.target.value), children: [_jsx("option", { value: "true", children: "true" }), _jsx("option", { value: "false", children: "false" })] })) : p.type === 'number' || p.type === 'integer' ? (_jsx("input", { ref: setRef, type: "number", value: val, onChange: (e) => onChange(e.target.value), placeholder: p.type })) : (_jsx("textarea", { ref: setRef, rows: p.type === 'object' || p.type === 'array' ? 3 : 2, value: val, onChange: (e) => onChange(e.target.value), placeholder: p.type === 'object' || p.type === 'array' ? 'JSON…' : `输入 ${p.key}…`, onKeyDown: (e) => {
|
|
228
|
+
if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {
|
|
229
|
+
e.preventDefault();
|
|
230
|
+
void submit();
|
|
231
|
+
}
|
|
232
|
+
} })), p.description && _jsx("small", { className: "fx-cmdk-field-desc", children: p.description })] }, p.key));
|
|
233
|
+
}), feedback && _jsx("div", { className: `fx-cmdk-feedback fx-cmdk-feedback--${feedback.kind}`, children: feedback.text }), _jsxs("div", { className: "fx-cmdk-form-actions", children: [_jsx("span", { className: "fx-cmdk-form-tip", children: "Enter \u6267\u884C \u00B7 Esc \u8FD4\u56DE" }), _jsx("button", { type: "submit", className: "fx-cmdk-run", children: "\u6267\u884C" })] })] })] }) }));
|
|
234
|
+
}
|
|
235
|
+
// ── 命令列表 ──────────────────────────────────────────────────────────────
|
|
236
|
+
return (_jsx("div", { className: "fx-cmdk-overlay", onClick: close, onKeyDown: (e) => {
|
|
237
|
+
if (!e.nativeEvent.isComposing && e.key === 'Escape') {
|
|
238
|
+
e.preventDefault();
|
|
239
|
+
close();
|
|
240
|
+
}
|
|
241
|
+
}, tabIndex: -1, children: _jsxs("div", { className: "fx-cmdk-panel", onClick: (e) => e.stopPropagation(), children: [_jsxs(Command, { label: "\u547D\u4EE4\u9762\u677F", children: [_jsx(Command.Input, { autoFocus: true, placeholder: "\u8F93\u5165\u547D\u4EE4\u2026(\u4E0E AI \u53EF\u8C03\u7528\u7684\u529F\u80FD\u540C\u4E00\u5F20\u6CE8\u518C\u8868)" }), _jsxs(Command.List, { children: [_jsx(Command.Empty, { children: "\u6CA1\u6709\u5339\u914D\u7684\u547D\u4EE4" }), enabled.map((r) => (_jsxs(Command.Item, { value: `${r.title} ${r.id}`, onSelect: () => onSelect(r.id), children: [_jsx("span", { className: "fx-cmdk-title", children: r.title }), _jsx("span", { className: "fx-cmdk-id", children: r.id })] }, r.id))), disabled.length > 0 && (_jsx(Command.Group, { heading: "\u5F53\u524D\u4E0D\u53EF\u7528", children: disabled.map((r) => (_jsxs(Command.Item, { value: `${r.title} ${r.id}`, disabled: true, children: [_jsx("span", { className: "fx-cmdk-title", children: r.title }), _jsx("span", { className: "fx-cmdk-reason", children: r.reason })] }, r.id))) }))] })] }), feedback && _jsx("div", { className: `fx-cmdk-feedback fx-cmdk-feedback--${feedback.kind}`, children: feedback.text })] }) }));
|
|
242
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Doc 07 §9.5 — front half of `requireConfirm`.
|
|
4
|
+
*
|
|
5
|
+
* Backend already emits `tool.confirm-required` envelopes when an AI- or
|
|
6
|
+
* skill-driven `callTool` hits a tool flagged `requireConfirm`. The host UI
|
|
7
|
+
* reads them off the SSE stream and renders a modal with Allow / Deny.
|
|
8
|
+
* The user's verdict goes back to `/api/tools/confirm`, which feeds
|
|
9
|
+
* `tool.confirm-resolved` into the registry's awaiter.
|
|
10
|
+
*
|
|
11
|
+
* The modal is intentionally minimal: timer (`expiresAt`), tool id, args
|
|
12
|
+
* preview, caller kind. No theming yet — the frequent path is "user
|
|
13
|
+
* accepts" so the heaviest cost is the network roundtrip, not the dialog.
|
|
14
|
+
*/
|
|
15
|
+
import { useEffect, useRef, useState } from 'react';
|
|
16
|
+
import { createIntervalTaskLifecycle, installEventSourceObservation, } from '@forgeax/app-shell/react';
|
|
17
|
+
import { useTranslation } from '../../i18n/index.js';
|
|
18
|
+
import { AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, } from '../ui/alert-dialog.js';
|
|
19
|
+
export function ConfirmDialog() {
|
|
20
|
+
const { t } = useTranslation();
|
|
21
|
+
const [queue, setQueue] = useState([]);
|
|
22
|
+
const queueRef = useRef([]);
|
|
23
|
+
queueRef.current = queue;
|
|
24
|
+
// Tracks confirmIds already given an explicit verdict, so the AlertDialog's
|
|
25
|
+
// auto onOpenChange(false) (fired by Action/Cancel) does not double-send a
|
|
26
|
+
// dismiss deny after a real allow/deny. Keeps the verdict exactly-once.
|
|
27
|
+
const resolvedRef = useRef(new Set());
|
|
28
|
+
const [now, setNow] = useState(Date.now());
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
const clock = createIntervalTaskLifecycle({
|
|
31
|
+
task: () => setNow(Date.now()),
|
|
32
|
+
intervalMs: 1000,
|
|
33
|
+
});
|
|
34
|
+
clock.start();
|
|
35
|
+
return clock.dispose;
|
|
36
|
+
}, []);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
return installEventSourceObservation({
|
|
39
|
+
url: '/api/events/stream?topic=tool.confirm-*',
|
|
40
|
+
onEvent: (ev) => {
|
|
41
|
+
let env = null;
|
|
42
|
+
try {
|
|
43
|
+
env = JSON.parse(ev.data);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (!env)
|
|
49
|
+
return;
|
|
50
|
+
if (env.topic === 'tool.confirm-required') {
|
|
51
|
+
const p = env.payload;
|
|
52
|
+
if (!p?.confirmId)
|
|
53
|
+
return;
|
|
54
|
+
// De-dup: if the confirmId already in queue, skip.
|
|
55
|
+
if (queueRef.current.some((q) => q.confirmId === p.confirmId))
|
|
56
|
+
return;
|
|
57
|
+
setQueue((prev) => [
|
|
58
|
+
...prev,
|
|
59
|
+
{
|
|
60
|
+
confirmId: p.confirmId,
|
|
61
|
+
toolId: p.toolId,
|
|
62
|
+
args: p.args,
|
|
63
|
+
callerKind: p.caller?.kind,
|
|
64
|
+
message: p.message,
|
|
65
|
+
expiresAt: p.expiresAt,
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
else if (env.topic === 'tool.confirm-resolved') {
|
|
70
|
+
// Some other UI / CLI resolved it; drop from queue.
|
|
71
|
+
const id = env.payload?.confirmId;
|
|
72
|
+
if (!id)
|
|
73
|
+
return;
|
|
74
|
+
setQueue((prev) => prev.filter((q) => q.confirmId !== id));
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
}, []);
|
|
79
|
+
const head = queue[0];
|
|
80
|
+
if (!head)
|
|
81
|
+
return null;
|
|
82
|
+
const send = async (decision, reason) => {
|
|
83
|
+
resolvedRef.current.add(head.confirmId);
|
|
84
|
+
try {
|
|
85
|
+
await fetch('/api/tools/confirm', {
|
|
86
|
+
method: 'POST',
|
|
87
|
+
headers: { 'content-type': 'application/json' },
|
|
88
|
+
body: JSON.stringify({ confirmId: head.confirmId, decision, reason }),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
catch { /* server will time out the awaiter on its own */ }
|
|
92
|
+
setQueue((prev) => prev.filter((q) => q.confirmId !== head.confirmId));
|
|
93
|
+
};
|
|
94
|
+
const remainingMs = head.expiresAt ? Math.max(0, head.expiresAt - now) : null;
|
|
95
|
+
const remainingS = remainingMs == null ? null : Math.ceil(remainingMs / 1000);
|
|
96
|
+
return (_jsx(AlertDialog, { open: true, onOpenChange: (open) => {
|
|
97
|
+
// Esc / overlay close == dismiss == deny. Skip if a button already
|
|
98
|
+
// resolved this confirmId (Action/Cancel also fire onOpenChange).
|
|
99
|
+
if (!open && !resolvedRef.current.has(head.confirmId)) {
|
|
100
|
+
void send('deny', 'dismissed');
|
|
101
|
+
}
|
|
102
|
+
}, children: _jsxs(AlertDialogContent, { className: "max-w-xl", children: [_jsxs(AlertDialogHeader, { children: [_jsxs("div", { className: "flex items-center justify-between text-sm text-muted-foreground", children: [_jsx("span", { children: t('confirmDialog.wantsToRunTool', { caller: head.callerKind ?? 'AI' }) }), remainingS != null && (_jsxs("span", { className: remainingS < 5 ? 'text-destructive' : 'text-muted-foreground', children: [remainingS, "s"] }))] }), _jsx(AlertDialogTitle, { className: "font-mono text-base", children: head.toolId }), head.message && (_jsx(AlertDialogDescription, { children: head.message }))] }), _jsx("pre", { className: "my-1 max-h-52 overflow-auto rounded bg-muted p-2.5 text-xs text-info", children: safeStringify(head.args) }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { onClick: () => send('deny'), children: t('confirmDialog.deny') }), _jsx(AlertDialogAction, { autoFocus: true, onClick: () => send('allow'), children: t('confirmDialog.allow') })] })] }) }));
|
|
103
|
+
}
|
|
104
|
+
function safeStringify(v) {
|
|
105
|
+
if (v === undefined)
|
|
106
|
+
return '(no args)';
|
|
107
|
+
try {
|
|
108
|
+
return JSON.stringify(v, null, 2);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return String(v);
|
|
112
|
+
}
|
|
113
|
+
}
|