@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,53 @@
|
|
|
1
|
+
// Per-provider "last hand-picked model" memory.
|
|
2
|
+
//
|
|
3
|
+
// Two distinct gestures land on different defaults, and conflating them was the
|
|
4
|
+
// reported bug:
|
|
5
|
+
// • Switching PROVIDER is a deliberate "give me this provider's default" — the
|
|
6
|
+
// active-session reset policy belongs to Chat. We do NOT record that here.
|
|
7
|
+
// • Creating a NEW SESSION should resume "where I left off" for the current
|
|
8
|
+
// provider — the model the user last HAND-PICKED in the composer. Only the
|
|
9
|
+
// manual pick writes here; new sessions read it to seed their agent model.
|
|
10
|
+
//
|
|
11
|
+
// Keyed by catalog-provider id: a CLI driver id (claude-code / codex / …) or
|
|
12
|
+
// 'forgeax' for the native gateway path (catalogProviderId === null).
|
|
13
|
+
import { STORAGE_KEYS } from './storageKeys';
|
|
14
|
+
function storageKey() {
|
|
15
|
+
return STORAGE_KEYS.lastModelByProvider;
|
|
16
|
+
}
|
|
17
|
+
function providerKey(catalogProviderId) {
|
|
18
|
+
return catalogProviderId && catalogProviderId !== 'forgeax' ? catalogProviderId : 'forgeax';
|
|
19
|
+
}
|
|
20
|
+
function readMap() {
|
|
21
|
+
try {
|
|
22
|
+
const raw = localStorage.getItem(storageKey());
|
|
23
|
+
if (!raw)
|
|
24
|
+
return {};
|
|
25
|
+
const parsed = JSON.parse(raw);
|
|
26
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
27
|
+
return parsed;
|
|
28
|
+
}
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** The model the user last hand-picked for this provider, or null if none. */
|
|
36
|
+
export function getLastModel(catalogProviderId) {
|
|
37
|
+
const v = readMap()[providerKey(catalogProviderId)];
|
|
38
|
+
return typeof v === 'string' && v.length > 0 ? v : null;
|
|
39
|
+
}
|
|
40
|
+
/** Record a HAND-PICKED model for this provider (called from the composer's
|
|
41
|
+
* model picker onChange — never from a provider-switch reset). */
|
|
42
|
+
export function recordLastModel(catalogProviderId, modelId) {
|
|
43
|
+
if (!modelId)
|
|
44
|
+
return;
|
|
45
|
+
try {
|
|
46
|
+
const map = readMap();
|
|
47
|
+
map[providerKey(catalogProviderId)] = modelId;
|
|
48
|
+
localStorage.setItem(storageKey(), JSON.stringify(map));
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
/* ignore (private mode / SSR) */
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type ModelCatalogEntry } from '../model-config';
|
|
2
|
+
/** Closed union of model sources the UI can present + switch between. */
|
|
3
|
+
export type ModelSource =
|
|
4
|
+
/** BYO OpenAI-compatible key — native path, FORGEAX_MODEL=<vendor id>. */
|
|
5
|
+
{
|
|
6
|
+
kind: 'api-key';
|
|
7
|
+
model: string;
|
|
8
|
+
}
|
|
9
|
+
/** Local CLI driver — providerOverride=<id>. */
|
|
10
|
+
| {
|
|
11
|
+
kind: 'cli';
|
|
12
|
+
providerId: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The UI-facing "active source" identifier: 'api-key' | <cli-id> | null
|
|
16
|
+
* (nothing set).
|
|
17
|
+
*/
|
|
18
|
+
export type ActiveSourceId = 'api-key' | string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Derive the active source id purely from the two runtime inputs. Kept a pure
|
|
21
|
+
* function so it can be unit-tested and reused by both the Providers panel and
|
|
22
|
+
* the onboarding readiness gate.
|
|
23
|
+
*/
|
|
24
|
+
export declare function deriveActiveSource(providerOverride: string | null, forgeaxModel: string | null): ActiveSourceId;
|
|
25
|
+
/**
|
|
26
|
+
* Switch the active model source. Writes the two underlying pieces of state
|
|
27
|
+
* atomically-enough (env then override) so the derived active source lands on
|
|
28
|
+
* the requested value. Returns once persisted.
|
|
29
|
+
*
|
|
30
|
+
* - api-key → providerOverride=null + FORGEAX_MODEL=<vendor id> (env keys are
|
|
31
|
+
* saved separately via the Providers EnvFields)
|
|
32
|
+
* - cli → providerOverride=<id> (FORGEAX_MODEL untouched — the driver owns
|
|
33
|
+
* its own model selection)
|
|
34
|
+
*/
|
|
35
|
+
export declare function applyModelRoute(source: ModelSource): Promise<void>;
|
|
36
|
+
/** The catalog provider id currently in effect, derived from providerOverride. */
|
|
37
|
+
export declare function currentCatalogProvider(providerOverride: string | null): string | null;
|
|
38
|
+
/** Preserve the last explicit user pick when it still belongs to this catalog;
|
|
39
|
+
* otherwise use the provider's first visible/default entry. */
|
|
40
|
+
export declare function preferredCatalogModel(catalog: readonly ModelCatalogEntry[], remembered: string | null): string | undefined;
|
|
41
|
+
/** Model seeding policy for a newly scaffolded session. Native sessions only
|
|
42
|
+
* override their scaffold default when the user has an applicable remembered
|
|
43
|
+
* pick; CLI sessions must always land on a model from that driver's catalog. */
|
|
44
|
+
export declare function initialSessionCatalogModel(catalog: readonly ModelCatalogEntry[], catalogProviderId: string | null, remembered: string | null): string | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Reset EVERY open session's agent model to a catalog's default.
|
|
47
|
+
*
|
|
48
|
+
* `providerOverride` is GLOBAL (one value for the whole app), so switching it
|
|
49
|
+
* re-routes ALL sessions through the new provider — but each session's
|
|
50
|
+
* agent.json still pins the OLD provider's model id, which may not exist in the
|
|
51
|
+
* new provider's catalog. The product requirement is therefore: switching the
|
|
52
|
+
* provider in Settings resets the current model of ALL active sessions to the
|
|
53
|
+
* new provider's default (not just the focused one). We compute the default
|
|
54
|
+
* once (provider-scoped) and write it into each open tab's agent.json. Returns
|
|
55
|
+
* the model set + how many sessions were updated, or null when nothing to do.
|
|
56
|
+
*/
|
|
57
|
+
export declare function resetOpenSessionsModelToProviderDefault(catalogProviderId: string | null): Promise<{
|
|
58
|
+
selected: string;
|
|
59
|
+
count: number;
|
|
60
|
+
} | null>;
|
|
61
|
+
/**
|
|
62
|
+
* On SESSION SWITCH: conform the switched-to session's model to the currently
|
|
63
|
+
* ACTIVE provider (Settings › Providers is the single global provider setting;
|
|
64
|
+
* the in-chat switcher is hidden). "Does this session's provider match the
|
|
65
|
+
* active provider?" is answered by CATALOG MEMBERSHIP — a session whose
|
|
66
|
+
* agent.json model isn't in the active provider's catalog was last touched
|
|
67
|
+
* under a DIFFERENT provider (e.g. switching game loads that game's disk
|
|
68
|
+
* sessions, which the last provider-switch reset never reached).
|
|
69
|
+
*
|
|
70
|
+
* • mismatch → snap the session's model to this provider's last HAND-PICKED
|
|
71
|
+
* model (model-prefs), else its catalog default (first non-hidden);
|
|
72
|
+
* • match (model already in the active catalog) → leave it untouched
|
|
73
|
+
* ("同 provider 就不管").
|
|
74
|
+
*
|
|
75
|
+
* Best-effort + returns null on no-op: an empty catalog, a missing model, or
|
|
76
|
+
* any IO failure must never block the session switch. Returns the model set on
|
|
77
|
+
* a mismatch so the caller can repaint immediately if it wants.
|
|
78
|
+
*/
|
|
79
|
+
export declare function reconcileSessionModelToActiveProvider(sid: string, agentPath: string): Promise<{
|
|
80
|
+
selected: string;
|
|
81
|
+
} | null>;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
// ActiveModelRoute — the single source of truth for "which model source is the
|
|
2
|
+
// chat actually using right now", and the one place that mutation flows through.
|
|
3
|
+
//
|
|
4
|
+
// Design §12 (adopted revisions) calls for a closed-union ActiveModelRoute from
|
|
5
|
+
// which `providerOverride` is DERIVED rather than a second hand-maintained
|
|
6
|
+
// field. In this codebase the runtime routing is already decided by two pieces
|
|
7
|
+
// of existing state — we do NOT add a third:
|
|
8
|
+
//
|
|
9
|
+
// 1. store.providerOverride (per-session): null → native forgeax path
|
|
10
|
+
// (POST /api/sessions/:sid/messages); non-null → a CLI driver via
|
|
11
|
+
// /api/cli/chat (claude-code / codex / cursor-agent / codebuddy).
|
|
12
|
+
// 2. .env FORGEAX_MODEL: which model the native path resolves (auto-resolver
|
|
13
|
+
// routes by id prefix — claude-* → Anthropic, gpt-* → OpenAI, …).
|
|
14
|
+
//
|
|
15
|
+
// So the "active source" the Providers panel + onboarding show is a pure
|
|
16
|
+
// DERIVATION over (providerOverride, FORGEAX_MODEL), and switching source is a
|
|
17
|
+
// single `applyModelRoute` that writes both consistently. No ghost field.
|
|
18
|
+
import { useShellStore } from '../../store';
|
|
19
|
+
import { getAgentModel, listModels, setAgentModels } from '../model-config';
|
|
20
|
+
import { getLastModel } from '../model-prefs';
|
|
21
|
+
const RE_OPENAI = /^(gpt-|o[1-9]|codex-)/i;
|
|
22
|
+
/**
|
|
23
|
+
* Derive the active source id purely from the two runtime inputs. Kept a pure
|
|
24
|
+
* function so it can be unit-tested and reused by both the Providers panel and
|
|
25
|
+
* the onboarding readiness gate.
|
|
26
|
+
*/
|
|
27
|
+
export function deriveActiveSource(providerOverride, forgeaxModel) {
|
|
28
|
+
// A CLI override always wins — the chat is routed through /api/cli/chat.
|
|
29
|
+
if (providerOverride && providerOverride !== 'forgeax') {
|
|
30
|
+
return providerOverride;
|
|
31
|
+
}
|
|
32
|
+
// Native path: the model id tells us the source.
|
|
33
|
+
const m = (forgeaxModel ?? '').trim();
|
|
34
|
+
if (m && RE_OPENAI.test(m))
|
|
35
|
+
return 'api-key';
|
|
36
|
+
// Any native model (claude-*/gemini-*/proxy) — still the "api-key" bucket from
|
|
37
|
+
// the Providers UI's perspective (BYO credential).
|
|
38
|
+
if (m)
|
|
39
|
+
return 'api-key';
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
async function patchEnv(patch) {
|
|
43
|
+
const r = await fetch('/api/settings/env', {
|
|
44
|
+
method: 'PUT',
|
|
45
|
+
headers: { 'content-type': 'application/json' },
|
|
46
|
+
body: JSON.stringify(patch),
|
|
47
|
+
});
|
|
48
|
+
const j = (await r.json().catch(() => null));
|
|
49
|
+
if (!r.ok || !j?.ok) {
|
|
50
|
+
throw new Error(j?.error ?? `HTTP ${r.status}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Switch the active model source. Writes the two underlying pieces of state
|
|
55
|
+
* atomically-enough (env then override) so the derived active source lands on
|
|
56
|
+
* the requested value. Returns once persisted.
|
|
57
|
+
*
|
|
58
|
+
* - api-key → providerOverride=null + FORGEAX_MODEL=<vendor id> (env keys are
|
|
59
|
+
* saved separately via the Providers EnvFields)
|
|
60
|
+
* - cli → providerOverride=<id> (FORGEAX_MODEL untouched — the driver owns
|
|
61
|
+
* its own model selection)
|
|
62
|
+
*/
|
|
63
|
+
export async function applyModelRoute(source) {
|
|
64
|
+
const setProviderOverride = useShellStore.getState().setProviderOverride;
|
|
65
|
+
switch (source.kind) {
|
|
66
|
+
case 'api-key':
|
|
67
|
+
await patchEnv({ FORGEAX_MODEL: source.model });
|
|
68
|
+
setProviderOverride(null);
|
|
69
|
+
return;
|
|
70
|
+
case 'cli':
|
|
71
|
+
setProviderOverride(source.providerId);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** The catalog provider id currently in effect, derived from providerOverride. */
|
|
76
|
+
export function currentCatalogProvider(providerOverride) {
|
|
77
|
+
return providerOverride && providerOverride !== 'forgeax' ? providerOverride : null;
|
|
78
|
+
}
|
|
79
|
+
/** Preserve the last explicit user pick when it still belongs to this catalog;
|
|
80
|
+
* otherwise use the provider's first visible/default entry. */
|
|
81
|
+
export function preferredCatalogModel(catalog, remembered) {
|
|
82
|
+
if (remembered && catalog.some((model) => model.id === remembered && !model.hidden)) {
|
|
83
|
+
return remembered;
|
|
84
|
+
}
|
|
85
|
+
return catalog.find((model) => !model.hidden)?.id ?? catalog[0]?.id;
|
|
86
|
+
}
|
|
87
|
+
/** Model seeding policy for a newly scaffolded session. Native sessions only
|
|
88
|
+
* override their scaffold default when the user has an applicable remembered
|
|
89
|
+
* pick; CLI sessions must always land on a model from that driver's catalog. */
|
|
90
|
+
export function initialSessionCatalogModel(catalog, catalogProviderId, remembered) {
|
|
91
|
+
const rememberedEntry = remembered
|
|
92
|
+
? catalog.find((model) => model.id === remembered && !model.hidden)
|
|
93
|
+
: undefined;
|
|
94
|
+
if (rememberedEntry)
|
|
95
|
+
return rememberedEntry.id;
|
|
96
|
+
return catalogProviderId ? preferredCatalogModel(catalog, null) : undefined;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Reset EVERY open session's agent model to a catalog's default.
|
|
100
|
+
*
|
|
101
|
+
* `providerOverride` is GLOBAL (one value for the whole app), so switching it
|
|
102
|
+
* re-routes ALL sessions through the new provider — but each session's
|
|
103
|
+
* agent.json still pins the OLD provider's model id, which may not exist in the
|
|
104
|
+
* new provider's catalog. The product requirement is therefore: switching the
|
|
105
|
+
* provider in Settings resets the current model of ALL active sessions to the
|
|
106
|
+
* new provider's default (not just the focused one). We compute the default
|
|
107
|
+
* once (provider-scoped) and write it into each open tab's agent.json. Returns
|
|
108
|
+
* the model set + how many sessions were updated, or null when nothing to do.
|
|
109
|
+
*/
|
|
110
|
+
export async function resetOpenSessionsModelToProviderDefault(catalogProviderId) {
|
|
111
|
+
const st = useShellStore.getState();
|
|
112
|
+
const targets = st.tabs
|
|
113
|
+
.map((t) => ({ sid: t.sid, agentPath: t.agentId }))
|
|
114
|
+
.filter((x) => !!x.sid && !!x.agentPath);
|
|
115
|
+
if (targets.length === 0)
|
|
116
|
+
return null;
|
|
117
|
+
const catalog = await listModels(catalogProviderId);
|
|
118
|
+
const nextModel = catalog.find((m) => !m.hidden)?.id ?? catalog[0]?.id;
|
|
119
|
+
if (!nextModel)
|
|
120
|
+
return null;
|
|
121
|
+
let count = 0;
|
|
122
|
+
for (const { sid, agentPath } of targets) {
|
|
123
|
+
try {
|
|
124
|
+
await setAgentModels(sid, agentPath, [nextModel]);
|
|
125
|
+
count++;
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
// Best-effort per session — one bad agent.json must not abort the rest.
|
|
129
|
+
console.warn('[model-route] reset session model failed', { sid, agentPath, err: e });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return count > 0 ? { selected: nextModel, count } : null;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* On SESSION SWITCH: conform the switched-to session's model to the currently
|
|
136
|
+
* ACTIVE provider (Settings › Providers is the single global provider setting;
|
|
137
|
+
* the in-chat switcher is hidden). "Does this session's provider match the
|
|
138
|
+
* active provider?" is answered by CATALOG MEMBERSHIP — a session whose
|
|
139
|
+
* agent.json model isn't in the active provider's catalog was last touched
|
|
140
|
+
* under a DIFFERENT provider (e.g. switching game loads that game's disk
|
|
141
|
+
* sessions, which the last provider-switch reset never reached).
|
|
142
|
+
*
|
|
143
|
+
* • mismatch → snap the session's model to this provider's last HAND-PICKED
|
|
144
|
+
* model (model-prefs), else its catalog default (first non-hidden);
|
|
145
|
+
* • match (model already in the active catalog) → leave it untouched
|
|
146
|
+
* ("同 provider 就不管").
|
|
147
|
+
*
|
|
148
|
+
* Best-effort + returns null on no-op: an empty catalog, a missing model, or
|
|
149
|
+
* any IO failure must never block the session switch. Returns the model set on
|
|
150
|
+
* a mismatch so the caller can repaint immediately if it wants.
|
|
151
|
+
*/
|
|
152
|
+
export async function reconcileSessionModelToActiveProvider(sid, agentPath) {
|
|
153
|
+
const catalogProviderId = currentCatalogProvider(useShellStore.getState().providerOverride);
|
|
154
|
+
const catalog = await listModels(catalogProviderId).catch(() => null);
|
|
155
|
+
if (!catalog || catalog.length === 0)
|
|
156
|
+
return null;
|
|
157
|
+
const cur = await getAgentModel(sid, agentPath).catch(() => null);
|
|
158
|
+
const currentId = cur?.selected ?? null;
|
|
159
|
+
// Same provider — the session's model is a member of the active catalog. Leave it.
|
|
160
|
+
if (currentId && catalog.some((m) => m.id === currentId))
|
|
161
|
+
return null;
|
|
162
|
+
// Mismatch — prefer this provider's last hand-picked model, else its default.
|
|
163
|
+
const remembered = getLastModel(catalogProviderId);
|
|
164
|
+
const next = preferredCatalogModel(catalog, remembered);
|
|
165
|
+
if (!next)
|
|
166
|
+
return null;
|
|
167
|
+
try {
|
|
168
|
+
await setAgentModels(sid, agentPath, [next]);
|
|
169
|
+
return { selected: next };
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
console.warn('[model-route] reconcile session model failed', { sid, agentPath, err: e });
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** 叙事工坊「完成即重唤醒」闭环(END 侧)。
|
|
2
|
+
*
|
|
3
|
+
* 背景:剧情师 Kotone 是一问一答的 agent —— 用它跑叙事管线时,它在**启动那一轮**里
|
|
4
|
+
* 讲完选型、调 `narrative:start-pipeline`(秒回 runId)后这一轮就结束、随即静默。管线在
|
|
5
|
+
* 后台跑几分钟,跑完是个**后台事件**,没人唤醒 Kotone,于是用户若不再开口就永远等不到
|
|
6
|
+
* 「完成总结」。
|
|
7
|
+
*
|
|
8
|
+
* 本模块补上这一环:监听 Kotone 调用 start-pipeline,轮询叙事后端直到该 run 进入终态,
|
|
9
|
+
* 然后给 Kotone(事件 emitter)投一条 user_input 系统提示,触发它产出完成总结。
|
|
10
|
+
*
|
|
11
|
+
* 为什么放前端、靠 history 轮询:
|
|
12
|
+
* - `hook:toolResult` 事件**不带工具返回值**,前端拿不到 runId;但叙事后端同源暴露
|
|
13
|
+
* `/api/narrative/history`(带 status),且后端强制单实例 run,所以「当前在跑的那条」
|
|
14
|
+
* 就是 Kotone 刚起的。
|
|
15
|
+
* - 前端是同时连着「agent 会话(WS)」和「叙事后端(REST)」的唯一协调者;放后端要跨进程。
|
|
16
|
+
*
|
|
17
|
+
* START 侧(左栏回填 + 中间预览直播)由 extension-narrative viz 的 useAutoAttach 自包含完成,
|
|
18
|
+
* 不在本模块职责内。 */
|
|
19
|
+
/** Boot 时调一次(main.tsx)。按 key 注册,HMR 重载会覆盖旧 handler。 */
|
|
20
|
+
export declare function subscribeNarrativeCopilot(): void;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/** 叙事工坊「完成即重唤醒」闭环(END 侧)。
|
|
2
|
+
*
|
|
3
|
+
* 背景:剧情师 Kotone 是一问一答的 agent —— 用它跑叙事管线时,它在**启动那一轮**里
|
|
4
|
+
* 讲完选型、调 `narrative:start-pipeline`(秒回 runId)后这一轮就结束、随即静默。管线在
|
|
5
|
+
* 后台跑几分钟,跑完是个**后台事件**,没人唤醒 Kotone,于是用户若不再开口就永远等不到
|
|
6
|
+
* 「完成总结」。
|
|
7
|
+
*
|
|
8
|
+
* 本模块补上这一环:监听 Kotone 调用 start-pipeline,轮询叙事后端直到该 run 进入终态,
|
|
9
|
+
* 然后给 Kotone(事件 emitter)投一条 user_input 系统提示,触发它产出完成总结。
|
|
10
|
+
*
|
|
11
|
+
* 为什么放前端、靠 history 轮询:
|
|
12
|
+
* - `hook:toolResult` 事件**不带工具返回值**,前端拿不到 runId;但叙事后端同源暴露
|
|
13
|
+
* `/api/narrative/history`(带 status),且后端强制单实例 run,所以「当前在跑的那条」
|
|
14
|
+
* 就是 Kotone 刚起的。
|
|
15
|
+
* - 前端是同时连着「agent 会话(WS)」和「叙事后端(REST)」的唯一协调者;放后端要跨进程。
|
|
16
|
+
*
|
|
17
|
+
* START 侧(左栏回填 + 中间预览直播)由 extension-narrative viz 的 useAutoAttach 自包含完成,
|
|
18
|
+
* 不在本模块职责内。 */
|
|
19
|
+
import { getSessionClient } from '../store-parts/session-client';
|
|
20
|
+
const START_TOOL = 'narrative:start-pipeline';
|
|
21
|
+
const POLL_MS = 5_000;
|
|
22
|
+
/** 安全上限:超过则放弃 watch(避免 zombie run 让定时器永生)。 */
|
|
23
|
+
const MAX_WATCH_MS = 40 * 60 * 1_000;
|
|
24
|
+
/** 同一 (sid::agent) 同时只跑一个 watcher,避免重复唤醒。 */
|
|
25
|
+
const activeWatchers = new Set();
|
|
26
|
+
async function fetchNarrativeHistory() {
|
|
27
|
+
try {
|
|
28
|
+
const r = await fetch('/api/narrative/history');
|
|
29
|
+
if (!r.ok)
|
|
30
|
+
return [];
|
|
31
|
+
const j = (await r.json());
|
|
32
|
+
return Array.isArray(j) ? j : [];
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function watchRunToCompletion(sid, agent) {
|
|
39
|
+
const watcherKey = `${sid}::${agent}`;
|
|
40
|
+
if (activeWatchers.has(watcherKey))
|
|
41
|
+
return; // 已在 watch(同一 agent 连点不重复起)
|
|
42
|
+
activeWatchers.add(watcherKey);
|
|
43
|
+
const startedAt = Date.now();
|
|
44
|
+
// 记住「我们确实看到过它在跑」的那条 run —— 只有见过 running 才认它真起来了,
|
|
45
|
+
// 避免 toolCall 后 run 尚未起来就误判「已结束」。
|
|
46
|
+
let seenRunningKey = null;
|
|
47
|
+
const stop = () => {
|
|
48
|
+
window.clearInterval(timer);
|
|
49
|
+
activeWatchers.delete(watcherKey);
|
|
50
|
+
};
|
|
51
|
+
const timer = window.setInterval(() => {
|
|
52
|
+
void (async () => {
|
|
53
|
+
if (Date.now() - startedAt > MAX_WATCH_MS) {
|
|
54
|
+
stop();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const history = await fetchNarrativeHistory();
|
|
58
|
+
if (history.length === 0)
|
|
59
|
+
return;
|
|
60
|
+
const running = history.find((e) => e.status === 'running' && !!e.id);
|
|
61
|
+
if (running) {
|
|
62
|
+
seenRunningKey = running.key;
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// 没有 running 了。若我们之前见过它在跑 → 判定结束,取它的终态去唤醒。
|
|
66
|
+
if (seenRunningKey) {
|
|
67
|
+
const entry = history.find((e) => e.key === seenRunningKey);
|
|
68
|
+
const status = entry?.status ?? 'completed';
|
|
69
|
+
stop();
|
|
70
|
+
await nudgeKotone(sid, agent, seenRunningKey, status);
|
|
71
|
+
}
|
|
72
|
+
// 还没见过 running(run 尚未起来 / 起得很快已结束)—— 继续等到超时为止。
|
|
73
|
+
})();
|
|
74
|
+
}, POLL_MS);
|
|
75
|
+
}
|
|
76
|
+
async function nudgeKotone(sid, agent, runKey, status) {
|
|
77
|
+
const completed = status === 'completed';
|
|
78
|
+
const content = completed
|
|
79
|
+
? `【叙事工坊 · 系统通知】你刚启动的管线已完成(输出目录:${runKey})。请用 narrative:get-run-status / narrative:get-story-tree / narrative:read-file 看一下产出,按你剧情师的视角给用户一段完成总结:跑了哪些环节、产出是什么、是否符合用户需求(默认符合,明显跑偏才指出并建议 narrative:regenerate-step)。`
|
|
80
|
+
: `【叙事工坊 · 系统通知】你刚启动的管线已结束,状态为「${status}」(输出目录:${runKey})。请用 narrative:get-run-status 看一下停在哪一步、为什么,给用户一句说明并建议下一步(narrative:resume-pipeline 续跑 / 重新启动等)。`;
|
|
81
|
+
await getSessionClient().emitForgeaXMessage(sid, content, {
|
|
82
|
+
to: agent,
|
|
83
|
+
type: 'user_input',
|
|
84
|
+
// session-stream 据此把它渲染成「叙事工坊」系统来信行,而非伪装成用户气泡。
|
|
85
|
+
payload: { narrativeAutoNudge: true, runKey, runStatus: status },
|
|
86
|
+
}).catch(() => {
|
|
87
|
+
/* 唤醒失败静默 —— 用户仍可手动追问,不阻塞主流程 */
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/** Boot 时调一次(main.tsx)。按 key 注册,HMR 重载会覆盖旧 handler。 */
|
|
91
|
+
export function subscribeNarrativeCopilot() {
|
|
92
|
+
getSessionClient().onSessionEvent('narrative-copilot', (e) => {
|
|
93
|
+
const ev = e.event;
|
|
94
|
+
if (!ev || ev.type !== 'hook:toolCall')
|
|
95
|
+
return;
|
|
96
|
+
const payload = ev.payload;
|
|
97
|
+
const toolName = payload.name ?? payload.toolCall?.name;
|
|
98
|
+
if (toolName !== START_TOOL)
|
|
99
|
+
return;
|
|
100
|
+
const agent = e.emitterId;
|
|
101
|
+
if (!agent)
|
|
102
|
+
return;
|
|
103
|
+
watchRunToCompletion(e.sid, agent);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** native-menu-bridge —— Tauri 原生菜单桥 (T5).
|
|
2
|
+
*
|
|
3
|
+
* 角色:把 web 端 menu-registry 的 SSOT 快照喂给原生菜单栏,把原生点击回吐给
|
|
4
|
+
* command bus。**两个方向都在这里**,让 Rust 侧完全不碰业务逻辑 (Rust 只做:
|
|
5
|
+
* JSON → Menu / id → emit)。压缩公理:菜单栏一处真源,web/native 都由它派生。
|
|
6
|
+
*
|
|
7
|
+
* 典型时序:
|
|
8
|
+
* 1. 应用启动完成、boot 完毕后,App.tsx 调 `initNativeMenuBridge(...)`;
|
|
9
|
+
* 2. 桥内:
|
|
10
|
+
* a. serializeMenusForNative(t) 取全量菜单契约
|
|
11
|
+
* b. 顶层塞 title = t('menubar.<menu>') Rust 不做 i18n
|
|
12
|
+
* c. invoke('set_app_menu', { payload }) Rust 建 Menu 并挂到 app
|
|
13
|
+
* d. listen('menu:invoke', ...) 原生点击 → command bus
|
|
14
|
+
* e. onMenuChange(rebuild) 后续注册表变 → 重新 push
|
|
15
|
+
* 3. 浏览器形态 (isTauri()===false) 全 no-op,零回归。
|
|
16
|
+
*
|
|
17
|
+
* ⚠️ Rust 侧收到的 payload 结构与 menu-registry.ts 的 `NativeMenu` 一致,
|
|
18
|
+
* 但额外带一个可选 `title` —— 我们在这里补上,契约扩展在桥内闭环,不动 T1。
|
|
19
|
+
*/
|
|
20
|
+
/** 派发接口:与 host.commands.execute 兼容,fire-and-forget。 */
|
|
21
|
+
export type MenuExecute = (id: string, args?: unknown) => void | Promise<unknown>;
|
|
22
|
+
export interface InitNativeMenuBridgeOptions {
|
|
23
|
+
/** 命令派发器 —— 通常是 (id, args) => host.commands.execute(id, args)。 */
|
|
24
|
+
execute: MenuExecute;
|
|
25
|
+
/** i18n 翻译器 —— 通常是 useTranslation().t。 */
|
|
26
|
+
translate: (key: string) => string;
|
|
27
|
+
}
|
|
28
|
+
/** 打一条链路追踪。同时走 console 和 Rust stderr —— release 的 .app 关掉了
|
|
29
|
+
* tauri 的 `devtools` feature,webview console 在那里够不着,只有转发到
|
|
30
|
+
* Rust 才能和 on_menu_event / set_app_menu 的日志汇在同一个流里比对时序。
|
|
31
|
+
*
|
|
32
|
+
* 导出给链路下游(命令落地后的 UI 环节)复用,让"事件没到"与"命令跑了但界面
|
|
33
|
+
* 没出来"在同一个流里可区分。sink 未装上前只进 console。 */
|
|
34
|
+
export declare function fxTrace(line: string): void;
|
|
35
|
+
/** Public entry —— App.tsx 在 boot 完成后调用一次。返回 Promise 让调用方能
|
|
36
|
+
* await (不必须);浏览器形态立刻 resolve()。 */
|
|
37
|
+
export declare function initNativeMenuBridge(opts: InitNativeMenuBridgeOptions): Promise<void>;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/** native-menu-bridge —— Tauri 原生菜单桥 (T5).
|
|
2
|
+
*
|
|
3
|
+
* 角色:把 web 端 menu-registry 的 SSOT 快照喂给原生菜单栏,把原生点击回吐给
|
|
4
|
+
* command bus。**两个方向都在这里**,让 Rust 侧完全不碰业务逻辑 (Rust 只做:
|
|
5
|
+
* JSON → Menu / id → emit)。压缩公理:菜单栏一处真源,web/native 都由它派生。
|
|
6
|
+
*
|
|
7
|
+
* 典型时序:
|
|
8
|
+
* 1. 应用启动完成、boot 完毕后,App.tsx 调 `initNativeMenuBridge(...)`;
|
|
9
|
+
* 2. 桥内:
|
|
10
|
+
* a. serializeMenusForNative(t) 取全量菜单契约
|
|
11
|
+
* b. 顶层塞 title = t('menubar.<menu>') Rust 不做 i18n
|
|
12
|
+
* c. invoke('set_app_menu', { payload }) Rust 建 Menu 并挂到 app
|
|
13
|
+
* d. listen('menu:invoke', ...) 原生点击 → command bus
|
|
14
|
+
* e. onMenuChange(rebuild) 后续注册表变 → 重新 push
|
|
15
|
+
* 3. 浏览器形态 (isTauri()===false) 全 no-op,零回归。
|
|
16
|
+
*
|
|
17
|
+
* ⚠️ Rust 侧收到的 payload 结构与 menu-registry.ts 的 `NativeMenu` 一致,
|
|
18
|
+
* 但额外带一个可选 `title` —— 我们在这里补上,契约扩展在桥内闭环,不动 T1。
|
|
19
|
+
*/
|
|
20
|
+
import { isTauri } from './platform/runtime';
|
|
21
|
+
import { warmRecentGames } from './recent-games';
|
|
22
|
+
import { onMenuChange, serializeMenusForNative, snapshotAllMenus, } from './menu-registry';
|
|
23
|
+
// ─── Menu id → command lookup (原生点击回吐用) ─────────────────────────────
|
|
24
|
+
/** 展平所有菜单项 (含 children),建 id → def 的索引,供 menu:invoke 回吐时 O(1)
|
|
25
|
+
* 查表。不缓存:每次点击都 fresh 一遍,让 when/enabled 变化立刻生效;菜单量级
|
|
26
|
+
* 几十项,遍历开销可忽略。 */
|
|
27
|
+
function findMenuItemById(id) {
|
|
28
|
+
const all = snapshotAllMenus();
|
|
29
|
+
for (const menuId of Object.keys(all)) {
|
|
30
|
+
const found = findInList(all[menuId], id);
|
|
31
|
+
if (found)
|
|
32
|
+
return found;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
function findInList(list, id) {
|
|
37
|
+
for (const item of list) {
|
|
38
|
+
if (item.id === id)
|
|
39
|
+
return item;
|
|
40
|
+
// Recurse into static children AND dynamic ones — a native click on a
|
|
41
|
+
// dynamically-derived row (e.g. a recent game under 打开最近) must resolve
|
|
42
|
+
// to its def so its commandId + args get dispatched. dynamicChildren is
|
|
43
|
+
// re-derived here (cache current at click time), matching what was pushed.
|
|
44
|
+
const kids = item.children && item.children.length > 0
|
|
45
|
+
? item.children
|
|
46
|
+
: item.dynamicChildren
|
|
47
|
+
? item.dynamicChildren()
|
|
48
|
+
: null;
|
|
49
|
+
if (kids && kids.length > 0) {
|
|
50
|
+
const nested = findInList(kids, id);
|
|
51
|
+
if (nested)
|
|
52
|
+
return nested;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
// ─── Trace (定位链路用) ───────────────────────────────────────────────────
|
|
58
|
+
/** Rust 侧 `fx_trace` 的句柄,init 拿到 invoke 后装上。 */
|
|
59
|
+
let traceSink = null;
|
|
60
|
+
/** 打一条链路追踪。同时走 console 和 Rust stderr —— release 的 .app 关掉了
|
|
61
|
+
* tauri 的 `devtools` feature,webview console 在那里够不着,只有转发到
|
|
62
|
+
* Rust 才能和 on_menu_event / set_app_menu 的日志汇在同一个流里比对时序。
|
|
63
|
+
*
|
|
64
|
+
* 导出给链路下游(命令落地后的 UI 环节)复用,让"事件没到"与"命令跑了但界面
|
|
65
|
+
* 没出来"在同一个流里可区分。sink 未装上前只进 console。 */
|
|
66
|
+
export function fxTrace(line) {
|
|
67
|
+
console.debug('[fx-trace]', line);
|
|
68
|
+
traceSink?.(line);
|
|
69
|
+
}
|
|
70
|
+
/** 模块内简称。 */
|
|
71
|
+
const trace = fxTrace;
|
|
72
|
+
// ─── Push (registry → native) ─────────────────────────────────────────────
|
|
73
|
+
/** 把当前注册表快照推给 Rust。失败时 warn 但不抛 —— 菜单更新失败不该让 boot
|
|
74
|
+
* 炸掉;下次 onMenuChange 会重试。 */
|
|
75
|
+
async function pushMenusToNative(invoke, translate) {
|
|
76
|
+
// Warm the recent-games cache so 打开最近's dynamicChildren serialize with a
|
|
77
|
+
// current list. Web warms on File-dropdown open; native has no such hook, so
|
|
78
|
+
// we warm here before every rebuild. Failures leave the last cache intact.
|
|
79
|
+
trace('push: warmRecentGames…');
|
|
80
|
+
await warmRecentGames();
|
|
81
|
+
trace('push: warmRecentGames done, serializing…');
|
|
82
|
+
const raw = serializeMenusForNative(translate);
|
|
83
|
+
// 补顶层 title —— 与 MenuBar.tsx 的 `t('menubar.${menu}')` 保持一致。
|
|
84
|
+
const payload = raw.map((m) => ({
|
|
85
|
+
...m,
|
|
86
|
+
title: translate(`menubar.${m.menu}`),
|
|
87
|
+
}));
|
|
88
|
+
const fileIds = raw.find((m) => m.menu === 'file')?.items.map((i) => i.id) ?? [];
|
|
89
|
+
trace(`push: serialized menus=${payload.length} file.items=[${fileIds.join(',')}]`);
|
|
90
|
+
try {
|
|
91
|
+
await invoke('set_app_menu', { payload });
|
|
92
|
+
trace('push: set_app_menu resolved');
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
trace(`push: set_app_menu REJECTED ${err?.message ?? String(err)}`);
|
|
96
|
+
console.warn('[native-menu-bridge] set_app_menu failed:', err?.message ?? err);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// ─── Init (唯一对外入口) ────────────────────────────────────────────────
|
|
100
|
+
/** 幂等标记:StrictMode 双 invoke / boot 双路径都可能重入 init,原生只该被安装一次。
|
|
101
|
+
* 一旦装上:后续调用直接返回。 */
|
|
102
|
+
let installed = false;
|
|
103
|
+
/** Public entry —— App.tsx 在 boot 完成后调用一次。返回 Promise 让调用方能
|
|
104
|
+
* await (不必须);浏览器形态立刻 resolve()。 */
|
|
105
|
+
export async function initNativeMenuBridge(opts) {
|
|
106
|
+
if (!isTauri())
|
|
107
|
+
return; // web 形态 no-op
|
|
108
|
+
if (installed)
|
|
109
|
+
return;
|
|
110
|
+
installed = true;
|
|
111
|
+
const { translate } = opts;
|
|
112
|
+
// 懒加载 Tauri API —— 与 runtime.ts 的其它加载器同风格,避免把 chunk 塞进 web bundle。
|
|
113
|
+
const [{ invoke }, eventMod] = await Promise.all([
|
|
114
|
+
import('@tauri-apps/api/core'),
|
|
115
|
+
import('@tauri-apps/api/event'),
|
|
116
|
+
]);
|
|
117
|
+
traceSink = (line) => { void invoke('fx_trace', { line }).catch(() => { }); };
|
|
118
|
+
trace('init: tauri api loaded, starting first push…');
|
|
119
|
+
// 1. 原生点击回吐 —— Rust 侧 on_menu_event emit 'menu:invoke' { id },
|
|
120
|
+
// 我们查注册表拿到 commandId + args,派发到 command bus。
|
|
121
|
+
// 先注册监听器再做首次 push:首次 push 会预热 listGames,若接口卡住,
|
|
122
|
+
// 旧菜单仍能响应点击,不会出现"菜单显示但点击无反应"的窗口。
|
|
123
|
+
await eventMod.listen('menu:invoke', (ev) => {
|
|
124
|
+
const id = ev.payload?.id;
|
|
125
|
+
trace(`recv: menu:invoke id=${String(id)}`);
|
|
126
|
+
if (!id)
|
|
127
|
+
return;
|
|
128
|
+
const def = findMenuItemById(id);
|
|
129
|
+
if (!def) {
|
|
130
|
+
// 原生菜单栏比 web 快照晚一拍时可能出现;下次 push 会对齐。
|
|
131
|
+
trace(`recv: id=${id} NOT FOUND in registry — dropped`);
|
|
132
|
+
console.warn('[native-menu-bridge] menu:invoke for unknown id:', id);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (!def.commandId) {
|
|
136
|
+
trace(`recv: id=${id} has no commandId (placeholder) — dropped`);
|
|
137
|
+
return; // 纯文本占位项,无命令。
|
|
138
|
+
}
|
|
139
|
+
trace(`dispatch: id=${id} → command '${def.commandId}' args=${JSON.stringify(def.args ?? null)}`);
|
|
140
|
+
void Promise.resolve(opts.execute(def.commandId, def.args)).then((r) => trace(`dispatch: '${def.commandId}' resolved ${JSON.stringify(r ?? null)}`), (e) => trace(`dispatch: '${def.commandId}' REJECTED ${e?.message ?? String(e)}`));
|
|
141
|
+
});
|
|
142
|
+
trace('init: menu:invoke listener registered — bridge live before first push');
|
|
143
|
+
// 2. 注册表变动 —— 后续 register/unregister/when 切换都会触发 rebuild。
|
|
144
|
+
// 在 change 时直接 fire-and-forget push;失败已在 pushMenusToNative 内吞。
|
|
145
|
+
onMenuChange(() => {
|
|
146
|
+
void pushMenusToNative(invoke, translate);
|
|
147
|
+
});
|
|
148
|
+
// 3. 首次推送 —— 让原生菜单栏与当前注册表对齐。
|
|
149
|
+
await pushMenusToNative(invoke, translate);
|
|
150
|
+
trace('init: first push returned');
|
|
151
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Lucide mapping for open document tabs — the SSOT for "what icon does
|
|
3
|
+
* this page show". Uses one pure, react-free resolver so the tab strip and
|
|
4
|
+
* overflow menu never drift on icon
|
|
5
|
+
* semantics. Follow `DESIGN-SYSTEM.md` §icon rules — no ad-hoc
|
|
6
|
+
* per-file lucide imports, no emoji.
|
|
7
|
+
*/
|
|
8
|
+
import { type LucideIcon } from 'lucide-react';
|
|
9
|
+
import type { ResourceDescriptor } from '@forgeax/types';
|
|
10
|
+
/** Coarse content family a page belongs to — the axis icons key off. */
|
|
11
|
+
export type PageKind = 'scene' | 'model' | 'image' | 'audio' | 'font' | 'pack' | 'code' | 'doc' | 'config' | 'plugin';
|
|
12
|
+
/** Derive the content family from a resource path, else from the page type id. */
|
|
13
|
+
export declare function pageKindOf(input: {
|
|
14
|
+
typeId: string;
|
|
15
|
+
resource?: ResourceDescriptor;
|
|
16
|
+
}): PageKind;
|
|
17
|
+
/** Resolve the Lucide icon for a page. Never returns undefined. */
|
|
18
|
+
export declare function iconForPage(input: {
|
|
19
|
+
typeId: string;
|
|
20
|
+
resource?: ResourceDescriptor;
|
|
21
|
+
}): LucideIcon;
|