@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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Script: build-desktop-package.sh
|
|
4
4
|
# Description: Build staged desktop packaging outputs for Cats.
|
|
5
5
|
#
|
|
6
|
-
# Usage: ./scripts/linux/build-desktop-package.sh [all|windows|macos|linux] [output-dir]
|
|
6
|
+
# Usage: ./scripts/linux/build-desktop-package.sh [all|windows|macos|linux] [output-dir] [apps-lock]
|
|
7
7
|
#
|
|
8
8
|
# Arguments:
|
|
9
9
|
# [platform] Optional platform filter. Defaults to all.
|
|
@@ -20,11 +20,11 @@ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
20
20
|
PROJECT_ROOT="$(cd -- "${SCRIPT_DIR}/../.." && pwd)"
|
|
21
21
|
PLATFORM="${1:-all}"
|
|
22
22
|
OUTPUT_DIR="${2:-}"
|
|
23
|
+
APPS_LOCK="${3:-}"
|
|
23
24
|
|
|
24
25
|
cd "${PROJECT_ROOT}"
|
|
25
26
|
npm run build
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
fi
|
|
27
|
+
package_args=(./scripts/package-desktop.mjs --platform "${PLATFORM}")
|
|
28
|
+
if [[ -n "${OUTPUT_DIR}" ]]; then package_args+=(--output-dir "${OUTPUT_DIR}"); fi
|
|
29
|
+
if [[ -n "${APPS_LOCK}" ]]; then package_args+=(--apps-lock "${APPS_LOCK}"); fi
|
|
30
|
+
node "${package_args[@]}"
|
|
File without changes
|
|
File without changes
|
|
@@ -52,7 +52,7 @@ provider_display_name() {
|
|
|
52
52
|
antigravity) printf '%s\n' 'Antigravity CLI' ;;
|
|
53
53
|
grok) printf '%s\n' 'Grok CLI' ;;
|
|
54
54
|
devin) printf '%s\n' 'Devin CLI' ;;
|
|
55
|
-
|
|
55
|
+
muse) printf '%s\n' 'Meta Muse CLI' ;;
|
|
56
56
|
claude) printf '%s\n' 'Claude Code CLI' ;;
|
|
57
57
|
cursor) printf '%s\n' 'Cursor Agent CLI' ;;
|
|
58
58
|
goose) printf '%s\n' 'Goose CLI' ;;
|
|
@@ -67,7 +67,7 @@ provider_primary_command() {
|
|
|
67
67
|
antigravity) printf '%s\n' 'agy' ;;
|
|
68
68
|
grok) printf '%s\n' 'grok' ;;
|
|
69
69
|
devin) printf '%s\n' 'devin' ;;
|
|
70
|
-
|
|
70
|
+
muse) printf '%s\n' 'muse' ;;
|
|
71
71
|
claude) printf '%s\n' 'claude' ;;
|
|
72
72
|
cursor) printf '%s\n' 'cursor-agent' ;;
|
|
73
73
|
goose) printf '%s\n' 'goose' ;;
|
|
@@ -98,7 +98,7 @@ provider_install_url() {
|
|
|
98
98
|
antigravity) printf '%s\n' 'https://antigravity.google/cli/install.sh' ;;
|
|
99
99
|
grok) printf '%s\n' 'https://x.ai/cli/install.sh' ;;
|
|
100
100
|
devin) printf '%s\n' 'https://cli.devin.ai/install.sh' ;;
|
|
101
|
-
|
|
101
|
+
muse) printf '%s\n' 'https://dev.meta.ai/install.sh' ;;
|
|
102
102
|
claude) printf '%s\n' 'https://claude.ai/install.sh' ;;
|
|
103
103
|
cursor) printf '%s\n' 'https://cursor.com/install' ;;
|
|
104
104
|
goose) printf '%s\n' 'https://github.com/block/goose/releases/download/stable/download_cli.sh' ;;
|
|
@@ -111,6 +111,7 @@ provider_install_url() {
|
|
|
111
111
|
provider_install_dir() {
|
|
112
112
|
case "$1" in
|
|
113
113
|
grok) printf '%s\n' "$HOME/.grok/bin" ;;
|
|
114
|
+
muse) muse_install_dir ;;
|
|
114
115
|
*) printf '%s\n' "$HOME/.local/bin" ;;
|
|
115
116
|
esac
|
|
116
117
|
}
|
|
@@ -249,12 +250,59 @@ ensure_provider_alias() {
|
|
|
249
250
|
fi
|
|
250
251
|
}
|
|
251
252
|
|
|
253
|
+
# muse's install directory holds the launcher, its state files, and one
|
|
254
|
+
# muse-bin-<version> build per version it has downloaded.
|
|
255
|
+
muse_install_dir() {
|
|
256
|
+
printf '%s\n' "${MUSE_INSTALL_DIR:-$HOME/.local/bin}"
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
# The version comes from the launcher's own state file, never from running muse.
|
|
260
|
+
# The launcher forwards every argument straight to the agent binary, so a flag
|
|
261
|
+
# that binary does not recognise opens the interactive TUI and hangs an
|
|
262
|
+
# unattended setup run forever.
|
|
263
|
+
muse_installed_version() {
|
|
264
|
+
local version_file
|
|
265
|
+
version_file="$(muse_install_dir)/.muse-version"
|
|
266
|
+
if [ -r "$version_file" ]; then
|
|
267
|
+
tr -d '\r\n' < "$version_file"
|
|
268
|
+
fi
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
# "Installed" means the launcher actually fetched a build. The official
|
|
272
|
+
# installer writes the launcher first and downloads muse-bin-<version> last, so
|
|
273
|
+
# a run that dies in between leaves a launcher with nothing behind it. Treating
|
|
274
|
+
# that as installed would skip the reinstall that repairs it.
|
|
275
|
+
muse_install_complete() {
|
|
276
|
+
local dir version
|
|
277
|
+
dir="$(muse_install_dir)"
|
|
278
|
+
[ -x "$dir/muse" ] || return 1
|
|
279
|
+
version="$(muse_installed_version)"
|
|
280
|
+
[ -n "$version" ] || return 1
|
|
281
|
+
[ -x "$dir/muse-bin-$version" ]
|
|
282
|
+
}
|
|
283
|
+
|
|
252
284
|
detect_provider_command() {
|
|
253
285
|
local platform="$1"
|
|
254
286
|
local provider="$2"
|
|
255
287
|
local primary_command
|
|
256
288
|
local candidate
|
|
257
289
|
|
|
290
|
+
if [ "$provider" = 'muse' ]; then
|
|
291
|
+
if muse_install_complete; then
|
|
292
|
+
prepend_path_if_missing "$(muse_install_dir)"
|
|
293
|
+
printf '%s\n' "$(muse_install_dir)/muse"
|
|
294
|
+
return 0
|
|
295
|
+
fi
|
|
296
|
+
# A muse elsewhere on PATH is someone's own install; report it rather than
|
|
297
|
+
# claiming the tool is missing, but never treat a half-written install
|
|
298
|
+
# directory as one.
|
|
299
|
+
if [ -x "$(muse_install_dir)/muse" ]; then
|
|
300
|
+
return 1
|
|
301
|
+
fi
|
|
302
|
+
command -v muse 2>/dev/null && return 0
|
|
303
|
+
return 1
|
|
304
|
+
fi
|
|
305
|
+
|
|
258
306
|
primary_command="$(provider_primary_command "$provider")"
|
|
259
307
|
if command -v "$primary_command" >/dev/null 2>&1; then
|
|
260
308
|
command -v "$primary_command"
|
|
@@ -276,9 +324,36 @@ EOF
|
|
|
276
324
|
|
|
277
325
|
provider_version_line() {
|
|
278
326
|
local command_path="$1"
|
|
327
|
+
local provider="${2:-}"
|
|
328
|
+
|
|
329
|
+
# muse is read, never run: see muse_installed_version.
|
|
330
|
+
if [ "$provider" = 'muse' ]; then
|
|
331
|
+
muse_installed_version
|
|
332
|
+
return 0
|
|
333
|
+
fi
|
|
334
|
+
|
|
279
335
|
"$command_path" --version 2>&1 | head -1 || true
|
|
280
336
|
}
|
|
281
337
|
|
|
338
|
+
# `curl ... | bash` returns 0 when the download itself fails, because bash reads
|
|
339
|
+
# empty input and succeeds. Staging the script first is what makes a failed
|
|
340
|
+
# install report as a failure.
|
|
341
|
+
run_downloaded_shell_installer() {
|
|
342
|
+
local url="$1"
|
|
343
|
+
local installer_path status=0
|
|
344
|
+
|
|
345
|
+
installer_path="$(mktemp)"
|
|
346
|
+
if ! curl -fsSL "$url" -o "$installer_path"; then
|
|
347
|
+
rm -f "$installer_path"
|
|
348
|
+
printf 'Failed to download the installer from %s\n' "$url" >&2
|
|
349
|
+
return 1
|
|
350
|
+
fi
|
|
351
|
+
|
|
352
|
+
bash "$installer_path" < /dev/null || status=$?
|
|
353
|
+
rm -f "$installer_path"
|
|
354
|
+
return "$status"
|
|
355
|
+
}
|
|
356
|
+
|
|
282
357
|
# Devin's official install.sh ends by launching the interactive `devin setup`
|
|
283
358
|
# wizard. Packaged setup runs non-interactively with no console a prompt can
|
|
284
359
|
# reach, so an unstripped installer would stall the step rather than fail.
|
|
@@ -342,8 +417,10 @@ run_remote_pipe_installer() {
|
|
|
342
417
|
goose)
|
|
343
418
|
curl -fsSL "$url" | env CONFIGURE=false bash
|
|
344
419
|
;;
|
|
345
|
-
|
|
346
|
-
curl
|
|
420
|
+
muse)
|
|
421
|
+
# Download first, then run: with `curl ... | bash` a failed download still
|
|
422
|
+
# exits 0, because bash reads empty input and succeeds.
|
|
423
|
+
run_downloaded_shell_installer "$url"
|
|
347
424
|
;;
|
|
348
425
|
cursor)
|
|
349
426
|
curl "$url" -fsSL | bash
|
|
@@ -424,7 +501,9 @@ run_provider_install_action() {
|
|
|
424
501
|
devin)
|
|
425
502
|
run_devin_installer
|
|
426
503
|
;;
|
|
427
|
-
|
|
504
|
+
muse)
|
|
505
|
+
# The official installer always refreshes the launcher and asks it to pull
|
|
506
|
+
# the newest build, so install, upgrade, and force are the same call.
|
|
428
507
|
run_remote_pipe_installer "$provider"
|
|
429
508
|
;;
|
|
430
509
|
claude)
|
|
@@ -559,28 +638,22 @@ UPNP_EOF
|
|
|
559
638
|
esac
|
|
560
639
|
fi
|
|
561
640
|
|
|
562
|
-
#
|
|
563
|
-
#
|
|
564
|
-
#
|
|
565
|
-
#
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
__CATS_UNINSTALL_WARNINGS+=("uv_tool_uninstall_failed:aider-chat")
|
|
579
|
-
fi
|
|
580
|
-
else
|
|
581
|
-
__CATS_UNINSTALL_WARNINGS+=("uv_missing_aider_chat_may_remain")
|
|
582
|
-
fi
|
|
583
|
-
__CATS_UNINSTALL_WARNINGS+=("bundled_uv_left_in_place_provenance_unknown")
|
|
641
|
+
# The muse launcher is not the tool either: every muse-bin-<version> build it
|
|
642
|
+
# has downloaded, plus its .muse-* state files, sit in the same directory and
|
|
643
|
+
# survive removing the launcher alone. They are named deterministically, so
|
|
644
|
+
# they can be removed without guessing at unrelated files in ~/.local/bin.
|
|
645
|
+
if [ "$provider" = 'muse' ]; then
|
|
646
|
+
local muse_dir muse_leftover
|
|
647
|
+
muse_dir="$(muse_install_dir)"
|
|
648
|
+
for muse_leftover in "$muse_dir"/muse-bin-* "$muse_dir"/.muse-*; do
|
|
649
|
+
case "$muse_leftover" in
|
|
650
|
+
"$HOME"/*)
|
|
651
|
+
if [ -e "$muse_leftover" ] || [ -L "$muse_leftover" ]; then
|
|
652
|
+
planned_paths+=("$muse_leftover")
|
|
653
|
+
fi
|
|
654
|
+
;;
|
|
655
|
+
esac
|
|
656
|
+
done
|
|
584
657
|
fi
|
|
585
658
|
|
|
586
659
|
for path in "${planned_paths[@]}"; do
|
|
@@ -796,7 +869,7 @@ run_native_provider_installer() {
|
|
|
796
869
|
|
|
797
870
|
if command_path="$(detect_provider_command "$platform" "$provider")"; then
|
|
798
871
|
initial_installed='true'
|
|
799
|
-
detected_version="$(provider_version_line "$command_path")"
|
|
872
|
+
detected_version="$(provider_version_line "$command_path" "$provider")"
|
|
800
873
|
if [ "$check_only" = 'true' ]; then
|
|
801
874
|
if [ "$emit_json" = 'true' ]; then
|
|
802
875
|
printf '{'
|
|
@@ -928,7 +1001,7 @@ run_native_provider_installer() {
|
|
|
928
1001
|
|
|
929
1002
|
while [ $attempt -le 3 ]; do
|
|
930
1003
|
if command_path="$(detect_provider_command "$platform" "$provider")"; then
|
|
931
|
-
detected_version="$(provider_version_line "$command_path")"
|
|
1004
|
+
detected_version="$(provider_version_line "$command_path" "$provider")"
|
|
932
1005
|
if [ "$emit_json" = 'true' ]; then
|
|
933
1006
|
warnings=("Reload your shell if ${display_name} is not visible yet: source ${shell_rc}")
|
|
934
1007
|
printf '{'
|
|
@@ -76,11 +76,33 @@ if [[ -n "$agent" ]]; then
|
|
|
76
76
|
fi
|
|
77
77
|
|
|
78
78
|
skill_dirs=()
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
discover_skills() {
|
|
80
|
+
local entry skill_name existing existing_name
|
|
81
|
+
for entry in "$1"/*; do
|
|
82
|
+
[[ -d "$entry" ]] || continue
|
|
83
|
+
[[ "$entry" != *.bootstrap ]] || continue
|
|
84
|
+
if [[ -L "$entry" ]]; then
|
|
85
|
+
echo "Linked skill directories are not supported: $entry" >&2
|
|
86
|
+
exit 1
|
|
87
|
+
fi
|
|
88
|
+
if [[ -f "$entry/SKILL.md" ]]; then
|
|
89
|
+
skill_name="$(basename "$entry" | tr '[:upper:]' '[:lower:]')"
|
|
90
|
+
# macOS Bash 3.2 treats an empty array as unset under nounset.
|
|
91
|
+
for existing in ${skill_dirs[@]+"${skill_dirs[@]}"}; do
|
|
92
|
+
existing_name="$(basename "$existing" | tr '[:upper:]' '[:lower:]')"
|
|
93
|
+
if [[ "$skill_name" == "$existing_name" ]]; then
|
|
94
|
+
echo "Duplicate skill '$skill_name': $existing and $entry" >&2
|
|
95
|
+
exit 1
|
|
96
|
+
fi
|
|
97
|
+
done
|
|
98
|
+
skill_dirs+=("$entry")
|
|
99
|
+
# Resources inside this package are copied intact, never discovered again.
|
|
100
|
+
else
|
|
101
|
+
discover_skills "$entry"
|
|
102
|
+
fi
|
|
103
|
+
done
|
|
104
|
+
}
|
|
105
|
+
discover_skills "$skills_dir"
|
|
84
106
|
|
|
85
107
|
if [[ ${#skill_dirs[@]} -eq 0 ]]; then
|
|
86
108
|
echo "No skills found in $skills_dir (no directories with SKILL.md)" >&2
|
|
@@ -37,10 +37,11 @@ assert_file "${RESOURCES_ROOT}/app-sidecar/build/renderer/index.html" 'bundled c
|
|
|
37
37
|
assert_file "${RESOURCES_ROOT}/app-sidecar/package.json" 'bundled cats app package manifest'
|
|
38
38
|
assert_file "${RESOURCES_ROOT}/app-sidecar/node_modules/js-yaml/package.json" 'bundled cats app js-yaml dependency marker'
|
|
39
39
|
assert_file "${RESOURCES_ROOT}/app-sidecar/node_modules/argparse/package.json" 'bundled cats app argparse dependency marker'
|
|
40
|
+
assert_file "${RESOURCES_ROOT}/app-sidecar/config/provider-capability-bootstrap.yaml.example" 'bundled cats capability bootstrap example'
|
|
40
41
|
assert_file "${RESOURCES_ROOT}/cats-runtime/build/runtime/index.js" 'bundled cats-runtime entry'
|
|
41
42
|
assert_file "${RESOURCES_ROOT}/cats-runtime/package.json" 'bundled cats-runtime package manifest'
|
|
42
43
|
assert_file "${RESOURCES_ROOT}/cats-runtime/public/provider-setup.html" 'bundled cats-runtime setup UI'
|
|
43
|
-
assert_file "${RESOURCES_ROOT}/cats-runtime/skills/README.md" 'bundled cats-runtime skills catalog root'
|
|
44
|
+
assert_file "${RESOURCES_ROOT}/cats-runtime/runtime-skills/README.md" 'bundled cats-runtime skills catalog root'
|
|
44
45
|
assert_file "${RESOURCES_ROOT}/cats-runtime/config/management.yaml.example" 'bundled cats-runtime management config example'
|
|
45
46
|
assert_file "${RESOURCES_ROOT}/cats-runtime/config/providers.yaml.example" 'bundled cats-runtime provider config example'
|
|
46
47
|
assert_file "${RESOURCES_ROOT}/cats-runtime/config/curated-model-catalogs.yaml.example" 'bundled cats-runtime curated model catalog example'
|
|
@@ -53,7 +54,7 @@ assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-antigravity.sh
|
|
|
53
54
|
assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-grok.sh" 'bundled Linux Grok installer helper'
|
|
54
55
|
assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-cline.sh" 'bundled Linux Cline installer helper'
|
|
55
56
|
assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-devin.sh" 'bundled Linux Devin installer helper'
|
|
56
|
-
assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-
|
|
57
|
+
assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-meta-cli.sh" 'bundled Linux Meta Muse installer helper'
|
|
57
58
|
assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-copilot.sh" 'bundled Linux GitHub Copilot installer helper'
|
|
58
59
|
assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-opencode.sh" 'bundled Linux OpenCode installer helper'
|
|
59
60
|
assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-kilo.sh" 'bundled Linux Kilo Code installer helper'
|
|
@@ -102,7 +103,7 @@ assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-antigravi
|
|
|
102
103
|
assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-grok-native-installer-script'), 'Linux target includes the bundled Grok installer asset');
|
|
103
104
|
assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-cline-native-installer-script'), 'Linux target includes the bundled Cline installer asset');
|
|
104
105
|
assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-devin-native-installer-script'), 'Linux target includes the bundled Devin installer asset');
|
|
105
|
-
assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-
|
|
106
|
+
assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-muse-native-installer-script'), 'Linux target includes the bundled Meta Muse installer asset');
|
|
106
107
|
assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-setup-readiness-audit-script'), 'Linux target includes the bundled readiness audit asset');
|
|
107
108
|
assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-provider-cli-common-support-script'), 'Linux target includes the Linux provider helper asset');
|
|
108
109
|
assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-node-cli-common-support-script'), 'Linux target includes the Linux npm helper asset');
|
|
@@ -35,7 +35,7 @@ while [ $# -gt 0 ]; do
|
|
|
35
35
|
shift
|
|
36
36
|
done
|
|
37
37
|
|
|
38
|
-
for script_name in install-claude-code.sh install-antigravity.sh install-cursor-agent.sh install-devin.sh install-
|
|
38
|
+
for script_name in install-claude-code.sh install-antigravity.sh install-cursor-agent.sh install-devin.sh install-meta-cli.sh install-goose.sh install-junie.sh install-kiro-cli.sh install-grok.sh; do
|
|
39
39
|
"$SCRIPT_DIR/$script_name" -Upgrade
|
|
40
40
|
done
|
|
41
41
|
|
|
@@ -20,11 +20,11 @@ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
20
20
|
PROJECT_ROOT="$(cd -- "${SCRIPT_DIR}/../.." && pwd)"
|
|
21
21
|
PLATFORM="${1:-all}"
|
|
22
22
|
OUTPUT_DIR="${2:-}"
|
|
23
|
+
APPS_LOCK="${3:-}"
|
|
23
24
|
|
|
24
25
|
cd "${PROJECT_ROOT}"
|
|
25
26
|
npm run build
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
fi
|
|
27
|
+
package_args=(./scripts/package-desktop.mjs --platform "${PLATFORM}")
|
|
28
|
+
if [[ -n "${OUTPUT_DIR}" ]]; then package_args+=(--output-dir "${OUTPUT_DIR}"); fi
|
|
29
|
+
if [[ -n "${APPS_LOCK}" ]]; then package_args+=(--apps-lock "${APPS_LOCK}"); fi
|
|
30
|
+
node "${package_args[@]}"
|
|
File without changes
|
|
File without changes
|
|
@@ -52,7 +52,7 @@ provider_display_name() {
|
|
|
52
52
|
antigravity) printf '%s\n' 'Antigravity CLI' ;;
|
|
53
53
|
grok) printf '%s\n' 'Grok CLI' ;;
|
|
54
54
|
devin) printf '%s\n' 'Devin CLI' ;;
|
|
55
|
-
|
|
55
|
+
muse) printf '%s\n' 'Meta Muse CLI' ;;
|
|
56
56
|
claude) printf '%s\n' 'Claude Code CLI' ;;
|
|
57
57
|
cursor) printf '%s\n' 'Cursor Agent CLI' ;;
|
|
58
58
|
goose) printf '%s\n' 'Goose CLI' ;;
|
|
@@ -67,7 +67,7 @@ provider_primary_command() {
|
|
|
67
67
|
antigravity) printf '%s\n' 'agy' ;;
|
|
68
68
|
grok) printf '%s\n' 'grok' ;;
|
|
69
69
|
devin) printf '%s\n' 'devin' ;;
|
|
70
|
-
|
|
70
|
+
muse) printf '%s\n' 'muse' ;;
|
|
71
71
|
claude) printf '%s\n' 'claude' ;;
|
|
72
72
|
cursor) printf '%s\n' 'cursor-agent' ;;
|
|
73
73
|
goose) printf '%s\n' 'goose' ;;
|
|
@@ -98,7 +98,7 @@ provider_install_url() {
|
|
|
98
98
|
antigravity) printf '%s\n' 'https://antigravity.google/cli/install.sh' ;;
|
|
99
99
|
grok) printf '%s\n' 'https://x.ai/cli/install.sh' ;;
|
|
100
100
|
devin) printf '%s\n' 'https://cli.devin.ai/install.sh' ;;
|
|
101
|
-
|
|
101
|
+
muse) printf '%s\n' 'https://dev.meta.ai/install.sh' ;;
|
|
102
102
|
claude) printf '%s\n' 'https://claude.ai/install.sh' ;;
|
|
103
103
|
cursor) printf '%s\n' 'https://cursor.com/install' ;;
|
|
104
104
|
goose) printf '%s\n' 'https://github.com/block/goose/releases/download/stable/download_cli.sh' ;;
|
|
@@ -111,6 +111,7 @@ provider_install_url() {
|
|
|
111
111
|
provider_install_dir() {
|
|
112
112
|
case "$1" in
|
|
113
113
|
grok) printf '%s\n' "$HOME/.grok/bin" ;;
|
|
114
|
+
muse) muse_install_dir ;;
|
|
114
115
|
*) printf '%s\n' "$HOME/.local/bin" ;;
|
|
115
116
|
esac
|
|
116
117
|
}
|
|
@@ -249,12 +250,59 @@ ensure_provider_alias() {
|
|
|
249
250
|
fi
|
|
250
251
|
}
|
|
251
252
|
|
|
253
|
+
# muse's install directory holds the launcher, its state files, and one
|
|
254
|
+
# muse-bin-<version> build per version it has downloaded.
|
|
255
|
+
muse_install_dir() {
|
|
256
|
+
printf '%s\n' "${MUSE_INSTALL_DIR:-$HOME/.local/bin}"
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
# The version comes from the launcher's own state file, never from running muse.
|
|
260
|
+
# The launcher forwards every argument straight to the agent binary, so a flag
|
|
261
|
+
# that binary does not recognise opens the interactive TUI and hangs an
|
|
262
|
+
# unattended setup run forever.
|
|
263
|
+
muse_installed_version() {
|
|
264
|
+
local version_file
|
|
265
|
+
version_file="$(muse_install_dir)/.muse-version"
|
|
266
|
+
if [ -r "$version_file" ]; then
|
|
267
|
+
tr -d '\r\n' < "$version_file"
|
|
268
|
+
fi
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
# "Installed" means the launcher actually fetched a build. The official
|
|
272
|
+
# installer writes the launcher first and downloads muse-bin-<version> last, so
|
|
273
|
+
# a run that dies in between leaves a launcher with nothing behind it. Treating
|
|
274
|
+
# that as installed would skip the reinstall that repairs it.
|
|
275
|
+
muse_install_complete() {
|
|
276
|
+
local dir version
|
|
277
|
+
dir="$(muse_install_dir)"
|
|
278
|
+
[ -x "$dir/muse" ] || return 1
|
|
279
|
+
version="$(muse_installed_version)"
|
|
280
|
+
[ -n "$version" ] || return 1
|
|
281
|
+
[ -x "$dir/muse-bin-$version" ]
|
|
282
|
+
}
|
|
283
|
+
|
|
252
284
|
detect_provider_command() {
|
|
253
285
|
local platform="$1"
|
|
254
286
|
local provider="$2"
|
|
255
287
|
local primary_command
|
|
256
288
|
local candidate
|
|
257
289
|
|
|
290
|
+
if [ "$provider" = 'muse' ]; then
|
|
291
|
+
if muse_install_complete; then
|
|
292
|
+
prepend_path_if_missing "$(muse_install_dir)"
|
|
293
|
+
printf '%s\n' "$(muse_install_dir)/muse"
|
|
294
|
+
return 0
|
|
295
|
+
fi
|
|
296
|
+
# A muse elsewhere on PATH is someone's own install; report it rather than
|
|
297
|
+
# claiming the tool is missing, but never treat a half-written install
|
|
298
|
+
# directory as one.
|
|
299
|
+
if [ -x "$(muse_install_dir)/muse" ]; then
|
|
300
|
+
return 1
|
|
301
|
+
fi
|
|
302
|
+
command -v muse 2>/dev/null && return 0
|
|
303
|
+
return 1
|
|
304
|
+
fi
|
|
305
|
+
|
|
258
306
|
primary_command="$(provider_primary_command "$provider")"
|
|
259
307
|
if command -v "$primary_command" >/dev/null 2>&1; then
|
|
260
308
|
command -v "$primary_command"
|
|
@@ -276,9 +324,36 @@ EOF
|
|
|
276
324
|
|
|
277
325
|
provider_version_line() {
|
|
278
326
|
local command_path="$1"
|
|
327
|
+
local provider="${2:-}"
|
|
328
|
+
|
|
329
|
+
# muse is read, never run: see muse_installed_version.
|
|
330
|
+
if [ "$provider" = 'muse' ]; then
|
|
331
|
+
muse_installed_version
|
|
332
|
+
return 0
|
|
333
|
+
fi
|
|
334
|
+
|
|
279
335
|
"$command_path" --version 2>&1 | head -1 || true
|
|
280
336
|
}
|
|
281
337
|
|
|
338
|
+
# `curl ... | bash` returns 0 when the download itself fails, because bash reads
|
|
339
|
+
# empty input and succeeds. Staging the script first is what makes a failed
|
|
340
|
+
# install report as a failure.
|
|
341
|
+
run_downloaded_shell_installer() {
|
|
342
|
+
local url="$1"
|
|
343
|
+
local installer_path status=0
|
|
344
|
+
|
|
345
|
+
installer_path="$(mktemp)"
|
|
346
|
+
if ! curl -fsSL "$url" -o "$installer_path"; then
|
|
347
|
+
rm -f "$installer_path"
|
|
348
|
+
printf 'Failed to download the installer from %s\n' "$url" >&2
|
|
349
|
+
return 1
|
|
350
|
+
fi
|
|
351
|
+
|
|
352
|
+
bash "$installer_path" < /dev/null || status=$?
|
|
353
|
+
rm -f "$installer_path"
|
|
354
|
+
return "$status"
|
|
355
|
+
}
|
|
356
|
+
|
|
282
357
|
# Devin's official install.sh ends by launching the interactive `devin setup`
|
|
283
358
|
# wizard. Packaged setup runs non-interactively with no console a prompt can
|
|
284
359
|
# reach, so an unstripped installer would stall the step rather than fail.
|
|
@@ -342,8 +417,10 @@ run_remote_pipe_installer() {
|
|
|
342
417
|
goose)
|
|
343
418
|
curl -fsSL "$url" | env CONFIGURE=false bash
|
|
344
419
|
;;
|
|
345
|
-
|
|
346
|
-
curl
|
|
420
|
+
muse)
|
|
421
|
+
# Download first, then run: with `curl ... | bash` a failed download still
|
|
422
|
+
# exits 0, because bash reads empty input and succeeds.
|
|
423
|
+
run_downloaded_shell_installer "$url"
|
|
347
424
|
;;
|
|
348
425
|
cursor)
|
|
349
426
|
curl "$url" -fsSL | bash
|
|
@@ -424,7 +501,9 @@ run_provider_install_action() {
|
|
|
424
501
|
devin)
|
|
425
502
|
run_devin_installer
|
|
426
503
|
;;
|
|
427
|
-
|
|
504
|
+
muse)
|
|
505
|
+
# The official installer always refreshes the launcher and asks it to pull
|
|
506
|
+
# the newest build, so install, upgrade, and force are the same call.
|
|
428
507
|
run_remote_pipe_installer "$provider"
|
|
429
508
|
;;
|
|
430
509
|
claude)
|
|
@@ -559,28 +638,22 @@ UPNP_EOF
|
|
|
559
638
|
esac
|
|
560
639
|
fi
|
|
561
640
|
|
|
562
|
-
#
|
|
563
|
-
#
|
|
564
|
-
#
|
|
565
|
-
#
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
__CATS_UNINSTALL_WARNINGS+=("uv_tool_uninstall_failed:aider-chat")
|
|
579
|
-
fi
|
|
580
|
-
else
|
|
581
|
-
__CATS_UNINSTALL_WARNINGS+=("uv_missing_aider_chat_may_remain")
|
|
582
|
-
fi
|
|
583
|
-
__CATS_UNINSTALL_WARNINGS+=("bundled_uv_left_in_place_provenance_unknown")
|
|
641
|
+
# The muse launcher is not the tool either: every muse-bin-<version> build it
|
|
642
|
+
# has downloaded, plus its .muse-* state files, sit in the same directory and
|
|
643
|
+
# survive removing the launcher alone. They are named deterministically, so
|
|
644
|
+
# they can be removed without guessing at unrelated files in ~/.local/bin.
|
|
645
|
+
if [ "$provider" = 'muse' ]; then
|
|
646
|
+
local muse_dir muse_leftover
|
|
647
|
+
muse_dir="$(muse_install_dir)"
|
|
648
|
+
for muse_leftover in "$muse_dir"/muse-bin-* "$muse_dir"/.muse-*; do
|
|
649
|
+
case "$muse_leftover" in
|
|
650
|
+
"$HOME"/*)
|
|
651
|
+
if [ -e "$muse_leftover" ] || [ -L "$muse_leftover" ]; then
|
|
652
|
+
planned_paths+=("$muse_leftover")
|
|
653
|
+
fi
|
|
654
|
+
;;
|
|
655
|
+
esac
|
|
656
|
+
done
|
|
584
657
|
fi
|
|
585
658
|
|
|
586
659
|
for path in "${planned_paths[@]}"; do
|
|
@@ -796,7 +869,7 @@ run_native_provider_installer() {
|
|
|
796
869
|
|
|
797
870
|
if command_path="$(detect_provider_command "$platform" "$provider")"; then
|
|
798
871
|
initial_installed='true'
|
|
799
|
-
detected_version="$(provider_version_line "$command_path")"
|
|
872
|
+
detected_version="$(provider_version_line "$command_path" "$provider")"
|
|
800
873
|
if [ "$check_only" = 'true' ]; then
|
|
801
874
|
if [ "$emit_json" = 'true' ]; then
|
|
802
875
|
printf '{'
|
|
@@ -928,7 +1001,7 @@ run_native_provider_installer() {
|
|
|
928
1001
|
|
|
929
1002
|
while [ $attempt -le 3 ]; do
|
|
930
1003
|
if command_path="$(detect_provider_command "$platform" "$provider")"; then
|
|
931
|
-
detected_version="$(provider_version_line "$command_path")"
|
|
1004
|
+
detected_version="$(provider_version_line "$command_path" "$provider")"
|
|
932
1005
|
if [ "$emit_json" = 'true' ]; then
|
|
933
1006
|
warnings=("Reload your shell if ${display_name} is not visible yet: source ${shell_rc}")
|
|
934
1007
|
printf '{'
|
|
@@ -76,11 +76,33 @@ if [[ -n "$agent" ]]; then
|
|
|
76
76
|
fi
|
|
77
77
|
|
|
78
78
|
skill_dirs=()
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
discover_skills() {
|
|
80
|
+
local entry skill_name existing existing_name
|
|
81
|
+
for entry in "$1"/*; do
|
|
82
|
+
[[ -d "$entry" ]] || continue
|
|
83
|
+
[[ "$entry" != *.bootstrap ]] || continue
|
|
84
|
+
if [[ -L "$entry" ]]; then
|
|
85
|
+
echo "Linked skill directories are not supported: $entry" >&2
|
|
86
|
+
exit 1
|
|
87
|
+
fi
|
|
88
|
+
if [[ -f "$entry/SKILL.md" ]]; then
|
|
89
|
+
skill_name="$(basename "$entry" | tr '[:upper:]' '[:lower:]')"
|
|
90
|
+
# macOS Bash 3.2 treats an empty array as unset under nounset.
|
|
91
|
+
for existing in ${skill_dirs[@]+"${skill_dirs[@]}"}; do
|
|
92
|
+
existing_name="$(basename "$existing" | tr '[:upper:]' '[:lower:]')"
|
|
93
|
+
if [[ "$skill_name" == "$existing_name" ]]; then
|
|
94
|
+
echo "Duplicate skill '$skill_name': $existing and $entry" >&2
|
|
95
|
+
exit 1
|
|
96
|
+
fi
|
|
97
|
+
done
|
|
98
|
+
skill_dirs+=("$entry")
|
|
99
|
+
# Resources inside this package are copied intact, never discovered again.
|
|
100
|
+
else
|
|
101
|
+
discover_skills "$entry"
|
|
102
|
+
fi
|
|
103
|
+
done
|
|
104
|
+
}
|
|
105
|
+
discover_skills "$skills_dir"
|
|
84
106
|
|
|
85
107
|
if [[ ${#skill_dirs[@]} -eq 0 ]]; then
|
|
86
108
|
echo "No skills found in $skills_dir (no directories with SKILL.md)" >&2
|