@cats-inc/cats-platform 0.1.21 → 0.3.4
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/.env.example +3 -7
- package/README.md +35 -0
- package/build/desktop/bootstrapNavigation.d.ts.map +1 -1
- package/build/desktop/bootstrapNavigation.js +6 -13
- package/build/desktop/bootstrapNavigation.js.map +1 -1
- package/build/desktop/bootstrapPage.d.ts.map +1 -1
- package/build/desktop/bootstrapPage.js +63 -86
- package/build/desktop/bootstrapPage.js.map +1 -1
- package/build/desktop/cliInventoryProbe.d.ts +11 -2
- package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
- package/build/desktop/cliInventoryProbe.js +19 -13
- package/build/desktop/cliInventoryProbe.js.map +1 -1
- package/build/desktop/config.d.ts +0 -4
- package/build/desktop/config.d.ts.map +1 -1
- package/build/desktop/config.js +1 -6
- package/build/desktop/config.js.map +1 -1
- package/build/desktop/contracts.d.ts +12 -2
- package/build/desktop/contracts.d.ts.map +1 -1
- package/build/desktop/contracts.js +1 -2
- package/build/desktop/contracts.js.map +1 -1
- package/build/desktop/hostVersion.d.ts.map +1 -1
- package/build/desktop/hostVersion.js +3 -5
- package/build/desktop/hostVersion.js.map +1 -1
- package/build/desktop/main.js +205 -256
- package/build/desktop/main.js.map +1 -1
- package/build/desktop/packaging.d.ts +2 -0
- package/build/desktop/packaging.d.ts.map +1 -1
- package/build/desktop/packaging.js +34 -14
- package/build/desktop/packaging.js.map +1 -1
- package/build/desktop/preload.cjs +9 -0
- package/build/desktop/preload.cjs.map +1 -1
- package/build/desktop/processSupervisor.d.ts.map +1 -1
- package/build/desktop/processSupervisor.js +3 -0
- package/build/desktop/processSupervisor.js.map +1 -1
- package/build/desktop/providerManager.d.ts +46 -0
- package/build/desktop/providerManager.d.ts.map +1 -0
- package/build/desktop/providerManager.js +220 -0
- package/build/desktop/providerManager.js.map +1 -0
- package/build/desktop/providerSelection.d.ts +38 -0
- package/build/desktop/providerSelection.d.ts.map +1 -0
- package/build/desktop/providerSelection.js +118 -0
- package/build/desktop/providerSelection.js.map +1 -0
- package/build/desktop/readiness.d.ts +2 -0
- package/build/desktop/readiness.d.ts.map +1 -1
- package/build/desktop/readiness.js +14 -33
- package/build/desktop/readiness.js.map +1 -1
- package/build/desktop/setupAssets.d.ts.map +1 -1
- package/build/desktop/setupAssets.js +28 -14
- package/build/desktop/setupAssets.js.map +1 -1
- package/build/desktop/setupAudit.d.ts +4 -3
- package/build/desktop/setupAudit.d.ts.map +1 -1
- package/build/desktop/setupAudit.js +18 -34
- package/build/desktop/setupAudit.js.map +1 -1
- package/build/desktop/setupBridge.js +1 -1
- package/build/desktop/setupBridge.js.map +1 -1
- package/build/desktop/setupPrerequisites.d.ts +11 -0
- package/build/desktop/setupPrerequisites.d.ts.map +1 -0
- package/build/desktop/setupPrerequisites.js +47 -0
- package/build/desktop/setupPrerequisites.js.map +1 -0
- package/build/desktop/updateDialog.d.ts +27 -1
- package/build/desktop/updateDialog.d.ts.map +1 -1
- package/build/desktop/updateDialog.js +85 -5
- package/build/desktop/updateDialog.js.map +1 -1
- package/build/renderer/assets/ActiveSessionPermissionChip-B49WcZBJ.js +1 -0
- package/build/renderer/assets/App-BpxZB5ym.js +2 -0
- package/build/renderer/assets/App-DYTUfAl6.js +1 -0
- package/build/renderer/assets/App-DxsV-tKS.css +1 -0
- package/build/renderer/assets/{App-DKOSn0o_.js → App-boB4WrmU.js} +1 -1
- package/build/renderer/assets/WorkspaceAppRoutes-CPqz85iw.js +1 -0
- package/build/renderer/assets/app-C52wwCGz.js +85 -0
- package/build/renderer/assets/app-CqnsY5ed.css +1 -0
- package/build/renderer/assets/{client-BdGHAUoK.js → client-DREGSZqQ.js} +1 -1
- package/build/renderer/assets/conversationSidebarRecentEntries-DK0iWS73.js +6 -0
- package/build/renderer/assets/{screenshotOverlay-DfBcolX-.js → screenshotOverlay-EF07cXvw.js} +1 -1
- package/build/renderer/assets/{useDraftSessionChips-DCIId0eY.js → useDraftSessionChips-BdZ_B1gy.js} +1 -1
- package/build/renderer/desktop/overlay/index.html +2 -2
- package/build/renderer/index.html +3 -3
- package/build/server/app/renderer/auth/api.d.ts.map +1 -1
- package/build/server/app/renderer/auth/api.js +4 -1
- package/build/server/app/renderer/auth/api.js.map +1 -1
- package/build/server/app/renderer/providerCatalogClient.d.ts.map +1 -1
- package/build/server/app/renderer/providerCatalogClient.js +34 -12
- package/build/server/app/renderer/providerCatalogClient.js.map +1 -1
- package/build/server/app/renderer/providerClientInvalidation.d.ts +6 -0
- package/build/server/app/renderer/providerClientInvalidation.d.ts.map +1 -0
- package/build/server/app/renderer/providerClientInvalidation.js +12 -0
- package/build/server/app/renderer/providerClientInvalidation.js.map +1 -0
- package/build/server/app/renderer/providerReadLoop.d.ts +5 -0
- package/build/server/app/renderer/providerReadLoop.d.ts.map +1 -0
- package/build/server/app/renderer/providerReadLoop.js +52 -0
- package/build/server/app/renderer/providerReadLoop.js.map +1 -0
- package/build/server/app/renderer/providerRegistryClient.d.ts +3 -2
- package/build/server/app/renderer/providerRegistryClient.d.ts.map +1 -1
- package/build/server/app/renderer/providerRegistryClient.js +51 -53
- package/build/server/app/renderer/providerRegistryClient.js.map +1 -1
- package/build/server/app/server/appPackageRoutes.d.ts +2 -0
- package/build/server/app/server/appPackageRoutes.d.ts.map +1 -1
- package/build/server/app/server/appPackageRoutes.js +105 -0
- package/build/server/app/server/appPackageRoutes.js.map +1 -1
- package/build/server/app/server/authGatePolicy.js +14 -1
- package/build/server/app/server/authGatePolicy.js.map +1 -1
- package/build/server/app/server/contracts.d.ts +15 -0
- package/build/server/app/server/contracts.d.ts.map +1 -1
- package/build/server/app/server/dependencies.d.ts.map +1 -1
- package/build/server/app/server/dependencies.js +42 -1
- package/build/server/app/server/dependencies.js.map +1 -1
- package/build/server/app/server/goldenPathStartupResume.d.ts +55 -0
- package/build/server/app/server/goldenPathStartupResume.d.ts.map +1 -0
- package/build/server/app/server/goldenPathStartupResume.js +109 -0
- package/build/server/app/server/goldenPathStartupResume.js.map +1 -0
- package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
- package/build/server/app/server/platformSetupRoutes.js +1 -13
- package/build/server/app/server/platformSetupRoutes.js.map +1 -1
- package/build/server/app/server/polling.d.ts.map +1 -1
- package/build/server/app/server/polling.js +2 -0
- package/build/server/app/server/polling.js.map +1 -1
- package/build/server/app/server/requestRouter.d.ts.map +1 -1
- package/build/server/app/server/requestRouter.js +30 -0
- package/build/server/app/server/requestRouter.js.map +1 -1
- package/build/server/app/server/runtimeSurfaceProxy.d.ts.map +1 -1
- package/build/server/app/server/runtimeSurfaceProxy.js +4 -2
- package/build/server/app/server/runtimeSurfaceProxy.js.map +1 -1
- package/build/server/app/server/startupRecovery.d.ts.map +1 -1
- package/build/server/app/server/startupRecovery.js +5 -0
- package/build/server/app/server/startupRecovery.js.map +1 -1
- package/build/server/app/server/subscribeRoutes.d.ts.map +1 -1
- package/build/server/app/server/subscribeRoutes.js +5 -3
- package/build/server/app/server/subscribeRoutes.js.map +1 -1
- package/build/server/app/server/telegramCommandSurface.d.ts +29 -0
- package/build/server/app/server/telegramCommandSurface.d.ts.map +1 -0
- package/build/server/app/server/telegramCommandSurface.js +123 -0
- package/build/server/app/server/telegramCommandSurface.js.map +1 -0
- package/build/server/app/server/transportWorkGoldenPath.d.ts +82 -0
- package/build/server/app/server/transportWorkGoldenPath.d.ts.map +1 -0
- package/build/server/app/server/transportWorkGoldenPath.js +307 -0
- package/build/server/app/server/transportWorkGoldenPath.js.map +1 -0
- package/build/server/config.d.ts +21 -0
- package/build/server/config.d.ts.map +1 -1
- package/build/server/config.js +12 -0
- package/build/server/config.js.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.d.ts +5 -24
- package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.js +65 -70
- package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
- package/build/server/design/components/useProviderCatalogState.d.ts +2 -2
- package/build/server/design/components/useProviderCatalogState.d.ts.map +1 -1
- package/build/server/design/components/useProviderCatalogState.js +71 -151
- package/build/server/design/components/useProviderCatalogState.js.map +1 -1
- package/build/server/design/components/useProviderModelFieldActions.js +2 -2
- package/build/server/design/components/useProviderModelFieldActions.js.map +1 -1
- package/build/server/design/components/useProviderRegistryState.d.ts +1 -7
- package/build/server/design/components/useProviderRegistryState.d.ts.map +1 -1
- package/build/server/design/components/useProviderRegistryState.js +41 -104
- package/build/server/design/components/useProviderRegistryState.js.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.d.ts +1 -0
- package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.js +3 -2
- package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
- package/build/server/index.js +4 -0
- package/build/server/index.js.map +1 -1
- package/build/server/platform/apps/packageInstaller.d.ts +19 -0
- package/build/server/platform/apps/packageInstaller.d.ts.map +1 -0
- package/build/server/platform/apps/packageInstaller.js +92 -0
- package/build/server/platform/apps/packageInstaller.js.map +1 -0
- package/build/server/platform/apps/registry.d.ts +6 -0
- package/build/server/platform/apps/registry.d.ts.map +1 -1
- package/build/server/platform/apps/registry.js +24 -0
- package/build/server/platform/apps/registry.js.map +1 -1
- package/build/server/platform/apps/renderer.d.ts +6 -0
- package/build/server/platform/apps/renderer.d.ts.map +1 -0
- package/build/server/platform/apps/renderer.js +18 -0
- package/build/server/platform/apps/renderer.js.map +1 -0
- package/build/server/platform/orchestration/entitySubscriptions/channel.d.ts +2 -1
- package/build/server/platform/orchestration/entitySubscriptions/channel.d.ts.map +1 -1
- package/build/server/platform/orchestration/entitySubscriptions/channel.js +3 -18
- package/build/server/platform/orchestration/entitySubscriptions/channel.js.map +1 -1
- package/build/server/platform/orchestration/entitySubscriptions/index.d.ts +1 -0
- package/build/server/platform/orchestration/entitySubscriptions/index.d.ts.map +1 -1
- package/build/server/platform/orchestration/entitySubscriptions/index.js.map +1 -1
- package/build/server/platform/runtime/deliveryClient.d.ts +111 -0
- package/build/server/platform/runtime/deliveryClient.d.ts.map +1 -0
- package/build/server/platform/runtime/deliveryClient.js +289 -0
- package/build/server/platform/runtime/deliveryClient.js.map +1 -0
- package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts +1 -0
- package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts.map +1 -1
- package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js +10 -0
- package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js.map +1 -1
- package/build/server/platform/supervision/runtimeBoundary.d.ts +11 -1
- package/build/server/platform/supervision/runtimeBoundary.d.ts.map +1 -1
- package/build/server/platform/supervision/runtimeBoundary.js +2 -2
- package/build/server/platform/supervision/runtimeBoundary.js.map +1 -1
- package/build/server/platform/transports/telegram/bridge.d.ts +18 -0
- package/build/server/platform/transports/telegram/bridge.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/bridge.js +176 -0
- package/build/server/platform/transports/telegram/bridge.js.map +1 -1
- package/build/server/platform/transports/telegram/commandPort.d.ts +40 -0
- package/build/server/platform/transports/telegram/commandPort.d.ts.map +1 -0
- package/build/server/platform/transports/telegram/commandPort.js +17 -0
- package/build/server/platform/transports/telegram/commandPort.js.map +1 -0
- package/build/server/platform/transports/telegram/commandRouter.d.ts +22 -0
- package/build/server/platform/transports/telegram/commandRouter.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/commandRouter.js.map +1 -1
- package/build/server/platform/transports/telegram/commands/index.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/commands/index.js +38 -0
- package/build/server/platform/transports/telegram/commands/index.js.map +1 -1
- package/build/server/platform/transports/telegram/ingressDispatch.d.ts +56 -0
- package/build/server/platform/transports/telegram/ingressDispatch.d.ts.map +1 -0
- package/build/server/platform/transports/telegram/ingressDispatch.js +93 -0
- package/build/server/platform/transports/telegram/ingressDispatch.js.map +1 -0
- package/build/server/platform/transports/telegram/polling.d.ts +34 -0
- package/build/server/platform/transports/telegram/polling.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/polling.js +86 -9
- package/build/server/platform/transports/telegram/polling.js.map +1 -1
- package/build/server/platform/transports/telegram/relay/index.d.ts +3 -0
- package/build/server/platform/transports/telegram/relay/index.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/relay/index.js +5 -1
- package/build/server/platform/transports/telegram/relay/index.js.map +1 -1
- package/build/server/platform/transports/telegram/relay/ingress.d.ts +2 -0
- package/build/server/platform/transports/telegram/relay/ingress.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/relay/ingress.js +1 -1
- package/build/server/platform/transports/telegram/relay/ingress.js.map +1 -1
- package/build/server/platform/transports/work-delivery/actionTokens.d.ts +66 -0
- package/build/server/platform/transports/work-delivery/actionTokens.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/actionTokens.js +145 -0
- package/build/server/platform/transports/work-delivery/actionTokens.js.map +1 -0
- package/build/server/platform/transports/work-delivery/contracts.d.ts +172 -0
- package/build/server/platform/transports/work-delivery/contracts.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/contracts.js +26 -0
- package/build/server/platform/transports/work-delivery/contracts.js.map +1 -0
- package/build/server/platform/transports/work-delivery/deliveryGates.d.ts +32 -0
- package/build/server/platform/transports/work-delivery/deliveryGates.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/deliveryGates.js +45 -0
- package/build/server/platform/transports/work-delivery/deliveryGates.js.map +1 -0
- package/build/server/platform/transports/work-delivery/inboundClassification.d.ts +31 -0
- package/build/server/platform/transports/work-delivery/inboundClassification.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/inboundClassification.js +52 -0
- package/build/server/platform/transports/work-delivery/inboundClassification.js.map +1 -0
- package/build/server/platform/transports/work-delivery/outbox.d.ts +84 -0
- package/build/server/platform/transports/work-delivery/outbox.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/outbox.js +270 -0
- package/build/server/platform/transports/work-delivery/outbox.js.map +1 -0
- package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts +57 -0
- package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/permissionEnvelope.js +74 -0
- package/build/server/platform/transports/work-delivery/permissionEnvelope.js.map +1 -0
- package/build/server/platform/transports/work-delivery/port.d.ts +60 -0
- package/build/server/platform/transports/work-delivery/port.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/port.js +15 -0
- package/build/server/platform/transports/work-delivery/port.js.map +1 -0
- package/build/server/platform/transports/work-delivery/proposal.d.ts +31 -0
- package/build/server/platform/transports/work-delivery/proposal.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/proposal.js +59 -0
- package/build/server/platform/transports/work-delivery/proposal.js.map +1 -0
- package/build/server/platform/transports/work-delivery/readiness.d.ts +61 -0
- package/build/server/platform/transports/work-delivery/readiness.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/readiness.js +123 -0
- package/build/server/platform/transports/work-delivery/readiness.js.map +1 -0
- package/build/server/platform/transports/work-delivery/stageProjection.d.ts +43 -0
- package/build/server/platform/transports/work-delivery/stageProjection.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/stageProjection.js +132 -0
- package/build/server/platform/transports/work-delivery/stageProjection.js.map +1 -0
- package/build/server/platform/transports/work-delivery/stateStore.d.ts +21 -0
- package/build/server/platform/transports/work-delivery/stateStore.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/stateStore.js +193 -0
- package/build/server/platform/transports/work-delivery/stateStore.js.map +1 -0
- package/build/server/platform/transports/work-delivery/telemetry.d.ts +49 -0
- package/build/server/platform/transports/work-delivery/telemetry.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/telemetry.js +80 -0
- package/build/server/platform/transports/work-delivery/telemetry.js.map +1 -0
- package/build/server/products/chat/api/contracts.d.ts +10 -0
- package/build/server/products/chat/api/contracts.d.ts.map +1 -1
- package/build/server/products/chat/api/resources/channelRoutes.d.ts.map +1 -1
- package/build/server/products/chat/api/resources/channelRoutes.js +27 -1
- package/build/server/products/chat/api/resources/channelRoutes.js.map +1 -1
- package/build/server/products/chat/api/routeSupport.d.ts +17 -1
- package/build/server/products/chat/api/routeSupport.d.ts.map +1 -1
- package/build/server/products/chat/api/routeSupport.js +27 -4
- package/build/server/products/chat/api/routeSupport.js.map +1 -1
- package/build/server/products/chat/api/setupRoutes.d.ts.map +1 -1
- package/build/server/products/chat/api/setupRoutes.js +23 -8
- package/build/server/products/chat/api/setupRoutes.js.map +1 -1
- package/build/server/products/chat/state/model/channelExecutionTargets.d.ts +15 -0
- package/build/server/products/chat/state/model/channelExecutionTargets.d.ts.map +1 -1
- package/build/server/products/chat/state/model/channelExecutionTargets.js +25 -0
- package/build/server/products/chat/state/model/channelExecutionTargets.js.map +1 -1
- package/build/server/products/chat/state/model/index.d.ts +1 -1
- package/build/server/products/chat/state/model/index.d.ts.map +1 -1
- package/build/server/products/chat/state/model/index.js +1 -1
- package/build/server/products/chat/state/model/index.js.map +1 -1
- package/build/server/products/chat/state/model/readModels.d.ts +1 -0
- package/build/server/products/chat/state/model/readModels.d.ts.map +1 -1
- package/build/server/products/chat/state/model/readModels.js +2 -1
- package/build/server/products/chat/state/model/readModels.js.map +1 -1
- package/build/server/products/code/api/relayRoutes.d.ts.map +1 -1
- package/build/server/products/code/api/relayRoutes.js +36 -7
- package/build/server/products/code/api/relayRoutes.js.map +1 -1
- package/build/server/products/code/state/relayState.d.ts +2 -1
- package/build/server/products/code/state/relayState.d.ts.map +1 -1
- package/build/server/products/code/state/relayState.js +7 -7
- package/build/server/products/code/state/relayState.js.map +1 -1
- package/build/server/products/shared/api/workspaceContracts.d.ts +5 -0
- package/build/server/products/shared/api/workspaceContracts.d.ts.map +1 -1
- package/build/server/products/shared/renderer/api/appShell.d.ts +1 -0
- package/build/server/products/shared/renderer/api/appShell.d.ts.map +1 -1
- package/build/server/products/shared/renderer/api/appShell.js +9 -0
- package/build/server/products/shared/renderer/api/appShell.js.map +1 -1
- package/build/server/products/work/api/goldenPathProjection.d.ts +156 -0
- package/build/server/products/work/api/goldenPathProjection.d.ts.map +1 -0
- package/build/server/products/work/api/goldenPathProjection.js +252 -0
- package/build/server/products/work/api/goldenPathProjection.js.map +1 -0
- package/build/server/products/work/api/index.d.ts +54 -1
- package/build/server/products/work/api/index.d.ts.map +1 -1
- package/build/server/products/work/api/index.js +182 -4
- package/build/server/products/work/api/index.js.map +1 -1
- package/build/server/products/work/api/projection.d.ts +7 -1
- package/build/server/products/work/api/projection.d.ts.map +1 -1
- package/build/server/products/work/api/projection.js +7 -1
- package/build/server/products/work/api/projection.js.map +1 -1
- package/build/server/products/work/shared/apiPaths.d.ts +8 -0
- package/build/server/products/work/shared/apiPaths.d.ts.map +1 -1
- package/build/server/products/work/shared/apiPaths.js +8 -0
- package/build/server/products/work/shared/apiPaths.js.map +1 -1
- package/build/server/products/work/shared/workGoldenPathMessages.d.ts +83 -0
- package/build/server/products/work/shared/workGoldenPathMessages.d.ts.map +1 -0
- package/build/server/products/work/shared/workGoldenPathMessages.js +211 -0
- package/build/server/products/work/shared/workGoldenPathMessages.js.map +1 -0
- package/build/server/products/work/shared/workGoldenPathMetadata.d.ts +45 -0
- package/build/server/products/work/shared/workGoldenPathMetadata.d.ts.map +1 -0
- package/build/server/products/work/shared/workGoldenPathMetadata.js +122 -0
- package/build/server/products/work/shared/workGoldenPathMetadata.js.map +1 -0
- package/build/server/products/work/state/workCompletionEvidence.d.ts +42 -0
- package/build/server/products/work/state/workCompletionEvidence.d.ts.map +1 -0
- package/build/server/products/work/state/workCompletionEvidence.js +59 -0
- package/build/server/products/work/state/workCompletionEvidence.js.map +1 -0
- package/build/server/products/work/state/workExecutionTaskDelegate.d.ts +16 -0
- package/build/server/products/work/state/workExecutionTaskDelegate.d.ts.map +1 -1
- package/build/server/products/work/state/workExecutionTaskDelegate.js +91 -68
- package/build/server/products/work/state/workExecutionTaskDelegate.js.map +1 -1
- package/build/server/products/work/state/workGoldenPathAdmission.d.ts +78 -0
- package/build/server/products/work/state/workGoldenPathAdmission.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathAdmission.js +249 -0
- package/build/server/products/work/state/workGoldenPathAdmission.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts +33 -0
- package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js +161 -0
- package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathIntake.d.ts +34 -0
- package/build/server/products/work/state/workGoldenPathIntake.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathIntake.js +50 -0
- package/build/server/products/work/state/workGoldenPathIntake.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathLifecycle.d.ts +44 -0
- package/build/server/products/work/state/workGoldenPathLifecycle.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathLifecycle.js +146 -0
- package/build/server/products/work/state/workGoldenPathLifecycle.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathPublish.d.ts +84 -0
- package/build/server/products/work/state/workGoldenPathPublish.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathPublish.js +488 -0
- package/build/server/products/work/state/workGoldenPathPublish.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathRunner.d.ts +121 -0
- package/build/server/products/work/state/workGoldenPathRunner.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathRunner.js +447 -0
- package/build/server/products/work/state/workGoldenPathRunner.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts +74 -0
- package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js +239 -0
- package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathService.d.ts +152 -0
- package/build/server/products/work/state/workGoldenPathService.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathService.js +1057 -0
- package/build/server/products/work/state/workGoldenPathService.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts +87 -0
- package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathTelegramPort.js +220 -0
- package/build/server/products/work/state/workGoldenPathTelegramPort.js.map +1 -0
- package/build/server/runtime/client.d.ts +13 -0
- package/build/server/runtime/client.d.ts.map +1 -1
- package/build/server/runtime/client.js +44 -1
- package/build/server/runtime/client.js.map +1 -1
- package/build/server/runtime/setup.d.ts +14 -4
- package/build/server/runtime/setup.d.ts.map +1 -1
- package/build/server/runtime/setup.js +17 -19
- package/build/server/runtime/setup.js.map +1 -1
- package/build/server/runtime/usageSnapshot.d.ts +3 -0
- package/build/server/runtime/usageSnapshot.d.ts.map +1 -0
- package/build/server/runtime/usageSnapshot.js +69 -0
- package/build/server/runtime/usageSnapshot.js.map +1 -0
- package/build/server/server/routes/providerCapabilityBootstrap.d.ts +69 -0
- package/build/server/server/routes/providerCapabilityBootstrap.d.ts.map +1 -0
- package/build/server/server/routes/providerCapabilityBootstrap.js +165 -0
- package/build/server/server/routes/providerCapabilityBootstrap.js.map +1 -0
- package/build/server/server/routes/providers.d.ts.map +1 -1
- package/build/server/server/routes/providers.js +133 -131
- package/build/server/server/routes/providers.js.map +1 -1
- package/build/server/server/routes/telegram.d.ts +9 -0
- package/build/server/server/routes/telegram.d.ts.map +1 -1
- package/build/server/server/routes/telegram.js +79 -72
- package/build/server/server/routes/telegram.js.map +1 -1
- package/build/server/shared/catsAppManifest.d.ts +3 -1
- package/build/server/shared/catsAppManifest.d.ts.map +1 -1
- package/build/server/shared/catsAppManifest.js +2 -0
- package/build/server/shared/catsAppManifest.js.map +1 -1
- package/build/server/shared/desktopRecoveryBridge.d.ts +2 -1
- package/build/server/shared/desktopRecoveryBridge.d.ts.map +1 -1
- package/build/server/shared/desktopRecoveryBridge.js.map +1 -1
- package/build/server/shared/executionLabel.d.ts.map +1 -1
- package/build/server/shared/executionLabel.js +8 -1
- package/build/server/shared/executionLabel.js.map +1 -1
- package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/en.js +198 -3
- package/build/server/shared/i18n/catalogs/en.js.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.js +197 -3
- package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
- package/build/server/shared/i18n/index.d.ts +192 -0
- package/build/server/shared/i18n/index.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.d.ts +192 -0
- package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.js +192 -0
- package/build/server/shared/i18n/messageKeys.js.map +1 -1
- package/build/server/shared/platformSetupOperation.d.ts +2 -0
- package/build/server/shared/platformSetupOperation.d.ts.map +1 -0
- package/build/server/shared/platformSetupOperation.js +9 -0
- package/build/server/shared/platformSetupOperation.js.map +1 -0
- package/build/server/shared/providerCatalog.d.ts +5 -2
- package/build/server/shared/providerCatalog.d.ts.map +1 -1
- package/build/server/shared/providerCatalog.js +6 -0
- package/build/server/shared/providerCatalog.js.map +1 -1
- package/build/server/shared/providerCatalogData.d.ts +154 -77
- package/build/server/shared/providerCatalogData.d.ts.map +1 -1
- package/build/server/shared/providerCatalogData.js +73 -36
- package/build/server/shared/providerCatalogData.js.map +1 -1
- package/build/server/shared/providerCatalogInstances.d.ts.map +1 -1
- package/build/server/shared/providerCatalogInstances.js +3 -0
- package/build/server/shared/providerCatalogInstances.js.map +1 -1
- package/build/server/shared/providerModelLabelRegistry.d.ts +29 -0
- package/build/server/shared/providerModelLabelRegistry.d.ts.map +1 -0
- package/build/server/shared/providerModelLabelRegistry.js +49 -0
- package/build/server/shared/providerModelLabelRegistry.js.map +1 -0
- package/build/server/shared/providerRegistryWarnings.d.ts +4 -0
- package/build/server/shared/providerRegistryWarnings.d.ts.map +1 -1
- package/build/server/shared/providerRegistryWarnings.js +7 -0
- package/build/server/shared/providerRegistryWarnings.js.map +1 -1
- package/build/server/shared/providerSelection.d.ts.map +1 -1
- package/build/server/shared/providerSelection.js +10 -13
- package/build/server/shared/providerSelection.js.map +1 -1
- package/build/server/shared/runtimeSetup.d.ts +17 -4
- package/build/server/shared/runtimeSetup.d.ts.map +1 -1
- package/build/server/shared/runtimeStatusPresentation.js +1 -1
- package/build/server/shared/runtimeStatusPresentation.js.map +1 -1
- package/package.json +32 -3
- package/packages/app-sdk/browser.d.ts +51 -0
- package/packages/app-sdk/browser.js +48 -0
- package/packages/app-sdk/package.d.ts +14 -0
- package/packages/app-sdk/package.js +131 -0
- package/packages/app-sdk/package.json +7 -0
- package/packages/provider-setup/manager.d.ts +79 -0
- package/packages/provider-setup/manager.js +441 -0
- package/scripts/README.md +66 -26
- package/scripts/build-desktop-installer.mjs +139 -16
- package/scripts/build-test-ui.mjs +1 -1
- package/scripts/bundle-server.mjs +23 -10
- package/scripts/linux/build-desktop-package.sh +6 -6
- package/scripts/linux/install-antigravity.sh +0 -0
- package/scripts/linux/install-devin.sh +0 -0
- package/scripts/linux/install-github-cli.sh +5 -0
- package/scripts/linux/install-meta-cli.sh +8 -0
- package/scripts/linux/install-node.sh +9 -3
- package/scripts/linux/node-cli-common.sh +87 -48
- package/scripts/linux/provider-cli-common.sh +178 -130
- package/scripts/linux/provider-version-common.sh +247 -0
- package/scripts/linux/sync-agent-skills.sh +27 -5
- package/scripts/linux/test-linux-package-smoke.sh +6 -3
- package/scripts/linux/upgrade-cli-tools.sh +1 -1
- package/scripts/linux/verified-npm-update.sh +20 -0
- package/scripts/macos/build-desktop-package.sh +5 -5
- package/scripts/macos/install-antigravity.sh +0 -0
- package/scripts/macos/install-devin.sh +0 -0
- package/scripts/macos/install-github-cli.sh +5 -0
- package/scripts/macos/install-meta-cli.sh +8 -0
- package/scripts/macos/install-node.sh +9 -3
- package/scripts/macos/node-cli-common.sh +87 -48
- package/scripts/macos/provider-cli-common.sh +178 -130
- package/scripts/macos/provider-version-common.sh +247 -0
- package/scripts/macos/sync-agent-skills.sh +27 -5
- package/scripts/macos/test-macos-package-smoke.sh +6 -3
- package/scripts/macos/upgrade-cli-tools.sh +1 -1
- package/scripts/macos/verified-npm-update.sh +20 -0
- package/scripts/package-desktop.mjs +15 -2
- package/scripts/testing/check-usage-app.mts +266 -0
- package/scripts/testing/conversation-navigation-smoke-electron.cjs +134 -0
- package/scripts/testing/conversation-navigation-smoke-renderer.tsx +102 -0
- package/scripts/testing/conversation-navigation-smoke.mjs +67 -0
- package/scripts/testing/usage-app-smoke-electron.cjs +10 -0
- package/scripts/testing/usage-app-smoke-renderer.tsx +8 -0
- package/scripts/validate-release-assets.mjs +4 -1
- package/scripts/verify-desktop-app-bundle.mjs +108 -0
- package/scripts/windows/Build-DesktopPackage.ps1 +9 -6
- package/scripts/windows/Install-Antigravity.ps1 +26 -3
- package/scripts/windows/Install-ClaudeCode.ps1 +25 -7
- package/scripts/windows/Install-CursorAgent.ps1 +45 -30
- package/scripts/windows/Install-Devin.ps1 +16 -47
- package/scripts/windows/Install-GitHubCli.ps1 +4 -0
- package/scripts/windows/Install-Goose.ps1 +18 -1
- package/scripts/windows/Install-Grok.ps1 +14 -1
- package/scripts/windows/Install-Junie.ps1 +32 -11
- package/scripts/windows/Install-KiroCli.ps1 +37 -13
- package/scripts/windows/Install-MetaCli.ps1 +463 -0
- package/scripts/windows/Install-Node.ps1 +6 -1
- package/scripts/windows/Install-Ollama.ps1 +4 -1
- package/scripts/windows/Setup-NodeGlobalPrefix.ps1 +10 -0
- package/scripts/windows/Sync-AgentSkills.ps1 +29 -6
- package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +4 -1
- package/scripts/windows/_HiddenProcess.ps1 +14 -3
- package/scripts/windows/_NativeInstallerSupport.ps1 +308 -0
- package/scripts/windows/_NpmCliInstaller.ps1 +35 -14
- package/scripts/windows/_PackagedUninstall.ps1 +9 -1
- package/scripts/windows/_VerifiedNpmUpdate.ps1 +25 -0
- package/build/desktop/updateNotifications.d.ts +0 -64
- package/build/desktop/updateNotifications.d.ts.map +0 -1
- package/build/desktop/updateNotifications.js +0 -143
- package/build/desktop/updateNotifications.js.map +0 -1
- package/build/renderer/assets/ActiveSessionPermissionChip-DImsuR9T.js +0 -1
- package/build/renderer/assets/App-BfOvMP2m.js +0 -1
- package/build/renderer/assets/App-DGwkRFZl.css +0 -1
- package/build/renderer/assets/App-DWd7I3Z2.js +0 -2
- package/build/renderer/assets/WorkspaceAppRoutes-CrbTA9En.js +0 -1
- package/build/renderer/assets/app-BTww3Hl4.js +0 -43
- package/build/renderer/assets/app-CPxWQwLA.css +0 -1
- package/build/renderer/assets/conversationSidebarRecentEntries-QuaOPxCb.js +0 -6
- package/build/server/app/renderer/settings/runtimeLifecycleHelpers.d.ts +0 -48
- package/build/server/app/renderer/settings/runtimeLifecycleHelpers.d.ts.map +0 -1
- package/build/server/app/renderer/settings/runtimeLifecycleHelpers.js +0 -535
- package/build/server/app/renderer/settings/runtimeLifecycleHelpers.js.map +0 -1
- package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts +0 -13
- package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts.map +0 -1
- package/build/server/design/components/useProviderRegistryAutoRecheck.js +0 -63
- package/build/server/design/components/useProviderRegistryAutoRecheck.js.map +0 -1
- package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.d.ts +0 -19
- package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.d.ts.map +0 -1
- package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.js +0 -53
- package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.js.map +0 -1
- package/build/server/products/shared/renderer/api/providers.d.ts +0 -17
- package/build/server/products/shared/renderer/api/providers.d.ts.map +0 -1
- package/build/server/products/shared/renderer/api/providers.js +0 -50
- package/build/server/products/shared/renderer/api/providers.js.map +0 -1
- package/scripts/linux/install-aider.sh +0 -8
- package/scripts/macos/install-aider.sh +0 -8
- package/scripts/windows/Install-Aider.ps1 +0 -368
package/.env.example
CHANGED
|
@@ -29,12 +29,8 @@ CATS_PLATFORM_STARTUP_TRACE=false
|
|
|
29
29
|
# Advanced desktop escape hatch. Uncomment to force quit-on-close even if the
|
|
30
30
|
# in-app system tray preference is enabled.
|
|
31
31
|
# CATS_DESKTOP_FORCE_QUIT_ON_CLOSE=true
|
|
32
|
-
#
|
|
33
|
-
#
|
|
34
|
-
CATS_DESKTOP_SETUP_AUDIT_PARALLEL=true
|
|
35
|
-
# Desktop first-run onboarding policy. Default setup_status shows the packaged
|
|
36
|
-
# CLI installer page before /setup when setup is not complete, without blocking
|
|
37
|
-
# on CLI inventory. Use cli_inventory_gate to restore the zero-CLI gate.
|
|
32
|
+
# Desktop first run selects providers before running selected setup checks.
|
|
33
|
+
# A saved empty selection permits continuing without installing a CLI.
|
|
38
34
|
CATS_DESKTOP_BOOTSTRAP_ONBOARDING_MODE=setup_status
|
|
39
35
|
# Mobile pairing is on by default. Set to false to hide Settings > Desktop >
|
|
40
36
|
# Mobile pairing entirely and short-circuit `/api/mobile/*`. For same-LAN
|
|
@@ -105,7 +101,7 @@ CATS_RUNTIME_SESSION_CREATE_TIMEOUT_MS=
|
|
|
105
101
|
CATS_RUNTIME_SESSION_CREATE_SLOW_WARNING_MS=
|
|
106
102
|
# Idle timeout (ms) for an in-flight runtime stream/turn. Default 120000.
|
|
107
103
|
CATS_RUNTIME_MESSAGE_IDLE_TIMEOUT_MS=
|
|
108
|
-
# Proxy budget (ms) for
|
|
104
|
+
# Proxy budget (ms) for setup selection writes/reloads and /setup-scan.
|
|
109
105
|
# Default 30000. A scan is started, not awaited -- the runtime answers 202 and
|
|
110
106
|
# progress is read from /setup-state -- so this bounds a wedged runtime, not the
|
|
111
107
|
# length of a provider scan.
|
package/README.md
CHANGED
|
@@ -5,6 +5,19 @@
|
|
|
5
5
|
|
|
6
6
|
## Overview
|
|
7
7
|
|
|
8
|
+
Official utility Apps (2026-09-10): **Usage** (`cats.usage`) is built in `cats-apps`
|
|
9
|
+
and loaded through this repo's verified renderer host and App SDK v1. Desktop
|
|
10
|
+
packaging accepts `--apps-lock` for exact App versions and SHA-256 hashes; no App
|
|
11
|
+
source checkout is needed. The 0.2.5 preview selection pins published Usage 0.2.0 for
|
|
12
|
+
automatic offline installation on first launch. See the [build/install guide](./docs/app-packages.md).
|
|
13
|
+
SDK 1.2 (2026-09-11) supports explicit native
|
|
14
|
+
Codex/Copilot/Claude/Antigravity quota queries and native quantities through the
|
|
15
|
+
permission-checked Runtime bridge. Usage 0.2.0 passed built-package browser checks;
|
|
16
|
+
the coordinated Desktop 0.2.5 preview selects its published version/hash and the
|
|
17
|
+
merged Runtime quota/skill-root revision. Existing 0.2.4 / Usage 0.1.1 installers
|
|
18
|
+
and the user's installed Desktop are not modified by preparing this release.
|
|
19
|
+
Remote catalog/independent updates and scheduled account polling remain deferred.
|
|
20
|
+
|
|
8
21
|
This standalone repo hosts the platform host, packaged as `@cats-inc/cats-platform`
|
|
9
22
|
(extracted from the original monorepo in 2026-07 with full history).
|
|
10
23
|
It talks to `cats-runtime` as its execution boundary and keeps its application
|
|
@@ -15,6 +28,11 @@ Naming across the project: `Cats` is the name of this application,
|
|
|
15
28
|
boundary, and `cats-one` is the one-shot bootstrap installer path. The
|
|
16
29
|
persistent host executable is `cats-platform`.
|
|
17
30
|
|
|
31
|
+
Desktop provider setup (2026-09-16): onboarding and Settings > Runtime share
|
|
32
|
+
provider selection, per-provider detection/installation and endpoint checks.
|
|
33
|
+
Apply saves the selected scope to Runtime; detection is optional and missing
|
|
34
|
+
providers do not prevent completion. See [PLAN-107](./docs/plans/PLAN-107-desktop-provider-management.md).
|
|
35
|
+
|
|
18
36
|
The current slices are:
|
|
19
37
|
|
|
20
38
|
- a Node app/runtime core on `CATS_PORT` (default `8181`, with `CATS_INC_PORT`
|
|
@@ -76,6 +94,23 @@ The current slices are:
|
|
|
76
94
|
|
|
77
95
|
## Current Status
|
|
78
96
|
|
|
97
|
+
- [x] Correct first-run Catlas setup in Desktop 0.2.10: read the selected
|
|
98
|
+
provider/model catalogs before the first Admin session exists, then
|
|
99
|
+
require authentication after setup. Isolated HTTP and browser checks
|
|
100
|
+
cover both steps through account creation with auth enabled.
|
|
101
|
+
|
|
102
|
+
- [x] Ship shared provider onboarding and Settings in
|
|
103
|
+
[Desktop 0.2.9 unsigned preview](https://github.com/cats-inc/cats-platform/releases/tag/v0.2.9),
|
|
104
|
+
with Runtime 0.1.24, optional detection after Apply, scoped installation,
|
|
105
|
+
retained results, and Windows/macOS/Linux helper updates. All release jobs
|
|
106
|
+
passed; the public updater feed resolves 0.2.9 for all three release targets.
|
|
107
|
+
See [PLAN-107](./docs/plans/PLAN-107-desktop-provider-management.md).
|
|
108
|
+
|
|
109
|
+
- [x] Save Runtime-owned provider selection before Desktop inventory and helpers;
|
|
110
|
+
scope product provider/model choices by exact target and config revision.
|
|
111
|
+
Explicit empty selection supports idle mode. Native installer acceptance
|
|
112
|
+
remains tracked in the shared [bootstrap rollout plan](../cats-runtime/docs/plans/PLAN-039-provider-selection-bootstrap-rollout.md).
|
|
113
|
+
|
|
79
114
|
- [x] Bootstrap `cats-platform/` from `project-bootstrap`
|
|
80
115
|
- [x] Establish `cats-runtime` as the only runtime boundary
|
|
81
116
|
- [x] Add a minimal Node/TypeScript HTTP entrypoint and smoke tests
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapNavigation.d.ts","sourceRoot":"","sources":["../../desktop/host/bootstrapNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,KAAK,WAAW,GAAG,IAAI,CAAC,wBAAwB,EAAE,OAAO,GAAG,KAAK,GAAG,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrapNavigation.d.ts","sourceRoot":"","sources":["../../desktop/host/bootstrapNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,KAAK,WAAW,GAAG,IAAI,CAAC,wBAAwB,EAAE,OAAO,GAAG,KAAK,GAAG,eAAe,CAAC,CAAC;AAmBrF,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,GACA,MAAM,GAAG,IAAI,CAyBf;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;CAChC,GAAG,OAAO,CAEV;AAED,wBAAgB,2CAA2C,CAAC,OAAO,EAAE;IACnE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,OAAO,CAAC;CAChC,GAAG,OAAO,CAEV;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;IACP,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;CAChC,GACA,OAAO,CAST;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,OAAO,CAAC;CAC/B,GACA,MAAM,GAAG,IAAI,CASf"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
&& snapshot.prerequisites
|
|
5
|
-
&& snapshot.prerequisites.cliInventory
|
|
6
|
-
&& snapshot.prerequisites.cliInventory.source === 'runtime'
|
|
7
|
-
&& snapshot.prerequisites.cliInventory.total === 0);
|
|
1
|
+
function isSelectionRequired(snapshot) {
|
|
2
|
+
const selection = snapshot.prerequisites?.providerSelection;
|
|
3
|
+
return selection?.state === 'missing' || selection?.state === 'invalid';
|
|
8
4
|
}
|
|
9
5
|
function isSetupComplete(snapshot) {
|
|
10
6
|
return Boolean(snapshot.app.setupCompleted || snapshot.app.setupCompleteAt);
|
|
@@ -12,7 +8,7 @@ function isSetupComplete(snapshot) {
|
|
|
12
8
|
function shouldShowSetupStatusOnboarding(snapshot) {
|
|
13
9
|
return Boolean(snapshot.phase === 'ready_for_setup'
|
|
14
10
|
&& snapshot.app.onboardingMode === 'setup_status'
|
|
15
|
-
&& !isSetupComplete(snapshot));
|
|
11
|
+
&& (!isSetupComplete(snapshot) || isSelectionRequired(snapshot)));
|
|
16
12
|
}
|
|
17
13
|
export function resolveDesktopBootstrapNavigation(snapshot, options) {
|
|
18
14
|
if (!options.showWindowOnStartup) {
|
|
@@ -27,10 +23,7 @@ export function resolveDesktopBootstrapNavigation(snapshot, options) {
|
|
|
27
23
|
if (snapshot.phase === 'ready_for_chat') {
|
|
28
24
|
return `${options.appBaseUrl}${snapshot.app.entryPath}`;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
|
-
// setupCompleteAt so the user lands on the install UI instead of an
|
|
32
|
-
// empty-shell chat (or, post-setup, on a chat that can't reach any CLI).
|
|
33
|
-
if (snapshot.phase === 'needs_prerequisites' && isCliMissing(snapshot)) {
|
|
26
|
+
if (isSelectionRequired(snapshot)) {
|
|
34
27
|
return null;
|
|
35
28
|
}
|
|
36
29
|
if (snapshot.phase === 'needs_prerequisites' && isSetupComplete(snapshot)) {
|
|
@@ -51,7 +44,7 @@ export function shouldRevealDesktopBootstrapRecovery(snapshot, options) {
|
|
|
51
44
|
return snapshot.phase === 'failed'
|
|
52
45
|
|| shouldShowSetupStatusOnboarding(snapshot)
|
|
53
46
|
|| (snapshot.phase === 'needs_prerequisites'
|
|
54
|
-
&& (!isSetupComplete(snapshot) ||
|
|
47
|
+
&& (!isSetupComplete(snapshot) || isSelectionRequired(snapshot)));
|
|
55
48
|
}
|
|
56
49
|
export function resolveDesktopWindowRevealNavigation(snapshot, options) {
|
|
57
50
|
if (!options.bootstrapPageVisible || !snapshot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapNavigation.js","sourceRoot":"","sources":["../../desktop/host/bootstrapNavigation.ts"],"names":[],"mappings":"AAIA,SAAS,
|
|
1
|
+
{"version":3,"file":"bootstrapNavigation.js","sourceRoot":"","sources":["../../desktop/host/bootstrapNavigation.ts"],"names":[],"mappings":"AAIA,SAAS,mBAAmB,CAAC,QAAqB;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC5D,OAAO,SAAS,EAAE,KAAK,KAAK,SAAS,IAAI,SAAS,EAAE,KAAK,KAAK,SAAS,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CAAC,QAAqB;IAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,IAAI,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAqB;IAC5D,OAAO,OAAO,CACZ,QAAQ,CAAC,KAAK,KAAK,iBAAiB;WAC/B,QAAQ,CAAC,GAAG,CAAC,cAAc,KAAK,cAAc;WAC9C,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,QAAqB,EACrB,OAGC;IAED,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;QACzC,IAAI,+BAA+B,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,UAAU,QAAQ,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;QACxC,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC1D,CAAC;IAED,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,qBAAqB,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1E,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC1D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAG9C;IACC,OAAO,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,qBAAqB,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,2CAA2C,CAAC,OAG3D;IACC,OAAO,OAAO,CAAC,oBAAoB,IAAI,OAAO,CAAC,qBAAqB,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,QAAqB,EACrB,OAGC;IAED,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;WAC7B,+BAA+B,CAAC,QAAQ,CAAC;WACzC,CAAC,QAAQ,CAAC,KAAK,KAAK,qBAAqB;eACvC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,QAA4B,EAC5B,OAGC;IAED,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,iCAAiC,CAAC,QAAQ,EAAE;QACjD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapPage.d.ts","sourceRoot":"","sources":["../../desktop/host/bootstrapPage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bootstrapPage.d.ts","sourceRoot":"","sources":["../../desktop/host/bootstrapPage.ts"],"names":[],"mappings":"AAEA,wBAAgB,yBAAyB,IAAI,MAAM,CAsxFlD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mountProviderManager } from '../../packages/provider-setup/manager.js';
|
|
1
2
|
export function buildDesktopBootstrapPage() {
|
|
2
3
|
return `<!doctype html>
|
|
3
4
|
<html lang="en">
|
|
@@ -399,10 +400,14 @@ export function buildDesktopBootstrapPage() {
|
|
|
399
400
|
display: flex;
|
|
400
401
|
flex-direction: column;
|
|
401
402
|
align-items: center;
|
|
402
|
-
min-height:
|
|
403
|
-
padding:
|
|
403
|
+
min-height: 100dvh;
|
|
404
|
+
padding: clamp(32px, 16vh, 160px) 24px 56px;
|
|
404
405
|
text-align: center;
|
|
405
406
|
}
|
|
407
|
+
.onboarding-page > .hero { flex-shrink: 0; }
|
|
408
|
+
.onboarding-page > .catsProviderManager {
|
|
409
|
+
width: 100%; margin: 0 auto;
|
|
410
|
+
}
|
|
406
411
|
.onboarding-headline {
|
|
407
412
|
font-size: 0.92rem;
|
|
408
413
|
color: var(--muted);
|
|
@@ -487,7 +492,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
487
492
|
.actions { flex-direction: column; }
|
|
488
493
|
.btn { width: 100%; }
|
|
489
494
|
.error-actions { flex-direction: column; }
|
|
490
|
-
.onboarding-page { padding:
|
|
495
|
+
.onboarding-page { padding: 24px 16px; }
|
|
491
496
|
.cli-grid { grid-template-columns: repeat(2, 1fr); }
|
|
492
497
|
}
|
|
493
498
|
</style>
|
|
@@ -639,7 +644,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
639
644
|
'loading.ready': 'Ready.',
|
|
640
645
|
'loading.retrying': 'Trying again\u2026',
|
|
641
646
|
'loading.startingUp': 'Starting up\u2026',
|
|
642
|
-
'onboarding.headline': '
|
|
647
|
+
'onboarding.headline': 'Choose which providers Cats may use, then continue into setup.',
|
|
643
648
|
'onboarding.installCli': 'Install a CLI',
|
|
644
649
|
'onboarding.installNodeFirst': 'Install Node first',
|
|
645
650
|
'onboarding.nodeLabel': 'Node.js / npm',
|
|
@@ -657,7 +662,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
657
662
|
'recovery.summary.readyForSetup': 'Local helpers are running. Continue into setup to get started.',
|
|
658
663
|
'recovery.title.failed': 'Cats needs a quick restart',
|
|
659
664
|
'recovery.title.helperAttention': 'Cats can open, but one helper needs attention',
|
|
660
|
-
'recovery.title.installCliContinue': '
|
|
665
|
+
'recovery.title.installCliContinue': 'Choose providers to continue using Cats',
|
|
661
666
|
'recovery.title.oneSetupFix': 'Cats needs one setup fix',
|
|
662
667
|
'recovery.title.pickCli': 'Pick a CLI to get started',
|
|
663
668
|
'recovery.title.readyForSetup': 'Cats is ready to set up',
|
|
@@ -669,6 +674,12 @@ export function buildDesktopBootstrapPage() {
|
|
|
669
674
|
'section.setupFix': 'Setup fix',
|
|
670
675
|
'section.whatNeedsAttention': 'What needs attention',
|
|
671
676
|
'setup.noSummary': 'No summary recorded.',
|
|
677
|
+
'selection.title': 'Choose your providers',
|
|
678
|
+
'selection.description': 'Cats only checks and uses the providers you select. Save an empty selection to continue without a provider.',
|
|
679
|
+
'selection.save': 'Save selection',
|
|
680
|
+
'selection.reload': 'Reload edited configuration',
|
|
681
|
+
'selection.reset': 'Discard unsaved changes',
|
|
682
|
+
'selection.loading': 'Loading provider selection…',
|
|
672
683
|
'setup.recommendedNextStep': 'Recommended next step',
|
|
673
684
|
'setup.restartNeeded': 'A restart is needed before the next step.',
|
|
674
685
|
'setupError.failedBeforeStructuredOutput': '{helperLabel} failed before emitting structured output.',
|
|
@@ -894,7 +905,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
894
905
|
'loading.ready': '已就緒。',
|
|
895
906
|
'loading.retrying': '正在重試…',
|
|
896
907
|
'loading.startingUp': '正在啟動…',
|
|
897
|
-
'onboarding.headline': '
|
|
908
|
+
'onboarding.headline': '選擇 Cats 可以使用的 providers,再繼續設定。',
|
|
898
909
|
'onboarding.installCli': '安裝 CLI',
|
|
899
910
|
'onboarding.installNodeFirst': '請先安裝 Node',
|
|
900
911
|
'onboarding.nodeLabel': 'Node.js / npm',
|
|
@@ -912,7 +923,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
912
923
|
'recovery.summary.readyForSetup': '本機輔助程式已在執行。請繼續進入設定開始使用。',
|
|
913
924
|
'recovery.title.failed': 'Cats 需要快速重新啟動',
|
|
914
925
|
'recovery.title.helperAttention': 'Cats 可以開啟,但有一個本機輔助程式需要處理',
|
|
915
|
-
'recovery.title.installCliContinue': '
|
|
926
|
+
'recovery.title.installCliContinue': '選擇 providers 以繼續使用 Cats',
|
|
916
927
|
'recovery.title.oneSetupFix': 'Cats 需要完成一項設定修復',
|
|
917
928
|
'recovery.title.pickCli': '選一個 CLI 開始',
|
|
918
929
|
'recovery.title.readyForSetup': 'Cats 已準備好進行設定',
|
|
@@ -924,6 +935,12 @@ export function buildDesktopBootstrapPage() {
|
|
|
924
935
|
'section.setupFix': '設定修復',
|
|
925
936
|
'section.whatNeedsAttention': '需要處理的項目',
|
|
926
937
|
'setup.noSummary': '未記錄摘要。',
|
|
938
|
+
'selection.title': '選擇你要使用的 providers',
|
|
939
|
+
'selection.description': 'Cats 只會檢查與使用你選擇的 providers。也可以儲存空白選擇,稍後再設定。',
|
|
940
|
+
'selection.save': '儲存選擇',
|
|
941
|
+
'selection.reload': '重新載入已編輯的設定',
|
|
942
|
+
'selection.reset': '捨棄尚未儲存的變更',
|
|
943
|
+
'selection.loading': '正在載入 provider 選擇…',
|
|
927
944
|
'setup.recommendedNextStep': '建議的下一步',
|
|
928
945
|
'setup.restartNeeded': '下一步前需要重新啟動。',
|
|
929
946
|
'setupError.failedBeforeStructuredOutput': '{helperLabel} 在輸出結構化結果前失敗。',
|
|
@@ -1557,6 +1574,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
1557
1574
|
if (v == null || v === false) continue;
|
|
1558
1575
|
if (k === 'class') e.className = v;
|
|
1559
1576
|
else if (k === 'onclick') e.addEventListener('click', v);
|
|
1577
|
+
else if (k === 'onchange') e.addEventListener('change', v);
|
|
1560
1578
|
else if (k === 'disabled') e.disabled = true;
|
|
1561
1579
|
else e.setAttribute(k, String(v));
|
|
1562
1580
|
}
|
|
@@ -1607,13 +1625,9 @@ export function buildDesktopBootstrapPage() {
|
|
|
1607
1625
|
when the user explicitly continues into setup. */
|
|
1608
1626
|
var onboardingActive = false;
|
|
1609
1627
|
|
|
1610
|
-
function
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
&& snapshot.prerequisites && snapshot.prerequisites.cliInventory
|
|
1614
|
-
&& snapshot.prerequisites.cliInventory.source === 'runtime'
|
|
1615
|
-
&& snapshot.prerequisites.cliInventory.total === 0
|
|
1616
|
-
);
|
|
1628
|
+
function isSelectionRequired(snapshot) {
|
|
1629
|
+
var selection = snapshot && snapshot.prerequisites && snapshot.prerequisites.providerSelection;
|
|
1630
|
+
return Boolean(selection && (selection.state === 'missing' || selection.state === 'invalid'));
|
|
1617
1631
|
}
|
|
1618
1632
|
|
|
1619
1633
|
function isSetupComplete(snapshot) {
|
|
@@ -1634,18 +1648,18 @@ export function buildDesktopBootstrapPage() {
|
|
|
1634
1648
|
if (!snapshot) return 'loading';
|
|
1635
1649
|
if (snapshot.phase === 'failed') return 'recovery';
|
|
1636
1650
|
var setupComplete = isSetupComplete(snapshot);
|
|
1637
|
-
if (onboardingActive
|
|
1651
|
+
if (onboardingActive) {
|
|
1638
1652
|
return 'onboarding';
|
|
1639
1653
|
}
|
|
1640
1654
|
if (
|
|
1641
1655
|
usesSetupStatusOnboarding(snapshot)
|
|
1642
|
-
&& !setupComplete
|
|
1656
|
+
&& (!setupComplete || isSelectionRequired(snapshot))
|
|
1643
1657
|
&& snapshot.phase === 'ready_for_setup'
|
|
1644
1658
|
) {
|
|
1645
1659
|
return 'onboarding';
|
|
1646
1660
|
}
|
|
1647
1661
|
if (snapshot.phase === 'needs_prerequisites') {
|
|
1648
|
-
if (
|
|
1662
|
+
if (isSelectionRequired(snapshot) && !setupComplete) {
|
|
1649
1663
|
return 'onboarding';
|
|
1650
1664
|
}
|
|
1651
1665
|
return 'recovery';
|
|
@@ -1658,21 +1672,17 @@ export function buildDesktopBootstrapPage() {
|
|
|
1658
1672
|
collapsed until Show more is pressed, then npm prerequisites appear
|
|
1659
1673
|
before npm-based CLIs.
|
|
1660
1674
|
|
|
1661
|
-
|
|
1662
|
-
runtime
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
usable target, which is the worst thing onboarding can produce. Ollama:
|
|
1666
|
-
it is a local model runtime, not a CLI provider, so the runtime scan
|
|
1667
|
-
never reports it; its card is built from the readiness audit instead
|
|
1668
|
-
(see buildLocalModelCard). */
|
|
1675
|
+
Ollama is deliberately absent from these lists: it is a local model
|
|
1676
|
+
runtime, not a CLI provider, so the runtime scan never reports it. Its
|
|
1677
|
+
card is built from the readiness audit instead (see
|
|
1678
|
+
buildLocalModelCard). */
|
|
1669
1679
|
var ONBOARDING_NATIVE_PROVIDER_ORDER = [
|
|
1670
1680
|
'claude_code', 'antigravity', 'cursor_agent', 'kiro', 'junie',
|
|
1671
|
-
'goose', 'grok', '
|
|
1681
|
+
'goose', 'grok', 'devin', 'muse'
|
|
1672
1682
|
];
|
|
1673
1683
|
var ONBOARDING_NPM_PROVIDER_ORDER = [
|
|
1674
1684
|
'codex', 'copilot', 'opencode',
|
|
1675
|
-
'kilo', 'auggie', 'pi'
|
|
1685
|
+
'kilo', 'auggie', 'pi', 'cline'
|
|
1676
1686
|
];
|
|
1677
1687
|
var ONBOARDING_NODE_HELPER_SUFFIX = '-node-host-installer';
|
|
1678
1688
|
var ONBOARDING_LOCAL_MODEL_HELPER_SUFFIX = '-ollama-local-model-installer';
|
|
@@ -1695,7 +1705,8 @@ export function buildDesktopBootstrapPage() {
|
|
|
1695
1705
|
pi: 'Pi',
|
|
1696
1706
|
grok: 'Grok',
|
|
1697
1707
|
cline: 'Cline',
|
|
1698
|
-
devin: 'Devin'
|
|
1708
|
+
devin: 'Devin',
|
|
1709
|
+
muse: 'Meta Muse'
|
|
1699
1710
|
};
|
|
1700
1711
|
var cliInstallingState = Object.create(null);
|
|
1701
1712
|
var cliScanInFlight = false;
|
|
@@ -1711,7 +1722,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
1711
1722
|
field is the flag that tells the two apart. */
|
|
1712
1723
|
function isCliInventoryScanned(snapshot) {
|
|
1713
1724
|
var inv = snapshot && snapshot.prerequisites && snapshot.prerequisites.cliInventory;
|
|
1714
|
-
return Boolean(inv && inv.source === 'runtime');
|
|
1725
|
+
return Boolean(inv && inv.source === 'runtime' && inv.scannedAt);
|
|
1715
1726
|
}
|
|
1716
1727
|
|
|
1717
1728
|
function pickInventoryCandidate(snapshot, providerId) {
|
|
@@ -1780,6 +1791,11 @@ export function buildDesktopBootstrapPage() {
|
|
|
1780
1791
|
'checking': it is not coming back on its own, and an install button the
|
|
1781
1792
|
user can press beats a spinner that never stops. */
|
|
1782
1793
|
function resolveNodePrerequisiteState(setupSnap) {
|
|
1794
|
+
var checks = setupSnap && setupSnap.prerequisiteChecks;
|
|
1795
|
+
var nodeCheck = checks && checks.find(function (entry) { return isNodePrerequisiteHelperId(entry.helperId); });
|
|
1796
|
+
if (nodeCheck && nodeCheck.result) {
|
|
1797
|
+
return rememberAuditState('node', nodeCheck.result.status === 'ready' ? 'ready' : 'missing');
|
|
1798
|
+
}
|
|
1783
1799
|
var action = setupSnap && setupSnap.state ? setupSnap.state.lastAction : null;
|
|
1784
1800
|
if (!action) return rememberAuditState('node', 'checking');
|
|
1785
1801
|
if (action.runState === 'failed') return rememberAuditState('node', 'missing');
|
|
@@ -2031,12 +2047,14 @@ export function buildDesktopBootstrapPage() {
|
|
|
2031
2047
|
var entries = [];
|
|
2032
2048
|
appendProviderCards(entries, snapshot, ONBOARDING_NATIVE_PROVIDER_ORDER);
|
|
2033
2049
|
/* Tail of the native row, where Ollama used to sit as a provider card. */
|
|
2034
|
-
var localModelCard = buildLocalModelCard(setupSnap);
|
|
2050
|
+
var localModelCard = pickInventoryCandidate(snapshot, 'ollama') ? buildLocalModelCard(setupSnap) : null;
|
|
2035
2051
|
if (localModelCard) {
|
|
2036
2052
|
entries.push(localModelCard);
|
|
2037
2053
|
}
|
|
2038
2054
|
entries.push({ kind: 'break' });
|
|
2039
|
-
var
|
|
2055
|
+
var inventory = snapshot.prerequisites && snapshot.prerequisites.cliInventory;
|
|
2056
|
+
var needsNode = inventory && inventory.candidates.some(function (entry) { return ONBOARDING_NPM_PROVIDER_ORDER.indexOf(entry.providerId) >= 0; });
|
|
2057
|
+
var nodeCard = needsNode ? buildNodePrerequisiteCard(setupSnap) : null;
|
|
2040
2058
|
if (nodeCard) {
|
|
2041
2059
|
nodeCard.collapsedSlot = ONBOARDING_COLLAPSED_INCLUDES_NODE;
|
|
2042
2060
|
entries.push(nodeCard);
|
|
@@ -2212,7 +2230,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
2212
2230
|
function recoveryTitle(snap) {
|
|
2213
2231
|
if (snap.phase === 'failed') return tx('recovery.title.failed');
|
|
2214
2232
|
if (snap.phase === 'needs_prerequisites') {
|
|
2215
|
-
if (
|
|
2233
|
+
if (isSelectionRequired(snap)) {
|
|
2216
2234
|
return snap.app && snap.app.setupCompleteAt
|
|
2217
2235
|
? tx('recovery.title.installCliContinue')
|
|
2218
2236
|
: tx('recovery.title.pickCli');
|
|
@@ -2236,7 +2254,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
2236
2254
|
return tx('recovery.summary.failedHelper');
|
|
2237
2255
|
}
|
|
2238
2256
|
if (snap.phase === 'needs_prerequisites') {
|
|
2239
|
-
if (
|
|
2257
|
+
if (isSelectionRequired(snap)) {
|
|
2240
2258
|
return snap.app && snap.app.setupCompleteAt
|
|
2241
2259
|
? tx('recovery.summary.noCliAfterSetup')
|
|
2242
2260
|
: tx('recovery.summary.noCliBeforeSetup');
|
|
@@ -2630,6 +2648,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
2630
2648
|
return 'retry';
|
|
2631
2649
|
}
|
|
2632
2650
|
|
|
2651
|
+
var providerManagerView = null;
|
|
2633
2652
|
function showOnboarding(snap) {
|
|
2634
2653
|
onboardingActive = true;
|
|
2635
2654
|
splashEl.classList.add('hidden');
|
|
@@ -2637,62 +2656,20 @@ export function buildDesktopBootstrapPage() {
|
|
|
2637
2656
|
onboardingEl.classList.remove('hidden');
|
|
2638
2657
|
onboardingEl.classList.add('onboarding-page');
|
|
2639
2658
|
resetSlowHintCycle();
|
|
2640
|
-
|
|
2659
|
+
// Keep the same view mounted while host snapshots arrive: draft inputs,
|
|
2660
|
+
// focus, progress and the footer must not jump during a long operation.
|
|
2661
|
+
if (providerManagerView) return;
|
|
2641
2662
|
onboardingEl.innerHTML = '';
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
var continueBtn = el('button', {
|
|
2649
|
-
class: 'btn',
|
|
2650
|
-
disabled: continueDisabled,
|
|
2651
|
-
onclick: function () {
|
|
2652
|
-
if (continueDisabled) return;
|
|
2653
|
-
var self = this;
|
|
2654
|
-
self.disabled = true;
|
|
2663
|
+
var providerRoot = el('section', {});
|
|
2664
|
+
onboardingEl.append(el('section', { class: 'hero' }, el('h1', { class: 'hero-title' }, 'Cats')), providerRoot);
|
|
2665
|
+
providerManagerView = (${mountProviderManager.toString()})(providerRoot, bridge, {
|
|
2666
|
+
context: 'onboarding', locale: bootstrapLocale,
|
|
2667
|
+
onContinue: async function () {
|
|
2668
|
+
await bridge.runAction('open_setup');
|
|
2655
2669
|
onboardingActive = false;
|
|
2656
|
-
bridge.runAction('open_setup').catch(function () {
|
|
2657
|
-
onboardingActive = true;
|
|
2658
|
-
self.disabled = false;
|
|
2659
|
-
});
|
|
2660
2670
|
}
|
|
2661
|
-
}
|
|
2662
|
-
|
|
2663
|
-
var cardSet = buildCliCards(snap, currentSetupSnapshot, { alwaysExpanded: false });
|
|
2664
|
-
var actions = [continueBtn];
|
|
2665
|
-
/* Offered even once the inventory is known: a CLI installed outside Cats
|
|
2666
|
-
since the last scan is otherwise invisible until something else forces
|
|
2667
|
-
a rescan. */
|
|
2668
|
-
var scanLabel = cliScanInFlight
|
|
2669
|
-
? tx('onboarding.scanningClis')
|
|
2670
|
-
: (isCliInventoryScanned(snap) ? tx('onboarding.rescanClis') : tx('onboarding.scanClis'));
|
|
2671
|
-
actions.push(el('button', {
|
|
2672
|
-
class: 'btn',
|
|
2673
|
-
disabled: cliScanInFlight,
|
|
2674
|
-
onclick: handleCliScanClick
|
|
2675
|
-
}, scanLabel));
|
|
2676
|
-
if (cardSet.hasHiddenCards) {
|
|
2677
|
-
var moreLabel = onboardingExpanded ? tx('action.showFewer') : tx('action.showMore');
|
|
2678
|
-
actions.push(el('button', {
|
|
2679
|
-
class: 'btn',
|
|
2680
|
-
onclick: function () {
|
|
2681
|
-
onboardingExpanded = !onboardingExpanded;
|
|
2682
|
-
doRender();
|
|
2683
|
-
}
|
|
2684
|
-
}, moreLabel));
|
|
2685
|
-
}
|
|
2686
|
-
|
|
2687
|
-
onboardingEl.append(
|
|
2688
|
-
el('section', { class: 'hero' },
|
|
2689
|
-
el('h1', { class: 'hero-title' }, 'Cats')
|
|
2690
|
-
),
|
|
2691
|
-
el('p', { class: 'onboarding-headline' },
|
|
2692
|
-
tx('onboarding.headline')),
|
|
2693
|
-
el('div', { class: 'onboarding-actions' }, actions),
|
|
2694
|
-
el('div', { class: 'cli-grid' }, cardSet.elements)
|
|
2695
|
-
);
|
|
2671
|
+
});
|
|
2672
|
+
window.addEventListener('pagehide', function () { providerManagerView.destroy(); });
|
|
2696
2673
|
}
|
|
2697
2674
|
|
|
2698
2675
|
function InstallACliSection(snap) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapPage.js","sourceRoot":"","sources":["../../desktop/host/bootstrapPage.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB;IACvC,OAAO
|
|
1
|
+
{"version":3,"file":"bootstrapPage.js","sourceRoot":"","sources":["../../desktop/host/bootstrapPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAEhF,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAsmFsB,oBAAoB,CAAC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8KtD,CAAC;AACT,CAAC"}
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import { type DesktopCliInventory } from './contracts.js';
|
|
2
|
+
import { type ProviderSelection, type ProviderSelectionCatalogEntry, type SelectedProviderTarget } from './providerSelection.js';
|
|
2
3
|
export interface RuntimeCliInventoryProbe {
|
|
4
|
+
selection: ProviderSelection;
|
|
5
|
+
universe: ProviderSelectionCatalogEntry[];
|
|
3
6
|
bootstrapRequired?: boolean;
|
|
7
|
+
observations?: Array<SelectedProviderTarget & {
|
|
8
|
+
available: boolean;
|
|
9
|
+
authStatus?: string;
|
|
10
|
+
observedAt: string;
|
|
11
|
+
configurationStatus: 'unchanged' | 'changed' | 'not_selected';
|
|
12
|
+
}>;
|
|
4
13
|
state?: {
|
|
5
14
|
status?: 'pending' | 'scanning' | 'ready' | 'applied' | 'error' | string;
|
|
6
15
|
error?: string | null;
|
|
7
16
|
} | null;
|
|
8
17
|
scan: {
|
|
18
|
+
revision: string;
|
|
9
19
|
scannedAt?: string | null;
|
|
10
|
-
providers: Array<{
|
|
11
|
-
provider: string;
|
|
20
|
+
providers: Array<SelectedProviderTarget & {
|
|
12
21
|
available: boolean;
|
|
13
22
|
authStatus?: string;
|
|
14
23
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliInventoryProbe.d.ts","sourceRoot":"","sources":["../../desktop/host/cliInventoryProbe.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAGzB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cliInventoryProbe.d.ts","sourceRoot":"","sources":["../../desktop/host/cliInventoryProbe.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAGzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAgC,KAAK,iBAAiB,EAAE,KAAK,6BAA6B,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAK/J,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE,6BAA6B,EAAE,CAAC;IAK1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAC5C,SAAS,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAC5D,mBAAmB,EAAE,WAAW,GAAG,SAAS,GAAG,cAAc,CAAC;KAC/D,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;QACzE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,GAAG,IAAI,CAAC;IACT,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,EAAE,KAAK,CAAC,sBAAsB,GAAG;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxF,GAAG,IAAI,CAAC;CACV;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,wBAAwB,GAAG,IAAI,EACtC,uBAAuB,EAAE,OAAO,GAAG,IAAI,GACtC,OAAO,CAKT;AA6FD,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,wBAAwB,GAAG,IAAI,EACtC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,mBAAmB,CAkDrB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DESKTOP_PROVIDER_SETUP_LOCAL_PROVIDERS, } from './contracts.js';
|
|
2
|
+
import { nativeSetupTarget, targetKey } from './providerSelection.js';
|
|
2
3
|
/**
|
|
3
4
|
* True when the runtime's own bootstrap answer on a probe disagrees with the
|
|
4
5
|
* one the caller has cached.
|
|
@@ -52,11 +53,11 @@ const DESKTOP_TO_RUNTIME_PROVIDER = {
|
|
|
52
53
|
grok: 'grok',
|
|
53
54
|
cline: 'cline',
|
|
54
55
|
devin: 'devin',
|
|
55
|
-
|
|
56
|
+
muse: 'muse',
|
|
56
57
|
// Ollama is a local model, not in runtime KNOWN_PROVIDERS — runtime never
|
|
57
58
|
// reports it via setup-state. Desktop tracks it separately via the local
|
|
58
59
|
// model installer helper, but the bootstrap CLI gate doesn't depend on it.
|
|
59
|
-
ollama:
|
|
60
|
+
ollama: 'ollama',
|
|
60
61
|
};
|
|
61
62
|
const PROVIDER_LABEL = {
|
|
62
63
|
claude_code: 'Claude',
|
|
@@ -74,7 +75,7 @@ const PROVIDER_LABEL = {
|
|
|
74
75
|
grok: 'Grok',
|
|
75
76
|
cline: 'Cline',
|
|
76
77
|
devin: 'Devin',
|
|
77
|
-
|
|
78
|
+
muse: 'Meta Muse',
|
|
78
79
|
ollama: 'Ollama',
|
|
79
80
|
};
|
|
80
81
|
const NATIVE_INSTALLER_SUFFIX = '-native-installer';
|
|
@@ -95,7 +96,7 @@ const PROVIDER_TO_HELPER_SUFFIX = {
|
|
|
95
96
|
grok: 'grok' + NATIVE_INSTALLER_SUFFIX,
|
|
96
97
|
cline: 'cline' + NATIVE_INSTALLER_SUFFIX,
|
|
97
98
|
devin: 'devin' + NATIVE_INSTALLER_SUFFIX,
|
|
98
|
-
|
|
99
|
+
muse: 'muse' + NATIVE_INSTALLER_SUFFIX,
|
|
99
100
|
ollama: 'ollama' + LOCAL_MODEL_INSTALLER_SUFFIX,
|
|
100
101
|
};
|
|
101
102
|
function platformToHelperPrefix(platform) {
|
|
@@ -113,24 +114,29 @@ export function buildDesktopCliInventoryFromRuntime(probe, platform = process.pl
|
|
|
113
114
|
const runtimeAvailability = new Map();
|
|
114
115
|
const runtimeAuthStatus = new Map();
|
|
115
116
|
let scannedAt = null;
|
|
116
|
-
if (probe?.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
if (probe?.observations) {
|
|
118
|
+
for (const provider of probe.observations) {
|
|
119
|
+
if (provider.configurationStatus !== 'unchanged')
|
|
120
|
+
continue;
|
|
121
|
+
runtimeAvailability.set(targetKey(provider), provider.available === true);
|
|
122
|
+
runtimeAuthStatus.set(targetKey(provider), normalizeCliAuthStatus(provider.authStatus));
|
|
123
|
+
if (!scannedAt || provider.observedAt > scannedAt)
|
|
124
|
+
scannedAt = provider.observedAt;
|
|
121
125
|
}
|
|
122
126
|
}
|
|
123
|
-
const
|
|
127
|
+
const selected = new Set(probe?.selection?.nativeSetupTargets?.map(targetKey) ?? []);
|
|
128
|
+
const candidates = DESKTOP_PROVIDER_SETUP_LOCAL_PROVIDERS.filter((providerId) => selected.has(targetKey(nativeSetupTarget(DESKTOP_TO_RUNTIME_PROVIDER[providerId]))))
|
|
129
|
+
.map((providerId) => {
|
|
124
130
|
const suffix = PROVIDER_TO_HELPER_SUFFIX[providerId];
|
|
125
131
|
const helperId = helperPrefix ? `${helperPrefix}-${suffix}` : '';
|
|
126
132
|
const runtimeProvider = DESKTOP_TO_RUNTIME_PROVIDER[providerId];
|
|
127
133
|
const installed = runtimeProvider !== null
|
|
128
|
-
? runtimeAvailability.get(runtimeProvider) === true
|
|
134
|
+
? runtimeAvailability.get(targetKey(nativeSetupTarget(runtimeProvider))) === true
|
|
129
135
|
: false;
|
|
130
136
|
// Auth only means something for a CLI we found. A provider that is not
|
|
131
137
|
// installed has nothing to be signed in to.
|
|
132
138
|
const authStatus = installed && runtimeProvider !== null
|
|
133
|
-
? runtimeAuthStatus.get(runtimeProvider) ?? 'unknown'
|
|
139
|
+
? runtimeAuthStatus.get(targetKey(nativeSetupTarget(runtimeProvider))) ?? 'unknown'
|
|
134
140
|
: 'unknown';
|
|
135
141
|
return {
|
|
136
142
|
helperId,
|
|
@@ -146,7 +152,7 @@ export function buildDesktopCliInventoryFromRuntime(probe, platform = process.pl
|
|
|
146
152
|
.filter((entry) => entry.installed)
|
|
147
153
|
.map((entry) => entry.helperId);
|
|
148
154
|
return {
|
|
149
|
-
source: probe?.
|
|
155
|
+
source: probe?.selection ? 'runtime' : 'unknown',
|
|
150
156
|
installed,
|
|
151
157
|
total: installed.length,
|
|
152
158
|
candidates,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliInventoryProbe.js","sourceRoot":"","sources":["../../desktop/host/cliInventoryProbe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,GAKvC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cliInventoryProbe.js","sourceRoot":"","sources":["../../desktop/host/cliInventoryProbe.ts"],"names":[],"mappings":"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"}
|