@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
@@ -0,0 +1,247 @@
1
+ #!/usr/bin/env bash
2
+ # Source this file for passive native version comparison and bounded vendor queries.
3
+ # Usage: source provider-version-common.sh; cats_native_latest_version <provider>
4
+ # Adapted from environment-bootstrap shared/posix/upstream-version.sh at 752dc13.
5
+ # Queries return an empty value on failure; check-only mode never invokes them.
6
+ cats_version_token() {
7
+ printf '%s' "$1" | tr -d '\r' | grep -oE '[0-9]+(\.[0-9]+)+(-[0-9A-Za-z]+(\.[0-9A-Za-z]+)*|\.[A-Za-z][0-9A-Za-z]*(\.[0-9]+)*)?' | head -n 1 || true
8
+ }
9
+
10
+ # cats_version_compare <a> <b>
11
+ # 只比數字段、補滿四段:印 -1(a 較舊)、0、1(a 較新);任一邊解析不出版本印空字串。
12
+ # 空字串要當成「無法比較、交回原本流程」,不能當成落後,否則查不到版本時每次都會重裝。
13
+ cats_version_compare() {
14
+ local a b i x y
15
+ a="$(printf '%s' "$1" | tr -d '\r' | grep -oE '[0-9]+(\.[0-9]+)*' | head -n 1 || true)"
16
+ b="$(printf '%s' "$2" | tr -d '\r' | grep -oE '[0-9]+(\.[0-9]+)*' | head -n 1 || true)"
17
+ if [ -z "$a" ] || [ -z "$b" ]; then
18
+ printf ''
19
+ return 0
20
+ fi
21
+
22
+ i=1
23
+ while [ "$i" -le 4 ]; do
24
+ x="$(printf '%s' "$a" | awk -F. -v n="$i" '{print $n}')"
25
+ y="$(printf '%s' "$b" | awk -F. -v n="$i" '{print $n}')"
26
+ [ -n "$x" ] || x=0
27
+ [ -n "$y" ] || y=0
28
+ if [ "$((10#$x))" -lt "$((10#$y))" ]; then printf -- '-1'; return 0; fi
29
+ if [ "$((10#$x))" -gt "$((10#$y))" ]; then printf '1'; return 0; fi
30
+ i=$((i + 1))
31
+ done
32
+ printf '0'
33
+ }
34
+
35
+ # _cats_json_string_field <field> :從 stdin 的 JSON 文字撈第一個 "field":"value" 的 value
36
+ _cats_json_string_field() {
37
+ grep -oE "\"$1\"[[:space:]]*:[[:space:]]*\"[^\"]*\"" | head -n 1 | sed -E 's/.*"([^"]*)"$/\1/'
38
+ }
39
+
40
+ # cats_github_latest_release <owner/repo>
41
+ # GitHub Releases 的最新穩定版 tag(去掉開頭的 v);失敗印空。
42
+ cats_github_latest_release() {
43
+ local json
44
+ json="$(curl -fsSL --connect-timeout 5 --max-time 20 -H 'Accept: application/vnd.github+json' "https://api.github.com/repos/$1/releases/latest" 2>/dev/null)" || return 0
45
+ printf '%s' "$json" | _cats_json_string_field tag_name | sed 's/^v//' || true
46
+ }
47
+
48
+ # cats_antigravity_latest_version [已下載的官方 install.sh]
49
+ # 官方腳本讀的是 $DOWNLOAD_BASE_URL/manifests/<platform>.json 的 version。
50
+ # 傳入抓下來的腳本可以順便從裡面撈 base URL,官方搬家時就不必改這裡;撈不到用寫死的。
51
+ # platform 的算法照抄官方(darwin_arm64 / linux_amd64 / linux_amd64_musl …)。
52
+ cats_antigravity_latest_version() {
53
+ local base='https://antigravity-cli-auto-updater-974169037036.us-central1.run.app'
54
+ local found os arch platform
55
+
56
+ if [ -n "${1:-}" ] && [ -r "$1" ]; then
57
+ found="$(grep -oE 'DOWNLOAD_BASE_URL="https://[^"]+"' "$1" | head -n 1 | sed -E 's/^DOWNLOAD_BASE_URL="(.*)"$/\1/')"
58
+ [ -n "$found" ] && base="$found"
59
+ fi
60
+
61
+ case "$(uname -s)" in
62
+ Darwin) os=darwin ;;
63
+ Linux) os=linux ;;
64
+ *) return 0 ;;
65
+ esac
66
+ case "$(uname -m)" in
67
+ x86_64|amd64) arch=amd64 ;;
68
+ arm64|aarch64) arch=arm64 ;;
69
+ *) return 0 ;;
70
+ esac
71
+ if [ "$os" = linux ] && { [ -f /lib/libc.musl-x86_64.so.1 ] || [ -f /lib/libc.musl-aarch64.so.1 ] || ldd /bin/ls 2>&1 | grep -q musl; }; then
72
+ platform="linux_${arch}_musl"
73
+ else
74
+ platform="${os}_${arch}"
75
+ fi
76
+
77
+ curl -fsSL --connect-timeout 5 --max-time 20 "$base/manifests/$platform.json" 2>/dev/null | _cats_json_string_field version || true
78
+ }
79
+
80
+ # cats_cursor_agent_latest_version <已下載的官方 install 腳本>
81
+ # 官方 https://cursor.com/install 是支寫死版本的腳本,目錄名就是版本
82
+ # (…/versions/2026.09.10-fd3934a)。版本是「日期-commit」,cats_version_compare 只比得到
83
+ # 日期,同日不同 commit 由呼叫端用字串相等另判。
84
+ cats_cursor_agent_latest_version() {
85
+ [ -n "${1:-}" ] && [ -r "$1" ] || return 0
86
+ grep -oE 'versions/[0-9]{4}\.[0-9]{2}\.[0-9]{2}-[0-9A-Za-z]+' "$1" | head -n 1 | sed 's#^versions/##' || true
87
+ }
88
+
89
+ # cats_junie_latest_build
90
+ # 官方 install.sh 讀 GitHub raw 的 update-info.jsonl:一行一個 build,version 是 build 號
91
+ # (3110.7,也是 versions/ 底下的目錄名)、marketing 才是 26.9.7、platform 是
92
+ # linux-amd64 / macos-aarch64 這種。印本平台最大的 build 號;失敗印空。
93
+ cats_junie_latest_build() {
94
+ local os arch platform jsonl line v best=''
95
+
96
+ case "$(uname -s)" in
97
+ Darwin) os=macos ;;
98
+ Linux) os=linux ;;
99
+ *) return 0 ;;
100
+ esac
101
+ case "$(uname -m)" in
102
+ x86_64|amd64) arch=amd64 ;;
103
+ arm64|aarch64) arch=aarch64 ;;
104
+ *) return 0 ;;
105
+ esac
106
+ platform="${os}-${arch}"
107
+
108
+ jsonl="$(curl -fsSL --connect-timeout 5 --max-time 20 'https://raw.githubusercontent.com/jetbrains-junie/junie/main/update-info.jsonl' 2>/dev/null)" || return 0
109
+
110
+ while IFS= read -r line; do
111
+ case "$line" in
112
+ *"\"platform\":\"$platform\""*) ;;
113
+ *) continue ;;
114
+ esac
115
+ v="$(printf '%s' "$line" | _cats_json_string_field version || true)"
116
+ [ -n "$v" ] || continue
117
+ if [ -z "$best" ] || [ "$(cats_version_compare "$v" "$best")" = "1" ]; then
118
+ best="$v"
119
+ fi
120
+ done <<< "$jsonl"
121
+
122
+ printf '%s' "$best"
123
+ }
124
+
125
+ # cats_kiro_latest_version
126
+ # Kiro 的官方 installer 讀 stable/latest/manifest.json(Windows 版 Install-KiroCLI.ps1
127
+ # 用的是同一份),欄位 version。
128
+ cats_kiro_latest_version() {
129
+ curl -fsSL --connect-timeout 5 --max-time 20 'https://prod.download.cli.kiro.dev/stable/latest/manifest.json' 2>/dev/null | _cats_json_string_field version || true
130
+ }
131
+
132
+ # cats_devin_latest_version
133
+ # Devin 的官方 install.sh 與 Windows 版 setup.ps1 讀的都是 cli/current/manifest.json,欄位
134
+ # version(3000.10.27)。官方腳本同版雖不重抓,POSIX 版仍會重建兩個符號連結、Windows 版更會
135
+ # 無條件重寫 180 MB 的 devin.exe;先問這裡,同版就完全不動。
136
+ cats_devin_latest_version() {
137
+ curl -fsSL --connect-timeout 5 --max-time 20 'https://static.devin.ai/cli/current/manifest.json' 2>/dev/null | _cats_json_string_field version || true
138
+ }
139
+
140
+ # cats_grok_latest_version [channel]
141
+ # Grok 的官方 install.sh(與 Windows 的 install.ps1)決定要下載哪一版,靠的只是一個純文字端點:
142
+ # https://x.ai/cli/<channel>(Cloudflare 前端)不通就退到 GCS 上的同名檔案,內容就是版本號
143
+ # (1.0.30)。這裡照抄同一套順序;channel 預設跟官方一樣吃 GROK_CHANNEL(stable)。
144
+ # 三平台都問這裡,刻意不用 `grok update --check --json`:那要執行 grok 本體去連 x.ai 做 TLS
145
+ # 交握,而 grok 的 TLS 實作用到 SHA-512 硬體指令(sha512su0),沒有這個擴充的 aarch64
146
+ # (Raspberry Pi 4/5 的 Cortex-A72/A76)會當場 SIGILL、輸出全空 —— 見 CLAUDE.md Known Gotchas。
147
+ # 這個端點不必執行任何工具,問到的也正是安裝器接下來會抓的版本。失敗印空。
148
+ cats_grok_latest_version() {
149
+ local channel="${1:-${GROK_CHANNEL:-stable}}" url v
150
+ for url in "https://x.ai/cli/${channel}" "https://storage.googleapis.com/grok-build-public-artifacts/cli/${channel}"; do
151
+ v="$(curl -fsSL --connect-timeout 5 --max-time 20 "$url" 2>/dev/null | tr -d '\r' | head -n 1 | tr -d '[:space:]' || true)"
152
+ if printf '%s' "$v" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._]+)?$'; then
153
+ printf '%s' "$v"
154
+ return 0
155
+ fi
156
+ done
157
+ printf ''
158
+ }
159
+
160
+
161
+ cats_native_latest_version() {
162
+ local script
163
+ case "$1" in
164
+ antigravity) cats_antigravity_latest_version ;;
165
+ cursor)
166
+ script="$(curl -fsSL --connect-timeout 5 --max-time 20 https://cursor.com/install 2>/dev/null)" || return 0
167
+ printf '%s' "$script" | grep -oE 'versions/[0-9]{4}\.[0-9]{2}\.[0-9]{2}-[0-9A-Za-z]+' | head -n 1 | sed 's#^versions/##' || true
168
+ ;;
169
+ goose) cats_github_latest_release aaif-goose/goose ;;
170
+ junie) cats_junie_latest_build ;;
171
+ kiro) cats_kiro_latest_version ;;
172
+ devin) cats_devin_latest_version ;;
173
+ grok) cats_grok_latest_version ;;
174
+ *) return 0 ;;
175
+ esac
176
+ }
177
+
178
+ cats_native_version_token() {
179
+ if [ "$1" = junie ]; then
180
+ printf '%s' "$2" | sed -nE 's/.*\(([0-9]+(\.[0-9]+)+)\).*/\1/p' | head -n 1 || true
181
+ else
182
+ cats_version_token "$2"
183
+ fi
184
+ }
185
+
186
+ # Print current/older/unknown; Cursor same-day hashes are distinct releases.
187
+ cats_native_version_state() {
188
+ local current latest comparison
189
+ current="$(cats_native_version_token "$1" "$2")"
190
+ latest="$3"
191
+ [ -n "$current" ] && [ -n "$latest" ] || { printf unknown; return 0; }
192
+ comparison="$(cats_version_compare "$current" "$latest")"
193
+ if [ "$comparison" = 1 ] || { [ "$comparison" = 0 ] && { [ "$1" != cursor ] || [ "$current" = "$latest" ]; }; }; then
194
+ printf current
195
+ elif [ -n "$comparison" ]; then printf older
196
+ else printf unknown; fi
197
+ }
198
+
199
+ # Delete only older numeric version directories in a known installer-owned tree.
200
+ # Current/pending/newer builds, symlinks and custom locations outside HOME remain.
201
+ cats_cleanup_native_versions() {
202
+ local provider="$1" version="$2" root='' data='' keep='' actual='' directory='' name='' ancestor=''
203
+ keep="$(cats_native_version_token "$provider" "$version")"
204
+ [ -n "$keep" ] || return 0
205
+ case "$provider" in
206
+ cursor)
207
+ root="$HOME/.local/share/cursor-agent/versions"
208
+ [ -L "$HOME/.local/bin/cursor-agent" ] || return 0
209
+ actual="$(readlink "$HOME/.local/bin/cursor-agent")" || return 0
210
+ [ "$(basename "$(dirname "$actual")")" = "$keep" ] || return 0
211
+ ;;
212
+ devin)
213
+ root="${XDG_DATA_HOME:-$HOME/.local/share}/devin/cli/_versions"
214
+ [ -L "$root/current" ] || return 0
215
+ actual="$(readlink "$root/current")" || return 0
216
+ [ "$(basename "$actual")" = "$keep" ] || return 0
217
+ ;;
218
+ junie)
219
+ data="${JUNIE_DATA_DIR:-$HOME/.local/share/junie}"
220
+ root="$data/versions"
221
+ [ ! -e "$data/updates/pending-update.json" ] && [ -L "$data/current" ] || return 0
222
+ actual="$(readlink "$data/current")" || return 0
223
+ [ "$(basename "$actual")" = "$keep" ] || return 0
224
+ ;;
225
+ *) return 0 ;;
226
+ esac
227
+ case "$root" in "$HOME"/*) ;; *) return 0 ;; esac
228
+ [ -d "$root" ] || return 0
229
+ ancestor="$root"
230
+ while [ "$ancestor" != / ] && [ "$ancestor" != . ]; do
231
+ [ ! -L "$ancestor" ] || return 0
232
+ ancestor="$(dirname "$ancestor")"
233
+ done
234
+ local canonical_home
235
+ canonical_home="$(cd -P -- "$HOME" && pwd -P)" || return 0
236
+ root="$(cd -P -- "$root" && pwd -P)" || return 0
237
+ case "$root" in "$canonical_home"/*) ;; *) return 0 ;; esac
238
+ for directory in "$root"/*; do
239
+ [ -d "$directory" ] && [ ! -L "$directory" ] || continue
240
+ name="$(basename "$directory")"
241
+ printf '%s' "$name" | grep -qE '^[0-9]+(\.[0-9]+)+(-[0-9A-Za-z]+)?$' || continue
242
+ [ "$(cats_version_compare "$name" "$keep")" = -1 ] || continue
243
+ # Skip directory trees with links rather than recurse through an unknown layout.
244
+ [ -z "$(find "$directory" -type l -print 2>/dev/null)" ] || continue
245
+ rm -rf -- "$directory" || printf 'Could not remove old %s build %s.\n' "$provider" "$name" >&2
246
+ done
247
+ }
@@ -76,11 +76,33 @@ if [[ -n "$agent" ]]; then
76
76
  fi
77
77
 
78
78
  skill_dirs=()
79
- for entry in "$skills_dir"/*; do
80
- [[ -d "$entry" ]] || continue
81
- [[ -f "$entry/SKILL.md" ]] || continue
82
- skill_dirs+=("$entry")
83
- done
79
+ discover_skills() {
80
+ local entry skill_name existing existing_name
81
+ for entry in "$1"/*; do
82
+ [[ -d "$entry" ]] || continue
83
+ [[ "$entry" != *.bootstrap ]] || continue
84
+ if [[ -L "$entry" ]]; then
85
+ echo "Linked skill directories are not supported: $entry" >&2
86
+ exit 1
87
+ fi
88
+ if [[ -f "$entry/SKILL.md" ]]; then
89
+ skill_name="$(basename "$entry" | tr '[:upper:]' '[:lower:]')"
90
+ # macOS Bash 3.2 treats an empty array as unset under nounset.
91
+ for existing in ${skill_dirs[@]+"${skill_dirs[@]}"}; do
92
+ existing_name="$(basename "$existing" | tr '[:upper:]' '[:lower:]')"
93
+ if [[ "$skill_name" == "$existing_name" ]]; then
94
+ echo "Duplicate skill '$skill_name': $existing and $entry" >&2
95
+ exit 1
96
+ fi
97
+ done
98
+ skill_dirs+=("$entry")
99
+ # Resources inside this package are copied intact, never discovered again.
100
+ else
101
+ discover_skills "$entry"
102
+ fi
103
+ done
104
+ }
105
+ discover_skills "$skills_dir"
84
106
 
85
107
  if [[ ${#skill_dirs[@]} -eq 0 ]]; then
86
108
  echo "No skills found in $skills_dir (no directories with SKILL.md)" >&2
@@ -37,10 +37,11 @@ assert_file "${RESOURCES_ROOT}/app-sidecar/build/renderer/index.html" 'bundled c
37
37
  assert_file "${RESOURCES_ROOT}/app-sidecar/package.json" 'bundled cats app package manifest'
38
38
  assert_file "${RESOURCES_ROOT}/app-sidecar/node_modules/js-yaml/package.json" 'bundled cats app js-yaml dependency marker'
39
39
  assert_file "${RESOURCES_ROOT}/app-sidecar/node_modules/argparse/package.json" 'bundled cats app argparse dependency marker'
40
+ assert_file "${RESOURCES_ROOT}/app-sidecar/config/provider-capability-bootstrap.yaml.example" 'bundled cats capability bootstrap example'
40
41
  assert_file "${RESOURCES_ROOT}/cats-runtime/build/runtime/index.js" 'bundled cats-runtime entry'
41
42
  assert_file "${RESOURCES_ROOT}/cats-runtime/package.json" 'bundled cats-runtime package manifest'
42
43
  assert_file "${RESOURCES_ROOT}/cats-runtime/public/provider-setup.html" 'bundled cats-runtime setup UI'
43
- assert_file "${RESOURCES_ROOT}/cats-runtime/skills/README.md" 'bundled cats-runtime skills catalog root'
44
+ assert_file "${RESOURCES_ROOT}/cats-runtime/runtime-skills/README.md" 'bundled cats-runtime skills catalog root'
44
45
  assert_file "${RESOURCES_ROOT}/cats-runtime/config/management.yaml.example" 'bundled cats-runtime management config example'
45
46
  assert_file "${RESOURCES_ROOT}/cats-runtime/config/providers.yaml.example" 'bundled cats-runtime provider config example'
46
47
  assert_file "${RESOURCES_ROOT}/cats-runtime/config/curated-model-catalogs.yaml.example" 'bundled cats-runtime curated model catalog example'
@@ -53,7 +54,7 @@ assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-antigravity.sh
53
54
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-grok.sh" 'bundled Linux Grok installer helper'
54
55
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-cline.sh" 'bundled Linux Cline installer helper'
55
56
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-devin.sh" 'bundled Linux Devin installer helper'
56
- assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-aider.sh" 'bundled Linux Aider installer helper'
57
+ assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-meta-cli.sh" 'bundled Linux Meta Muse installer helper'
57
58
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-copilot.sh" 'bundled Linux GitHub Copilot installer helper'
58
59
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-opencode.sh" 'bundled Linux OpenCode installer helper'
59
60
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-kilo.sh" 'bundled Linux Kilo Code installer helper'
@@ -65,6 +66,8 @@ assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-goose.sh" 'bun
65
66
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-junie.sh" 'bundled Linux Junie installer helper'
66
67
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/install-kiro-cli.sh" 'bundled Linux Kiro installer helper'
67
68
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/check-installation.sh" 'bundled Linux readiness audit helper'
69
+ assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/provider-version-common.sh" 'bundled native version library'
70
+ assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/verified-npm-update.sh" 'bundled npm verification library'
68
71
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/provider-cli-common.sh" 'bundled Linux provider helper library'
69
72
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/linux/node-cli-common.sh" 'bundled Linux npm helper library'
70
73
  assert_file "${RESOURCES_ROOT}/desktop/setup-assets/manifest.json" 'bundled setup-assets manifest'
@@ -102,7 +105,7 @@ assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-antigravi
102
105
  assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-grok-native-installer-script'), 'Linux target includes the bundled Grok installer asset');
103
106
  assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-cline-native-installer-script'), 'Linux target includes the bundled Cline installer asset');
104
107
  assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-devin-native-installer-script'), 'Linux target includes the bundled Devin installer asset');
105
- assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-aider-native-installer-script'), 'Linux target includes the bundled Aider installer asset');
108
+ assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-muse-native-installer-script'), 'Linux target includes the bundled Meta Muse installer asset');
106
109
  assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-setup-readiness-audit-script'), 'Linux target includes the bundled readiness audit asset');
107
110
  assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-provider-cli-common-support-script'), 'Linux target includes the Linux provider helper asset');
108
111
  assert(linuxTarget.artifacts.some((artifact) => artifact.id === 'linux-node-cli-common-support-script'), 'Linux target includes the Linux npm helper asset');
@@ -35,7 +35,7 @@ while [ $# -gt 0 ]; do
35
35
  shift
36
36
  done
37
37
 
38
- for script_name in install-claude-code.sh install-antigravity.sh install-cursor-agent.sh install-devin.sh install-aider.sh install-goose.sh install-junie.sh install-kiro-cli.sh install-grok.sh; do
38
+ for script_name in install-claude-code.sh install-antigravity.sh install-cursor-agent.sh install-devin.sh install-meta-cli.sh install-goose.sh install-junie.sh install-kiro-cli.sh install-grok.sh; do
39
39
  "$SCRIPT_DIR/$script_name" -Upgrade
40
40
  done
41
41
 
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env bash
2
+ # Usage: source verified-npm-update.sh; cats_upgrade_npm
3
+ # Explicit npm upgrade only. Adapted from environment-bootstrap 4690075.
4
+ # Preserve the current prefix (including nvm), enforce engines, verify command and package.
5
+ cats_upgrade_npm() {
6
+ local current latest installed root
7
+ current="$(npm --version)" || { printf 'Could not read npm version.\n' >&2; return 1; }
8
+ latest="$(npm view npm@latest version --fetch-retries=0 --fetch-timeout=10000 --loglevel=error)" || { printf 'npm version query failed.\n' >&2; return 1; }
9
+ [[ "$latest" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { printf 'Invalid npm version metadata.\n' >&2; return 1; }
10
+ [ "$current" != "$latest" ] || return 0
11
+ [ "$(cats_version_compare "$current" "$latest")" != 1 ] || return 0
12
+ npm install -g "npm@$latest" --engine-strict --fetch-retries=0 --fetch-timeout=30000 || return 1
13
+ hash -r
14
+ installed="$(npm --version)" && root="$(npm root -g)" || return 1
15
+ [ "$installed" = "$latest" ] && node -e '
16
+ const path = require("path");
17
+ const pkg = require(path.join(process.argv[1], "npm", "package.json"));
18
+ process.exit(pkg.version === process.argv[2] ? 0 : 1);
19
+ ' "$root" "$latest" || { printf 'npm verification failed. Check PATH and prefix.\n' >&2; return 1; }
20
+ }
@@ -20,11 +20,11 @@ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
20
20
  PROJECT_ROOT="$(cd -- "${SCRIPT_DIR}/../.." && pwd)"
21
21
  PLATFORM="${1:-all}"
22
22
  OUTPUT_DIR="${2:-}"
23
+ APPS_LOCK="${3:-}"
23
24
 
24
25
  cd "${PROJECT_ROOT}"
25
26
  npm run build
26
- if [[ -n "${OUTPUT_DIR}" ]]; then
27
- node ./scripts/package-desktop.mjs --platform "${PLATFORM}" --output-dir "${OUTPUT_DIR}"
28
- else
29
- node ./scripts/package-desktop.mjs --platform "${PLATFORM}"
30
- fi
27
+ package_args=(./scripts/package-desktop.mjs --platform "${PLATFORM}")
28
+ if [[ -n "${OUTPUT_DIR}" ]]; then package_args+=(--output-dir "${OUTPUT_DIR}"); fi
29
+ if [[ -n "${APPS_LOCK}" ]]; then package_args+=(--apps-lock "${APPS_LOCK}"); fi
30
+ node "${package_args[@]}"
File without changes
File without changes
@@ -60,6 +60,11 @@ declare -a applied_changes=()
60
60
  declare -a warnings=()
61
61
  declare -a manual_steps=()
62
62
 
63
+ # A Desktop-launched helper may inherit PATH from before gh was installed.
64
+ # Include our fallback destination and the supported Homebrew locations in this
65
+ # process only; check mode must not edit the user's shell profile.
66
+ export PATH="$HOME/.local/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
67
+
63
68
  resolve_gh_path() {
64
69
  command -v gh 2>/dev/null || true
65
70
  }
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
+ # shellcheck source=provider-cli-common.sh
6
+ source "$SCRIPT_DIR/provider-cli-common.sh"
7
+
8
+ run_native_provider_installer 'macos' 'muse' "$@"
@@ -90,7 +90,7 @@ is_node_installed() {
90
90
  if [ "$skip_node_probe" = 'true' ]; then
91
91
  return 1
92
92
  fi
93
- command -v node >/dev/null 2>&1
93
+ command -v node >/dev/null 2>&1 && command -v npm >/dev/null 2>&1
94
94
  }
95
95
 
96
96
  json_array_from_lines() {
@@ -149,6 +149,12 @@ JSON
149
149
  exit "$exit_code"
150
150
  }
151
151
 
152
+ # Desktop's environment may predate nvm installation. Load it before read-only
153
+ # detection too; a bundled or standalone node without npm is not this substrate.
154
+ if [ "$install_state" = 'auto' ] && [ "$skip_node_probe" = 'false' ]; then
155
+ load_nvm
156
+ fi
157
+
152
158
  # Mode: check
153
159
  if [ "$mode" = 'check' ]; then
154
160
  if is_node_installed; then
@@ -214,10 +220,10 @@ case "$mode" in
214
220
  ;;
215
221
  esac
216
222
 
217
- if command -v node >/dev/null 2>&1; then
223
+ if command -v node >/dev/null 2>&1 && command -v npm >/dev/null 2>&1; then
218
224
  emit_result 'ready' 'true' 0
219
225
  else
220
- warnings+=('Node binary still missing after install.')
226
+ warnings+=('Node.js or npm is still missing after install.')
221
227
  manual_steps+=('Open a new terminal so PATH picks up the nvm-managed node binary.')
222
228
  emit_result 'failed' 'false' 1
223
229
  fi