@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.
Files changed (548) hide show
  1. package/.env.example +3 -7
  2. package/README.md +35 -0
  3. package/build/desktop/bootstrapNavigation.d.ts.map +1 -1
  4. package/build/desktop/bootstrapNavigation.js +6 -13
  5. package/build/desktop/bootstrapNavigation.js.map +1 -1
  6. package/build/desktop/bootstrapPage.d.ts.map +1 -1
  7. package/build/desktop/bootstrapPage.js +63 -86
  8. package/build/desktop/bootstrapPage.js.map +1 -1
  9. package/build/desktop/cliInventoryProbe.d.ts +11 -2
  10. package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
  11. package/build/desktop/cliInventoryProbe.js +19 -13
  12. package/build/desktop/cliInventoryProbe.js.map +1 -1
  13. package/build/desktop/config.d.ts +0 -4
  14. package/build/desktop/config.d.ts.map +1 -1
  15. package/build/desktop/config.js +1 -6
  16. package/build/desktop/config.js.map +1 -1
  17. package/build/desktop/contracts.d.ts +12 -2
  18. package/build/desktop/contracts.d.ts.map +1 -1
  19. package/build/desktop/contracts.js +1 -2
  20. package/build/desktop/contracts.js.map +1 -1
  21. package/build/desktop/hostVersion.d.ts.map +1 -1
  22. package/build/desktop/hostVersion.js +3 -5
  23. package/build/desktop/hostVersion.js.map +1 -1
  24. package/build/desktop/main.js +205 -256
  25. package/build/desktop/main.js.map +1 -1
  26. package/build/desktop/packaging.d.ts +2 -0
  27. package/build/desktop/packaging.d.ts.map +1 -1
  28. package/build/desktop/packaging.js +34 -14
  29. package/build/desktop/packaging.js.map +1 -1
  30. package/build/desktop/preload.cjs +9 -0
  31. package/build/desktop/preload.cjs.map +1 -1
  32. package/build/desktop/processSupervisor.d.ts.map +1 -1
  33. package/build/desktop/processSupervisor.js +3 -0
  34. package/build/desktop/processSupervisor.js.map +1 -1
  35. package/build/desktop/providerManager.d.ts +46 -0
  36. package/build/desktop/providerManager.d.ts.map +1 -0
  37. package/build/desktop/providerManager.js +220 -0
  38. package/build/desktop/providerManager.js.map +1 -0
  39. package/build/desktop/providerSelection.d.ts +38 -0
  40. package/build/desktop/providerSelection.d.ts.map +1 -0
  41. package/build/desktop/providerSelection.js +118 -0
  42. package/build/desktop/providerSelection.js.map +1 -0
  43. package/build/desktop/readiness.d.ts +2 -0
  44. package/build/desktop/readiness.d.ts.map +1 -1
  45. package/build/desktop/readiness.js +14 -33
  46. package/build/desktop/readiness.js.map +1 -1
  47. package/build/desktop/setupAssets.d.ts.map +1 -1
  48. package/build/desktop/setupAssets.js +28 -14
  49. package/build/desktop/setupAssets.js.map +1 -1
  50. package/build/desktop/setupAudit.d.ts +4 -3
  51. package/build/desktop/setupAudit.d.ts.map +1 -1
  52. package/build/desktop/setupAudit.js +18 -34
  53. package/build/desktop/setupAudit.js.map +1 -1
  54. package/build/desktop/setupBridge.js +1 -1
  55. package/build/desktop/setupBridge.js.map +1 -1
  56. package/build/desktop/setupPrerequisites.d.ts +11 -0
  57. package/build/desktop/setupPrerequisites.d.ts.map +1 -0
  58. package/build/desktop/setupPrerequisites.js +47 -0
  59. package/build/desktop/setupPrerequisites.js.map +1 -0
  60. package/build/desktop/updateDialog.d.ts +27 -1
  61. package/build/desktop/updateDialog.d.ts.map +1 -1
  62. package/build/desktop/updateDialog.js +85 -5
  63. package/build/desktop/updateDialog.js.map +1 -1
  64. package/build/renderer/assets/ActiveSessionPermissionChip-B49WcZBJ.js +1 -0
  65. package/build/renderer/assets/App-BpxZB5ym.js +2 -0
  66. package/build/renderer/assets/App-DYTUfAl6.js +1 -0
  67. package/build/renderer/assets/App-DxsV-tKS.css +1 -0
  68. package/build/renderer/assets/{App-DKOSn0o_.js → App-boB4WrmU.js} +1 -1
  69. package/build/renderer/assets/WorkspaceAppRoutes-CPqz85iw.js +1 -0
  70. package/build/renderer/assets/app-C52wwCGz.js +85 -0
  71. package/build/renderer/assets/app-CqnsY5ed.css +1 -0
  72. package/build/renderer/assets/{client-BdGHAUoK.js → client-DREGSZqQ.js} +1 -1
  73. package/build/renderer/assets/conversationSidebarRecentEntries-DK0iWS73.js +6 -0
  74. package/build/renderer/assets/{screenshotOverlay-DfBcolX-.js → screenshotOverlay-EF07cXvw.js} +1 -1
  75. package/build/renderer/assets/{useDraftSessionChips-DCIId0eY.js → useDraftSessionChips-BdZ_B1gy.js} +1 -1
  76. package/build/renderer/desktop/overlay/index.html +2 -2
  77. package/build/renderer/index.html +3 -3
  78. package/build/server/app/renderer/auth/api.d.ts.map +1 -1
  79. package/build/server/app/renderer/auth/api.js +4 -1
  80. package/build/server/app/renderer/auth/api.js.map +1 -1
  81. package/build/server/app/renderer/providerCatalogClient.d.ts.map +1 -1
  82. package/build/server/app/renderer/providerCatalogClient.js +34 -12
  83. package/build/server/app/renderer/providerCatalogClient.js.map +1 -1
  84. package/build/server/app/renderer/providerClientInvalidation.d.ts +6 -0
  85. package/build/server/app/renderer/providerClientInvalidation.d.ts.map +1 -0
  86. package/build/server/app/renderer/providerClientInvalidation.js +12 -0
  87. package/build/server/app/renderer/providerClientInvalidation.js.map +1 -0
  88. package/build/server/app/renderer/providerReadLoop.d.ts +5 -0
  89. package/build/server/app/renderer/providerReadLoop.d.ts.map +1 -0
  90. package/build/server/app/renderer/providerReadLoop.js +52 -0
  91. package/build/server/app/renderer/providerReadLoop.js.map +1 -0
  92. package/build/server/app/renderer/providerRegistryClient.d.ts +3 -2
  93. package/build/server/app/renderer/providerRegistryClient.d.ts.map +1 -1
  94. package/build/server/app/renderer/providerRegistryClient.js +51 -53
  95. package/build/server/app/renderer/providerRegistryClient.js.map +1 -1
  96. package/build/server/app/server/appPackageRoutes.d.ts +2 -0
  97. package/build/server/app/server/appPackageRoutes.d.ts.map +1 -1
  98. package/build/server/app/server/appPackageRoutes.js +105 -0
  99. package/build/server/app/server/appPackageRoutes.js.map +1 -1
  100. package/build/server/app/server/authGatePolicy.js +14 -1
  101. package/build/server/app/server/authGatePolicy.js.map +1 -1
  102. package/build/server/app/server/contracts.d.ts +15 -0
  103. package/build/server/app/server/contracts.d.ts.map +1 -1
  104. package/build/server/app/server/dependencies.d.ts.map +1 -1
  105. package/build/server/app/server/dependencies.js +42 -1
  106. package/build/server/app/server/dependencies.js.map +1 -1
  107. package/build/server/app/server/goldenPathStartupResume.d.ts +55 -0
  108. package/build/server/app/server/goldenPathStartupResume.d.ts.map +1 -0
  109. package/build/server/app/server/goldenPathStartupResume.js +109 -0
  110. package/build/server/app/server/goldenPathStartupResume.js.map +1 -0
  111. package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
  112. package/build/server/app/server/platformSetupRoutes.js +1 -13
  113. package/build/server/app/server/platformSetupRoutes.js.map +1 -1
  114. package/build/server/app/server/polling.d.ts.map +1 -1
  115. package/build/server/app/server/polling.js +2 -0
  116. package/build/server/app/server/polling.js.map +1 -1
  117. package/build/server/app/server/requestRouter.d.ts.map +1 -1
  118. package/build/server/app/server/requestRouter.js +30 -0
  119. package/build/server/app/server/requestRouter.js.map +1 -1
  120. package/build/server/app/server/runtimeSurfaceProxy.d.ts.map +1 -1
  121. package/build/server/app/server/runtimeSurfaceProxy.js +4 -2
  122. package/build/server/app/server/runtimeSurfaceProxy.js.map +1 -1
  123. package/build/server/app/server/startupRecovery.d.ts.map +1 -1
  124. package/build/server/app/server/startupRecovery.js +5 -0
  125. package/build/server/app/server/startupRecovery.js.map +1 -1
  126. package/build/server/app/server/subscribeRoutes.d.ts.map +1 -1
  127. package/build/server/app/server/subscribeRoutes.js +5 -3
  128. package/build/server/app/server/subscribeRoutes.js.map +1 -1
  129. package/build/server/app/server/telegramCommandSurface.d.ts +29 -0
  130. package/build/server/app/server/telegramCommandSurface.d.ts.map +1 -0
  131. package/build/server/app/server/telegramCommandSurface.js +123 -0
  132. package/build/server/app/server/telegramCommandSurface.js.map +1 -0
  133. package/build/server/app/server/transportWorkGoldenPath.d.ts +82 -0
  134. package/build/server/app/server/transportWorkGoldenPath.d.ts.map +1 -0
  135. package/build/server/app/server/transportWorkGoldenPath.js +307 -0
  136. package/build/server/app/server/transportWorkGoldenPath.js.map +1 -0
  137. package/build/server/config.d.ts +21 -0
  138. package/build/server/config.d.ts.map +1 -1
  139. package/build/server/config.js +12 -0
  140. package/build/server/config.js.map +1 -1
  141. package/build/server/design/components/providerModelFieldsSupport.d.ts +5 -24
  142. package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
  143. package/build/server/design/components/providerModelFieldsSupport.js +65 -70
  144. package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
  145. package/build/server/design/components/useProviderCatalogState.d.ts +2 -2
  146. package/build/server/design/components/useProviderCatalogState.d.ts.map +1 -1
  147. package/build/server/design/components/useProviderCatalogState.js +71 -151
  148. package/build/server/design/components/useProviderCatalogState.js.map +1 -1
  149. package/build/server/design/components/useProviderModelFieldActions.js +2 -2
  150. package/build/server/design/components/useProviderModelFieldActions.js.map +1 -1
  151. package/build/server/design/components/useProviderRegistryState.d.ts +1 -7
  152. package/build/server/design/components/useProviderRegistryState.d.ts.map +1 -1
  153. package/build/server/design/components/useProviderRegistryState.js +41 -104
  154. package/build/server/design/components/useProviderRegistryState.js.map +1 -1
  155. package/build/server/design/components/useProviderTargetReconciliation.d.ts +1 -0
  156. package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
  157. package/build/server/design/components/useProviderTargetReconciliation.js +3 -2
  158. package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
  159. package/build/server/index.js +4 -0
  160. package/build/server/index.js.map +1 -1
  161. package/build/server/platform/apps/packageInstaller.d.ts +19 -0
  162. package/build/server/platform/apps/packageInstaller.d.ts.map +1 -0
  163. package/build/server/platform/apps/packageInstaller.js +92 -0
  164. package/build/server/platform/apps/packageInstaller.js.map +1 -0
  165. package/build/server/platform/apps/registry.d.ts +6 -0
  166. package/build/server/platform/apps/registry.d.ts.map +1 -1
  167. package/build/server/platform/apps/registry.js +24 -0
  168. package/build/server/platform/apps/registry.js.map +1 -1
  169. package/build/server/platform/apps/renderer.d.ts +6 -0
  170. package/build/server/platform/apps/renderer.d.ts.map +1 -0
  171. package/build/server/platform/apps/renderer.js +18 -0
  172. package/build/server/platform/apps/renderer.js.map +1 -0
  173. package/build/server/platform/orchestration/entitySubscriptions/channel.d.ts +2 -1
  174. package/build/server/platform/orchestration/entitySubscriptions/channel.d.ts.map +1 -1
  175. package/build/server/platform/orchestration/entitySubscriptions/channel.js +3 -18
  176. package/build/server/platform/orchestration/entitySubscriptions/channel.js.map +1 -1
  177. package/build/server/platform/orchestration/entitySubscriptions/index.d.ts +1 -0
  178. package/build/server/platform/orchestration/entitySubscriptions/index.d.ts.map +1 -1
  179. package/build/server/platform/orchestration/entitySubscriptions/index.js.map +1 -1
  180. package/build/server/platform/runtime/deliveryClient.d.ts +111 -0
  181. package/build/server/platform/runtime/deliveryClient.d.ts.map +1 -0
  182. package/build/server/platform/runtime/deliveryClient.js +289 -0
  183. package/build/server/platform/runtime/deliveryClient.js.map +1 -0
  184. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts +1 -0
  185. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts.map +1 -1
  186. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js +10 -0
  187. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js.map +1 -1
  188. package/build/server/platform/supervision/runtimeBoundary.d.ts +11 -1
  189. package/build/server/platform/supervision/runtimeBoundary.d.ts.map +1 -1
  190. package/build/server/platform/supervision/runtimeBoundary.js +2 -2
  191. package/build/server/platform/supervision/runtimeBoundary.js.map +1 -1
  192. package/build/server/platform/transports/telegram/bridge.d.ts +18 -0
  193. package/build/server/platform/transports/telegram/bridge.d.ts.map +1 -1
  194. package/build/server/platform/transports/telegram/bridge.js +176 -0
  195. package/build/server/platform/transports/telegram/bridge.js.map +1 -1
  196. package/build/server/platform/transports/telegram/commandPort.d.ts +40 -0
  197. package/build/server/platform/transports/telegram/commandPort.d.ts.map +1 -0
  198. package/build/server/platform/transports/telegram/commandPort.js +17 -0
  199. package/build/server/platform/transports/telegram/commandPort.js.map +1 -0
  200. package/build/server/platform/transports/telegram/commandRouter.d.ts +22 -0
  201. package/build/server/platform/transports/telegram/commandRouter.d.ts.map +1 -1
  202. package/build/server/platform/transports/telegram/commandRouter.js.map +1 -1
  203. package/build/server/platform/transports/telegram/commands/index.d.ts.map +1 -1
  204. package/build/server/platform/transports/telegram/commands/index.js +38 -0
  205. package/build/server/platform/transports/telegram/commands/index.js.map +1 -1
  206. package/build/server/platform/transports/telegram/ingressDispatch.d.ts +56 -0
  207. package/build/server/platform/transports/telegram/ingressDispatch.d.ts.map +1 -0
  208. package/build/server/platform/transports/telegram/ingressDispatch.js +93 -0
  209. package/build/server/platform/transports/telegram/ingressDispatch.js.map +1 -0
  210. package/build/server/platform/transports/telegram/polling.d.ts +34 -0
  211. package/build/server/platform/transports/telegram/polling.d.ts.map +1 -1
  212. package/build/server/platform/transports/telegram/polling.js +86 -9
  213. package/build/server/platform/transports/telegram/polling.js.map +1 -1
  214. package/build/server/platform/transports/telegram/relay/index.d.ts +3 -0
  215. package/build/server/platform/transports/telegram/relay/index.d.ts.map +1 -1
  216. package/build/server/platform/transports/telegram/relay/index.js +5 -1
  217. package/build/server/platform/transports/telegram/relay/index.js.map +1 -1
  218. package/build/server/platform/transports/telegram/relay/ingress.d.ts +2 -0
  219. package/build/server/platform/transports/telegram/relay/ingress.d.ts.map +1 -1
  220. package/build/server/platform/transports/telegram/relay/ingress.js +1 -1
  221. package/build/server/platform/transports/telegram/relay/ingress.js.map +1 -1
  222. package/build/server/platform/transports/work-delivery/actionTokens.d.ts +66 -0
  223. package/build/server/platform/transports/work-delivery/actionTokens.d.ts.map +1 -0
  224. package/build/server/platform/transports/work-delivery/actionTokens.js +145 -0
  225. package/build/server/platform/transports/work-delivery/actionTokens.js.map +1 -0
  226. package/build/server/platform/transports/work-delivery/contracts.d.ts +172 -0
  227. package/build/server/platform/transports/work-delivery/contracts.d.ts.map +1 -0
  228. package/build/server/platform/transports/work-delivery/contracts.js +26 -0
  229. package/build/server/platform/transports/work-delivery/contracts.js.map +1 -0
  230. package/build/server/platform/transports/work-delivery/deliveryGates.d.ts +32 -0
  231. package/build/server/platform/transports/work-delivery/deliveryGates.d.ts.map +1 -0
  232. package/build/server/platform/transports/work-delivery/deliveryGates.js +45 -0
  233. package/build/server/platform/transports/work-delivery/deliveryGates.js.map +1 -0
  234. package/build/server/platform/transports/work-delivery/inboundClassification.d.ts +31 -0
  235. package/build/server/platform/transports/work-delivery/inboundClassification.d.ts.map +1 -0
  236. package/build/server/platform/transports/work-delivery/inboundClassification.js +52 -0
  237. package/build/server/platform/transports/work-delivery/inboundClassification.js.map +1 -0
  238. package/build/server/platform/transports/work-delivery/outbox.d.ts +84 -0
  239. package/build/server/platform/transports/work-delivery/outbox.d.ts.map +1 -0
  240. package/build/server/platform/transports/work-delivery/outbox.js +270 -0
  241. package/build/server/platform/transports/work-delivery/outbox.js.map +1 -0
  242. package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts +57 -0
  243. package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts.map +1 -0
  244. package/build/server/platform/transports/work-delivery/permissionEnvelope.js +74 -0
  245. package/build/server/platform/transports/work-delivery/permissionEnvelope.js.map +1 -0
  246. package/build/server/platform/transports/work-delivery/port.d.ts +60 -0
  247. package/build/server/platform/transports/work-delivery/port.d.ts.map +1 -0
  248. package/build/server/platform/transports/work-delivery/port.js +15 -0
  249. package/build/server/platform/transports/work-delivery/port.js.map +1 -0
  250. package/build/server/platform/transports/work-delivery/proposal.d.ts +31 -0
  251. package/build/server/platform/transports/work-delivery/proposal.d.ts.map +1 -0
  252. package/build/server/platform/transports/work-delivery/proposal.js +59 -0
  253. package/build/server/platform/transports/work-delivery/proposal.js.map +1 -0
  254. package/build/server/platform/transports/work-delivery/readiness.d.ts +61 -0
  255. package/build/server/platform/transports/work-delivery/readiness.d.ts.map +1 -0
  256. package/build/server/platform/transports/work-delivery/readiness.js +123 -0
  257. package/build/server/platform/transports/work-delivery/readiness.js.map +1 -0
  258. package/build/server/platform/transports/work-delivery/stageProjection.d.ts +43 -0
  259. package/build/server/platform/transports/work-delivery/stageProjection.d.ts.map +1 -0
  260. package/build/server/platform/transports/work-delivery/stageProjection.js +132 -0
  261. package/build/server/platform/transports/work-delivery/stageProjection.js.map +1 -0
  262. package/build/server/platform/transports/work-delivery/stateStore.d.ts +21 -0
  263. package/build/server/platform/transports/work-delivery/stateStore.d.ts.map +1 -0
  264. package/build/server/platform/transports/work-delivery/stateStore.js +193 -0
  265. package/build/server/platform/transports/work-delivery/stateStore.js.map +1 -0
  266. package/build/server/platform/transports/work-delivery/telemetry.d.ts +49 -0
  267. package/build/server/platform/transports/work-delivery/telemetry.d.ts.map +1 -0
  268. package/build/server/platform/transports/work-delivery/telemetry.js +80 -0
  269. package/build/server/platform/transports/work-delivery/telemetry.js.map +1 -0
  270. package/build/server/products/chat/api/contracts.d.ts +10 -0
  271. package/build/server/products/chat/api/contracts.d.ts.map +1 -1
  272. package/build/server/products/chat/api/resources/channelRoutes.d.ts.map +1 -1
  273. package/build/server/products/chat/api/resources/channelRoutes.js +27 -1
  274. package/build/server/products/chat/api/resources/channelRoutes.js.map +1 -1
  275. package/build/server/products/chat/api/routeSupport.d.ts +17 -1
  276. package/build/server/products/chat/api/routeSupport.d.ts.map +1 -1
  277. package/build/server/products/chat/api/routeSupport.js +27 -4
  278. package/build/server/products/chat/api/routeSupport.js.map +1 -1
  279. package/build/server/products/chat/api/setupRoutes.d.ts.map +1 -1
  280. package/build/server/products/chat/api/setupRoutes.js +23 -8
  281. package/build/server/products/chat/api/setupRoutes.js.map +1 -1
  282. package/build/server/products/chat/state/model/channelExecutionTargets.d.ts +15 -0
  283. package/build/server/products/chat/state/model/channelExecutionTargets.d.ts.map +1 -1
  284. package/build/server/products/chat/state/model/channelExecutionTargets.js +25 -0
  285. package/build/server/products/chat/state/model/channelExecutionTargets.js.map +1 -1
  286. package/build/server/products/chat/state/model/index.d.ts +1 -1
  287. package/build/server/products/chat/state/model/index.d.ts.map +1 -1
  288. package/build/server/products/chat/state/model/index.js +1 -1
  289. package/build/server/products/chat/state/model/index.js.map +1 -1
  290. package/build/server/products/chat/state/model/readModels.d.ts +1 -0
  291. package/build/server/products/chat/state/model/readModels.d.ts.map +1 -1
  292. package/build/server/products/chat/state/model/readModels.js +2 -1
  293. package/build/server/products/chat/state/model/readModels.js.map +1 -1
  294. package/build/server/products/code/api/relayRoutes.d.ts.map +1 -1
  295. package/build/server/products/code/api/relayRoutes.js +36 -7
  296. package/build/server/products/code/api/relayRoutes.js.map +1 -1
  297. package/build/server/products/code/state/relayState.d.ts +2 -1
  298. package/build/server/products/code/state/relayState.d.ts.map +1 -1
  299. package/build/server/products/code/state/relayState.js +7 -7
  300. package/build/server/products/code/state/relayState.js.map +1 -1
  301. package/build/server/products/shared/api/workspaceContracts.d.ts +5 -0
  302. package/build/server/products/shared/api/workspaceContracts.d.ts.map +1 -1
  303. package/build/server/products/shared/renderer/api/appShell.d.ts +1 -0
  304. package/build/server/products/shared/renderer/api/appShell.d.ts.map +1 -1
  305. package/build/server/products/shared/renderer/api/appShell.js +9 -0
  306. package/build/server/products/shared/renderer/api/appShell.js.map +1 -1
  307. package/build/server/products/work/api/goldenPathProjection.d.ts +156 -0
  308. package/build/server/products/work/api/goldenPathProjection.d.ts.map +1 -0
  309. package/build/server/products/work/api/goldenPathProjection.js +252 -0
  310. package/build/server/products/work/api/goldenPathProjection.js.map +1 -0
  311. package/build/server/products/work/api/index.d.ts +54 -1
  312. package/build/server/products/work/api/index.d.ts.map +1 -1
  313. package/build/server/products/work/api/index.js +182 -4
  314. package/build/server/products/work/api/index.js.map +1 -1
  315. package/build/server/products/work/api/projection.d.ts +7 -1
  316. package/build/server/products/work/api/projection.d.ts.map +1 -1
  317. package/build/server/products/work/api/projection.js +7 -1
  318. package/build/server/products/work/api/projection.js.map +1 -1
  319. package/build/server/products/work/shared/apiPaths.d.ts +8 -0
  320. package/build/server/products/work/shared/apiPaths.d.ts.map +1 -1
  321. package/build/server/products/work/shared/apiPaths.js +8 -0
  322. package/build/server/products/work/shared/apiPaths.js.map +1 -1
  323. package/build/server/products/work/shared/workGoldenPathMessages.d.ts +83 -0
  324. package/build/server/products/work/shared/workGoldenPathMessages.d.ts.map +1 -0
  325. package/build/server/products/work/shared/workGoldenPathMessages.js +211 -0
  326. package/build/server/products/work/shared/workGoldenPathMessages.js.map +1 -0
  327. package/build/server/products/work/shared/workGoldenPathMetadata.d.ts +45 -0
  328. package/build/server/products/work/shared/workGoldenPathMetadata.d.ts.map +1 -0
  329. package/build/server/products/work/shared/workGoldenPathMetadata.js +122 -0
  330. package/build/server/products/work/shared/workGoldenPathMetadata.js.map +1 -0
  331. package/build/server/products/work/state/workCompletionEvidence.d.ts +42 -0
  332. package/build/server/products/work/state/workCompletionEvidence.d.ts.map +1 -0
  333. package/build/server/products/work/state/workCompletionEvidence.js +59 -0
  334. package/build/server/products/work/state/workCompletionEvidence.js.map +1 -0
  335. package/build/server/products/work/state/workExecutionTaskDelegate.d.ts +16 -0
  336. package/build/server/products/work/state/workExecutionTaskDelegate.d.ts.map +1 -1
  337. package/build/server/products/work/state/workExecutionTaskDelegate.js +91 -68
  338. package/build/server/products/work/state/workExecutionTaskDelegate.js.map +1 -1
  339. package/build/server/products/work/state/workGoldenPathAdmission.d.ts +78 -0
  340. package/build/server/products/work/state/workGoldenPathAdmission.d.ts.map +1 -0
  341. package/build/server/products/work/state/workGoldenPathAdmission.js +249 -0
  342. package/build/server/products/work/state/workGoldenPathAdmission.js.map +1 -0
  343. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts +33 -0
  344. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts.map +1 -0
  345. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js +161 -0
  346. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js.map +1 -0
  347. package/build/server/products/work/state/workGoldenPathIntake.d.ts +34 -0
  348. package/build/server/products/work/state/workGoldenPathIntake.d.ts.map +1 -0
  349. package/build/server/products/work/state/workGoldenPathIntake.js +50 -0
  350. package/build/server/products/work/state/workGoldenPathIntake.js.map +1 -0
  351. package/build/server/products/work/state/workGoldenPathLifecycle.d.ts +44 -0
  352. package/build/server/products/work/state/workGoldenPathLifecycle.d.ts.map +1 -0
  353. package/build/server/products/work/state/workGoldenPathLifecycle.js +146 -0
  354. package/build/server/products/work/state/workGoldenPathLifecycle.js.map +1 -0
  355. package/build/server/products/work/state/workGoldenPathPublish.d.ts +84 -0
  356. package/build/server/products/work/state/workGoldenPathPublish.d.ts.map +1 -0
  357. package/build/server/products/work/state/workGoldenPathPublish.js +488 -0
  358. package/build/server/products/work/state/workGoldenPathPublish.js.map +1 -0
  359. package/build/server/products/work/state/workGoldenPathRunner.d.ts +121 -0
  360. package/build/server/products/work/state/workGoldenPathRunner.d.ts.map +1 -0
  361. package/build/server/products/work/state/workGoldenPathRunner.js +447 -0
  362. package/build/server/products/work/state/workGoldenPathRunner.js.map +1 -0
  363. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts +74 -0
  364. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts.map +1 -0
  365. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js +239 -0
  366. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js.map +1 -0
  367. package/build/server/products/work/state/workGoldenPathService.d.ts +152 -0
  368. package/build/server/products/work/state/workGoldenPathService.d.ts.map +1 -0
  369. package/build/server/products/work/state/workGoldenPathService.js +1057 -0
  370. package/build/server/products/work/state/workGoldenPathService.js.map +1 -0
  371. package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts +87 -0
  372. package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts.map +1 -0
  373. package/build/server/products/work/state/workGoldenPathTelegramPort.js +220 -0
  374. package/build/server/products/work/state/workGoldenPathTelegramPort.js.map +1 -0
  375. package/build/server/runtime/client.d.ts +13 -0
  376. package/build/server/runtime/client.d.ts.map +1 -1
  377. package/build/server/runtime/client.js +44 -1
  378. package/build/server/runtime/client.js.map +1 -1
  379. package/build/server/runtime/setup.d.ts +14 -4
  380. package/build/server/runtime/setup.d.ts.map +1 -1
  381. package/build/server/runtime/setup.js +17 -19
  382. package/build/server/runtime/setup.js.map +1 -1
  383. package/build/server/runtime/usageSnapshot.d.ts +3 -0
  384. package/build/server/runtime/usageSnapshot.d.ts.map +1 -0
  385. package/build/server/runtime/usageSnapshot.js +69 -0
  386. package/build/server/runtime/usageSnapshot.js.map +1 -0
  387. package/build/server/server/routes/providerCapabilityBootstrap.d.ts +69 -0
  388. package/build/server/server/routes/providerCapabilityBootstrap.d.ts.map +1 -0
  389. package/build/server/server/routes/providerCapabilityBootstrap.js +165 -0
  390. package/build/server/server/routes/providerCapabilityBootstrap.js.map +1 -0
  391. package/build/server/server/routes/providers.d.ts.map +1 -1
  392. package/build/server/server/routes/providers.js +133 -131
  393. package/build/server/server/routes/providers.js.map +1 -1
  394. package/build/server/server/routes/telegram.d.ts +9 -0
  395. package/build/server/server/routes/telegram.d.ts.map +1 -1
  396. package/build/server/server/routes/telegram.js +79 -72
  397. package/build/server/server/routes/telegram.js.map +1 -1
  398. package/build/server/shared/catsAppManifest.d.ts +3 -1
  399. package/build/server/shared/catsAppManifest.d.ts.map +1 -1
  400. package/build/server/shared/catsAppManifest.js +2 -0
  401. package/build/server/shared/catsAppManifest.js.map +1 -1
  402. package/build/server/shared/desktopRecoveryBridge.d.ts +2 -1
  403. package/build/server/shared/desktopRecoveryBridge.d.ts.map +1 -1
  404. package/build/server/shared/desktopRecoveryBridge.js.map +1 -1
  405. package/build/server/shared/executionLabel.d.ts.map +1 -1
  406. package/build/server/shared/executionLabel.js +8 -1
  407. package/build/server/shared/executionLabel.js.map +1 -1
  408. package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
  409. package/build/server/shared/i18n/catalogs/en.js +198 -3
  410. package/build/server/shared/i18n/catalogs/en.js.map +1 -1
  411. package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
  412. package/build/server/shared/i18n/catalogs/zh-TW.js +197 -3
  413. package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
  414. package/build/server/shared/i18n/index.d.ts +192 -0
  415. package/build/server/shared/i18n/index.d.ts.map +1 -1
  416. package/build/server/shared/i18n/messageKeys.d.ts +192 -0
  417. package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
  418. package/build/server/shared/i18n/messageKeys.js +192 -0
  419. package/build/server/shared/i18n/messageKeys.js.map +1 -1
  420. package/build/server/shared/platformSetupOperation.d.ts +2 -0
  421. package/build/server/shared/platformSetupOperation.d.ts.map +1 -0
  422. package/build/server/shared/platformSetupOperation.js +9 -0
  423. package/build/server/shared/platformSetupOperation.js.map +1 -0
  424. package/build/server/shared/providerCatalog.d.ts +5 -2
  425. package/build/server/shared/providerCatalog.d.ts.map +1 -1
  426. package/build/server/shared/providerCatalog.js +6 -0
  427. package/build/server/shared/providerCatalog.js.map +1 -1
  428. package/build/server/shared/providerCatalogData.d.ts +154 -77
  429. package/build/server/shared/providerCatalogData.d.ts.map +1 -1
  430. package/build/server/shared/providerCatalogData.js +73 -36
  431. package/build/server/shared/providerCatalogData.js.map +1 -1
  432. package/build/server/shared/providerCatalogInstances.d.ts.map +1 -1
  433. package/build/server/shared/providerCatalogInstances.js +3 -0
  434. package/build/server/shared/providerCatalogInstances.js.map +1 -1
  435. package/build/server/shared/providerModelLabelRegistry.d.ts +29 -0
  436. package/build/server/shared/providerModelLabelRegistry.d.ts.map +1 -0
  437. package/build/server/shared/providerModelLabelRegistry.js +49 -0
  438. package/build/server/shared/providerModelLabelRegistry.js.map +1 -0
  439. package/build/server/shared/providerRegistryWarnings.d.ts +4 -0
  440. package/build/server/shared/providerRegistryWarnings.d.ts.map +1 -1
  441. package/build/server/shared/providerRegistryWarnings.js +7 -0
  442. package/build/server/shared/providerRegistryWarnings.js.map +1 -1
  443. package/build/server/shared/providerSelection.d.ts.map +1 -1
  444. package/build/server/shared/providerSelection.js +10 -13
  445. package/build/server/shared/providerSelection.js.map +1 -1
  446. package/build/server/shared/runtimeSetup.d.ts +17 -4
  447. package/build/server/shared/runtimeSetup.d.ts.map +1 -1
  448. package/build/server/shared/runtimeStatusPresentation.js +1 -1
  449. package/build/server/shared/runtimeStatusPresentation.js.map +1 -1
  450. package/package.json +32 -3
  451. package/packages/app-sdk/browser.d.ts +51 -0
  452. package/packages/app-sdk/browser.js +48 -0
  453. package/packages/app-sdk/package.d.ts +14 -0
  454. package/packages/app-sdk/package.js +131 -0
  455. package/packages/app-sdk/package.json +7 -0
  456. package/packages/provider-setup/manager.d.ts +79 -0
  457. package/packages/provider-setup/manager.js +441 -0
  458. package/scripts/README.md +66 -26
  459. package/scripts/build-desktop-installer.mjs +139 -16
  460. package/scripts/build-test-ui.mjs +1 -1
  461. package/scripts/bundle-server.mjs +23 -10
  462. package/scripts/linux/build-desktop-package.sh +6 -6
  463. package/scripts/linux/install-antigravity.sh +0 -0
  464. package/scripts/linux/install-devin.sh +0 -0
  465. package/scripts/linux/install-github-cli.sh +5 -0
  466. package/scripts/linux/install-meta-cli.sh +8 -0
  467. package/scripts/linux/install-node.sh +9 -3
  468. package/scripts/linux/node-cli-common.sh +87 -48
  469. package/scripts/linux/provider-cli-common.sh +178 -130
  470. package/scripts/linux/provider-version-common.sh +247 -0
  471. package/scripts/linux/sync-agent-skills.sh +27 -5
  472. package/scripts/linux/test-linux-package-smoke.sh +6 -3
  473. package/scripts/linux/upgrade-cli-tools.sh +1 -1
  474. package/scripts/linux/verified-npm-update.sh +20 -0
  475. package/scripts/macos/build-desktop-package.sh +5 -5
  476. package/scripts/macos/install-antigravity.sh +0 -0
  477. package/scripts/macos/install-devin.sh +0 -0
  478. package/scripts/macos/install-github-cli.sh +5 -0
  479. package/scripts/macos/install-meta-cli.sh +8 -0
  480. package/scripts/macos/install-node.sh +9 -3
  481. package/scripts/macos/node-cli-common.sh +87 -48
  482. package/scripts/macos/provider-cli-common.sh +178 -130
  483. package/scripts/macos/provider-version-common.sh +247 -0
  484. package/scripts/macos/sync-agent-skills.sh +27 -5
  485. package/scripts/macos/test-macos-package-smoke.sh +6 -3
  486. package/scripts/macos/upgrade-cli-tools.sh +1 -1
  487. package/scripts/macos/verified-npm-update.sh +20 -0
  488. package/scripts/package-desktop.mjs +15 -2
  489. package/scripts/testing/check-usage-app.mts +266 -0
  490. package/scripts/testing/conversation-navigation-smoke-electron.cjs +134 -0
  491. package/scripts/testing/conversation-navigation-smoke-renderer.tsx +102 -0
  492. package/scripts/testing/conversation-navigation-smoke.mjs +67 -0
  493. package/scripts/testing/usage-app-smoke-electron.cjs +10 -0
  494. package/scripts/testing/usage-app-smoke-renderer.tsx +8 -0
  495. package/scripts/validate-release-assets.mjs +4 -1
  496. package/scripts/verify-desktop-app-bundle.mjs +108 -0
  497. package/scripts/windows/Build-DesktopPackage.ps1 +9 -6
  498. package/scripts/windows/Install-Antigravity.ps1 +26 -3
  499. package/scripts/windows/Install-ClaudeCode.ps1 +25 -7
  500. package/scripts/windows/Install-CursorAgent.ps1 +45 -30
  501. package/scripts/windows/Install-Devin.ps1 +16 -47
  502. package/scripts/windows/Install-GitHubCli.ps1 +4 -0
  503. package/scripts/windows/Install-Goose.ps1 +18 -1
  504. package/scripts/windows/Install-Grok.ps1 +14 -1
  505. package/scripts/windows/Install-Junie.ps1 +32 -11
  506. package/scripts/windows/Install-KiroCli.ps1 +37 -13
  507. package/scripts/windows/Install-MetaCli.ps1 +463 -0
  508. package/scripts/windows/Install-Node.ps1 +6 -1
  509. package/scripts/windows/Install-Ollama.ps1 +4 -1
  510. package/scripts/windows/Setup-NodeGlobalPrefix.ps1 +10 -0
  511. package/scripts/windows/Sync-AgentSkills.ps1 +29 -6
  512. package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +4 -1
  513. package/scripts/windows/_HiddenProcess.ps1 +14 -3
  514. package/scripts/windows/_NativeInstallerSupport.ps1 +308 -0
  515. package/scripts/windows/_NpmCliInstaller.ps1 +35 -14
  516. package/scripts/windows/_PackagedUninstall.ps1 +9 -1
  517. package/scripts/windows/_VerifiedNpmUpdate.ps1 +25 -0
  518. package/build/desktop/updateNotifications.d.ts +0 -64
  519. package/build/desktop/updateNotifications.d.ts.map +0 -1
  520. package/build/desktop/updateNotifications.js +0 -143
  521. package/build/desktop/updateNotifications.js.map +0 -1
  522. package/build/renderer/assets/ActiveSessionPermissionChip-DImsuR9T.js +0 -1
  523. package/build/renderer/assets/App-BfOvMP2m.js +0 -1
  524. package/build/renderer/assets/App-DGwkRFZl.css +0 -1
  525. package/build/renderer/assets/App-DWd7I3Z2.js +0 -2
  526. package/build/renderer/assets/WorkspaceAppRoutes-CrbTA9En.js +0 -1
  527. package/build/renderer/assets/app-BTww3Hl4.js +0 -43
  528. package/build/renderer/assets/app-CPxWQwLA.css +0 -1
  529. package/build/renderer/assets/conversationSidebarRecentEntries-QuaOPxCb.js +0 -6
  530. package/build/server/app/renderer/settings/runtimeLifecycleHelpers.d.ts +0 -48
  531. package/build/server/app/renderer/settings/runtimeLifecycleHelpers.d.ts.map +0 -1
  532. package/build/server/app/renderer/settings/runtimeLifecycleHelpers.js +0 -535
  533. package/build/server/app/renderer/settings/runtimeLifecycleHelpers.js.map +0 -1
  534. package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts +0 -13
  535. package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts.map +0 -1
  536. package/build/server/design/components/useProviderRegistryAutoRecheck.js +0 -63
  537. package/build/server/design/components/useProviderRegistryAutoRecheck.js.map +0 -1
  538. package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.d.ts +0 -19
  539. package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.d.ts.map +0 -1
  540. package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.js +0 -53
  541. package/build/server/products/shared/renderer/api/providerCatalogRefreshStore.js.map +0 -1
  542. package/build/server/products/shared/renderer/api/providers.d.ts +0 -17
  543. package/build/server/products/shared/renderer/api/providers.d.ts.map +0 -1
  544. package/build/server/products/shared/renderer/api/providers.js +0 -50
  545. package/build/server/products/shared/renderer/api/providers.js.map +0 -1
  546. package/scripts/linux/install-aider.sh +0 -8
  547. package/scripts/macos/install-aider.sh +0 -8
  548. package/scripts/windows/Install-Aider.ps1 +0 -368
@@ -4,6 +4,7 @@ if [ -n "${CATS_PLATFORM_UNIX_PROVIDER_COMMON_SH:-}" ]; then
4
4
  return 0 2>/dev/null || exit 0
5
5
  fi
6
6
  readonly CATS_PLATFORM_UNIX_PROVIDER_COMMON_SH=1
7
+ source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/provider-version-common.sh"
7
8
 
8
9
  json_escape() {
9
10
  local value="$1"
@@ -52,7 +53,7 @@ provider_display_name() {
52
53
  antigravity) printf '%s\n' 'Antigravity CLI' ;;
53
54
  grok) printf '%s\n' 'Grok CLI' ;;
54
55
  devin) printf '%s\n' 'Devin CLI' ;;
55
- aider) printf '%s\n' 'Aider' ;;
56
+ muse) printf '%s\n' 'Meta Muse CLI' ;;
56
57
  claude) printf '%s\n' 'Claude Code CLI' ;;
57
58
  cursor) printf '%s\n' 'Cursor Agent CLI' ;;
58
59
  goose) printf '%s\n' 'Goose CLI' ;;
@@ -67,7 +68,7 @@ provider_primary_command() {
67
68
  antigravity) printf '%s\n' 'agy' ;;
68
69
  grok) printf '%s\n' 'grok' ;;
69
70
  devin) printf '%s\n' 'devin' ;;
70
- aider) printf '%s\n' 'aider' ;;
71
+ muse) printf '%s\n' 'muse' ;;
71
72
  claude) printf '%s\n' 'claude' ;;
72
73
  cursor) printf '%s\n' 'cursor-agent' ;;
73
74
  goose) printf '%s\n' 'goose' ;;
@@ -98,7 +99,7 @@ provider_install_url() {
98
99
  antigravity) printf '%s\n' 'https://antigravity.google/cli/install.sh' ;;
99
100
  grok) printf '%s\n' 'https://x.ai/cli/install.sh' ;;
100
101
  devin) printf '%s\n' 'https://cli.devin.ai/install.sh' ;;
101
- aider) printf '%s\n' 'https://aider.chat/install.sh' ;;
102
+ muse) printf '%s\n' 'https://dev.meta.ai/install.sh' ;;
102
103
  claude) printf '%s\n' 'https://claude.ai/install.sh' ;;
103
104
  cursor) printf '%s\n' 'https://cursor.com/install' ;;
104
105
  goose) printf '%s\n' 'https://github.com/block/goose/releases/download/stable/download_cli.sh' ;;
@@ -111,6 +112,7 @@ provider_install_url() {
111
112
  provider_install_dir() {
112
113
  case "$1" in
113
114
  grok) printf '%s\n' "$HOME/.grok/bin" ;;
115
+ muse) muse_install_dir ;;
114
116
  *) printf '%s\n' "$HOME/.local/bin" ;;
115
117
  esac
116
118
  }
@@ -249,12 +251,59 @@ ensure_provider_alias() {
249
251
  fi
250
252
  }
251
253
 
254
+ # muse's install directory holds the launcher, its state files, and one
255
+ # muse-bin-<version> build per version it has downloaded.
256
+ muse_install_dir() {
257
+ printf '%s\n' "${MUSE_INSTALL_DIR:-$HOME/.local/bin}"
258
+ }
259
+
260
+ # The version comes from the launcher's own state file, never from running muse.
261
+ # The launcher forwards every argument straight to the agent binary, so a flag
262
+ # that binary does not recognise opens the interactive TUI and hangs an
263
+ # unattended setup run forever.
264
+ muse_installed_version() {
265
+ local version_file
266
+ version_file="$(muse_install_dir)/.muse-version"
267
+ if [ -r "$version_file" ]; then
268
+ tr -d '\r\n' < "$version_file"
269
+ fi
270
+ }
271
+
272
+ # "Installed" means the launcher actually fetched a build. The official
273
+ # installer writes the launcher first and downloads muse-bin-<version> last, so
274
+ # a run that dies in between leaves a launcher with nothing behind it. Treating
275
+ # that as installed would skip the reinstall that repairs it.
276
+ muse_install_complete() {
277
+ local dir version
278
+ dir="$(muse_install_dir)"
279
+ [ -x "$dir/muse" ] || return 1
280
+ version="$(muse_installed_version)"
281
+ [ -n "$version" ] || return 1
282
+ [ -x "$dir/muse-bin-$version" ]
283
+ }
284
+
252
285
  detect_provider_command() {
253
286
  local platform="$1"
254
287
  local provider="$2"
255
288
  local primary_command
256
289
  local candidate
257
290
 
291
+ if [ "$provider" = 'muse' ]; then
292
+ if muse_install_complete; then
293
+ prepend_path_if_missing "$(muse_install_dir)"
294
+ printf '%s\n' "$(muse_install_dir)/muse"
295
+ return 0
296
+ fi
297
+ # A muse elsewhere on PATH is someone's own install; report it rather than
298
+ # claiming the tool is missing, but never treat a half-written install
299
+ # directory as one.
300
+ if [ -x "$(muse_install_dir)/muse" ]; then
301
+ return 1
302
+ fi
303
+ command -v muse 2>/dev/null && return 0
304
+ return 1
305
+ fi
306
+
258
307
  primary_command="$(provider_primary_command "$provider")"
259
308
  if command -v "$primary_command" >/dev/null 2>&1; then
260
309
  command -v "$primary_command"
@@ -276,9 +325,36 @@ EOF
276
325
 
277
326
  provider_version_line() {
278
327
  local command_path="$1"
328
+ local provider="${2:-}"
329
+
330
+ # muse is read, never run: see muse_installed_version.
331
+ if [ "$provider" = 'muse' ]; then
332
+ muse_installed_version
333
+ return 0
334
+ fi
335
+
279
336
  "$command_path" --version 2>&1 | head -1 || true
280
337
  }
281
338
 
339
+ # `curl ... | bash` returns 0 when the download itself fails, because bash reads
340
+ # empty input and succeeds. Staging the script first is what makes a failed
341
+ # install report as a failure.
342
+ run_downloaded_shell_installer() {
343
+ local url="$1"
344
+ local installer_path status=0
345
+
346
+ installer_path="$(mktemp)"
347
+ if ! curl -fsSL --connect-timeout 10 --max-time 60 "$url" -o "$installer_path"; then
348
+ rm -f "$installer_path"
349
+ printf 'Failed to download the installer from %s\n' "$url" >&2
350
+ return 1
351
+ fi
352
+
353
+ bash "$installer_path" < /dev/null || status=$?
354
+ rm -f "$installer_path"
355
+ return "$status"
356
+ }
357
+
282
358
  # Devin's official install.sh ends by launching the interactive `devin setup`
283
359
  # wizard. Packaged setup runs non-interactively with no console a prompt can
284
360
  # reach, so an unstripped installer would stall the step rather than fail.
@@ -336,24 +412,8 @@ run_remote_pipe_installer() {
336
412
  url="$(provider_install_url "$provider")"
337
413
 
338
414
  case "$provider" in
339
- antigravity|grok)
340
- curl -fsSL "$url" | bash
341
- ;;
342
- goose)
343
- curl -fsSL "$url" | env CONFIGURE=false bash
344
- ;;
345
- aider)
346
- curl -LsSf "$url" | sh
347
- ;;
348
- cursor)
349
- curl "$url" -fsSL | bash
350
- ;;
351
- claude|junie)
352
- curl -fsSL "$url" | bash
353
- ;;
354
- *)
355
- return 1
356
- ;;
415
+ goose) CONFIGURE=false run_downloaded_shell_installer "$url" ;;
416
+ *) run_downloaded_shell_installer "$url" ;;
357
417
  esac
358
418
  }
359
419
 
@@ -380,20 +440,14 @@ run_kiro_installer() {
380
440
  local installer_path
381
441
 
382
442
  installer_path="$(mktemp)"
383
- curl -fsSL "$(provider_install_url kiro)" -o "$installer_path"
443
+ curl -fsSL --connect-timeout 10 --max-time 60 "$(provider_install_url kiro)" -o "$installer_path" || { rm -f "$installer_path"; return 1; }
384
444
  chmod +x "$installer_path"
385
445
 
386
- if [ "$mode" = 'reinstall' ]; then
387
- rm -f "$HOME/.local/bin/kiro-cli" "$HOME/.local/bin/kiro-cli-chat" "$HOME/.local/bin/kiro-cli-term"
388
- if [ "$platform" = 'macos' ]; then
389
- rm -rf '/Applications/Kiro CLI.app'
390
- rm -f "$HOME/.local/bin/bash (kiro-cli-term)" "$HOME/.local/bin/fish (kiro-cli-term)" \
391
- "$HOME/.local/bin/nu (kiro-cli-term)" "$HOME/.local/bin/zsh (kiro-cli-term)"
392
- fi
393
- fi
394
446
 
395
- bash "$installer_path" --force < /dev/null
447
+ local install_status=0
448
+ bash "$installer_path" --force < /dev/null || install_status=$?
396
449
  rm -f "$installer_path"
450
+ [ "$install_status" -eq 0 ] || return "$install_status"
397
451
 
398
452
  if [ "$platform" = 'macos' ]; then
399
453
  ensure_kiro_cli_symlink_macos
@@ -408,15 +462,17 @@ run_provider_install_action() {
408
462
 
409
463
  case "$provider" in
410
464
  antigravity)
411
- if [ "$action" = 'upgrade' ]; then
412
- rm -f "$HOME/.local/bin/agy" || true
413
- run_remote_pipe_installer "$provider"
414
- elif [ "$action" = 'force' ]; then
415
- rm -f "$HOME/.local/bin/agy" || true
416
- run_remote_pipe_installer "$provider"
417
- else
418
- run_remote_pipe_installer "$provider"
465
+ local backup='' result=0 destination="$HOME/.local/bin/agy"
466
+ if { [ "$action" = upgrade ] || [ "$action" = force ]; } && [ -f "$destination" ] && [ ! -L "$destination" ]; then
467
+ backup="$(mktemp)" || return 1
468
+ cp -p "$destination" "$backup" || { rm -f "$backup"; return 1; }
469
+ rm -f "$destination" || { rm -f "$backup"; return 1; }
419
470
  fi
471
+ run_remote_pipe_installer "$provider" || result=$?
472
+ [ -x "$destination" ] || result=1
473
+ if [ "$result" -ne 0 ] && [ -n "$backup" ]; then cp -p "$backup" "$destination" || true; fi
474
+ [ -z "$backup" ] || rm -f "$backup"
475
+ return "$result"
420
476
  ;;
421
477
  grok)
422
478
  run_remote_pipe_installer "$provider"
@@ -424,12 +480,14 @@ run_provider_install_action() {
424
480
  devin)
425
481
  run_devin_installer
426
482
  ;;
427
- aider)
483
+ muse)
484
+ # The official installer always refreshes the launcher and asks it to pull
485
+ # the newest build, so install, upgrade, and force are the same call.
428
486
  run_remote_pipe_installer "$provider"
429
487
  ;;
430
488
  claude)
431
489
  if [ "$action" = 'upgrade' ] && current_command="$(detect_provider_command "$platform" "$provider")"; then
432
- "$current_command" update || true
490
+ "$current_command" update
433
491
  else
434
492
  run_remote_pipe_installer "$provider"
435
493
  fi
@@ -559,28 +617,22 @@ UPNP_EOF
559
617
  esac
560
618
  fi
561
619
 
562
- # ~/.local/bin/aider is a uv tool shim, not the tool. Removing only the shim
563
- # leaves aider-chat installed in the uv tool environment and the shim
564
- # regenerable by any later `uv tool` command, so the tool is uninstalled
565
- # through uv first and path removal only mops up what uv left behind.
566
- #
567
- # The uv binary itself is deliberately left in place: Aider's installer drops
568
- # its own uv into ~/.local/bin, users commonly have another, and the helper
569
- # cannot tell them apart. Removing a uv the user installed separately is a
570
- # destructive false positive, so this warns instead (SPEC-112 PD4).
571
- if [ "$provider" = 'aider' ]; then
572
- if command -v uv >/dev/null 2>&1; then
573
- if [ "$dry_run" = 'true' ]; then
574
- __CATS_UNINSTALL_PLANNED+=("uv_tool_uninstall:aider-chat")
575
- elif uv tool uninstall aider-chat >/dev/null 2>&1; then
576
- __CATS_UNINSTALL_APPLIED+=("uv_tool_uninstalled:aider-chat")
577
- else
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")
620
+ # The muse launcher is not the tool either: every muse-bin-<version> build it
621
+ # has downloaded, plus its .muse-* state files, sit in the same directory and
622
+ # survive removing the launcher alone. They are named deterministically, so
623
+ # they can be removed without guessing at unrelated files in ~/.local/bin.
624
+ if [ "$provider" = 'muse' ]; then
625
+ local muse_dir muse_leftover
626
+ muse_dir="$(muse_install_dir)"
627
+ for muse_leftover in "$muse_dir"/muse-bin-* "$muse_dir"/.muse-*; do
628
+ case "$muse_leftover" in
629
+ "$HOME"/*)
630
+ if [ -e "$muse_leftover" ] || [ -L "$muse_leftover" ]; then
631
+ planned_paths+=("$muse_leftover")
632
+ fi
633
+ ;;
634
+ esac
635
+ done
584
636
  fi
585
637
 
586
638
  for path in "${planned_paths[@]}"; do
@@ -796,7 +848,7 @@ run_native_provider_installer() {
796
848
 
797
849
  if command_path="$(detect_provider_command "$platform" "$provider")"; then
798
850
  initial_installed='true'
799
- detected_version="$(provider_version_line "$command_path")"
851
+ detected_version="$(provider_version_line "$command_path" "$provider")"
800
852
  if [ "$check_only" = 'true' ]; then
801
853
  if [ "$emit_json" = 'true' ]; then
802
854
  printf '{'
@@ -913,76 +965,72 @@ run_native_provider_installer() {
913
965
  return 0
914
966
  fi
915
967
 
916
- printf 'Installing %s...\n' "$display_name"
917
- if [ "$force" = 'true' ]; then
918
- run_provider_install_action "$platform" "$provider" 'force'
919
- elif [ "$upgrade" = 'true' ]; then
920
- run_provider_install_action "$platform" "$provider" 'upgrade'
921
- else
922
- run_provider_install_action "$platform" "$provider" 'install'
968
+ local before_version="$detected_version" latest='' version_state=unknown
969
+ local install_status=0 attempted=true final_installed=false observed_change=unchanged
970
+ if [ "$upgrade" = true ] && [ "$force" = false ] && [ "$initial_installed" = true ]; then
971
+ latest="$(cats_native_latest_version "$provider")"
972
+ version_state="$(cats_native_version_state "$provider" "$detected_version" "$latest")"
973
+ if [ "$version_state" = current ]; then
974
+ attempted=false
975
+ planned_actions=()
976
+ elif [ -z "$latest" ] && [ "$provider" != claude ] && [ "$provider" != muse ]; then
977
+ warnings+=('Could not compare the published version; the official installer will verify the update.')
978
+ fi
923
979
  fi
924
- applied_changes=("${planned_actions[@]}")
925
-
926
- ensure_provider_bin_path_export "$shell_rc" "$provider"
927
- ensure_provider_alias "$shell_rc" "$provider"
928
-
929
- while [ $attempt -le 3 ]; do
980
+ if [ "$attempted" = true ]; then
981
+ printf 'Installing %s...\n' "$display_name" >&2
982
+ if [ "$force" = true ]; then
983
+ run_provider_install_action "$platform" "$provider" force || install_status=$?
984
+ elif [ "$upgrade" = true ]; then
985
+ run_provider_install_action "$platform" "$provider" upgrade || install_status=$?
986
+ else
987
+ run_provider_install_action "$platform" "$provider" install || install_status=$?
988
+ fi
989
+ fi
990
+ hash -r
991
+ if [ "$install_status" -eq 0 ]; then
992
+ ensure_provider_bin_path_export "$shell_rc" "$provider"
993
+ ensure_provider_alias "$shell_rc" "$provider"
994
+ fi
995
+ for attempt in 1 2 3; do
930
996
  if command_path="$(detect_provider_command "$platform" "$provider")"; then
931
- detected_version="$(provider_version_line "$command_path")"
932
- if [ "$emit_json" = 'true' ]; then
933
- warnings=("Reload your shell if ${display_name} is not visible yet: source ${shell_rc}")
934
- printf '{'
935
- printf '"helper":"%s-%s-native-installer",' "$platform" "$provider"
936
- printf '"mode":"%s",' "$execution_mode"
937
- printf '"status":"ready",'
938
- printf '"installed":true,'
939
- printf '"commandPath":"%s",' "$(json_escape "$command_path")"
940
- printf '"detectedVersion":"%s",' "$(json_escape "$detected_version")"
941
- printf '"plannedActions":'
942
- json_string_array "${planned_actions[@]}"
943
- printf ','
944
- printf '"appliedChanges":'
945
- json_string_array "${applied_changes[@]}"
946
- printf ','
947
- printf '"warnings":'
948
- json_string_array "${warnings[@]}"
949
- printf ','
950
- printf '"manualSteps":'
951
- json_string_array "$(provider_manual_steps "$provider")"
952
- printf ','
953
- printf '"interruptions":[]'
954
- printf '}\n'
955
- else
956
- printf '%s ready: %s\n' "$display_name" "$detected_version"
957
- printf 'Reload your shell if %s is not visible yet: source %s\n' "$display_name" "$shell_rc"
958
- fi
959
- return 0
997
+ final_installed=true
998
+ detected_version="$(provider_version_line "$command_path" "$provider")"
999
+ break
960
1000
  fi
961
-
1001
+ [ "$install_status" -eq 0 ] && [ "$attempted" = true ] || break
962
1002
  sleep 2
963
- attempt=$((attempt + 1))
964
1003
  done
965
-
966
- if [ "$emit_json" = 'true' ]; then
967
- printf '{'
968
- printf '"helper":"%s-%s-native-installer",' "$platform" "$provider"
969
- printf '"mode":"%s",' "$execution_mode"
970
- printf '"status":"failed",'
971
- printf '"installed":false,'
972
- printf '"commandPath":null,'
973
- printf '"detectedVersion":null,'
974
- printf '"plannedActions":'
975
- json_string_array "${planned_actions[@]}"
976
- printf ','
977
- printf '"appliedChanges":'
978
- json_string_array "${applied_changes[@]}"
979
- printf ','
980
- printf '"warnings":[],'
981
- printf '"manualSteps":[],'
982
- printf '"interruptions":[]'
983
- printf '}\n'
984
- return 1
1004
+ local final_status=ready
1005
+ if [ "$install_status" -ne 0 ] || [ "$final_installed" = false ]; then
1006
+ final_status=failed
1007
+ observed_change=failed
1008
+ warnings+=("Installer or verification failed (exit $install_status); any previous installation is shown separately.")
1009
+ elif [ "$attempted" = false ]; then observed_change=unchanged
1010
+ elif [ "$initial_installed" = false ]; then observed_change=installed
1011
+ elif [ -n "$before_version" ] && [ -n "$detected_version" ] && [ "$before_version" != "$detected_version" ]; then
1012
+ case "$(cats_version_compare "$(cats_native_version_token "$provider" "$detected_version")" "$(cats_native_version_token "$provider" "$before_version")")" in
1013
+ 1) observed_change=upgraded ;; -1) observed_change=downgraded ;; *) observed_change=version_changed ;;
1014
+ esac
1015
+ else observed_change=unchanged; fi
1016
+ if [ "$final_status" = ready ] && { [ "$upgrade" = true ] || [ "$force" = true ]; }; then
1017
+ cats_cleanup_native_versions "$provider" "$detected_version" || true
985
1018
  fi
986
- printf 'Failed to verify %s after install.\n' "$display_name" >&2
987
- return 1
1019
+ case "$observed_change" in
1020
+ installed|upgraded|downgraded|version_changed) applied_changes=("${observed_change}_${provider}_installation") ;;
1021
+ esac
1022
+ if [ "$emit_json" = true ]; then
1023
+ printf '{"helper":"%s-%s-native-installer","mode":"%s","status":"%s",' "$platform" "$provider" "$execution_mode" "$final_status"
1024
+ printf '"installed":%s,"commandPath":"%s","detectedVersion":"%s",' "$final_installed" "$(json_escape "$command_path")" "$(json_escape "$detected_version")"
1025
+ printf '"previousVersion":"%s","observedChange":"%s",' "$(json_escape "$before_version")" "$observed_change"
1026
+ printf '"summary":"%s: %s -> %s",' "$observed_change" "$(json_escape "$before_version")" "$(json_escape "$detected_version")"
1027
+ printf '"plannedActions":'; json_string_array "${planned_actions[@]}"
1028
+ printf ',"appliedChanges":'; json_string_array "${applied_changes[@]}"
1029
+ printf ',"warnings":'; json_string_array "${warnings[@]}"
1030
+ printf ',"manualSteps":'; json_string_array "$(provider_manual_steps "$provider")"
1031
+ printf ',"interruptions":[]}\n'
1032
+ else
1033
+ printf '%s %s: %s -> %s\n' "$display_name" "$observed_change" "$before_version" "$detected_version"
1034
+ fi
1035
+ [ "$final_status" = ready ]
988
1036
  }