@cats-inc/cats-platform 0.1.21 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +3 -7
- package/README.md +35 -0
- package/build/desktop/bootstrapNavigation.d.ts.map +1 -1
- package/build/desktop/bootstrapNavigation.js +6 -13
- package/build/desktop/bootstrapNavigation.js.map +1 -1
- package/build/desktop/bootstrapPage.d.ts.map +1 -1
- package/build/desktop/bootstrapPage.js +63 -86
- package/build/desktop/bootstrapPage.js.map +1 -1
- package/build/desktop/cliInventoryProbe.d.ts +11 -2
- package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
- package/build/desktop/cliInventoryProbe.js +19 -13
- package/build/desktop/cliInventoryProbe.js.map +1 -1
- package/build/desktop/config.d.ts +0 -4
- package/build/desktop/config.d.ts.map +1 -1
- package/build/desktop/config.js +1 -6
- package/build/desktop/config.js.map +1 -1
- package/build/desktop/contracts.d.ts +12 -2
- package/build/desktop/contracts.d.ts.map +1 -1
- package/build/desktop/contracts.js +1 -2
- package/build/desktop/contracts.js.map +1 -1
- package/build/desktop/hostVersion.d.ts.map +1 -1
- package/build/desktop/hostVersion.js +3 -5
- package/build/desktop/hostVersion.js.map +1 -1
- package/build/desktop/main.js +205 -256
- package/build/desktop/main.js.map +1 -1
- package/build/desktop/packaging.d.ts +2 -0
- package/build/desktop/packaging.d.ts.map +1 -1
- package/build/desktop/packaging.js +34 -14
- package/build/desktop/packaging.js.map +1 -1
- package/build/desktop/preload.cjs +9 -0
- package/build/desktop/preload.cjs.map +1 -1
- package/build/desktop/processSupervisor.d.ts.map +1 -1
- package/build/desktop/processSupervisor.js +3 -0
- package/build/desktop/processSupervisor.js.map +1 -1
- package/build/desktop/providerManager.d.ts +46 -0
- package/build/desktop/providerManager.d.ts.map +1 -0
- package/build/desktop/providerManager.js +220 -0
- package/build/desktop/providerManager.js.map +1 -0
- package/build/desktop/providerSelection.d.ts +38 -0
- package/build/desktop/providerSelection.d.ts.map +1 -0
- package/build/desktop/providerSelection.js +118 -0
- package/build/desktop/providerSelection.js.map +1 -0
- package/build/desktop/readiness.d.ts +2 -0
- package/build/desktop/readiness.d.ts.map +1 -1
- package/build/desktop/readiness.js +14 -33
- package/build/desktop/readiness.js.map +1 -1
- package/build/desktop/setupAssets.d.ts.map +1 -1
- package/build/desktop/setupAssets.js +28 -14
- package/build/desktop/setupAssets.js.map +1 -1
- package/build/desktop/setupAudit.d.ts +4 -3
- package/build/desktop/setupAudit.d.ts.map +1 -1
- package/build/desktop/setupAudit.js +18 -34
- package/build/desktop/setupAudit.js.map +1 -1
- package/build/desktop/setupBridge.js +1 -1
- package/build/desktop/setupBridge.js.map +1 -1
- package/build/desktop/setupPrerequisites.d.ts +11 -0
- package/build/desktop/setupPrerequisites.d.ts.map +1 -0
- package/build/desktop/setupPrerequisites.js +47 -0
- package/build/desktop/setupPrerequisites.js.map +1 -0
- package/build/desktop/updateDialog.d.ts +27 -1
- package/build/desktop/updateDialog.d.ts.map +1 -1
- package/build/desktop/updateDialog.js +85 -5
- package/build/desktop/updateDialog.js.map +1 -1
- package/build/renderer/assets/ActiveSessionPermissionChip-B49WcZBJ.js +1 -0
- package/build/renderer/assets/App-BpxZB5ym.js +2 -0
- package/build/renderer/assets/App-DYTUfAl6.js +1 -0
- package/build/renderer/assets/App-DxsV-tKS.css +1 -0
- package/build/renderer/assets/{App-DKOSn0o_.js → App-boB4WrmU.js} +1 -1
- package/build/renderer/assets/WorkspaceAppRoutes-CPqz85iw.js +1 -0
- package/build/renderer/assets/app-C52wwCGz.js +85 -0
- package/build/renderer/assets/app-CqnsY5ed.css +1 -0
- package/build/renderer/assets/{client-BdGHAUoK.js → client-DREGSZqQ.js} +1 -1
- package/build/renderer/assets/conversationSidebarRecentEntries-DK0iWS73.js +6 -0
- package/build/renderer/assets/{screenshotOverlay-DfBcolX-.js → screenshotOverlay-EF07cXvw.js} +1 -1
- package/build/renderer/assets/{useDraftSessionChips-DCIId0eY.js → useDraftSessionChips-BdZ_B1gy.js} +1 -1
- package/build/renderer/desktop/overlay/index.html +2 -2
- package/build/renderer/index.html +3 -3
- package/build/server/app/renderer/auth/api.d.ts.map +1 -1
- package/build/server/app/renderer/auth/api.js +4 -1
- package/build/server/app/renderer/auth/api.js.map +1 -1
- package/build/server/app/renderer/providerCatalogClient.d.ts.map +1 -1
- package/build/server/app/renderer/providerCatalogClient.js +34 -12
- package/build/server/app/renderer/providerCatalogClient.js.map +1 -1
- package/build/server/app/renderer/providerClientInvalidation.d.ts +6 -0
- package/build/server/app/renderer/providerClientInvalidation.d.ts.map +1 -0
- package/build/server/app/renderer/providerClientInvalidation.js +12 -0
- package/build/server/app/renderer/providerClientInvalidation.js.map +1 -0
- package/build/server/app/renderer/providerReadLoop.d.ts +5 -0
- package/build/server/app/renderer/providerReadLoop.d.ts.map +1 -0
- package/build/server/app/renderer/providerReadLoop.js +52 -0
- package/build/server/app/renderer/providerReadLoop.js.map +1 -0
- package/build/server/app/renderer/providerRegistryClient.d.ts +3 -2
- package/build/server/app/renderer/providerRegistryClient.d.ts.map +1 -1
- package/build/server/app/renderer/providerRegistryClient.js +51 -53
- package/build/server/app/renderer/providerRegistryClient.js.map +1 -1
- package/build/server/app/server/appPackageRoutes.d.ts +2 -0
- package/build/server/app/server/appPackageRoutes.d.ts.map +1 -1
- package/build/server/app/server/appPackageRoutes.js +105 -0
- package/build/server/app/server/appPackageRoutes.js.map +1 -1
- package/build/server/app/server/authGatePolicy.js +14 -1
- package/build/server/app/server/authGatePolicy.js.map +1 -1
- package/build/server/app/server/contracts.d.ts +15 -0
- package/build/server/app/server/contracts.d.ts.map +1 -1
- package/build/server/app/server/dependencies.d.ts.map +1 -1
- package/build/server/app/server/dependencies.js +42 -1
- package/build/server/app/server/dependencies.js.map +1 -1
- package/build/server/app/server/goldenPathStartupResume.d.ts +55 -0
- package/build/server/app/server/goldenPathStartupResume.d.ts.map +1 -0
- package/build/server/app/server/goldenPathStartupResume.js +109 -0
- package/build/server/app/server/goldenPathStartupResume.js.map +1 -0
- package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
- package/build/server/app/server/platformSetupRoutes.js +1 -13
- package/build/server/app/server/platformSetupRoutes.js.map +1 -1
- package/build/server/app/server/polling.d.ts.map +1 -1
- package/build/server/app/server/polling.js +2 -0
- package/build/server/app/server/polling.js.map +1 -1
- package/build/server/app/server/requestRouter.d.ts.map +1 -1
- package/build/server/app/server/requestRouter.js +30 -0
- package/build/server/app/server/requestRouter.js.map +1 -1
- package/build/server/app/server/runtimeSurfaceProxy.d.ts.map +1 -1
- package/build/server/app/server/runtimeSurfaceProxy.js +4 -2
- package/build/server/app/server/runtimeSurfaceProxy.js.map +1 -1
- package/build/server/app/server/startupRecovery.d.ts.map +1 -1
- package/build/server/app/server/startupRecovery.js +5 -0
- package/build/server/app/server/startupRecovery.js.map +1 -1
- package/build/server/app/server/subscribeRoutes.d.ts.map +1 -1
- package/build/server/app/server/subscribeRoutes.js +5 -3
- package/build/server/app/server/subscribeRoutes.js.map +1 -1
- package/build/server/app/server/telegramCommandSurface.d.ts +29 -0
- package/build/server/app/server/telegramCommandSurface.d.ts.map +1 -0
- package/build/server/app/server/telegramCommandSurface.js +123 -0
- package/build/server/app/server/telegramCommandSurface.js.map +1 -0
- package/build/server/app/server/transportWorkGoldenPath.d.ts +82 -0
- package/build/server/app/server/transportWorkGoldenPath.d.ts.map +1 -0
- package/build/server/app/server/transportWorkGoldenPath.js +307 -0
- package/build/server/app/server/transportWorkGoldenPath.js.map +1 -0
- package/build/server/config.d.ts +21 -0
- package/build/server/config.d.ts.map +1 -1
- package/build/server/config.js +12 -0
- package/build/server/config.js.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.d.ts +5 -24
- package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
- package/build/server/design/components/providerModelFieldsSupport.js +65 -70
- package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
- package/build/server/design/components/useProviderCatalogState.d.ts +2 -2
- package/build/server/design/components/useProviderCatalogState.d.ts.map +1 -1
- package/build/server/design/components/useProviderCatalogState.js +71 -151
- package/build/server/design/components/useProviderCatalogState.js.map +1 -1
- package/build/server/design/components/useProviderModelFieldActions.js +2 -2
- package/build/server/design/components/useProviderModelFieldActions.js.map +1 -1
- package/build/server/design/components/useProviderRegistryState.d.ts +1 -7
- package/build/server/design/components/useProviderRegistryState.d.ts.map +1 -1
- package/build/server/design/components/useProviderRegistryState.js +41 -104
- package/build/server/design/components/useProviderRegistryState.js.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.d.ts +1 -0
- package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
- package/build/server/design/components/useProviderTargetReconciliation.js +3 -2
- package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
- package/build/server/index.js +4 -0
- package/build/server/index.js.map +1 -1
- package/build/server/platform/apps/packageInstaller.d.ts +19 -0
- package/build/server/platform/apps/packageInstaller.d.ts.map +1 -0
- package/build/server/platform/apps/packageInstaller.js +92 -0
- package/build/server/platform/apps/packageInstaller.js.map +1 -0
- package/build/server/platform/apps/registry.d.ts +6 -0
- package/build/server/platform/apps/registry.d.ts.map +1 -1
- package/build/server/platform/apps/registry.js +24 -0
- package/build/server/platform/apps/registry.js.map +1 -1
- package/build/server/platform/apps/renderer.d.ts +6 -0
- package/build/server/platform/apps/renderer.d.ts.map +1 -0
- package/build/server/platform/apps/renderer.js +18 -0
- package/build/server/platform/apps/renderer.js.map +1 -0
- package/build/server/platform/orchestration/entitySubscriptions/channel.d.ts +2 -1
- package/build/server/platform/orchestration/entitySubscriptions/channel.d.ts.map +1 -1
- package/build/server/platform/orchestration/entitySubscriptions/channel.js +3 -18
- package/build/server/platform/orchestration/entitySubscriptions/channel.js.map +1 -1
- package/build/server/platform/orchestration/entitySubscriptions/index.d.ts +1 -0
- package/build/server/platform/orchestration/entitySubscriptions/index.d.ts.map +1 -1
- package/build/server/platform/orchestration/entitySubscriptions/index.js.map +1 -1
- package/build/server/platform/runtime/deliveryClient.d.ts +111 -0
- package/build/server/platform/runtime/deliveryClient.d.ts.map +1 -0
- package/build/server/platform/runtime/deliveryClient.js +289 -0
- package/build/server/platform/runtime/deliveryClient.js.map +1 -0
- package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts +1 -0
- package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts.map +1 -1
- package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js +10 -0
- package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js.map +1 -1
- package/build/server/platform/supervision/runtimeBoundary.d.ts +11 -1
- package/build/server/platform/supervision/runtimeBoundary.d.ts.map +1 -1
- package/build/server/platform/supervision/runtimeBoundary.js +2 -2
- package/build/server/platform/supervision/runtimeBoundary.js.map +1 -1
- package/build/server/platform/transports/telegram/bridge.d.ts +18 -0
- package/build/server/platform/transports/telegram/bridge.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/bridge.js +176 -0
- package/build/server/platform/transports/telegram/bridge.js.map +1 -1
- package/build/server/platform/transports/telegram/commandPort.d.ts +40 -0
- package/build/server/platform/transports/telegram/commandPort.d.ts.map +1 -0
- package/build/server/platform/transports/telegram/commandPort.js +17 -0
- package/build/server/platform/transports/telegram/commandPort.js.map +1 -0
- package/build/server/platform/transports/telegram/commandRouter.d.ts +22 -0
- package/build/server/platform/transports/telegram/commandRouter.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/commandRouter.js.map +1 -1
- package/build/server/platform/transports/telegram/commands/index.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/commands/index.js +38 -0
- package/build/server/platform/transports/telegram/commands/index.js.map +1 -1
- package/build/server/platform/transports/telegram/ingressDispatch.d.ts +56 -0
- package/build/server/platform/transports/telegram/ingressDispatch.d.ts.map +1 -0
- package/build/server/platform/transports/telegram/ingressDispatch.js +93 -0
- package/build/server/platform/transports/telegram/ingressDispatch.js.map +1 -0
- package/build/server/platform/transports/telegram/polling.d.ts +34 -0
- package/build/server/platform/transports/telegram/polling.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/polling.js +86 -9
- package/build/server/platform/transports/telegram/polling.js.map +1 -1
- package/build/server/platform/transports/telegram/relay/index.d.ts +3 -0
- package/build/server/platform/transports/telegram/relay/index.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/relay/index.js +5 -1
- package/build/server/platform/transports/telegram/relay/index.js.map +1 -1
- package/build/server/platform/transports/telegram/relay/ingress.d.ts +2 -0
- package/build/server/platform/transports/telegram/relay/ingress.d.ts.map +1 -1
- package/build/server/platform/transports/telegram/relay/ingress.js +1 -1
- package/build/server/platform/transports/telegram/relay/ingress.js.map +1 -1
- package/build/server/platform/transports/work-delivery/actionTokens.d.ts +66 -0
- package/build/server/platform/transports/work-delivery/actionTokens.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/actionTokens.js +145 -0
- package/build/server/platform/transports/work-delivery/actionTokens.js.map +1 -0
- package/build/server/platform/transports/work-delivery/contracts.d.ts +172 -0
- package/build/server/platform/transports/work-delivery/contracts.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/contracts.js +26 -0
- package/build/server/platform/transports/work-delivery/contracts.js.map +1 -0
- package/build/server/platform/transports/work-delivery/deliveryGates.d.ts +32 -0
- package/build/server/platform/transports/work-delivery/deliveryGates.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/deliveryGates.js +45 -0
- package/build/server/platform/transports/work-delivery/deliveryGates.js.map +1 -0
- package/build/server/platform/transports/work-delivery/inboundClassification.d.ts +31 -0
- package/build/server/platform/transports/work-delivery/inboundClassification.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/inboundClassification.js +52 -0
- package/build/server/platform/transports/work-delivery/inboundClassification.js.map +1 -0
- package/build/server/platform/transports/work-delivery/outbox.d.ts +84 -0
- package/build/server/platform/transports/work-delivery/outbox.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/outbox.js +270 -0
- package/build/server/platform/transports/work-delivery/outbox.js.map +1 -0
- package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts +57 -0
- package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/permissionEnvelope.js +74 -0
- package/build/server/platform/transports/work-delivery/permissionEnvelope.js.map +1 -0
- package/build/server/platform/transports/work-delivery/port.d.ts +60 -0
- package/build/server/platform/transports/work-delivery/port.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/port.js +15 -0
- package/build/server/platform/transports/work-delivery/port.js.map +1 -0
- package/build/server/platform/transports/work-delivery/proposal.d.ts +31 -0
- package/build/server/platform/transports/work-delivery/proposal.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/proposal.js +59 -0
- package/build/server/platform/transports/work-delivery/proposal.js.map +1 -0
- package/build/server/platform/transports/work-delivery/readiness.d.ts +61 -0
- package/build/server/platform/transports/work-delivery/readiness.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/readiness.js +123 -0
- package/build/server/platform/transports/work-delivery/readiness.js.map +1 -0
- package/build/server/platform/transports/work-delivery/stageProjection.d.ts +43 -0
- package/build/server/platform/transports/work-delivery/stageProjection.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/stageProjection.js +132 -0
- package/build/server/platform/transports/work-delivery/stageProjection.js.map +1 -0
- package/build/server/platform/transports/work-delivery/stateStore.d.ts +21 -0
- package/build/server/platform/transports/work-delivery/stateStore.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/stateStore.js +193 -0
- package/build/server/platform/transports/work-delivery/stateStore.js.map +1 -0
- package/build/server/platform/transports/work-delivery/telemetry.d.ts +49 -0
- package/build/server/platform/transports/work-delivery/telemetry.d.ts.map +1 -0
- package/build/server/platform/transports/work-delivery/telemetry.js +80 -0
- package/build/server/platform/transports/work-delivery/telemetry.js.map +1 -0
- package/build/server/products/chat/api/contracts.d.ts +10 -0
- package/build/server/products/chat/api/contracts.d.ts.map +1 -1
- package/build/server/products/chat/api/resources/channelRoutes.d.ts.map +1 -1
- package/build/server/products/chat/api/resources/channelRoutes.js +27 -1
- package/build/server/products/chat/api/resources/channelRoutes.js.map +1 -1
- package/build/server/products/chat/api/routeSupport.d.ts +17 -1
- package/build/server/products/chat/api/routeSupport.d.ts.map +1 -1
- package/build/server/products/chat/api/routeSupport.js +27 -4
- package/build/server/products/chat/api/routeSupport.js.map +1 -1
- package/build/server/products/chat/api/setupRoutes.d.ts.map +1 -1
- package/build/server/products/chat/api/setupRoutes.js +23 -8
- package/build/server/products/chat/api/setupRoutes.js.map +1 -1
- package/build/server/products/chat/state/model/channelExecutionTargets.d.ts +15 -0
- package/build/server/products/chat/state/model/channelExecutionTargets.d.ts.map +1 -1
- package/build/server/products/chat/state/model/channelExecutionTargets.js +25 -0
- package/build/server/products/chat/state/model/channelExecutionTargets.js.map +1 -1
- package/build/server/products/chat/state/model/index.d.ts +1 -1
- package/build/server/products/chat/state/model/index.d.ts.map +1 -1
- package/build/server/products/chat/state/model/index.js +1 -1
- package/build/server/products/chat/state/model/index.js.map +1 -1
- package/build/server/products/chat/state/model/readModels.d.ts +1 -0
- package/build/server/products/chat/state/model/readModels.d.ts.map +1 -1
- package/build/server/products/chat/state/model/readModels.js +2 -1
- package/build/server/products/chat/state/model/readModels.js.map +1 -1
- package/build/server/products/code/api/relayRoutes.d.ts.map +1 -1
- package/build/server/products/code/api/relayRoutes.js +36 -7
- package/build/server/products/code/api/relayRoutes.js.map +1 -1
- package/build/server/products/code/state/relayState.d.ts +2 -1
- package/build/server/products/code/state/relayState.d.ts.map +1 -1
- package/build/server/products/code/state/relayState.js +7 -7
- package/build/server/products/code/state/relayState.js.map +1 -1
- package/build/server/products/shared/api/workspaceContracts.d.ts +5 -0
- package/build/server/products/shared/api/workspaceContracts.d.ts.map +1 -1
- package/build/server/products/shared/renderer/api/appShell.d.ts +1 -0
- package/build/server/products/shared/renderer/api/appShell.d.ts.map +1 -1
- package/build/server/products/shared/renderer/api/appShell.js +9 -0
- package/build/server/products/shared/renderer/api/appShell.js.map +1 -1
- package/build/server/products/work/api/goldenPathProjection.d.ts +156 -0
- package/build/server/products/work/api/goldenPathProjection.d.ts.map +1 -0
- package/build/server/products/work/api/goldenPathProjection.js +252 -0
- package/build/server/products/work/api/goldenPathProjection.js.map +1 -0
- package/build/server/products/work/api/index.d.ts +54 -1
- package/build/server/products/work/api/index.d.ts.map +1 -1
- package/build/server/products/work/api/index.js +182 -4
- package/build/server/products/work/api/index.js.map +1 -1
- package/build/server/products/work/api/projection.d.ts +7 -1
- package/build/server/products/work/api/projection.d.ts.map +1 -1
- package/build/server/products/work/api/projection.js +7 -1
- package/build/server/products/work/api/projection.js.map +1 -1
- package/build/server/products/work/shared/apiPaths.d.ts +8 -0
- package/build/server/products/work/shared/apiPaths.d.ts.map +1 -1
- package/build/server/products/work/shared/apiPaths.js +8 -0
- package/build/server/products/work/shared/apiPaths.js.map +1 -1
- package/build/server/products/work/shared/workGoldenPathMessages.d.ts +83 -0
- package/build/server/products/work/shared/workGoldenPathMessages.d.ts.map +1 -0
- package/build/server/products/work/shared/workGoldenPathMessages.js +211 -0
- package/build/server/products/work/shared/workGoldenPathMessages.js.map +1 -0
- package/build/server/products/work/shared/workGoldenPathMetadata.d.ts +45 -0
- package/build/server/products/work/shared/workGoldenPathMetadata.d.ts.map +1 -0
- package/build/server/products/work/shared/workGoldenPathMetadata.js +122 -0
- package/build/server/products/work/shared/workGoldenPathMetadata.js.map +1 -0
- package/build/server/products/work/state/workCompletionEvidence.d.ts +42 -0
- package/build/server/products/work/state/workCompletionEvidence.d.ts.map +1 -0
- package/build/server/products/work/state/workCompletionEvidence.js +59 -0
- package/build/server/products/work/state/workCompletionEvidence.js.map +1 -0
- package/build/server/products/work/state/workExecutionTaskDelegate.d.ts +16 -0
- package/build/server/products/work/state/workExecutionTaskDelegate.d.ts.map +1 -1
- package/build/server/products/work/state/workExecutionTaskDelegate.js +91 -68
- package/build/server/products/work/state/workExecutionTaskDelegate.js.map +1 -1
- package/build/server/products/work/state/workGoldenPathAdmission.d.ts +78 -0
- package/build/server/products/work/state/workGoldenPathAdmission.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathAdmission.js +249 -0
- package/build/server/products/work/state/workGoldenPathAdmission.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts +33 -0
- package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js +161 -0
- package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathIntake.d.ts +34 -0
- package/build/server/products/work/state/workGoldenPathIntake.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathIntake.js +50 -0
- package/build/server/products/work/state/workGoldenPathIntake.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathLifecycle.d.ts +44 -0
- package/build/server/products/work/state/workGoldenPathLifecycle.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathLifecycle.js +146 -0
- package/build/server/products/work/state/workGoldenPathLifecycle.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathPublish.d.ts +84 -0
- package/build/server/products/work/state/workGoldenPathPublish.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathPublish.js +488 -0
- package/build/server/products/work/state/workGoldenPathPublish.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathRunner.d.ts +121 -0
- package/build/server/products/work/state/workGoldenPathRunner.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathRunner.js +447 -0
- package/build/server/products/work/state/workGoldenPathRunner.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts +74 -0
- package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js +239 -0
- package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathService.d.ts +152 -0
- package/build/server/products/work/state/workGoldenPathService.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathService.js +1057 -0
- package/build/server/products/work/state/workGoldenPathService.js.map +1 -0
- package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts +87 -0
- package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts.map +1 -0
- package/build/server/products/work/state/workGoldenPathTelegramPort.js +220 -0
- package/build/server/products/work/state/workGoldenPathTelegramPort.js.map +1 -0
- package/build/server/runtime/client.d.ts +13 -0
- package/build/server/runtime/client.d.ts.map +1 -1
- package/build/server/runtime/client.js +44 -1
- package/build/server/runtime/client.js.map +1 -1
- package/build/server/runtime/setup.d.ts +14 -4
- package/build/server/runtime/setup.d.ts.map +1 -1
- package/build/server/runtime/setup.js +17 -19
- package/build/server/runtime/setup.js.map +1 -1
- package/build/server/runtime/usageSnapshot.d.ts +3 -0
- package/build/server/runtime/usageSnapshot.d.ts.map +1 -0
- package/build/server/runtime/usageSnapshot.js +69 -0
- package/build/server/runtime/usageSnapshot.js.map +1 -0
- package/build/server/server/routes/providerCapabilityBootstrap.d.ts +69 -0
- package/build/server/server/routes/providerCapabilityBootstrap.d.ts.map +1 -0
- package/build/server/server/routes/providerCapabilityBootstrap.js +165 -0
- package/build/server/server/routes/providerCapabilityBootstrap.js.map +1 -0
- package/build/server/server/routes/providers.d.ts.map +1 -1
- package/build/server/server/routes/providers.js +133 -131
- package/build/server/server/routes/providers.js.map +1 -1
- package/build/server/server/routes/telegram.d.ts +9 -0
- package/build/server/server/routes/telegram.d.ts.map +1 -1
- package/build/server/server/routes/telegram.js +79 -72
- package/build/server/server/routes/telegram.js.map +1 -1
- package/build/server/shared/catsAppManifest.d.ts +3 -1
- package/build/server/shared/catsAppManifest.d.ts.map +1 -1
- package/build/server/shared/catsAppManifest.js +2 -0
- package/build/server/shared/catsAppManifest.js.map +1 -1
- package/build/server/shared/desktopRecoveryBridge.d.ts +2 -1
- package/build/server/shared/desktopRecoveryBridge.d.ts.map +1 -1
- package/build/server/shared/desktopRecoveryBridge.js.map +1 -1
- package/build/server/shared/executionLabel.d.ts.map +1 -1
- package/build/server/shared/executionLabel.js +8 -1
- package/build/server/shared/executionLabel.js.map +1 -1
- package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/en.js +198 -3
- package/build/server/shared/i18n/catalogs/en.js.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/build/server/shared/i18n/catalogs/zh-TW.js +197 -3
- package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
- package/build/server/shared/i18n/index.d.ts +192 -0
- package/build/server/shared/i18n/index.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.d.ts +192 -0
- package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
- package/build/server/shared/i18n/messageKeys.js +192 -0
- package/build/server/shared/i18n/messageKeys.js.map +1 -1
- package/build/server/shared/platformSetupOperation.d.ts +2 -0
- package/build/server/shared/platformSetupOperation.d.ts.map +1 -0
- package/build/server/shared/platformSetupOperation.js +9 -0
- package/build/server/shared/platformSetupOperation.js.map +1 -0
- package/build/server/shared/providerCatalog.d.ts +5 -2
- package/build/server/shared/providerCatalog.d.ts.map +1 -1
- package/build/server/shared/providerCatalog.js +6 -0
- package/build/server/shared/providerCatalog.js.map +1 -1
- package/build/server/shared/providerCatalogData.d.ts +154 -77
- package/build/server/shared/providerCatalogData.d.ts.map +1 -1
- package/build/server/shared/providerCatalogData.js +73 -36
- package/build/server/shared/providerCatalogData.js.map +1 -1
- package/build/server/shared/providerCatalogInstances.d.ts.map +1 -1
- package/build/server/shared/providerCatalogInstances.js +3 -0
- package/build/server/shared/providerCatalogInstances.js.map +1 -1
- package/build/server/shared/providerModelLabelRegistry.d.ts +29 -0
- package/build/server/shared/providerModelLabelRegistry.d.ts.map +1 -0
- package/build/server/shared/providerModelLabelRegistry.js +49 -0
- package/build/server/shared/providerModelLabelRegistry.js.map +1 -0
- package/build/server/shared/providerRegistryWarnings.d.ts +4 -0
- package/build/server/shared/providerRegistryWarnings.d.ts.map +1 -1
- package/build/server/shared/providerRegistryWarnings.js +7 -0
- package/build/server/shared/providerRegistryWarnings.js.map +1 -1
- package/build/server/shared/providerSelection.d.ts.map +1 -1
- package/build/server/shared/providerSelection.js +10 -13
- package/build/server/shared/providerSelection.js.map +1 -1
- package/build/server/shared/runtimeSetup.d.ts +17 -4
- package/build/server/shared/runtimeSetup.d.ts.map +1 -1
- package/build/server/shared/runtimeStatusPresentation.js +1 -1
- package/build/server/shared/runtimeStatusPresentation.js.map +1 -1
- package/package.json +32 -3
- package/packages/app-sdk/browser.d.ts +51 -0
- package/packages/app-sdk/browser.js +48 -0
- package/packages/app-sdk/package.d.ts +14 -0
- package/packages/app-sdk/package.js +131 -0
- package/packages/app-sdk/package.json +7 -0
- package/packages/provider-setup/manager.d.ts +79 -0
- package/packages/provider-setup/manager.js +441 -0
- package/scripts/README.md +66 -26
- package/scripts/build-desktop-installer.mjs +139 -16
- package/scripts/build-test-ui.mjs +1 -1
- package/scripts/bundle-server.mjs +23 -10
- package/scripts/linux/build-desktop-package.sh +6 -6
- package/scripts/linux/install-antigravity.sh +0 -0
- package/scripts/linux/install-devin.sh +0 -0
- package/scripts/linux/install-github-cli.sh +5 -0
- package/scripts/linux/install-meta-cli.sh +8 -0
- package/scripts/linux/install-node.sh +9 -3
- package/scripts/linux/node-cli-common.sh +87 -48
- package/scripts/linux/provider-cli-common.sh +178 -130
- package/scripts/linux/provider-version-common.sh +247 -0
- package/scripts/linux/sync-agent-skills.sh +27 -5
- package/scripts/linux/test-linux-package-smoke.sh +6 -3
- package/scripts/linux/upgrade-cli-tools.sh +1 -1
- package/scripts/linux/verified-npm-update.sh +20 -0
- package/scripts/macos/build-desktop-package.sh +5 -5
- package/scripts/macos/install-antigravity.sh +0 -0
- package/scripts/macos/install-devin.sh +0 -0
- package/scripts/macos/install-github-cli.sh +5 -0
- package/scripts/macos/install-meta-cli.sh +8 -0
- package/scripts/macos/install-node.sh +9 -3
- package/scripts/macos/node-cli-common.sh +87 -48
- package/scripts/macos/provider-cli-common.sh +178 -130
- package/scripts/macos/provider-version-common.sh +247 -0
- package/scripts/macos/sync-agent-skills.sh +27 -5
- package/scripts/macos/test-macos-package-smoke.sh +6 -3
- package/scripts/macos/upgrade-cli-tools.sh +1 -1
- package/scripts/macos/verified-npm-update.sh +20 -0
- package/scripts/package-desktop.mjs +15 -2
- package/scripts/testing/check-usage-app.mts +266 -0
- package/scripts/testing/conversation-navigation-smoke-electron.cjs +134 -0
- package/scripts/testing/conversation-navigation-smoke-renderer.tsx +102 -0
- package/scripts/testing/conversation-navigation-smoke.mjs +67 -0
- package/scripts/testing/usage-app-smoke-electron.cjs +10 -0
- package/scripts/testing/usage-app-smoke-renderer.tsx +8 -0
- package/scripts/validate-release-assets.mjs +4 -1
- package/scripts/verify-desktop-app-bundle.mjs +108 -0
- package/scripts/windows/Build-DesktopPackage.ps1 +9 -6
- package/scripts/windows/Install-Antigravity.ps1 +26 -3
- package/scripts/windows/Install-ClaudeCode.ps1 +25 -7
- package/scripts/windows/Install-CursorAgent.ps1 +45 -30
- package/scripts/windows/Install-Devin.ps1 +16 -47
- package/scripts/windows/Install-GitHubCli.ps1 +4 -0
- package/scripts/windows/Install-Goose.ps1 +18 -1
- package/scripts/windows/Install-Grok.ps1 +14 -1
- package/scripts/windows/Install-Junie.ps1 +32 -11
- package/scripts/windows/Install-KiroCli.ps1 +37 -13
- package/scripts/windows/Install-MetaCli.ps1 +463 -0
- package/scripts/windows/Install-Node.ps1 +6 -1
- package/scripts/windows/Install-Ollama.ps1 +4 -1
- package/scripts/windows/Setup-NodeGlobalPrefix.ps1 +10 -0
- package/scripts/windows/Sync-AgentSkills.ps1 +29 -6
- package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +4 -1
- package/scripts/windows/_HiddenProcess.ps1 +14 -3
- package/scripts/windows/_NativeInstallerSupport.ps1 +308 -0
- package/scripts/windows/_NpmCliInstaller.ps1 +35 -14
- package/scripts/windows/_PackagedUninstall.ps1 +9 -1
- package/scripts/windows/_VerifiedNpmUpdate.ps1 +25 -0
- package/build/desktop/updateNotifications.d.ts +0 -64
- package/build/desktop/updateNotifications.d.ts.map +0 -1
- package/build/desktop/updateNotifications.js +0 -143
- package/build/desktop/updateNotifications.js.map +0 -1
- package/build/renderer/assets/ActiveSessionPermissionChip-DImsuR9T.js +0 -1
- package/build/renderer/assets/App-BfOvMP2m.js +0 -1
- package/build/renderer/assets/App-DGwkRFZl.css +0 -1
- package/build/renderer/assets/App-DWd7I3Z2.js +0 -2
- package/build/renderer/assets/WorkspaceAppRoutes-CrbTA9En.js +0 -1
- package/build/renderer/assets/app-BTww3Hl4.js +0 -43
- package/build/renderer/assets/app-CPxWQwLA.css +0 -1
- package/build/renderer/assets/conversationSidebarRecentEntries-QuaOPxCb.js +0 -6
- package/build/server/app/renderer/settings/runtimeLifecycleHelpers.d.ts +0 -48
- package/build/server/app/renderer/settings/runtimeLifecycleHelpers.d.ts.map +0 -1
- package/build/server/app/renderer/settings/runtimeLifecycleHelpers.js +0 -535
- package/build/server/app/renderer/settings/runtimeLifecycleHelpers.js.map +0 -1
- package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts +0 -13
- package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts.map +0 -1
- package/build/server/design/components/useProviderRegistryAutoRecheck.js +0 -63
- package/build/server/design/components/useProviderRegistryAutoRecheck.js.map +0 -1
- package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.d.ts +0 -19
- package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.d.ts.map +0 -1
- package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.js +0 -53
- package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.js.map +0 -1
- package/build/server/products/shared/renderer/api/providers.d.ts +0 -17
- package/build/server/products/shared/renderer/api/providers.d.ts.map +0 -1
- package/build/server/products/shared/renderer/api/providers.js +0 -50
- package/build/server/products/shared/renderer/api/providers.js.map +0 -1
- package/scripts/linux/install-aider.sh +0 -8
- package/scripts/macos/install-aider.sh +0 -8
- package/scripts/windows/Install-Aider.ps1 +0 -368
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
<#
|
|
2
|
+
.SYNOPSIS
|
|
3
|
+
Install or verify the native Windows Meta Muse CLI for Cats.
|
|
4
|
+
|
|
5
|
+
.DESCRIPTION
|
|
6
|
+
Cats-owned packaged setup wrapper for Meta's Muse CLI. The official
|
|
7
|
+
installer at https://dev.meta.ai/install.ps1 writes a muse.cmd shim plus
|
|
8
|
+
.muse-launcher.ps1 into %LOCALAPPDATA%\Programs\muse (overridable with
|
|
9
|
+
MUSE_INSTALL_DIR) and adds that directory to the User PATH. The launcher
|
|
10
|
+
then downloads the actual agent, muse-bin-<version>.exe, beside itself and
|
|
11
|
+
records the version in .muse-version.
|
|
12
|
+
|
|
13
|
+
Two consequences drive this helper.
|
|
14
|
+
|
|
15
|
+
Detection requires the binary, not the shim. The installer writes the shim
|
|
16
|
+
and launcher first and downloads the agent last, so a run that fails in
|
|
17
|
+
between leaves a shim with nothing behind it. Reporting that as installed
|
|
18
|
+
would skip the reinstall that repairs it.
|
|
19
|
+
|
|
20
|
+
The version is read from .muse-version and `muse` is never executed. The
|
|
21
|
+
launcher forwards every argument straight to the agent binary, so a flag
|
|
22
|
+
that binary does not recognise opens the interactive TUI instead of
|
|
23
|
+
failing -- which in packaged setup, with no console a prompt can reach, is
|
|
24
|
+
an unbounded hang rather than an error.
|
|
25
|
+
#>
|
|
26
|
+
param(
|
|
27
|
+
[switch]$CheckOnly,
|
|
28
|
+
[switch]$Apply,
|
|
29
|
+
[switch]$Upgrade,
|
|
30
|
+
[switch]$Force,
|
|
31
|
+
[switch]$Uninstall,
|
|
32
|
+
[switch]$DryRun,
|
|
33
|
+
[switch]$Json,
|
|
34
|
+
[switch]$AllowAdmin,
|
|
35
|
+
[ValidateSet('auto', 'installed', 'missing')]
|
|
36
|
+
[string]$InstallState = 'auto',
|
|
37
|
+
[string]$DetectedVersion = '',
|
|
38
|
+
[switch]$SkipInstaller
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
Set-StrictMode -Version Latest
|
|
42
|
+
$ErrorActionPreference = 'Stop'
|
|
43
|
+
|
|
44
|
+
. (Join-Path $PSScriptRoot '_HiddenProcess.ps1')
|
|
45
|
+
. (Join-Path $PSScriptRoot '_NativeInstallerSupport.ps1')
|
|
46
|
+
. (Join-Path $PSScriptRoot '_PackagedUninstall.ps1')
|
|
47
|
+
|
|
48
|
+
function Write-StructuredResult {
|
|
49
|
+
param(
|
|
50
|
+
[pscustomobject]$Result,
|
|
51
|
+
[int]$ExitCode
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
if (Get-Variable -Name catsInitialObservation -Scope Script -ErrorAction SilentlyContinue) {
|
|
55
|
+
Add-CatsNativeObservation -Result $Result -Before $script:catsInitialObservation -Attempted ([bool]$script:shouldInstall) -Skipped ([bool]$SkipInstaller)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if ($Json) {
|
|
59
|
+
$Result | ConvertTo-Json -Depth 10
|
|
60
|
+
} else {
|
|
61
|
+
Write-Host "Mode: $($Result.mode)"
|
|
62
|
+
Write-Host "Status: $($Result.status)"
|
|
63
|
+
Write-Host "Installed: $($Result.installed)"
|
|
64
|
+
if ($Result.detectedVersion) { Write-Host "Version: $($Result.detectedVersion)" }
|
|
65
|
+
foreach ($action in $Result.plannedActions) { Write-Host "Planned action: $action" }
|
|
66
|
+
foreach ($warning in $Result.warnings) { Write-Host "Warning: $warning" }
|
|
67
|
+
foreach ($step in $Result.manualSteps) { Write-Host "Manual step: $step" }
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
exit $ExitCode
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function Resolve-MuseInstallDir {
|
|
74
|
+
if (-not [string]::IsNullOrWhiteSpace($env:MUSE_INSTALL_DIR)) {
|
|
75
|
+
return $env:MUSE_INSTALL_DIR
|
|
76
|
+
}
|
|
77
|
+
return Join-Path $env:LOCALAPPDATA 'Programs\muse'
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function Resolve-MuseShimPath {
|
|
81
|
+
return Join-Path (Resolve-MuseInstallDir) 'muse.cmd'
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function Resolve-MuseLauncherPath {
|
|
85
|
+
return Join-Path (Resolve-MuseInstallDir) '.muse-launcher.ps1'
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function Resolve-MuseVersionFilePath {
|
|
89
|
+
return Join-Path (Resolve-MuseInstallDir) '.muse-version'
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function Get-MuseRecordedVersion {
|
|
93
|
+
$versionFile = Resolve-MuseVersionFilePath
|
|
94
|
+
if (-not (Test-Path -LiteralPath $versionFile -PathType Leaf)) { return '' }
|
|
95
|
+
try {
|
|
96
|
+
$version = (Get-Content -LiteralPath $versionFile -Raw -ErrorAction Stop).Trim()
|
|
97
|
+
if ([string]::IsNullOrWhiteSpace($version)) { return '' }
|
|
98
|
+
return $version
|
|
99
|
+
} catch {
|
|
100
|
+
return ''
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function Get-MuseAgentBinaryPath {
|
|
105
|
+
$version = Get-MuseRecordedVersion
|
|
106
|
+
if ([string]::IsNullOrWhiteSpace($version)) { return '' }
|
|
107
|
+
return Join-Path (Resolve-MuseInstallDir) "muse-bin-$version.exe"
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
# Everything the launcher owns in the install directory, so uninstall does not
|
|
111
|
+
# leave gigabytes of downloaded agent builds behind after removing the shim.
|
|
112
|
+
function Get-MuseOwnedPaths {
|
|
113
|
+
$installDir = Resolve-MuseInstallDir
|
|
114
|
+
$paths = [System.Collections.Generic.List[string]]::new()
|
|
115
|
+
$paths.Add((Resolve-MuseLauncherPath)) | Out-Null
|
|
116
|
+
if (-not (Test-Path -LiteralPath $installDir -PathType Container)) {
|
|
117
|
+
return $paths.ToArray()
|
|
118
|
+
}
|
|
119
|
+
foreach ($pattern in @('muse-bin-*.exe', '.muse-*')) {
|
|
120
|
+
foreach ($item in Get-ChildItem -LiteralPath $installDir -Filter $pattern -Force -ErrorAction SilentlyContinue) {
|
|
121
|
+
if (-not $paths.Contains($item.FullName)) {
|
|
122
|
+
$paths.Add($item.FullName) | Out-Null
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return $paths.ToArray()
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function Update-UserPathEnvironment {
|
|
130
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable('Path', 'User') + ';' +
|
|
131
|
+
[System.Environment]::GetEnvironmentVariable('Path', 'Machine')
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function Get-MuseInstallState {
|
|
135
|
+
$shimPath = Resolve-MuseShimPath
|
|
136
|
+
|
|
137
|
+
if ($InstallState -eq 'installed') {
|
|
138
|
+
return [pscustomobject]@{
|
|
139
|
+
installed = $true
|
|
140
|
+
commandPath = $shimPath
|
|
141
|
+
detectedVersion = $DetectedVersion
|
|
142
|
+
partial = $false
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if ($InstallState -eq 'missing') {
|
|
146
|
+
return [pscustomobject]@{
|
|
147
|
+
installed = $false
|
|
148
|
+
commandPath = $shimPath
|
|
149
|
+
detectedVersion = $DetectedVersion
|
|
150
|
+
partial = $false
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
Update-UserPathEnvironment
|
|
155
|
+
$version = if ([string]::IsNullOrWhiteSpace($DetectedVersion)) {
|
|
156
|
+
Get-MuseRecordedVersion
|
|
157
|
+
} else {
|
|
158
|
+
$DetectedVersion
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
$shimPresent = Test-Path -LiteralPath $shimPath -PathType Leaf
|
|
162
|
+
$agentBinary = Get-MuseAgentBinaryPath
|
|
163
|
+
$agentPresent = (-not [string]::IsNullOrWhiteSpace($agentBinary)) -and
|
|
164
|
+
(Test-Path -LiteralPath $agentBinary -PathType Leaf)
|
|
165
|
+
|
|
166
|
+
if ($shimPresent -and $agentPresent) {
|
|
167
|
+
return [pscustomobject]@{
|
|
168
|
+
installed = $true
|
|
169
|
+
commandPath = $shimPath
|
|
170
|
+
detectedVersion = $version
|
|
171
|
+
partial = $false
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if ($shimPresent) {
|
|
176
|
+
# Shim without an agent build: the last install died partway through.
|
|
177
|
+
return [pscustomobject]@{
|
|
178
|
+
installed = $false
|
|
179
|
+
commandPath = $shimPath
|
|
180
|
+
detectedVersion = $version
|
|
181
|
+
partial = $true
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
# Nothing in the expected directory, but the operator may have muse elsewhere.
|
|
186
|
+
$command = Get-Command muse -ErrorAction SilentlyContinue
|
|
187
|
+
if ($null -ne $command) {
|
|
188
|
+
return [pscustomobject]@{
|
|
189
|
+
installed = $true
|
|
190
|
+
commandPath = $command.Source
|
|
191
|
+
detectedVersion = $version
|
|
192
|
+
partial = $false
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return [pscustomobject]@{
|
|
197
|
+
installed = $false
|
|
198
|
+
commandPath = $shimPath
|
|
199
|
+
detectedVersion = $version
|
|
200
|
+
partial = $false
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function Add-MuseToUserPath {
|
|
205
|
+
$installDir = Resolve-MuseInstallDir
|
|
206
|
+
$userPath = [System.Environment]::GetEnvironmentVariable('Path', 'User')
|
|
207
|
+
if ([string]::IsNullOrWhiteSpace($userPath)) {
|
|
208
|
+
[System.Environment]::SetEnvironmentVariable('Path', $installDir, 'User')
|
|
209
|
+
} elseif ($userPath -notlike "*$installDir*") {
|
|
210
|
+
[System.Environment]::SetEnvironmentVariable('Path', "$installDir;$userPath", 'User')
|
|
211
|
+
}
|
|
212
|
+
Update-UserPathEnvironment
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function Invoke-MuseInstaller {
|
|
216
|
+
if ($SkipInstaller) {
|
|
217
|
+
return [pscustomobject]@{ skipped = $true; success = $true; exitCode = 0; stderr = '' }
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
$tempScript = [System.IO.Path]::Combine(
|
|
221
|
+
[System.IO.Path]::GetTempPath(),
|
|
222
|
+
"cats-muse-install-$([System.Guid]::NewGuid().ToString('N')).ps1"
|
|
223
|
+
)
|
|
224
|
+
$stdoutPath = "$tempScript.stdout"
|
|
225
|
+
$stderrPath = "$tempScript.stderr"
|
|
226
|
+
# The official install.ps1 opens with Set-StrictMode -Version Latest and calls
|
|
227
|
+
# exit 1 on failure, so it runs in its own process rather than taking this
|
|
228
|
+
# script down with it.
|
|
229
|
+
$bootstrap = @'
|
|
230
|
+
& {
|
|
231
|
+
$previousErrorActionPreference = $ErrorActionPreference
|
|
232
|
+
try {
|
|
233
|
+
Invoke-RestMethod 'https://dev.meta.ai/install.ps1' | Invoke-Expression
|
|
234
|
+
} finally {
|
|
235
|
+
$ErrorActionPreference = $previousErrorActionPreference
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
'@
|
|
239
|
+
|
|
240
|
+
try {
|
|
241
|
+
[System.IO.File]::WriteAllText(
|
|
242
|
+
$tempScript,
|
|
243
|
+
$bootstrap,
|
|
244
|
+
[System.Text.UTF8Encoding]::new($false)
|
|
245
|
+
)
|
|
246
|
+
# The muse launcher runs under Windows PowerShell 5.1. A PSModulePath
|
|
247
|
+
# inherited from PowerShell 7 breaks its download step and leaves a shim
|
|
248
|
+
# with no agent build, so the installer is run under 5.1 as well.
|
|
249
|
+
$powerShellExe = 'powershell.exe'
|
|
250
|
+
$process = Start-Process -FilePath $powerShellExe `
|
|
251
|
+
-ArgumentList @('-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', $tempScript) `
|
|
252
|
+
-Wait -PassThru -NoNewWindow `
|
|
253
|
+
-RedirectStandardOutput $stdoutPath `
|
|
254
|
+
-RedirectStandardError $stderrPath
|
|
255
|
+
$stderrRaw = if (Test-Path -LiteralPath $stderrPath -PathType Leaf) {
|
|
256
|
+
Get-Content -LiteralPath $stderrPath -Raw -ErrorAction SilentlyContinue
|
|
257
|
+
} else { $null }
|
|
258
|
+
|
|
259
|
+
return [pscustomobject]@{
|
|
260
|
+
skipped = $false
|
|
261
|
+
success = ($process.ExitCode -eq 0)
|
|
262
|
+
exitCode = $process.ExitCode
|
|
263
|
+
stderr = if ($null -eq $stderrRaw) { '' } else { [string]$stderrRaw }
|
|
264
|
+
}
|
|
265
|
+
} catch {
|
|
266
|
+
return [pscustomobject]@{
|
|
267
|
+
skipped = $false
|
|
268
|
+
success = $false
|
|
269
|
+
exitCode = -1
|
|
270
|
+
stderr = "Failed to invoke Meta Muse installer: $($_.Exception.Message)"
|
|
271
|
+
}
|
|
272
|
+
} finally {
|
|
273
|
+
foreach ($path in @($tempScript, $stdoutPath, $stderrPath)) {
|
|
274
|
+
if (Test-Path -LiteralPath $path -PathType Leaf) {
|
|
275
|
+
Remove-Item -LiteralPath $path -Force -ErrorAction SilentlyContinue
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
if (-not $CheckOnly -and -not $Apply -and -not $Upgrade -and -not $Force -and -not $Uninstall) {
|
|
282
|
+
$CheckOnly = $true
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
$mutationCount = @($Apply, $Upgrade, $Force | Where-Object { $_ }).Count
|
|
286
|
+
if ($Uninstall -and ($CheckOnly -or $mutationCount -gt 0)) {
|
|
287
|
+
throw 'Install-MetaCli.ps1 -Uninstall is mutually exclusive with other modes.'
|
|
288
|
+
}
|
|
289
|
+
if ($CheckOnly -and $mutationCount -gt 0) {
|
|
290
|
+
throw 'Install-MetaCli.ps1 accepts either -CheckOnly or one mutation mode.'
|
|
291
|
+
}
|
|
292
|
+
if ($mutationCount -gt 1) {
|
|
293
|
+
throw 'Install-MetaCli.ps1 accepts at most one of -Apply / -Upgrade / -Force.'
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
$executionMode = if ($Uninstall) {
|
|
297
|
+
'uninstall'
|
|
298
|
+
} elseif ($CheckOnly) {
|
|
299
|
+
'check'
|
|
300
|
+
} elseif ($Force) {
|
|
301
|
+
'force'
|
|
302
|
+
} elseif ($Upgrade) {
|
|
303
|
+
'upgrade'
|
|
304
|
+
} else {
|
|
305
|
+
'apply'
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
if ($Uninstall) {
|
|
309
|
+
Invoke-PackagedProviderUninstall `
|
|
310
|
+
-HelperId 'windows-muse-native-installer' `
|
|
311
|
+
-UserBinaryPath (Resolve-MuseShimPath) `
|
|
312
|
+
-ExtraUserOwnedPaths (Get-MuseOwnedPaths) `
|
|
313
|
+
-RedetectCommand { Get-MuseInstallState } `
|
|
314
|
+
-EmitJson:$Json `
|
|
315
|
+
-DryRun:$DryRun
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).
|
|
319
|
+
IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
|
|
320
|
+
if ($isAdmin -and -not $AllowAdmin) {
|
|
321
|
+
Write-StructuredResult -Result ([pscustomobject]@{
|
|
322
|
+
helper = 'windows-muse-native-installer'
|
|
323
|
+
mode = $executionMode
|
|
324
|
+
status = 'failed'
|
|
325
|
+
installed = $false
|
|
326
|
+
detectedVersion = $null
|
|
327
|
+
commandPath = Resolve-MuseShimPath
|
|
328
|
+
restartRequired = $false
|
|
329
|
+
plannedActions = @()
|
|
330
|
+
warnings = @('Refusing to run under an elevated shell without -AllowAdmin because Meta Muse CLI is intended for user-scoped installation.')
|
|
331
|
+
appliedChanges = @()
|
|
332
|
+
manualSteps = @()
|
|
333
|
+
interruptions = @()
|
|
334
|
+
}) -ExitCode 1
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
$detected = Get-MuseInstallState
|
|
338
|
+
$plannedActions = [System.Collections.Generic.List[string]]::new()
|
|
339
|
+
$appliedChanges = [System.Collections.Generic.List[string]]::new()
|
|
340
|
+
$warnings = [System.Collections.Generic.List[string]]::new()
|
|
341
|
+
$manualSteps = [System.Collections.Generic.List[string]]::new()
|
|
342
|
+
|
|
343
|
+
if ($detected.partial) {
|
|
344
|
+
$warnings.Add('Found muse.cmd with no matching muse-bin-<version>.exe; the previous install did not finish and will be repaired.') | Out-Null
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
if ($Force) {
|
|
348
|
+
$plannedActions.Add('reinstall_muse_native') | Out-Null
|
|
349
|
+
} elseif ($Upgrade -and $detected.installed) {
|
|
350
|
+
$plannedActions.Add('upgrade_muse_native') | Out-Null
|
|
351
|
+
} elseif (-not $detected.installed) {
|
|
352
|
+
$plannedActions.Add('install_muse_native') | Out-Null
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
if ($CheckOnly) {
|
|
356
|
+
Write-StructuredResult -Result ([pscustomobject]@{
|
|
357
|
+
helper = 'windows-muse-native-installer'
|
|
358
|
+
mode = 'check'
|
|
359
|
+
status = if ($detected.installed) { 'ready' } else { 'not_installed' }
|
|
360
|
+
installed = [bool]$detected.installed
|
|
361
|
+
detectedVersion = if ($detected.detectedVersion) { $detected.detectedVersion } else { $null }
|
|
362
|
+
commandPath = $detected.commandPath
|
|
363
|
+
restartRequired = $false
|
|
364
|
+
plannedActions = $plannedActions.ToArray()
|
|
365
|
+
warnings = $warnings.ToArray()
|
|
366
|
+
appliedChanges = @()
|
|
367
|
+
manualSteps = @()
|
|
368
|
+
interruptions = @()
|
|
369
|
+
}) -ExitCode 0
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
$installFailed = $false
|
|
373
|
+
$catsInitialObservation = $detected.PSObject.Copy()
|
|
374
|
+
$shouldInstall = $Force -or $Upgrade -or -not $detected.installed
|
|
375
|
+
$installFailed = $false
|
|
376
|
+
$installSkipped = $false
|
|
377
|
+
if ($shouldInstall) {
|
|
378
|
+
if ($DryRun) {
|
|
379
|
+
$warnings.Add('Dry-run requested; Meta Muse installer invocation was skipped.') | Out-Null
|
|
380
|
+
$installSkipped = $true
|
|
381
|
+
} else {
|
|
382
|
+
$previousVersion = $detected.detectedVersion
|
|
383
|
+
$installResult = Invoke-MuseInstaller
|
|
384
|
+
$installSkipped = [bool]$installResult.skipped
|
|
385
|
+
$installFailed = (-not $installSkipped) -and (-not $installResult.success)
|
|
386
|
+
if ($installSkipped) {
|
|
387
|
+
$warnings.Add('Installer invocation was skipped by request.') | Out-Null
|
|
388
|
+
} elseif ($installFailed) {
|
|
389
|
+
$stderrSnippet = if ([string]::IsNullOrWhiteSpace($installResult.stderr)) {
|
|
390
|
+
'no stderr captured'
|
|
391
|
+
} else {
|
|
392
|
+
($installResult.stderr.Trim() -split "`r?`n" |
|
|
393
|
+
Where-Object { -not [string]::IsNullOrWhiteSpace($_) } |
|
|
394
|
+
Select-Object -Last 8) -join ' | '
|
|
395
|
+
}
|
|
396
|
+
$warnings.Add("Meta Muse installer exited $($installResult.exitCode): $stderrSnippet") | Out-Null
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
Start-Sleep -Seconds 3
|
|
400
|
+
Add-MuseToUserPath
|
|
401
|
+
$detected = Get-MuseInstallState
|
|
402
|
+
if (-not $detected.installed -and -not $installSkipped -and -not $installFailed) {
|
|
403
|
+
if ($detected.partial) {
|
|
404
|
+
$warnings.Add('Meta Muse installation wrote muse.cmd but the launcher did not fetch muse-bin-<version>.exe.') | Out-Null
|
|
405
|
+
} else {
|
|
406
|
+
$warnings.Add('Meta Muse installation completed but muse.cmd was not found at the expected path.') | Out-Null
|
|
407
|
+
}
|
|
408
|
+
$installFailed = $true
|
|
409
|
+
} elseif (
|
|
410
|
+
$Upgrade -and $detected.installed -and $previousVersion -and
|
|
411
|
+
$detected.detectedVersion -eq $previousVersion
|
|
412
|
+
) {
|
|
413
|
+
$warnings.Add("Meta Muse CLI is already on the latest build: $($detected.detectedVersion).") | Out-Null
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
if (-not $installFailed -and -not ($DryRun -and $shouldInstall)) {
|
|
418
|
+
if ($Force) {
|
|
419
|
+
$appliedChanges.Add('reinstall_muse_native') | Out-Null
|
|
420
|
+
} elseif ($Upgrade) {
|
|
421
|
+
$appliedChanges.Add('upgrade_muse_native') | Out-Null
|
|
422
|
+
} else {
|
|
423
|
+
$appliedChanges.Add('install_muse_native') | Out-Null
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
$manualSteps.Add('Run `muse login` once to sign in to a Meta account; the credential is stored in ~/.config/muse/auth.json.') | Out-Null
|
|
429
|
+
$interruptions = [System.Collections.Generic.List[object]]::new()
|
|
430
|
+
if ($shouldInstall -and -not $installFailed -and -not $DryRun) {
|
|
431
|
+
$interruptions.Add([pscustomobject]@{
|
|
432
|
+
kind = 'relaunch_required'
|
|
433
|
+
summary = 'Run Detect Again after the Meta Muse install step if the command is not visible yet.'
|
|
434
|
+
resumable = $true
|
|
435
|
+
requiresRestart = $false
|
|
436
|
+
requiresElevation = $false
|
|
437
|
+
}) | Out-Null
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
$status = if ($installFailed) {
|
|
441
|
+
'failed'
|
|
442
|
+
} elseif ($DryRun -and $shouldInstall) {
|
|
443
|
+
'preview'
|
|
444
|
+
} elseif ($interruptions.Count -gt 0) {
|
|
445
|
+
[string]$interruptions[0].kind
|
|
446
|
+
} else {
|
|
447
|
+
'ready'
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
Write-StructuredResult -Result ([pscustomobject]@{
|
|
451
|
+
helper = 'windows-muse-native-installer'
|
|
452
|
+
mode = $executionMode
|
|
453
|
+
status = $status
|
|
454
|
+
installed = [bool]$detected.installed
|
|
455
|
+
detectedVersion = if ($detected.detectedVersion) { $detected.detectedVersion } else { $null }
|
|
456
|
+
commandPath = $detected.commandPath
|
|
457
|
+
restartRequired = $false
|
|
458
|
+
plannedActions = $plannedActions.ToArray()
|
|
459
|
+
warnings = $warnings.ToArray()
|
|
460
|
+
appliedChanges = $appliedChanges.ToArray()
|
|
461
|
+
manualSteps = $manualSteps.ToArray()
|
|
462
|
+
interruptions = $interruptions.ToArray()
|
|
463
|
+
}) -ExitCode $(if ($installFailed) { 1 } else { 0 })
|
|
@@ -155,7 +155,8 @@ function Test-NodeInstalled {
|
|
|
155
155
|
return $false
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
return [bool](Get-Command node -ErrorAction SilentlyContinue)
|
|
158
|
+
return [bool](Get-Command node -ErrorAction SilentlyContinue) -and
|
|
159
|
+
[bool](Get-Command npm -ErrorAction SilentlyContinue)
|
|
159
160
|
}
|
|
160
161
|
|
|
161
162
|
if (-not $CheckOnly -and -not $Apply -and -not $Upgrade -and -not $Force) {
|
|
@@ -180,6 +181,10 @@ $mode = if ($CheckOnly) {
|
|
|
180
181
|
'apply'
|
|
181
182
|
}
|
|
182
183
|
|
|
184
|
+
# Each invocation inherits the long-lived Desktop host's environment. Include
|
|
185
|
+
# newly installed system/user commands before check-only detection as well.
|
|
186
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') + ';' +
|
|
187
|
+
[System.Environment]::GetEnvironmentVariable('Path', 'User') + ';' + $env:Path
|
|
183
188
|
$installed = Test-NodeInstalled -Mode $mode
|
|
184
189
|
$detected = Get-NodeDetectedVersion -Override $DetectedVersion
|
|
185
190
|
$commandPath = if ($SkipNodeProbe) { '' } else { Resolve-NodeCommandPath }
|
|
@@ -146,7 +146,10 @@ function Detect-OllamaInstall {
|
|
|
146
146
|
|
|
147
147
|
if ($installed -and [string]::IsNullOrWhiteSpace($version) -and $versionProbePath) {
|
|
148
148
|
try {
|
|
149
|
-
|
|
149
|
+
# Detection must not launch a provider, including during login setup audits.
|
|
150
|
+
$versionInfo = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($versionProbePath)
|
|
151
|
+
$version = $versionInfo.ProductVersion
|
|
152
|
+
if ([string]::IsNullOrWhiteSpace($version)) { $version = $versionInfo.FileVersion }
|
|
150
153
|
} catch {
|
|
151
154
|
$version = ''
|
|
152
155
|
}
|
|
@@ -215,6 +215,16 @@ if (-not $SkipNodeCheck) {
|
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
+
if (-not $PSBoundParameters.ContainsKey('DesiredPrefix') -and $prefixProbe) {
|
|
219
|
+
$existingPrefix = [IO.Path]::GetFullPath($prefixProbe)
|
|
220
|
+
$userRoot = [IO.Path]::GetFullPath($UserHome).TrimEnd('\') + '\'
|
|
221
|
+
$npmrc = if ($env:NPM_CONFIG_USERCONFIG) { $env:NPM_CONFIG_USERCONFIG } else { Join-Path $UserHome '.npmrc' }
|
|
222
|
+
$explicitPrefix = $env:NPM_CONFIG_PREFIX -or ((Test-Path -LiteralPath $npmrc -PathType Leaf) -and
|
|
223
|
+
(Select-String -LiteralPath $npmrc -Pattern '^\s*prefix\s*=' -Quiet))
|
|
224
|
+
if ($explicitPrefix -or $existingPrefix.StartsWith($userRoot, [StringComparison]::OrdinalIgnoreCase)) {
|
|
225
|
+
$desiredPrefixPath = $existingPrefix
|
|
226
|
+
}
|
|
227
|
+
}
|
|
218
228
|
$pathEntries = Get-PathEntries -PathValue $pathProbe
|
|
219
229
|
$needsDirectory = -not (Test-Path -LiteralPath $desiredPrefixPath -PathType Container)
|
|
220
230
|
$needsPrefixUpdate = (Normalize-PathValue -Path $prefixProbe).ToLowerInvariant() -ne
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Syncs skills from the canonical skills/ directory to each agent's discovery path.
|
|
4
4
|
|
|
5
5
|
.DESCRIPTION
|
|
6
|
-
|
|
6
|
+
Recursively discovers skill packages in the project's skills/ directory and copies them to
|
|
7
|
+
the agent-specific
|
|
7
8
|
discovery paths (.claude/skills/, .agents/skills/), including any supporting files
|
|
8
9
|
under each skill (e.g., scripts/, references/, assets/).
|
|
9
10
|
|
|
@@ -62,8 +63,8 @@ if (-not (Test-Path $SkillsDir)) {
|
|
|
62
63
|
|
|
63
64
|
# Define agent discovery paths
|
|
64
65
|
$AgentPaths = @{
|
|
65
|
-
"claude" = Join-Path $ProjectRoot ".claude" "skills"
|
|
66
|
-
"codex" = Join-Path $ProjectRoot ".agents" "skills"
|
|
66
|
+
"claude" = Join-Path (Join-Path $ProjectRoot ".claude") "skills"
|
|
67
|
+
"codex" = Join-Path (Join-Path $ProjectRoot ".agents") "skills"
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
# Filter to specific agent if requested
|
|
@@ -74,9 +75,31 @@ else {
|
|
|
74
75
|
$TargetAgents = $AgentPaths
|
|
75
76
|
}
|
|
76
77
|
|
|
77
|
-
#
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
# Stop at package roots: a resource named SKILL.md is not another package.
|
|
79
|
+
function Find-SkillPackages {
|
|
80
|
+
param([string]$Directory)
|
|
81
|
+
foreach ($Entry in Get-ChildItem -LiteralPath $Directory -Directory) {
|
|
82
|
+
if ($Entry.Name.EndsWith('.bootstrap', [StringComparison]::OrdinalIgnoreCase)) { continue }
|
|
83
|
+
if ($Entry.Attributes -band [System.IO.FileAttributes]::ReparsePoint) {
|
|
84
|
+
throw "Linked skill directories are not supported: $($Entry.FullName)"
|
|
85
|
+
}
|
|
86
|
+
if (Test-Path -LiteralPath (Join-Path $Entry.FullName 'SKILL.md') -PathType Leaf) {
|
|
87
|
+
$Entry
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
Find-SkillPackages -Directory $Entry.FullName
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
$SkillDirs = @(Find-SkillPackages -Directory $SkillsDir)
|
|
96
|
+
# Flattening family directories must never silently overwrite a same-named package.
|
|
97
|
+
$SkillNames = @{}
|
|
98
|
+
foreach ($Skill in $SkillDirs) {
|
|
99
|
+
if ($SkillNames.ContainsKey($Skill.Name)) {
|
|
100
|
+
throw "Duplicate skill '$($Skill.Name)': $($SkillNames[$Skill.Name]) and $($Skill.FullName)"
|
|
101
|
+
}
|
|
102
|
+
$SkillNames[$Skill.Name] = $Skill.FullName
|
|
80
103
|
}
|
|
81
104
|
|
|
82
105
|
if ($SkillDirs.Count -eq 0) {
|
|
@@ -181,14 +181,17 @@ $requiredFiles = @(
|
|
|
181
181
|
@{ Path = (Join-Path $resourcesRoot 'app-sidecar\package.json'); Label = 'bundled cats app package manifest' },
|
|
182
182
|
@{ Path = (Join-Path $resourcesRoot 'app-sidecar\node_modules\js-yaml\package.json'); Label = 'bundled cats app js-yaml dependency marker' },
|
|
183
183
|
@{ Path = (Join-Path $resourcesRoot 'app-sidecar\node_modules\argparse\package.json'); Label = 'bundled cats app argparse dependency marker' },
|
|
184
|
+
@{ Path = (Join-Path $resourcesRoot 'app-sidecar\config\provider-capability-bootstrap.yaml.example'); Label = 'bundled cats capability bootstrap example' },
|
|
184
185
|
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\build\runtime\index.js'); Label = 'bundled cats-runtime entry' },
|
|
185
186
|
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\package.json'); Label = 'bundled cats-runtime package manifest' },
|
|
186
187
|
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\public\provider-setup.html'); Label = 'bundled cats-runtime setup UI' },
|
|
187
|
-
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\skills\README.md'); Label = 'bundled cats-runtime skills catalog root' },
|
|
188
|
+
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\runtime-skills\README.md'); Label = 'bundled cats-runtime skills catalog root' },
|
|
188
189
|
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\config\management.yaml.example'); Label = 'bundled cats-runtime management config example' },
|
|
189
190
|
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\config\providers.yaml.example'); Label = 'bundled cats-runtime provider config example' },
|
|
190
191
|
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\config\curated-model-catalogs.yaml.example'); Label = 'bundled cats-runtime curated model catalog example' },
|
|
191
192
|
@{ Path = (Join-Path $resourcesRoot 'cats-runtime\node_modules\playwright-core\package.json'); Label = 'bundled cats-runtime external dependency marker' },
|
|
193
|
+
@{ Path = (Join-Path $resourcesRoot 'desktop\setup-assets\windows\_NativeInstallerSupport.ps1'); Label = 'bundled native version/installer support' },
|
|
194
|
+
@{ Path = (Join-Path $resourcesRoot 'desktop\setup-assets\windows\_VerifiedNpmUpdate.ps1'); Label = 'bundled verified npm update support' },
|
|
192
195
|
@{ Path = (Join-Path $resourcesRoot 'desktop\setup-assets\windows\Install-Node.ps1'); Label = 'bundled Windows Node.js LTS host installer' },
|
|
193
196
|
@{ Path = (Join-Path $resourcesRoot 'desktop\setup-assets\windows\Install-GitHubCli.ps1'); Label = 'bundled Windows GitHub CLI host installer' },
|
|
194
197
|
@{ Path = (Join-Path $resourcesRoot 'desktop\setup-assets\windows\Setup-NodeGlobalPrefix.ps1'); Label = 'bundled Windows npm prefix helper' },
|
|
@@ -15,7 +15,8 @@ function Invoke-HiddenCommand {
|
|
|
15
15
|
[Parameter(Mandatory)]
|
|
16
16
|
[string]$FileName,
|
|
17
17
|
|
|
18
|
-
[string[]]$ArgumentList = @()
|
|
18
|
+
[string[]]$ArgumentList = @(),
|
|
19
|
+
[int]$TimeoutMs = 0
|
|
19
20
|
)
|
|
20
21
|
|
|
21
22
|
$psi = New-Object System.Diagnostics.ProcessStartInfo
|
|
@@ -36,9 +37,19 @@ function Invoke-HiddenCommand {
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
$proc = [System.Diagnostics.Process]::Start($psi)
|
|
39
|
-
$
|
|
40
|
-
$
|
|
40
|
+
$outputTask = $proc.StandardOutput.ReadToEndAsync()
|
|
41
|
+
$errorTask = $proc.StandardError.ReadToEndAsync()
|
|
42
|
+
if ($TimeoutMs -gt 0 -and -not $proc.WaitForExit($TimeoutMs)) {
|
|
43
|
+
# taskkill /T works in Windows PowerShell 5.1 as well as PowerShell 7;
|
|
44
|
+
# Process.Kill(true) is unavailable in the former. Only this owned tree is killed.
|
|
45
|
+
$null = Invoke-HiddenCommand -FileName (Join-Path $env:SystemRoot 'System32\taskkill.exe') -ArgumentList @('/PID', [string]$proc.Id, '/T', '/F')
|
|
46
|
+
if (-not $proc.HasExited) { $proc.Kill() }
|
|
47
|
+
$proc.WaitForExit()
|
|
48
|
+
return [pscustomobject]@{ ExitCode = -1; Output = ''; ErrorOutput = 'Command timed out.' }
|
|
49
|
+
}
|
|
41
50
|
$proc.WaitForExit()
|
|
51
|
+
$output = $outputTask.GetAwaiter().GetResult()
|
|
52
|
+
$errorOutput = $errorTask.GetAwaiter().GetResult()
|
|
42
53
|
|
|
43
54
|
return [pscustomobject]@{
|
|
44
55
|
ExitCode = $proc.ExitCode
|