@cats-inc/cats-platform 0.1.21 → 0.2.8
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 +18 -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 +114 -34
- package/build/desktop/bootstrapPage.js.map +1 -1
- package/build/desktop/cliInventoryProbe.d.ts +5 -2
- package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
- package/build/desktop/cliInventoryProbe.js +14 -11
- 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 +10 -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 +144 -249
- 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 +7 -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/providerSelection.d.ts +37 -0
- package/build/desktop/providerSelection.d.ts.map +1 -0
- package/build/desktop/providerSelection.js +112 -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 +16 -14
- package/build/desktop/setupAssets.js.map +1 -1
- package/build/desktop/setupAudit.d.ts +2 -3
- package/build/desktop/setupAudit.d.ts.map +1 -1
- package/build/desktop/setupAudit.js +14 -34
- package/build/desktop/setupAudit.js.map +1 -1
- 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-DImsuR9T.js → ActiveSessionPermissionChip-CAgN-tXv.js} +1 -1
- package/build/renderer/assets/App-BZA23O2J.js +2 -0
- package/build/renderer/assets/App-DxsV-tKS.css +1 -0
- package/build/renderer/assets/{App-DKOSn0o_.js → App-YqprEL2n.js} +1 -1
- package/build/renderer/assets/App-rGw9J8PZ.js +1 -0
- package/build/renderer/assets/WorkspaceAppRoutes-BCHCikmJ.js +1 -0
- package/build/renderer/assets/app-BV3UAQkR.css +1 -0
- package/build/renderer/assets/app-CVPqqfZo.js +45 -0
- package/build/renderer/assets/conversationSidebarRecentEntries-iqaLqA1n.js +6 -0
- package/build/renderer/assets/{useDraftSessionChips-DCIId0eY.js → useDraftSessionChips-D9BX6X92.js} +1 -1
- package/build/renderer/index.html +2 -2
- package/build/server/app/renderer/providerCatalogClient.d.ts.map +1 -1
- package/build/server/app/renderer/providerCatalogClient.js +15 -6
- package/build/server/app/renderer/providerCatalogClient.js.map +1 -1
- package/build/server/app/renderer/providerRegistryClient.d.ts +1 -1
- package/build/server/app/renderer/providerRegistryClient.d.ts.map +1 -1
- package/build/server/app/renderer/providerRegistryClient.js +23 -41
- 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 +7 -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/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 +3 -3
- package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.js +37 -38
- package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
- package/build/server/design/components/useProviderCatalogState.d.ts +1 -0
- package/build/server/design/components/useProviderCatalogState.d.ts.map +1 -1
- package/build/server/design/components/useProviderCatalogState.js +1 -0
- package/build/server/design/components/useProviderCatalogState.js.map +1 -1
- package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts.map +1 -1
- package/build/server/design/components/useProviderRegistryAutoRecheck.js +20 -13
- package/build/server/design/components/useProviderRegistryAutoRecheck.js.map +1 -1
- package/build/server/design/components/useProviderRegistryState.d.ts.map +1 -1
- package/build/server/design/components/useProviderRegistryState.js +12 -25
- package/build/server/design/components/useProviderRegistryState.js.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.js +2 -1
- 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/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 +8 -0
- package/build/server/products/chat/api/routeSupport.d.ts.map +1 -1
- package/build/server/products/chat/api/routeSupport.js +5 -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/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/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 +39 -0
- package/build/server/runtime/client.js.map +1 -1
- package/build/server/runtime/setup.d.ts +10 -4
- package/build/server/runtime/setup.d.ts.map +1 -1
- package/build/server/runtime/setup.js +14 -18
- 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 +112 -81
- 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/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 +28 -22
- package/build/server/shared/providerCatalogData.d.ts.map +1 -1
- package/build/server/shared/providerCatalogData.js +22 -10
- 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/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 +23 -1
- 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/scripts/README.md +43 -26
- package/scripts/build-desktop-installer.mjs +15 -0
- 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-meta-cli.sh +8 -0
- package/scripts/linux/provider-cli-common.sh +103 -30
- package/scripts/linux/sync-agent-skills.sh +27 -5
- package/scripts/linux/test-linux-package-smoke.sh +4 -3
- package/scripts/linux/upgrade-cli-tools.sh +1 -1
- 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-meta-cli.sh +8 -0
- package/scripts/macos/provider-cli-common.sh +103 -30
- package/scripts/macos/sync-agent-skills.sh +27 -5
- package/scripts/macos/test-macos-package-smoke.sh +4 -3
- package/scripts/macos/upgrade-cli-tools.sh +1 -1
- package/scripts/package-desktop.mjs +15 -2
- package/scripts/testing/check-usage-app.mts +266 -0
- package/scripts/testing/usage-app-smoke-electron.cjs +10 -0
- package/scripts/testing/usage-app-smoke-renderer.tsx +8 -0
- package/scripts/verify-desktop-app-bundle.mjs +108 -0
- package/scripts/windows/Build-DesktopPackage.ps1 +9 -6
- package/scripts/windows/{Install-Aider.ps1 → Install-MetaCli.ps1} +180 -92
- package/scripts/windows/Install-Ollama.ps1 +4 -1
- package/scripts/windows/Sync-AgentSkills.ps1 +29 -6
- package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +2 -1
- 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/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/scripts/linux/install-aider.sh +0 -8
- package/scripts/macos/install-aider.sh +0 -8
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
|
|
@@ -76,6 +89,11 @@ The current slices are:
|
|
|
76
89
|
|
|
77
90
|
## Current Status
|
|
78
91
|
|
|
92
|
+
- [x] Save Runtime-owned provider selection before Desktop inventory and helpers;
|
|
93
|
+
scope product provider/model choices by exact target and config revision.
|
|
94
|
+
Explicit empty selection supports idle mode. Native installer acceptance
|
|
95
|
+
remains tracked in the shared [bootstrap rollout plan](../cats-runtime/docs/plans/PLAN-039-provider-selection-bootstrap-rollout.md).
|
|
96
|
+
|
|
79
97
|
- [x] Bootstrap `cats-platform/` from `project-bootstrap`
|
|
80
98
|
- [x] Establish `cats-runtime` as the only runtime boundary
|
|
81
99
|
- [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":"AAAA,wBAAgB,yBAAyB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"bootstrapPage.d.ts","sourceRoot":"","sources":["../../desktop/host/bootstrapPage.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,IAAI,MAAM,CA83FlD"}
|
|
@@ -639,7 +639,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
639
639
|
'loading.ready': 'Ready.',
|
|
640
640
|
'loading.retrying': 'Trying again\u2026',
|
|
641
641
|
'loading.startingUp': 'Starting up\u2026',
|
|
642
|
-
'onboarding.headline': '
|
|
642
|
+
'onboarding.headline': 'Choose which providers Cats may use, then continue into setup.',
|
|
643
643
|
'onboarding.installCli': 'Install a CLI',
|
|
644
644
|
'onboarding.installNodeFirst': 'Install Node first',
|
|
645
645
|
'onboarding.nodeLabel': 'Node.js / npm',
|
|
@@ -657,7 +657,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
657
657
|
'recovery.summary.readyForSetup': 'Local helpers are running. Continue into setup to get started.',
|
|
658
658
|
'recovery.title.failed': 'Cats needs a quick restart',
|
|
659
659
|
'recovery.title.helperAttention': 'Cats can open, but one helper needs attention',
|
|
660
|
-
'recovery.title.installCliContinue': '
|
|
660
|
+
'recovery.title.installCliContinue': 'Choose providers to continue using Cats',
|
|
661
661
|
'recovery.title.oneSetupFix': 'Cats needs one setup fix',
|
|
662
662
|
'recovery.title.pickCli': 'Pick a CLI to get started',
|
|
663
663
|
'recovery.title.readyForSetup': 'Cats is ready to set up',
|
|
@@ -669,6 +669,12 @@ export function buildDesktopBootstrapPage() {
|
|
|
669
669
|
'section.setupFix': 'Setup fix',
|
|
670
670
|
'section.whatNeedsAttention': 'What needs attention',
|
|
671
671
|
'setup.noSummary': 'No summary recorded.',
|
|
672
|
+
'selection.title': 'Choose your providers',
|
|
673
|
+
'selection.description': 'Cats only checks and uses the providers you select. Save an empty selection to continue without a provider.',
|
|
674
|
+
'selection.save': 'Save selection',
|
|
675
|
+
'selection.reload': 'Reload edited configuration',
|
|
676
|
+
'selection.reset': 'Discard unsaved changes',
|
|
677
|
+
'selection.loading': 'Loading provider selection…',
|
|
672
678
|
'setup.recommendedNextStep': 'Recommended next step',
|
|
673
679
|
'setup.restartNeeded': 'A restart is needed before the next step.',
|
|
674
680
|
'setupError.failedBeforeStructuredOutput': '{helperLabel} failed before emitting structured output.',
|
|
@@ -894,7 +900,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
894
900
|
'loading.ready': '已就緒。',
|
|
895
901
|
'loading.retrying': '正在重試…',
|
|
896
902
|
'loading.startingUp': '正在啟動…',
|
|
897
|
-
'onboarding.headline': '
|
|
903
|
+
'onboarding.headline': '選擇 Cats 可以使用的 providers,再繼續設定。',
|
|
898
904
|
'onboarding.installCli': '安裝 CLI',
|
|
899
905
|
'onboarding.installNodeFirst': '請先安裝 Node',
|
|
900
906
|
'onboarding.nodeLabel': 'Node.js / npm',
|
|
@@ -912,7 +918,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
912
918
|
'recovery.summary.readyForSetup': '本機輔助程式已在執行。請繼續進入設定開始使用。',
|
|
913
919
|
'recovery.title.failed': 'Cats 需要快速重新啟動',
|
|
914
920
|
'recovery.title.helperAttention': 'Cats 可以開啟,但有一個本機輔助程式需要處理',
|
|
915
|
-
'recovery.title.installCliContinue': '
|
|
921
|
+
'recovery.title.installCliContinue': '選擇 providers 以繼續使用 Cats',
|
|
916
922
|
'recovery.title.oneSetupFix': 'Cats 需要完成一項設定修復',
|
|
917
923
|
'recovery.title.pickCli': '選一個 CLI 開始',
|
|
918
924
|
'recovery.title.readyForSetup': 'Cats 已準備好進行設定',
|
|
@@ -924,6 +930,12 @@ export function buildDesktopBootstrapPage() {
|
|
|
924
930
|
'section.setupFix': '設定修復',
|
|
925
931
|
'section.whatNeedsAttention': '需要處理的項目',
|
|
926
932
|
'setup.noSummary': '未記錄摘要。',
|
|
933
|
+
'selection.title': '選擇你要使用的 providers',
|
|
934
|
+
'selection.description': 'Cats 只會檢查與使用你選擇的 providers。也可以儲存空白選擇,稍後再設定。',
|
|
935
|
+
'selection.save': '儲存選擇',
|
|
936
|
+
'selection.reload': '重新載入已編輯的設定',
|
|
937
|
+
'selection.reset': '捨棄尚未儲存的變更',
|
|
938
|
+
'selection.loading': '正在載入 provider 選擇…',
|
|
927
939
|
'setup.recommendedNextStep': '建議的下一步',
|
|
928
940
|
'setup.restartNeeded': '下一步前需要重新啟動。',
|
|
929
941
|
'setupError.failedBeforeStructuredOutput': '{helperLabel} 在輸出結構化結果前失敗。',
|
|
@@ -1557,6 +1569,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
1557
1569
|
if (v == null || v === false) continue;
|
|
1558
1570
|
if (k === 'class') e.className = v;
|
|
1559
1571
|
else if (k === 'onclick') e.addEventListener('click', v);
|
|
1572
|
+
else if (k === 'onchange') e.addEventListener('change', v);
|
|
1560
1573
|
else if (k === 'disabled') e.disabled = true;
|
|
1561
1574
|
else e.setAttribute(k, String(v));
|
|
1562
1575
|
}
|
|
@@ -1607,13 +1620,9 @@ export function buildDesktopBootstrapPage() {
|
|
|
1607
1620
|
when the user explicitly continues into setup. */
|
|
1608
1621
|
var onboardingActive = false;
|
|
1609
1622
|
|
|
1610
|
-
function
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
&& snapshot.prerequisites && snapshot.prerequisites.cliInventory
|
|
1614
|
-
&& snapshot.prerequisites.cliInventory.source === 'runtime'
|
|
1615
|
-
&& snapshot.prerequisites.cliInventory.total === 0
|
|
1616
|
-
);
|
|
1623
|
+
function isSelectionRequired(snapshot) {
|
|
1624
|
+
var selection = snapshot && snapshot.prerequisites && snapshot.prerequisites.providerSelection;
|
|
1625
|
+
return Boolean(selection && (selection.state === 'missing' || selection.state === 'invalid'));
|
|
1617
1626
|
}
|
|
1618
1627
|
|
|
1619
1628
|
function isSetupComplete(snapshot) {
|
|
@@ -1639,13 +1648,13 @@ export function buildDesktopBootstrapPage() {
|
|
|
1639
1648
|
}
|
|
1640
1649
|
if (
|
|
1641
1650
|
usesSetupStatusOnboarding(snapshot)
|
|
1642
|
-
&& !setupComplete
|
|
1651
|
+
&& (!setupComplete || isSelectionRequired(snapshot))
|
|
1643
1652
|
&& snapshot.phase === 'ready_for_setup'
|
|
1644
1653
|
) {
|
|
1645
1654
|
return 'onboarding';
|
|
1646
1655
|
}
|
|
1647
1656
|
if (snapshot.phase === 'needs_prerequisites') {
|
|
1648
|
-
if (
|
|
1657
|
+
if (isSelectionRequired(snapshot) && !setupComplete) {
|
|
1649
1658
|
return 'onboarding';
|
|
1650
1659
|
}
|
|
1651
1660
|
return 'recovery';
|
|
@@ -1658,21 +1667,17 @@ export function buildDesktopBootstrapPage() {
|
|
|
1658
1667
|
collapsed until Show more is pressed, then npm prerequisites appear
|
|
1659
1668
|
before npm-based CLIs.
|
|
1660
1669
|
|
|
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). */
|
|
1670
|
+
Ollama is deliberately absent from these lists: it is a local model
|
|
1671
|
+
runtime, not a CLI provider, so the runtime scan never reports it. Its
|
|
1672
|
+
card is built from the readiness audit instead (see
|
|
1673
|
+
buildLocalModelCard). */
|
|
1669
1674
|
var ONBOARDING_NATIVE_PROVIDER_ORDER = [
|
|
1670
1675
|
'claude_code', 'antigravity', 'cursor_agent', 'kiro', 'junie',
|
|
1671
|
-
'goose', 'grok', '
|
|
1676
|
+
'goose', 'grok', 'devin', 'muse'
|
|
1672
1677
|
];
|
|
1673
1678
|
var ONBOARDING_NPM_PROVIDER_ORDER = [
|
|
1674
1679
|
'codex', 'copilot', 'opencode',
|
|
1675
|
-
'kilo', 'auggie', 'pi'
|
|
1680
|
+
'kilo', 'auggie', 'pi', 'cline'
|
|
1676
1681
|
];
|
|
1677
1682
|
var ONBOARDING_NODE_HELPER_SUFFIX = '-node-host-installer';
|
|
1678
1683
|
var ONBOARDING_LOCAL_MODEL_HELPER_SUFFIX = '-ollama-local-model-installer';
|
|
@@ -1695,7 +1700,8 @@ export function buildDesktopBootstrapPage() {
|
|
|
1695
1700
|
pi: 'Pi',
|
|
1696
1701
|
grok: 'Grok',
|
|
1697
1702
|
cline: 'Cline',
|
|
1698
|
-
devin: 'Devin'
|
|
1703
|
+
devin: 'Devin',
|
|
1704
|
+
muse: 'Meta Muse'
|
|
1699
1705
|
};
|
|
1700
1706
|
var cliInstallingState = Object.create(null);
|
|
1701
1707
|
var cliScanInFlight = false;
|
|
@@ -1711,7 +1717,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
1711
1717
|
field is the flag that tells the two apart. */
|
|
1712
1718
|
function isCliInventoryScanned(snapshot) {
|
|
1713
1719
|
var inv = snapshot && snapshot.prerequisites && snapshot.prerequisites.cliInventory;
|
|
1714
|
-
return Boolean(inv && inv.source === 'runtime');
|
|
1720
|
+
return Boolean(inv && inv.source === 'runtime' && inv.scannedAt);
|
|
1715
1721
|
}
|
|
1716
1722
|
|
|
1717
1723
|
function pickInventoryCandidate(snapshot, providerId) {
|
|
@@ -2031,12 +2037,14 @@ export function buildDesktopBootstrapPage() {
|
|
|
2031
2037
|
var entries = [];
|
|
2032
2038
|
appendProviderCards(entries, snapshot, ONBOARDING_NATIVE_PROVIDER_ORDER);
|
|
2033
2039
|
/* Tail of the native row, where Ollama used to sit as a provider card. */
|
|
2034
|
-
var localModelCard = buildLocalModelCard(setupSnap);
|
|
2040
|
+
var localModelCard = pickInventoryCandidate(snapshot, 'ollama') ? buildLocalModelCard(setupSnap) : null;
|
|
2035
2041
|
if (localModelCard) {
|
|
2036
2042
|
entries.push(localModelCard);
|
|
2037
2043
|
}
|
|
2038
2044
|
entries.push({ kind: 'break' });
|
|
2039
|
-
var
|
|
2045
|
+
var inventory = snapshot.prerequisites && snapshot.prerequisites.cliInventory;
|
|
2046
|
+
var needsNode = inventory && inventory.candidates.some(function (entry) { return ONBOARDING_NPM_PROVIDER_ORDER.indexOf(entry.providerId) >= 0; });
|
|
2047
|
+
var nodeCard = needsNode ? buildNodePrerequisiteCard(setupSnap) : null;
|
|
2040
2048
|
if (nodeCard) {
|
|
2041
2049
|
nodeCard.collapsedSlot = ONBOARDING_COLLAPSED_INCLUDES_NODE;
|
|
2042
2050
|
entries.push(nodeCard);
|
|
@@ -2212,7 +2220,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
2212
2220
|
function recoveryTitle(snap) {
|
|
2213
2221
|
if (snap.phase === 'failed') return tx('recovery.title.failed');
|
|
2214
2222
|
if (snap.phase === 'needs_prerequisites') {
|
|
2215
|
-
if (
|
|
2223
|
+
if (isSelectionRequired(snap)) {
|
|
2216
2224
|
return snap.app && snap.app.setupCompleteAt
|
|
2217
2225
|
? tx('recovery.title.installCliContinue')
|
|
2218
2226
|
: tx('recovery.title.pickCli');
|
|
@@ -2236,7 +2244,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
2236
2244
|
return tx('recovery.summary.failedHelper');
|
|
2237
2245
|
}
|
|
2238
2246
|
if (snap.phase === 'needs_prerequisites') {
|
|
2239
|
-
if (
|
|
2247
|
+
if (isSelectionRequired(snap)) {
|
|
2240
2248
|
return snap.app && snap.app.setupCompleteAt
|
|
2241
2249
|
? tx('recovery.summary.noCliAfterSetup')
|
|
2242
2250
|
: tx('recovery.summary.noCliBeforeSetup');
|
|
@@ -2630,6 +2638,79 @@ export function buildDesktopBootstrapPage() {
|
|
|
2630
2638
|
return 'retry';
|
|
2631
2639
|
}
|
|
2632
2640
|
|
|
2641
|
+
var selectionDraft = null;
|
|
2642
|
+
var selectionDraftRevision = null;
|
|
2643
|
+
var selectionSaving = false;
|
|
2644
|
+
var selectionError = '';
|
|
2645
|
+
function providerTargetKey(target) {
|
|
2646
|
+
return JSON.stringify([target.provider, target.backend, target.instance]);
|
|
2647
|
+
}
|
|
2648
|
+
function hasSelectionDraftChanges(selection) {
|
|
2649
|
+
if (!selectionDraft) return false;
|
|
2650
|
+
var saved = selection.targets.map(providerTargetKey);
|
|
2651
|
+
return selectionDraftRevision !== selection.revision || saved.length !== selectionDraft.length
|
|
2652
|
+
|| saved.some(function (key) { return selectionDraft.indexOf(key) < 0; });
|
|
2653
|
+
}
|
|
2654
|
+
function ProviderSelectionEditor(snap) {
|
|
2655
|
+
var prerequisites = snap.prerequisites || {};
|
|
2656
|
+
var selection = prerequisites.providerSelection;
|
|
2657
|
+
if (!selection) return el('p', {}, tx('selection.loading'));
|
|
2658
|
+
if (!selectionDraft) {
|
|
2659
|
+
selectionDraft = selection.targets.map(providerTargetKey);
|
|
2660
|
+
selectionDraftRevision = selection.revision;
|
|
2661
|
+
}
|
|
2662
|
+
var catalog = (prerequisites.providerCatalog || []).slice();
|
|
2663
|
+
selection.targets.forEach(function (target) {
|
|
2664
|
+
if (!catalog.some(function (entry) { return providerTargetKey(entry) === providerTargetKey(target); })) {
|
|
2665
|
+
catalog.push(Object.assign({ familyLabel: target.provider }, target));
|
|
2666
|
+
}
|
|
2667
|
+
});
|
|
2668
|
+
var choices = catalog.map(function (target) {
|
|
2669
|
+
var key = providerTargetKey(target);
|
|
2670
|
+
var checkbox = el('input', {
|
|
2671
|
+
type: 'checkbox', disabled: selectionSaving,
|
|
2672
|
+
onchange: function () {
|
|
2673
|
+
selectionDraft = selectionDraft.filter(function (value) { return value !== key; });
|
|
2674
|
+
if (this.checked) selectionDraft.push(key);
|
|
2675
|
+
doRender();
|
|
2676
|
+
}
|
|
2677
|
+
});
|
|
2678
|
+
checkbox.checked = selectionDraft.indexOf(key) >= 0;
|
|
2679
|
+
return el('label', { class: 'cli-card' }, checkbox,
|
|
2680
|
+
' ' + target.familyLabel + ' (' + target.backend + '/' + target.instance + ')');
|
|
2681
|
+
});
|
|
2682
|
+
function saveSelection(reload) {
|
|
2683
|
+
selectionSaving = true;
|
|
2684
|
+
selectionError = '';
|
|
2685
|
+
doRender();
|
|
2686
|
+
bridge.saveProviderSelection({
|
|
2687
|
+
targets: selectionDraft.map(function (key) {
|
|
2688
|
+
var values = JSON.parse(key);
|
|
2689
|
+
return { provider: values[0], backend: values[1], instance: values[2] };
|
|
2690
|
+
}),
|
|
2691
|
+
expectedRevision: reload ? selection.revision : selectionDraftRevision,
|
|
2692
|
+
reload: reload
|
|
2693
|
+
}).then(function (next) {
|
|
2694
|
+
currentSnapshot = next;
|
|
2695
|
+
selectionDraft = null;
|
|
2696
|
+
selectionDraftRevision = null;
|
|
2697
|
+
}).catch(function (error) {
|
|
2698
|
+
selectionError = error && error.message ? error.message : String(error);
|
|
2699
|
+
}).finally(function () { selectionSaving = false; doRender(); });
|
|
2700
|
+
}
|
|
2701
|
+
return el('section', { class: 'selection-editor' },
|
|
2702
|
+
el('h2', {}, tx('selection.title')),
|
|
2703
|
+
el('p', {}, tx('selection.description')),
|
|
2704
|
+
el('div', { class: 'cli-grid' }, choices),
|
|
2705
|
+
el('div', { class: 'onboarding-actions' },
|
|
2706
|
+
el('button', { class: 'btn', disabled: selectionSaving, onclick: function () { saveSelection(false); } }, tx('selection.save')),
|
|
2707
|
+
selection.diskChanged ? el('button', { class: 'btn', disabled: selectionSaving, onclick: function () { saveSelection(true); } }, tx('selection.reload')) : null,
|
|
2708
|
+
hasSelectionDraftChanges(selection) ? el('button', { class: 'btn', disabled: selectionSaving, onclick: function () { selectionDraft = null; doRender(); } }, tx('selection.reset')) : null
|
|
2709
|
+
),
|
|
2710
|
+
selectionError || selection.error ? el('p', { role: 'alert' }, selectionError || selection.error) : null
|
|
2711
|
+
);
|
|
2712
|
+
}
|
|
2713
|
+
|
|
2633
2714
|
function showOnboarding(snap) {
|
|
2634
2715
|
onboardingActive = true;
|
|
2635
2716
|
splashEl.classList.add('hidden');
|
|
@@ -2640,10 +2721,8 @@ export function buildDesktopBootstrapPage() {
|
|
|
2640
2721
|
|
|
2641
2722
|
onboardingEl.innerHTML = '';
|
|
2642
2723
|
|
|
2643
|
-
var
|
|
2644
|
-
var
|
|
2645
|
-
var installedCount = Array.isArray(inventory.installed) ? inventory.installed.length : 0;
|
|
2646
|
-
var continueDisabled = legacyCliGate && installedCount === 0;
|
|
2724
|
+
var selection = snap.prerequisites && snap.prerequisites.providerSelection;
|
|
2725
|
+
var continueDisabled = !selection || selection.state === 'missing' || selection.state === 'invalid' || hasSelectionDraftChanges(selection);
|
|
2647
2726
|
|
|
2648
2727
|
var continueBtn = el('button', {
|
|
2649
2728
|
class: 'btn',
|
|
@@ -2670,7 +2749,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
2670
2749
|
: (isCliInventoryScanned(snap) ? tx('onboarding.rescanClis') : tx('onboarding.scanClis'));
|
|
2671
2750
|
actions.push(el('button', {
|
|
2672
2751
|
class: 'btn',
|
|
2673
|
-
disabled: cliScanInFlight,
|
|
2752
|
+
disabled: cliScanInFlight || continueDisabled,
|
|
2674
2753
|
onclick: handleCliScanClick
|
|
2675
2754
|
}, scanLabel));
|
|
2676
2755
|
if (cardSet.hasHiddenCards) {
|
|
@@ -2690,6 +2769,7 @@ export function buildDesktopBootstrapPage() {
|
|
|
2690
2769
|
),
|
|
2691
2770
|
el('p', { class: 'onboarding-headline' },
|
|
2692
2771
|
tx('onboarding.headline')),
|
|
2772
|
+
ProviderSelectionEditor(snap),
|
|
2693
2773
|
el('div', { class: 'onboarding-actions' }, actions),
|
|
2694
2774
|
el('div', { class: 'cli-grid' }, cardSet.elements)
|
|
2695
2775
|
);
|
|
@@ -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,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA43FD,CAAC;AACT,CAAC"}
|
|
@@ -1,14 +1,17 @@
|
|
|
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;
|
|
4
7
|
state?: {
|
|
5
8
|
status?: 'pending' | 'scanning' | 'ready' | 'applied' | 'error' | string;
|
|
6
9
|
error?: string | null;
|
|
7
10
|
} | null;
|
|
8
11
|
scan: {
|
|
12
|
+
revision: string;
|
|
9
13
|
scannedAt?: string | null;
|
|
10
|
-
providers: Array<{
|
|
11
|
-
provider: string;
|
|
14
|
+
providers: Array<SelectedProviderTarget & {
|
|
12
15
|
available: boolean;
|
|
13
16
|
authStatus?: string;
|
|
14
17
|
}>;
|
|
@@ -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,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,CAiDrB"}
|
|
@@ -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,26 @@ 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?.scan) {
|
|
117
|
+
if (probe?.scan && probe.scan.revision === probe.selection?.revision) {
|
|
117
118
|
scannedAt = probe.scan.scannedAt ?? null;
|
|
118
119
|
for (const provider of probe.scan.providers) {
|
|
119
|
-
runtimeAvailability.set(provider
|
|
120
|
-
runtimeAuthStatus.set(provider
|
|
120
|
+
runtimeAvailability.set(targetKey(provider), provider.available === true);
|
|
121
|
+
runtimeAuthStatus.set(targetKey(provider), normalizeCliAuthStatus(provider.authStatus));
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
|
-
const
|
|
124
|
+
const selected = new Set(probe?.selection?.nativeSetupTargets?.map(targetKey) ?? []);
|
|
125
|
+
const candidates = DESKTOP_PROVIDER_SETUP_LOCAL_PROVIDERS.filter((providerId) => selected.has(targetKey(nativeSetupTarget(DESKTOP_TO_RUNTIME_PROVIDER[providerId]))))
|
|
126
|
+
.map((providerId) => {
|
|
124
127
|
const suffix = PROVIDER_TO_HELPER_SUFFIX[providerId];
|
|
125
128
|
const helperId = helperPrefix ? `${helperPrefix}-${suffix}` : '';
|
|
126
129
|
const runtimeProvider = DESKTOP_TO_RUNTIME_PROVIDER[providerId];
|
|
127
130
|
const installed = runtimeProvider !== null
|
|
128
|
-
? runtimeAvailability.get(runtimeProvider) === true
|
|
131
|
+
? runtimeAvailability.get(targetKey(nativeSetupTarget(runtimeProvider))) === true
|
|
129
132
|
: false;
|
|
130
133
|
// Auth only means something for a CLI we found. A provider that is not
|
|
131
134
|
// installed has nothing to be signed in to.
|
|
132
135
|
const authStatus = installed && runtimeProvider !== null
|
|
133
|
-
? runtimeAuthStatus.get(runtimeProvider) ?? 'unknown'
|
|
136
|
+
? runtimeAuthStatus.get(targetKey(nativeSetupTarget(runtimeProvider))) ?? 'unknown'
|
|
134
137
|
: 'unknown';
|
|
135
138
|
return {
|
|
136
139
|
helperId,
|
|
@@ -146,7 +149,7 @@ export function buildDesktopCliInventoryFromRuntime(probe, platform = process.pl
|
|
|
146
149
|
.filter((entry) => entry.installed)
|
|
147
150
|
.map((entry) => entry.helperId);
|
|
148
151
|
return {
|
|
149
|
-
source: probe?.
|
|
152
|
+
source: probe?.selection ? 'runtime' : 'unknown',
|
|
150
153
|
installed,
|
|
151
154
|
total: installed.length,
|
|
152
155
|
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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"}
|
|
@@ -25,9 +25,6 @@ export interface DesktopHostBackgroundConfig {
|
|
|
25
25
|
keepServicesRunning: boolean;
|
|
26
26
|
closeBehavior: 'quit' | 'minimize_to_tray';
|
|
27
27
|
}
|
|
28
|
-
export interface DesktopHostSetupAuditConfig {
|
|
29
|
-
parallel: boolean;
|
|
30
|
-
}
|
|
31
28
|
export interface DesktopHostBootstrapConfig {
|
|
32
29
|
onboardingMode: DesktopBootstrapOnboardingMode;
|
|
33
30
|
}
|
|
@@ -48,7 +45,6 @@ export interface DesktopHostConfig {
|
|
|
48
45
|
gracefulShutdownMs: number;
|
|
49
46
|
bootstrap: DesktopHostBootstrapConfig;
|
|
50
47
|
background: DesktopHostBackgroundConfig;
|
|
51
|
-
setupAudit: DesktopHostSetupAuditConfig;
|
|
52
48
|
update: DesktopUpdateConfig;
|
|
53
49
|
paths: DesktopHostPaths;
|
|
54
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../desktop/host/config.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,MAAM,CAAC;IACpC,8BAA8B,EAAE,MAAM,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,kBAAkB,CAAC;CAC5C;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../desktop/host/config.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,MAAM,CAAC;IACpC,8BAA8B,EAAE,MAAM,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,kBAAkB,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,8BAA8B,CAAC;CAChD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,0BAA0B,CAAC;IACtC,UAAU,EAAE,2BAA2B,CAAC;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,+BAA+B;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAaD,eAAO,MAAM,0BAA0B,SAAS,CAAC;AAgCjD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpE;AAuED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,iBAAiB,CA2JnB"}
|
package/build/desktop/config.js
CHANGED
|
@@ -15,7 +15,6 @@ const DEFAULT_DESKTOP_TRAY_ENABLED = true;
|
|
|
15
15
|
const DEFAULT_KEEP_SERVICES_RUNNING = true;
|
|
16
16
|
const DEFAULT_CLOSE_BEHAVIOR = 'minimize_to_tray';
|
|
17
17
|
const DEFAULT_FORCE_QUIT_ON_CLOSE = false;
|
|
18
|
-
const DEFAULT_SETUP_AUDIT_PARALLEL = true;
|
|
19
18
|
const DEFAULT_BOOTSTRAP_ONBOARDING_MODE = 'setup_status';
|
|
20
19
|
export const DESKTOP_USER_DATA_DIR_NAME = 'Cats';
|
|
21
20
|
function isWindowsAbsolutePath(value) {
|
|
@@ -67,7 +66,7 @@ function resolveHostRuntimeRoot(packaged, currentPackageRoot, resourcesPath) {
|
|
|
67
66
|
hostPackageRoot: resolveDesktopPath(joinDesktopPath(bundledResourcesRoot, 'app.asar')),
|
|
68
67
|
appSidecarRoot: resolveDesktopPath(joinDesktopPath(bundledResourcesRoot, 'app-sidecar')),
|
|
69
68
|
runtimePackageRoot: resolveDesktopPath(joinDesktopPath(bundledResourcesRoot, 'cats-runtime')),
|
|
70
|
-
platformBundledConfigDir: resolveDesktopPath(joinDesktopPath(bundledResourcesRoot, '
|
|
69
|
+
platformBundledConfigDir: resolveDesktopPath(joinDesktopPath(bundledResourcesRoot, 'app-sidecar', 'config')),
|
|
71
70
|
};
|
|
72
71
|
}
|
|
73
72
|
function parsePositiveInt(rawValue, fallback) {
|
|
@@ -138,9 +137,6 @@ export function resolveDesktopHostConfig(options) {
|
|
|
138
137
|
const bootstrap = {
|
|
139
138
|
onboardingMode: parseBootstrapOnboardingMode(env.CATS_DESKTOP_BOOTSTRAP_ONBOARDING_MODE),
|
|
140
139
|
};
|
|
141
|
-
const setupAudit = {
|
|
142
|
-
parallel: parseDesktopBoolean(env.CATS_DESKTOP_SETUP_AUDIT_PARALLEL, DEFAULT_SETUP_AUDIT_PARALLEL),
|
|
143
|
-
};
|
|
144
140
|
const update = {
|
|
145
141
|
// SPEC-111 section 6: startup checks stay off for public builds until the
|
|
146
142
|
// signed old-to-new upgrade gate passes on every supported platform.
|
|
@@ -163,7 +159,6 @@ export function resolveDesktopHostConfig(options) {
|
|
|
163
159
|
gracefulShutdownMs,
|
|
164
160
|
bootstrap,
|
|
165
161
|
background,
|
|
166
|
-
setupAudit,
|
|
167
162
|
update,
|
|
168
163
|
paths: {
|
|
169
164
|
platformDir,
|