@cats-inc/cats-platform 0.1.10 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/.env.example +9 -16
  2. package/README.md +18 -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 +264 -77
  8. package/build/desktop/bootstrapPage.js.map +1 -1
  9. package/build/desktop/cliInventoryProbe.d.ts +23 -2
  10. package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
  11. package/build/desktop/cliInventoryProbe.js +54 -9
  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 +19 -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 +177 -201
  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 +7 -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/providerSelection.d.ts +37 -0
  36. package/build/desktop/providerSelection.d.ts.map +1 -0
  37. package/build/desktop/providerSelection.js +112 -0
  38. package/build/desktop/providerSelection.js.map +1 -0
  39. package/build/desktop/readiness.d.ts +2 -0
  40. package/build/desktop/readiness.d.ts.map +1 -1
  41. package/build/desktop/readiness.js +49 -35
  42. package/build/desktop/readiness.js.map +1 -1
  43. package/build/desktop/setupAssets.d.ts.map +1 -1
  44. package/build/desktop/setupAssets.js +16 -14
  45. package/build/desktop/setupAssets.js.map +1 -1
  46. package/build/desktop/setupAudit.d.ts +2 -3
  47. package/build/desktop/setupAudit.d.ts.map +1 -1
  48. package/build/desktop/setupAudit.js +14 -34
  49. package/build/desktop/setupAudit.js.map +1 -1
  50. package/build/desktop/tray.d.ts +1 -1
  51. package/build/desktop/tray.d.ts.map +1 -1
  52. package/build/desktop/tray.js +2 -7
  53. package/build/desktop/tray.js.map +1 -1
  54. package/build/desktop/trayMenu.d.ts +23 -2
  55. package/build/desktop/trayMenu.d.ts.map +1 -1
  56. package/build/desktop/trayMenu.js +24 -30
  57. package/build/desktop/trayMenu.js.map +1 -1
  58. package/build/desktop/updateDialog.d.ts +66 -0
  59. package/build/desktop/updateDialog.d.ts.map +1 -0
  60. package/build/desktop/updateDialog.js +258 -0
  61. package/build/desktop/updateDialog.js.map +1 -0
  62. package/build/desktop/updaterAdapter.d.ts +1 -0
  63. package/build/desktop/updaterAdapter.d.ts.map +1 -1
  64. package/build/desktop/updaterAdapter.js +13 -1
  65. package/build/desktop/updaterAdapter.js.map +1 -1
  66. package/build/renderer/assets/{ActiveSessionPermissionChip-Dl2UOFgh.js → ActiveSessionPermissionChip-CAgN-tXv.js} +1 -1
  67. package/build/renderer/assets/App-BZA23O2J.js +2 -0
  68. package/build/renderer/assets/App-DxsV-tKS.css +1 -0
  69. package/build/renderer/assets/{App-ChvP0G9X.js → App-YqprEL2n.js} +1 -1
  70. package/build/renderer/assets/App-rGw9J8PZ.js +1 -0
  71. package/build/renderer/assets/WorkspaceAppRoutes-BCHCikmJ.js +1 -0
  72. package/build/renderer/assets/app-BV3UAQkR.css +1 -0
  73. package/build/renderer/assets/app-CVPqqfZo.js +45 -0
  74. package/build/renderer/assets/conversationSidebarRecentEntries-iqaLqA1n.js +6 -0
  75. package/build/renderer/assets/{useDraftSessionChips-By3XXabI.js → useDraftSessionChips-D9BX6X92.js} +1 -1
  76. package/build/renderer/index.html +2 -2
  77. package/build/server/app/renderer/auth/api.d.ts +28 -2
  78. package/build/server/app/renderer/auth/api.d.ts.map +1 -1
  79. package/build/server/app/renderer/auth/api.js +29 -4
  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 +15 -6
  83. package/build/server/app/renderer/providerCatalogClient.js.map +1 -1
  84. package/build/server/app/renderer/providerRegistryClient.d.ts +1 -1
  85. package/build/server/app/renderer/providerRegistryClient.d.ts.map +1 -1
  86. package/build/server/app/renderer/providerRegistryClient.js +23 -41
  87. package/build/server/app/renderer/providerRegistryClient.js.map +1 -1
  88. package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts +11 -4
  89. package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.d.ts.map +1 -1
  90. package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js +25 -5
  91. package/build/server/app/renderer/settings/settingsDesktopUpdateLabels.js.map +1 -1
  92. package/build/server/app/server/appPackageRoutes.d.ts +2 -0
  93. package/build/server/app/server/appPackageRoutes.d.ts.map +1 -1
  94. package/build/server/app/server/appPackageRoutes.js +105 -0
  95. package/build/server/app/server/appPackageRoutes.js.map +1 -1
  96. package/build/server/app/server/authGatePolicy.js +8 -3
  97. package/build/server/app/server/authGatePolicy.js.map +1 -1
  98. package/build/server/app/server/authRoutes.d.ts +14 -1
  99. package/build/server/app/server/authRoutes.d.ts.map +1 -1
  100. package/build/server/app/server/authRoutes.js +395 -76
  101. package/build/server/app/server/authRoutes.js.map +1 -1
  102. package/build/server/app/server/contracts.d.ts +19 -1
  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 +48 -2
  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 +2 -1
  112. package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
  113. package/build/server/app/server/platformSetupRoutes.js +117 -64
  114. package/build/server/app/server/platformSetupRoutes.js.map +1 -1
  115. package/build/server/app/server/polling.d.ts.map +1 -1
  116. package/build/server/app/server/polling.js +2 -0
  117. package/build/server/app/server/polling.js.map +1 -1
  118. package/build/server/app/server/requestRouter.d.ts.map +1 -1
  119. package/build/server/app/server/requestRouter.js +33 -0
  120. package/build/server/app/server/requestRouter.js.map +1 -1
  121. package/build/server/app/server/runtimeSurfaceProxy.d.ts.map +1 -1
  122. package/build/server/app/server/runtimeSurfaceProxy.js +16 -19
  123. package/build/server/app/server/runtimeSurfaceProxy.js.map +1 -1
  124. package/build/server/app/server/startupRecovery.d.ts.map +1 -1
  125. package/build/server/app/server/startupRecovery.js +5 -0
  126. package/build/server/app/server/startupRecovery.js.map +1 -1
  127. package/build/server/app/server/telegramCommandSurface.d.ts +29 -0
  128. package/build/server/app/server/telegramCommandSurface.d.ts.map +1 -0
  129. package/build/server/app/server/telegramCommandSurface.js +123 -0
  130. package/build/server/app/server/telegramCommandSurface.js.map +1 -0
  131. package/build/server/app/server/transportWorkGoldenPath.d.ts +82 -0
  132. package/build/server/app/server/transportWorkGoldenPath.d.ts.map +1 -0
  133. package/build/server/app/server/transportWorkGoldenPath.js +307 -0
  134. package/build/server/app/server/transportWorkGoldenPath.js.map +1 -0
  135. package/build/server/config.d.ts +22 -3
  136. package/build/server/config.d.ts.map +1 -1
  137. package/build/server/config.js +14 -13
  138. package/build/server/config.js.map +1 -1
  139. package/build/server/design/components/providerModelFieldsSupport.d.ts +3 -3
  140. package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
  141. package/build/server/design/components/providerModelFieldsSupport.js +40 -38
  142. package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
  143. package/build/server/design/components/useProviderCatalogState.d.ts +1 -0
  144. package/build/server/design/components/useProviderCatalogState.d.ts.map +1 -1
  145. package/build/server/design/components/useProviderCatalogState.js +1 -0
  146. package/build/server/design/components/useProviderCatalogState.js.map +1 -1
  147. package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts.map +1 -1
  148. package/build/server/design/components/useProviderRegistryAutoRecheck.js +20 -13
  149. package/build/server/design/components/useProviderRegistryAutoRecheck.js.map +1 -1
  150. package/build/server/design/components/useProviderRegistryState.d.ts.map +1 -1
  151. package/build/server/design/components/useProviderRegistryState.js +12 -25
  152. package/build/server/design/components/useProviderRegistryState.js.map +1 -1
  153. package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
  154. package/build/server/design/components/useProviderTargetReconciliation.js +5 -2
  155. package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
  156. package/build/server/index.js +4 -0
  157. package/build/server/index.js.map +1 -1
  158. package/build/server/platform/apps/packageInstaller.d.ts +19 -0
  159. package/build/server/platform/apps/packageInstaller.d.ts.map +1 -0
  160. package/build/server/platform/apps/packageInstaller.js +92 -0
  161. package/build/server/platform/apps/packageInstaller.js.map +1 -0
  162. package/build/server/platform/apps/registry.d.ts +6 -0
  163. package/build/server/platform/apps/registry.d.ts.map +1 -1
  164. package/build/server/platform/apps/registry.js +24 -0
  165. package/build/server/platform/apps/registry.js.map +1 -1
  166. package/build/server/platform/apps/renderer.d.ts +6 -0
  167. package/build/server/platform/apps/renderer.d.ts.map +1 -0
  168. package/build/server/platform/apps/renderer.js +18 -0
  169. package/build/server/platform/apps/renderer.js.map +1 -0
  170. package/build/server/platform/auth/actionGrant.d.ts +61 -0
  171. package/build/server/platform/auth/actionGrant.d.ts.map +1 -0
  172. package/build/server/platform/auth/actionGrant.js +108 -0
  173. package/build/server/platform/auth/actionGrant.js.map +1 -0
  174. package/build/server/platform/auth/adminCredentials.d.ts +37 -0
  175. package/build/server/platform/auth/adminCredentials.d.ts.map +1 -0
  176. package/build/server/platform/auth/adminCredentials.js +63 -0
  177. package/build/server/platform/auth/adminCredentials.js.map +1 -0
  178. package/build/server/platform/auth/bootstrap.d.ts +14 -0
  179. package/build/server/platform/auth/bootstrap.d.ts.map +1 -1
  180. package/build/server/platform/auth/bootstrap.js +29 -4
  181. package/build/server/platform/auth/bootstrap.js.map +1 -1
  182. package/build/server/platform/auth/config.d.ts.map +1 -1
  183. package/build/server/platform/auth/config.js +1 -1
  184. package/build/server/platform/auth/config.js.map +1 -1
  185. package/build/server/platform/auth/errorCodes.d.ts +2 -0
  186. package/build/server/platform/auth/errorCodes.d.ts.map +1 -1
  187. package/build/server/platform/auth/errorCodes.js +2 -0
  188. package/build/server/platform/auth/errorCodes.js.map +1 -1
  189. package/build/server/platform/auth/googleAccount.d.ts +40 -13
  190. package/build/server/platform/auth/googleAccount.d.ts.map +1 -1
  191. package/build/server/platform/auth/googleAccount.js +89 -70
  192. package/build/server/platform/auth/googleAccount.js.map +1 -1
  193. package/build/server/platform/auth/index.d.ts +4 -0
  194. package/build/server/platform/auth/index.d.ts.map +1 -1
  195. package/build/server/platform/auth/index.js +4 -0
  196. package/build/server/platform/auth/index.js.map +1 -1
  197. package/build/server/platform/auth/localLogin.d.ts +10 -0
  198. package/build/server/platform/auth/localLogin.d.ts.map +1 -1
  199. package/build/server/platform/auth/localLogin.js +17 -0
  200. package/build/server/platform/auth/localLogin.js.map +1 -1
  201. package/build/server/platform/auth/loginMethods.d.ts +18 -0
  202. package/build/server/platform/auth/loginMethods.d.ts.map +1 -0
  203. package/build/server/platform/auth/loginMethods.js +19 -0
  204. package/build/server/platform/auth/loginMethods.js.map +1 -0
  205. package/build/server/platform/auth/securityEvents.d.ts +31 -0
  206. package/build/server/platform/auth/securityEvents.d.ts.map +1 -0
  207. package/build/server/platform/auth/securityEvents.js +45 -0
  208. package/build/server/platform/auth/securityEvents.js.map +1 -0
  209. package/build/server/platform/runtime/deliveryClient.d.ts +111 -0
  210. package/build/server/platform/runtime/deliveryClient.d.ts.map +1 -0
  211. package/build/server/platform/runtime/deliveryClient.js +289 -0
  212. package/build/server/platform/runtime/deliveryClient.js.map +1 -0
  213. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts +1 -0
  214. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts.map +1 -1
  215. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js +10 -0
  216. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js.map +1 -1
  217. package/build/server/platform/supervision/runtimeBoundary.d.ts +11 -1
  218. package/build/server/platform/supervision/runtimeBoundary.d.ts.map +1 -1
  219. package/build/server/platform/supervision/runtimeBoundary.js +2 -2
  220. package/build/server/platform/supervision/runtimeBoundary.js.map +1 -1
  221. package/build/server/platform/transports/telegram/bridge.d.ts +18 -0
  222. package/build/server/platform/transports/telegram/bridge.d.ts.map +1 -1
  223. package/build/server/platform/transports/telegram/bridge.js +176 -0
  224. package/build/server/platform/transports/telegram/bridge.js.map +1 -1
  225. package/build/server/platform/transports/telegram/commandPort.d.ts +40 -0
  226. package/build/server/platform/transports/telegram/commandPort.d.ts.map +1 -0
  227. package/build/server/platform/transports/telegram/commandPort.js +17 -0
  228. package/build/server/platform/transports/telegram/commandPort.js.map +1 -0
  229. package/build/server/platform/transports/telegram/commandRouter.d.ts +22 -0
  230. package/build/server/platform/transports/telegram/commandRouter.d.ts.map +1 -1
  231. package/build/server/platform/transports/telegram/commandRouter.js.map +1 -1
  232. package/build/server/platform/transports/telegram/commands/index.d.ts.map +1 -1
  233. package/build/server/platform/transports/telegram/commands/index.js +38 -0
  234. package/build/server/platform/transports/telegram/commands/index.js.map +1 -1
  235. package/build/server/platform/transports/telegram/ingressDispatch.d.ts +56 -0
  236. package/build/server/platform/transports/telegram/ingressDispatch.d.ts.map +1 -0
  237. package/build/server/platform/transports/telegram/ingressDispatch.js +93 -0
  238. package/build/server/platform/transports/telegram/ingressDispatch.js.map +1 -0
  239. package/build/server/platform/transports/telegram/polling.d.ts +34 -0
  240. package/build/server/platform/transports/telegram/polling.d.ts.map +1 -1
  241. package/build/server/platform/transports/telegram/polling.js +86 -9
  242. package/build/server/platform/transports/telegram/polling.js.map +1 -1
  243. package/build/server/platform/transports/telegram/relay/index.d.ts +3 -0
  244. package/build/server/platform/transports/telegram/relay/index.d.ts.map +1 -1
  245. package/build/server/platform/transports/telegram/relay/index.js +5 -1
  246. package/build/server/platform/transports/telegram/relay/index.js.map +1 -1
  247. package/build/server/platform/transports/telegram/relay/ingress.d.ts +2 -0
  248. package/build/server/platform/transports/telegram/relay/ingress.d.ts.map +1 -1
  249. package/build/server/platform/transports/telegram/relay/ingress.js +1 -1
  250. package/build/server/platform/transports/telegram/relay/ingress.js.map +1 -1
  251. package/build/server/platform/transports/work-delivery/actionTokens.d.ts +66 -0
  252. package/build/server/platform/transports/work-delivery/actionTokens.d.ts.map +1 -0
  253. package/build/server/platform/transports/work-delivery/actionTokens.js +145 -0
  254. package/build/server/platform/transports/work-delivery/actionTokens.js.map +1 -0
  255. package/build/server/platform/transports/work-delivery/contracts.d.ts +172 -0
  256. package/build/server/platform/transports/work-delivery/contracts.d.ts.map +1 -0
  257. package/build/server/platform/transports/work-delivery/contracts.js +26 -0
  258. package/build/server/platform/transports/work-delivery/contracts.js.map +1 -0
  259. package/build/server/platform/transports/work-delivery/deliveryGates.d.ts +32 -0
  260. package/build/server/platform/transports/work-delivery/deliveryGates.d.ts.map +1 -0
  261. package/build/server/platform/transports/work-delivery/deliveryGates.js +45 -0
  262. package/build/server/platform/transports/work-delivery/deliveryGates.js.map +1 -0
  263. package/build/server/platform/transports/work-delivery/inboundClassification.d.ts +31 -0
  264. package/build/server/platform/transports/work-delivery/inboundClassification.d.ts.map +1 -0
  265. package/build/server/platform/transports/work-delivery/inboundClassification.js +52 -0
  266. package/build/server/platform/transports/work-delivery/inboundClassification.js.map +1 -0
  267. package/build/server/platform/transports/work-delivery/outbox.d.ts +84 -0
  268. package/build/server/platform/transports/work-delivery/outbox.d.ts.map +1 -0
  269. package/build/server/platform/transports/work-delivery/outbox.js +270 -0
  270. package/build/server/platform/transports/work-delivery/outbox.js.map +1 -0
  271. package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts +57 -0
  272. package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts.map +1 -0
  273. package/build/server/platform/transports/work-delivery/permissionEnvelope.js +74 -0
  274. package/build/server/platform/transports/work-delivery/permissionEnvelope.js.map +1 -0
  275. package/build/server/platform/transports/work-delivery/port.d.ts +60 -0
  276. package/build/server/platform/transports/work-delivery/port.d.ts.map +1 -0
  277. package/build/server/platform/transports/work-delivery/port.js +15 -0
  278. package/build/server/platform/transports/work-delivery/port.js.map +1 -0
  279. package/build/server/platform/transports/work-delivery/proposal.d.ts +31 -0
  280. package/build/server/platform/transports/work-delivery/proposal.d.ts.map +1 -0
  281. package/build/server/platform/transports/work-delivery/proposal.js +59 -0
  282. package/build/server/platform/transports/work-delivery/proposal.js.map +1 -0
  283. package/build/server/platform/transports/work-delivery/readiness.d.ts +61 -0
  284. package/build/server/platform/transports/work-delivery/readiness.d.ts.map +1 -0
  285. package/build/server/platform/transports/work-delivery/readiness.js +123 -0
  286. package/build/server/platform/transports/work-delivery/readiness.js.map +1 -0
  287. package/build/server/platform/transports/work-delivery/stageProjection.d.ts +43 -0
  288. package/build/server/platform/transports/work-delivery/stageProjection.d.ts.map +1 -0
  289. package/build/server/platform/transports/work-delivery/stageProjection.js +132 -0
  290. package/build/server/platform/transports/work-delivery/stageProjection.js.map +1 -0
  291. package/build/server/platform/transports/work-delivery/stateStore.d.ts +21 -0
  292. package/build/server/platform/transports/work-delivery/stateStore.d.ts.map +1 -0
  293. package/build/server/platform/transports/work-delivery/stateStore.js +193 -0
  294. package/build/server/platform/transports/work-delivery/stateStore.js.map +1 -0
  295. package/build/server/platform/transports/work-delivery/telemetry.d.ts +49 -0
  296. package/build/server/platform/transports/work-delivery/telemetry.d.ts.map +1 -0
  297. package/build/server/platform/transports/work-delivery/telemetry.js +80 -0
  298. package/build/server/platform/transports/work-delivery/telemetry.js.map +1 -0
  299. package/build/server/products/chat/api/contracts.d.ts +10 -8
  300. package/build/server/products/chat/api/contracts.d.ts.map +1 -1
  301. package/build/server/products/chat/api/resources/channelRoutes.d.ts.map +1 -1
  302. package/build/server/products/chat/api/resources/channelRoutes.js +27 -1
  303. package/build/server/products/chat/api/resources/channelRoutes.js.map +1 -1
  304. package/build/server/products/chat/api/routeSupport.d.ts +8 -0
  305. package/build/server/products/chat/api/routeSupport.d.ts.map +1 -1
  306. package/build/server/products/chat/api/routeSupport.js +5 -4
  307. package/build/server/products/chat/api/routeSupport.js.map +1 -1
  308. package/build/server/products/chat/api/setupRoutes.d.ts.map +1 -1
  309. package/build/server/products/chat/api/setupRoutes.js +24 -91
  310. package/build/server/products/chat/api/setupRoutes.js.map +1 -1
  311. package/build/server/products/chat/state/model/channelExecutionTargets.d.ts +15 -0
  312. package/build/server/products/chat/state/model/channelExecutionTargets.d.ts.map +1 -1
  313. package/build/server/products/chat/state/model/channelExecutionTargets.js +25 -0
  314. package/build/server/products/chat/state/model/channelExecutionTargets.js.map +1 -1
  315. package/build/server/products/chat/state/model/index.d.ts +1 -1
  316. package/build/server/products/chat/state/model/index.d.ts.map +1 -1
  317. package/build/server/products/chat/state/model/index.js +1 -1
  318. package/build/server/products/chat/state/model/index.js.map +1 -1
  319. package/build/server/products/code/api/relayRoutes.d.ts.map +1 -1
  320. package/build/server/products/code/api/relayRoutes.js +36 -7
  321. package/build/server/products/code/api/relayRoutes.js.map +1 -1
  322. package/build/server/products/code/state/relayState.d.ts +2 -1
  323. package/build/server/products/code/state/relayState.d.ts.map +1 -1
  324. package/build/server/products/code/state/relayState.js +7 -7
  325. package/build/server/products/code/state/relayState.js.map +1 -1
  326. package/build/server/products/shared/api/workspaceContracts.d.ts +5 -8
  327. package/build/server/products/shared/api/workspaceContracts.d.ts.map +1 -1
  328. package/build/server/products/work/api/goldenPathProjection.d.ts +156 -0
  329. package/build/server/products/work/api/goldenPathProjection.d.ts.map +1 -0
  330. package/build/server/products/work/api/goldenPathProjection.js +252 -0
  331. package/build/server/products/work/api/goldenPathProjection.js.map +1 -0
  332. package/build/server/products/work/api/index.d.ts +54 -1
  333. package/build/server/products/work/api/index.d.ts.map +1 -1
  334. package/build/server/products/work/api/index.js +182 -4
  335. package/build/server/products/work/api/index.js.map +1 -1
  336. package/build/server/products/work/api/projection.d.ts +7 -1
  337. package/build/server/products/work/api/projection.d.ts.map +1 -1
  338. package/build/server/products/work/api/projection.js +7 -1
  339. package/build/server/products/work/api/projection.js.map +1 -1
  340. package/build/server/products/work/shared/apiPaths.d.ts +8 -0
  341. package/build/server/products/work/shared/apiPaths.d.ts.map +1 -1
  342. package/build/server/products/work/shared/apiPaths.js +8 -0
  343. package/build/server/products/work/shared/apiPaths.js.map +1 -1
  344. package/build/server/products/work/shared/workGoldenPathMessages.d.ts +83 -0
  345. package/build/server/products/work/shared/workGoldenPathMessages.d.ts.map +1 -0
  346. package/build/server/products/work/shared/workGoldenPathMessages.js +211 -0
  347. package/build/server/products/work/shared/workGoldenPathMessages.js.map +1 -0
  348. package/build/server/products/work/shared/workGoldenPathMetadata.d.ts +45 -0
  349. package/build/server/products/work/shared/workGoldenPathMetadata.d.ts.map +1 -0
  350. package/build/server/products/work/shared/workGoldenPathMetadata.js +122 -0
  351. package/build/server/products/work/shared/workGoldenPathMetadata.js.map +1 -0
  352. package/build/server/products/work/state/workCompletionEvidence.d.ts +42 -0
  353. package/build/server/products/work/state/workCompletionEvidence.d.ts.map +1 -0
  354. package/build/server/products/work/state/workCompletionEvidence.js +59 -0
  355. package/build/server/products/work/state/workCompletionEvidence.js.map +1 -0
  356. package/build/server/products/work/state/workExecutionTaskDelegate.d.ts +16 -0
  357. package/build/server/products/work/state/workExecutionTaskDelegate.d.ts.map +1 -1
  358. package/build/server/products/work/state/workExecutionTaskDelegate.js +91 -68
  359. package/build/server/products/work/state/workExecutionTaskDelegate.js.map +1 -1
  360. package/build/server/products/work/state/workGoldenPathAdmission.d.ts +78 -0
  361. package/build/server/products/work/state/workGoldenPathAdmission.d.ts.map +1 -0
  362. package/build/server/products/work/state/workGoldenPathAdmission.js +249 -0
  363. package/build/server/products/work/state/workGoldenPathAdmission.js.map +1 -0
  364. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts +33 -0
  365. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts.map +1 -0
  366. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js +161 -0
  367. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js.map +1 -0
  368. package/build/server/products/work/state/workGoldenPathIntake.d.ts +34 -0
  369. package/build/server/products/work/state/workGoldenPathIntake.d.ts.map +1 -0
  370. package/build/server/products/work/state/workGoldenPathIntake.js +50 -0
  371. package/build/server/products/work/state/workGoldenPathIntake.js.map +1 -0
  372. package/build/server/products/work/state/workGoldenPathLifecycle.d.ts +44 -0
  373. package/build/server/products/work/state/workGoldenPathLifecycle.d.ts.map +1 -0
  374. package/build/server/products/work/state/workGoldenPathLifecycle.js +146 -0
  375. package/build/server/products/work/state/workGoldenPathLifecycle.js.map +1 -0
  376. package/build/server/products/work/state/workGoldenPathPublish.d.ts +84 -0
  377. package/build/server/products/work/state/workGoldenPathPublish.d.ts.map +1 -0
  378. package/build/server/products/work/state/workGoldenPathPublish.js +488 -0
  379. package/build/server/products/work/state/workGoldenPathPublish.js.map +1 -0
  380. package/build/server/products/work/state/workGoldenPathRunner.d.ts +121 -0
  381. package/build/server/products/work/state/workGoldenPathRunner.d.ts.map +1 -0
  382. package/build/server/products/work/state/workGoldenPathRunner.js +447 -0
  383. package/build/server/products/work/state/workGoldenPathRunner.js.map +1 -0
  384. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts +74 -0
  385. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts.map +1 -0
  386. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js +239 -0
  387. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js.map +1 -0
  388. package/build/server/products/work/state/workGoldenPathService.d.ts +152 -0
  389. package/build/server/products/work/state/workGoldenPathService.d.ts.map +1 -0
  390. package/build/server/products/work/state/workGoldenPathService.js +1057 -0
  391. package/build/server/products/work/state/workGoldenPathService.js.map +1 -0
  392. package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts +87 -0
  393. package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts.map +1 -0
  394. package/build/server/products/work/state/workGoldenPathTelegramPort.js +220 -0
  395. package/build/server/products/work/state/workGoldenPathTelegramPort.js.map +1 -0
  396. package/build/server/runtime/client.d.ts +24 -0
  397. package/build/server/runtime/client.d.ts.map +1 -1
  398. package/build/server/runtime/client.js +62 -1
  399. package/build/server/runtime/client.js.map +1 -1
  400. package/build/server/runtime/setup.d.ts +10 -4
  401. package/build/server/runtime/setup.d.ts.map +1 -1
  402. package/build/server/runtime/setup.js +14 -18
  403. package/build/server/runtime/setup.js.map +1 -1
  404. package/build/server/runtime/usageSnapshot.d.ts +3 -0
  405. package/build/server/runtime/usageSnapshot.d.ts.map +1 -0
  406. package/build/server/runtime/usageSnapshot.js +69 -0
  407. package/build/server/runtime/usageSnapshot.js.map +1 -0
  408. package/build/server/server/routes/providerCapabilityBootstrap.d.ts +69 -0
  409. package/build/server/server/routes/providerCapabilityBootstrap.d.ts.map +1 -0
  410. package/build/server/server/routes/providerCapabilityBootstrap.js +165 -0
  411. package/build/server/server/routes/providerCapabilityBootstrap.js.map +1 -0
  412. package/build/server/server/routes/providers.d.ts.map +1 -1
  413. package/build/server/server/routes/providers.js +112 -81
  414. package/build/server/server/routes/providers.js.map +1 -1
  415. package/build/server/server/routes/telegram.d.ts +9 -0
  416. package/build/server/server/routes/telegram.d.ts.map +1 -1
  417. package/build/server/server/routes/telegram.js +79 -72
  418. package/build/server/server/routes/telegram.js.map +1 -1
  419. package/build/server/shared/catsAppManifest.d.ts +3 -1
  420. package/build/server/shared/catsAppManifest.d.ts.map +1 -1
  421. package/build/server/shared/catsAppManifest.js +2 -0
  422. package/build/server/shared/catsAppManifest.js.map +1 -1
  423. package/build/server/shared/executionLabel.d.ts.map +1 -1
  424. package/build/server/shared/executionLabel.js +8 -1
  425. package/build/server/shared/executionLabel.js.map +1 -1
  426. package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
  427. package/build/server/shared/i18n/catalogs/en.js +238 -3
  428. package/build/server/shared/i18n/catalogs/en.js.map +1 -1
  429. package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
  430. package/build/server/shared/i18n/catalogs/zh-TW.js +236 -3
  431. package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
  432. package/build/server/shared/i18n/index.d.ts +231 -0
  433. package/build/server/shared/i18n/index.d.ts.map +1 -1
  434. package/build/server/shared/i18n/messageKeys.d.ts +231 -0
  435. package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
  436. package/build/server/shared/i18n/messageKeys.js +231 -0
  437. package/build/server/shared/i18n/messageKeys.js.map +1 -1
  438. package/build/server/shared/platformSetupOperation.d.ts +2 -0
  439. package/build/server/shared/platformSetupOperation.d.ts.map +1 -0
  440. package/build/server/shared/platformSetupOperation.js +9 -0
  441. package/build/server/shared/platformSetupOperation.js.map +1 -0
  442. package/build/server/shared/providerCatalog.d.ts +6 -2
  443. package/build/server/shared/providerCatalog.d.ts.map +1 -1
  444. package/build/server/shared/providerCatalog.js +15 -1
  445. package/build/server/shared/providerCatalog.js.map +1 -1
  446. package/build/server/shared/providerCatalogData.d.ts +38 -22
  447. package/build/server/shared/providerCatalogData.d.ts.map +1 -1
  448. package/build/server/shared/providerCatalogData.js +31 -10
  449. package/build/server/shared/providerCatalogData.js.map +1 -1
  450. package/build/server/shared/providerCatalogInstances.d.ts.map +1 -1
  451. package/build/server/shared/providerCatalogInstances.js +6 -0
  452. package/build/server/shared/providerCatalogInstances.js.map +1 -1
  453. package/build/server/shared/providerModelLabelRegistry.d.ts +29 -0
  454. package/build/server/shared/providerModelLabelRegistry.d.ts.map +1 -0
  455. package/build/server/shared/providerModelLabelRegistry.js +49 -0
  456. package/build/server/shared/providerModelLabelRegistry.js.map +1 -0
  457. package/build/server/shared/providerSelection.d.ts.map +1 -1
  458. package/build/server/shared/providerSelection.js +10 -13
  459. package/build/server/shared/providerSelection.js.map +1 -1
  460. package/build/server/shared/runtimeSetup.d.ts +17 -4
  461. package/build/server/shared/runtimeSetup.d.ts.map +1 -1
  462. package/build/server/shared/runtimeStatusPresentation.js +1 -1
  463. package/build/server/shared/runtimeStatusPresentation.js.map +1 -1
  464. package/package.json +23 -1
  465. package/packages/app-sdk/browser.d.ts +51 -0
  466. package/packages/app-sdk/browser.js +48 -0
  467. package/packages/app-sdk/package.d.ts +14 -0
  468. package/packages/app-sdk/package.js +131 -0
  469. package/packages/app-sdk/package.json +7 -0
  470. package/scripts/README.md +73 -26
  471. package/scripts/build-desktop-installer.mjs +15 -0
  472. package/scripts/build-test-ui.mjs +1 -1
  473. package/scripts/bundle-server.mjs +23 -10
  474. package/scripts/linux/build-desktop-package.sh +6 -6
  475. package/scripts/linux/install-antigravity.sh +0 -0
  476. package/scripts/linux/install-devin.sh +0 -0
  477. package/scripts/linux/install-meta-cli.sh +8 -0
  478. package/scripts/linux/node-cli-common.sh +2 -75
  479. package/scripts/linux/provider-cli-common.sh +103 -30
  480. package/scripts/linux/sync-agent-skills.sh +27 -5
  481. package/scripts/linux/test-linux-package-smoke.sh +4 -3
  482. package/scripts/linux/upgrade-cli-tools.sh +1 -1
  483. package/scripts/macos/build-desktop-package.sh +5 -5
  484. package/scripts/macos/install-antigravity.sh +0 -0
  485. package/scripts/macos/install-devin.sh +0 -0
  486. package/scripts/macos/install-meta-cli.sh +8 -0
  487. package/scripts/macos/node-cli-common.sh +2 -75
  488. package/scripts/macos/provider-cli-common.sh +103 -30
  489. package/scripts/macos/sync-agent-skills.sh +27 -5
  490. package/scripts/macos/test-macos-package-smoke.sh +4 -3
  491. package/scripts/macos/upgrade-cli-tools.sh +1 -1
  492. package/scripts/package-desktop.mjs +15 -2
  493. package/scripts/testing/check-usage-app.mts +266 -0
  494. package/scripts/testing/usage-app-smoke-electron.cjs +10 -0
  495. package/scripts/testing/usage-app-smoke-renderer.tsx +8 -0
  496. package/scripts/verify-desktop-app-bundle.mjs +108 -0
  497. package/scripts/windows/Build-DesktopPackage.ps1 +9 -6
  498. package/scripts/windows/Check-WindowsSetupReadiness.ps1 +14 -443
  499. package/scripts/windows/{Install-Aider.ps1 → Install-MetaCli.ps1} +180 -92
  500. package/scripts/windows/Install-Ollama.ps1 +4 -1
  501. package/scripts/windows/Remove-MergedBranches.ps1 +229 -0
  502. package/scripts/windows/Sync-AgentSkills.ps1 +29 -6
  503. package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +2 -1
  504. package/build/desktop/updateNotifications.d.ts +0 -64
  505. package/build/desktop/updateNotifications.d.ts.map +0 -1
  506. package/build/desktop/updateNotifications.js +0 -143
  507. package/build/desktop/updateNotifications.js.map +0 -1
  508. package/build/renderer/assets/App-C57f4p8k.js +0 -2
  509. package/build/renderer/assets/App-CPqGDXVi.js +0 -1
  510. package/build/renderer/assets/App-DGwkRFZl.css +0 -1
  511. package/build/renderer/assets/WorkspaceAppRoutes-DYg2vnjz.js +0 -1
  512. package/build/renderer/assets/app-DVN9Ghrk.js +0 -43
  513. package/build/renderer/assets/app-XnXwkcD2.css +0 -1
  514. package/build/renderer/assets/conversationSidebarRecentEntries-XZVCnMLw.js +0 -6
  515. package/scripts/linux/install-aider.sh +0 -8
  516. package/scripts/macos/install-aider.sh +0 -8
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Versioned scope proposals (SPEC-114 FR-15..FR-19).
3
+ *
4
+ * The digest is the load-bearing part. An owner confirms a specific block of
5
+ * text; binding the authorization to a hash of exactly the execution-relevant
6
+ * fields is what makes "Start work" mean "run *that*" rather than "run whatever
7
+ * the work item says now".
8
+ */
9
+ import { createHash } from 'node:crypto';
10
+ /**
11
+ * Fields that change what actually executes.
12
+ *
13
+ * `createdAt` and `openQuestion` are excluded on purpose: re-rendering the same
14
+ * scope at a later time, or resolving a question without changing the plan,
15
+ * must not invalidate a confirmation the owner already saw.
16
+ */
17
+ function buildDigestSource(input) {
18
+ return JSON.stringify([
19
+ input.goal.trim(),
20
+ input.targetLabel.trim(),
21
+ input.projectId,
22
+ input.workspacePath,
23
+ [...input.acceptanceCriteria].map((criterion) => criterion.trim()),
24
+ input.deliveryMode,
25
+ [...input.deliveryGates].sort(),
26
+ [...input.sideEffects].map((effect) => effect.trim()).sort(),
27
+ ]);
28
+ }
29
+ export function buildTransportWorkProposalDigest(input) {
30
+ return createHash('sha256')
31
+ .update(buildDigestSource(input))
32
+ .digest('hex')
33
+ .slice(0, 32);
34
+ }
35
+ export function buildTransportWorkProposal(input) {
36
+ return {
37
+ version: 1,
38
+ revision: input.revision,
39
+ digest: buildTransportWorkProposalDigest(input),
40
+ goal: input.goal.trim(),
41
+ targetLabel: input.targetLabel.trim(),
42
+ projectId: input.projectId,
43
+ workspacePath: input.workspacePath,
44
+ acceptanceCriteria: [...input.acceptanceCriteria].map((criterion) => criterion.trim()),
45
+ deliveryMode: input.deliveryMode,
46
+ deliveryGates: [...input.deliveryGates],
47
+ sideEffects: [...input.sideEffects],
48
+ openQuestion: input.openQuestion,
49
+ createdAt: input.createdAt.toISOString(),
50
+ };
51
+ }
52
+ /**
53
+ * True when a new proposal changes what would execute, which is the trigger for
54
+ * bumping the revision and invalidating outstanding action tokens (FR-17).
55
+ */
56
+ export function isTransportWorkProposalMateriallyChanged(previous, next) {
57
+ return previous === null || previous.digest !== next.digest;
58
+ }
59
+ //# sourceMappingURL=proposal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../../../../src/platform/transports/work-delivery/proposal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmBzC;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAAsC;IAC/D,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;QACxB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,aAAa;QACnB,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClE,KAAK,CAAC,YAAY;QAClB,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE;QAC/B,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KAC7D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,KAAsC;IAEtC,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAChC,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAAsC;IAEtC,OAAO;QACL,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,gCAAgC,CAAC,KAAK,CAAC;QAC/C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;QACrC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,kBAAkB,EAAE,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtF,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC;QACvC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;QACnC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;KACzC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wCAAwC,CACtD,QAAwC,EACxC,IAA6B;IAE7B,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Shared delegation-readiness evaluator (SPEC-114 FR-1..FR-5, PLAN-105 Phase 1).
3
+ *
4
+ * Telegram and Desktop must answer "can this binding accept work right now?"
5
+ * with the same reason codes. Duplicating the rules in a transport handler and
6
+ * again in a settings page is how a bot ends up claiming work is queued while
7
+ * Desktop shows a missing provider, so both call this.
8
+ */
9
+ import type { CoreDeliveryGate, CoreDeliveryMode } from '../../../core/types.js';
10
+ import type { TransportWorkPermissionEnvelope } from './permissionEnvelope.js';
11
+ import type { TransportWorkReadiness } from './contracts.js';
12
+ /**
13
+ * Facts the evaluator needs. Every field is a resolved observation rather than
14
+ * a service handle, so the evaluator stays pure and both callers can assemble
15
+ * it from whatever they already hold.
16
+ */
17
+ export interface TransportWorkReadinessInput {
18
+ bindingEnabled: boolean;
19
+ /** Polling or webhook ingress is currently healthy. */
20
+ bindingHealthy: boolean;
21
+ /** The external user is the authorized owner for this binding. */
22
+ ownerAuthorized: boolean;
23
+ boundCatId: string | null;
24
+ /** Resolved provider/model execution target for the bound Cat. */
25
+ executionTargetId: string | null;
26
+ /** A provider capability profile has been resolved (not merely defaulted). */
27
+ capabilityProfileResolved: boolean;
28
+ /** Absolute workspace/project root the work would run against. */
29
+ workspacePath: string | null;
30
+ /**
31
+ * The resolved permission envelope, not a summary of it. Its reasons become
32
+ * blockers directly so Desktop can say *which* prerequisite is missing
33
+ * instead of "permissions".
34
+ */
35
+ permission: TransportWorkPermissionEnvelope;
36
+ deliveryMode: CoreDeliveryMode | null;
37
+ deliveryGates: readonly CoreDeliveryGate[] | null;
38
+ /**
39
+ * Desktop background service is running. A local-first binding cannot honour
40
+ * work while the host is asleep, and FR-5 forbids implying otherwise.
41
+ */
42
+ backgroundServiceAvailable: boolean;
43
+ }
44
+ /**
45
+ * Evaluates every prerequisite and reports *all* blockers rather than the first.
46
+ *
47
+ * Reporting one at a time turns setup into a guessing game where each fix
48
+ * reveals the next missing piece.
49
+ */
50
+ export declare function evaluateTransportWorkReadiness(input: TransportWorkReadinessInput): TransportWorkReadiness;
51
+ /**
52
+ * Default delivery mode for a target (PLAN-105 Phase 0 open question, resolved
53
+ * by owner direction): a repo workspace commits, anything else produces an
54
+ * artifact. The proposal must still show the resolved mode before confirmation,
55
+ * so this is a default and never a silent decision.
56
+ */
57
+ export declare function resolveDefaultDeliveryMode(input: {
58
+ workspacePath: string | null;
59
+ isRepo: boolean;
60
+ }): CoreDeliveryMode;
61
+ //# sourceMappingURL=readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../../../../src/platform/transports/work-delivery/readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EACV,+BAA+B,EAEhC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,sBAAsB,EAGvB,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,OAAO,CAAC;IACxB,uDAAuD;IACvD,cAAc,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,8EAA8E;IAC9E,yBAAyB,EAAE,OAAO,CAAC;IACnC,kEAAkE;IAClE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,UAAU,EAAE,+BAA+B,CAAC;IAC5C,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,aAAa,EAAE,SAAS,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAClD;;;OAGG;IACH,0BAA0B,EAAE,OAAO,CAAC;CACrC;AA8ED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CAgCxB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,gBAAgB,CAEnB"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Shared delegation-readiness evaluator (SPEC-114 FR-1..FR-5, PLAN-105 Phase 1).
3
+ *
4
+ * Telegram and Desktop must answer "can this binding accept work right now?"
5
+ * with the same reason codes. Duplicating the rules in a transport handler and
6
+ * again in a settings page is how a bot ends up claiming work is queued while
7
+ * Desktop shows a missing provider, so both call this.
8
+ */
9
+ /**
10
+ * Remediation copy is referenced by key, never inlined: FR-3 requires localized
11
+ * remediation, and a raw English string here would bypass product i18n.
12
+ */
13
+ const REMEDIATION = {
14
+ binding_disabled: {
15
+ remediationKey: 'workDelivery.readiness.bindingDisabled',
16
+ remediationPath: '/settings/chat',
17
+ },
18
+ binding_unhealthy: {
19
+ remediationKey: 'workDelivery.readiness.bindingUnhealthy',
20
+ remediationPath: '/settings/chat',
21
+ },
22
+ owner_not_authorized: {
23
+ remediationKey: 'workDelivery.readiness.ownerNotAuthorized',
24
+ remediationPath: '/settings/work',
25
+ },
26
+ cat_not_bound: {
27
+ remediationKey: 'workDelivery.readiness.catNotBound',
28
+ remediationPath: '/settings/chat',
29
+ },
30
+ execution_target_missing: {
31
+ remediationKey: 'workDelivery.readiness.executionTargetMissing',
32
+ remediationPath: '/settings/assistants',
33
+ },
34
+ capability_profile_missing: {
35
+ remediationKey: 'workDelivery.readiness.capabilityProfileMissing',
36
+ remediationPath: '/settings/assistants',
37
+ },
38
+ workspace_missing: {
39
+ remediationKey: 'workDelivery.readiness.workspaceMissing',
40
+ remediationPath: '/settings/work',
41
+ },
42
+ workspace_unreachable: {
43
+ remediationKey: 'workDelivery.readiness.workspaceUnreachable',
44
+ remediationPath: '/settings/work',
45
+ },
46
+ workspace_not_a_repository: {
47
+ remediationKey: 'workDelivery.readiness.workspaceNotARepository',
48
+ remediationPath: '/settings/work',
49
+ },
50
+ workspace_not_clean: {
51
+ remediationKey: 'workDelivery.readiness.workspaceNotClean',
52
+ remediationPath: '/workspaces',
53
+ },
54
+ delivery_policy_unresolved: {
55
+ remediationKey: 'workDelivery.readiness.deliveryPolicyUnresolved',
56
+ remediationPath: '/settings/work',
57
+ },
58
+ background_service_unavailable: {
59
+ remediationKey: 'workDelivery.readiness.backgroundServiceUnavailable',
60
+ remediationPath: '/settings/desktop',
61
+ },
62
+ };
63
+ /**
64
+ * Permission reasons are readiness blockers in their own right. Collapsing them
65
+ * into one "permissions" code is what made the old surface unactionable.
66
+ */
67
+ const PERMISSION_BLOCKERS = {
68
+ workspace_not_configured: 'workspace_missing',
69
+ workspace_unreachable: 'workspace_unreachable',
70
+ workspace_not_a_repository: 'workspace_not_a_repository',
71
+ workspace_not_clean: 'workspace_not_clean',
72
+ };
73
+ function blocker(reason) {
74
+ return { reason, ...REMEDIATION[reason] };
75
+ }
76
+ /**
77
+ * Evaluates every prerequisite and reports *all* blockers rather than the first.
78
+ *
79
+ * Reporting one at a time turns setup into a guessing game where each fix
80
+ * reveals the next missing piece.
81
+ */
82
+ export function evaluateTransportWorkReadiness(input) {
83
+ const blockers = [];
84
+ if (!input.bindingEnabled) {
85
+ blockers.push(blocker('binding_disabled'));
86
+ }
87
+ else if (!input.bindingHealthy) {
88
+ // Only meaningful for an enabled binding; a disabled one is not "unhealthy".
89
+ blockers.push(blocker('binding_unhealthy'));
90
+ }
91
+ if (!input.ownerAuthorized) {
92
+ blockers.push(blocker('owner_not_authorized'));
93
+ }
94
+ if (input.boundCatId === null) {
95
+ blockers.push(blocker('cat_not_bound'));
96
+ }
97
+ if (input.executionTargetId === null) {
98
+ blockers.push(blocker('execution_target_missing'));
99
+ }
100
+ if (!input.capabilityProfileResolved) {
101
+ blockers.push(blocker('capability_profile_missing'));
102
+ }
103
+ for (const reason of input.permission.reasons) {
104
+ blockers.push(blocker(PERMISSION_BLOCKERS[reason]));
105
+ }
106
+ if (input.deliveryMode === null || input.deliveryGates === null) {
107
+ blockers.push(blocker('delivery_policy_unresolved'));
108
+ }
109
+ if (!input.backgroundServiceAvailable) {
110
+ blockers.push(blocker('background_service_unavailable'));
111
+ }
112
+ return { ready: blockers.length === 0, blockers };
113
+ }
114
+ /**
115
+ * Default delivery mode for a target (PLAN-105 Phase 0 open question, resolved
116
+ * by owner direction): a repo workspace commits, anything else produces an
117
+ * artifact. The proposal must still show the resolved mode before confirmation,
118
+ * so this is a default and never a silent decision.
119
+ */
120
+ export function resolveDefaultDeliveryMode(input) {
121
+ return input.workspacePath !== null && input.isRepo ? 'commit_only' : 'artifact_only';
122
+ }
123
+ //# sourceMappingURL=readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../../../../src/platform/transports/work-delivery/readiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Golden-path stage projection (ADR-112 section 2, SPEC-114 FR-49).
3
+ *
4
+ * This is a pure derivation from authoritative Cats Core records plus transport
5
+ * receipts. It holds no state of its own, which is what keeps it from becoming
6
+ * the second state machine ADR-112 forbids: every call recomputes the stage
7
+ * from scratch, so it cannot drift away from Core.
8
+ */
9
+ import type { CoreArtifactRecord, CoreDeliveryGate, CoreDeliveryMode, CoreOrchestrationOutcomeRecord, CoreRunRecord, CoreTaskRecord, CoreWorkItemRecord } from '../../../core/types.js';
10
+ import type { TransportWorkAction, TransportWorkProposalV1, TransportWorkStage } from './contracts.js';
11
+ import type { TransportWorkDeliveryV1 } from './contracts.js';
12
+ export interface TransportWorkStageInput {
13
+ workItem: CoreWorkItemRecord;
14
+ proposal: TransportWorkProposalV1 | null;
15
+ task: CoreTaskRecord | null;
16
+ run: CoreRunRecord | null;
17
+ outcome: CoreOrchestrationOutcomeRecord | null;
18
+ artifacts: readonly CoreArtifactRecord[];
19
+ /** Commit evidence for repository-backed modes; null for `artifact_only`. */
20
+ commitId: string | null;
21
+ /** Gates that still require an owner decision before publication. */
22
+ outstandingGates: readonly CoreDeliveryGate[];
23
+ deliveryRows: readonly TransportWorkDeliveryV1[];
24
+ /** True when the supervised run is waiting on an owner decision. */
25
+ awaitingOwnerDecision: boolean;
26
+ }
27
+ export interface TransportWorkStageProjection {
28
+ stage: TransportWorkStage;
29
+ /** Why the stage is what it is; surfaced in Desktop and diagnostics. */
30
+ rationale: string;
31
+ allowedActions: TransportWorkAction[];
32
+ deliveryMode: CoreDeliveryMode | null;
33
+ outstandingGates: CoreDeliveryGate[];
34
+ }
35
+ /**
36
+ * Derives the owner-visible stage.
37
+ *
38
+ * Order matters: terminal states win over progress states, and a persisted
39
+ * delivery receipt wins over everything, because `delivered` is defined by the
40
+ * receipt rather than by the Run (ADR-112 section 6).
41
+ */
42
+ export declare function projectTransportWorkStage(input: TransportWorkStageInput): TransportWorkStageProjection;
43
+ //# sourceMappingURL=stageProjection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stageProjection.d.ts","sourceRoot":"","sources":["../../../../../src/platform/transports/work-delivery/stageProjection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,8BAA8B,EAC9B,aAAa,EACb,cAAc,EACd,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACzC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC/C,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qEAAqE;IACrE,gBAAgB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACjD,oEAAoE;IACpE,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,kBAAkB,CAAC;IAC1B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;CACtC;AAyBD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,GAC7B,4BAA4B,CA8G9B"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Golden-path stage projection (ADR-112 section 2, SPEC-114 FR-49).
3
+ *
4
+ * This is a pure derivation from authoritative Cats Core records plus transport
5
+ * receipts. It holds no state of its own, which is what keeps it from becoming
6
+ * the second state machine ADR-112 forbids: every call recomputes the stage
7
+ * from scratch, so it cannot drift away from Core.
8
+ */
9
+ function hasSentResult(rows) {
10
+ return rows.some((row) => row.state === 'sent'
11
+ && (row.purpose === 'result' || row.purpose === 'publish_result'));
12
+ }
13
+ function hasAcceptedResultEvidence(input) {
14
+ if (input.outcome === null || input.outcome.status !== 'succeeded') {
15
+ return false;
16
+ }
17
+ if (input.proposal !== null && input.proposal.deliveryMode !== 'artifact_only') {
18
+ return input.commitId !== null;
19
+ }
20
+ return input.artifacts.some((artifact) => artifact.status === 'ready' || artifact.status === 'published');
21
+ }
22
+ function isOwnerApproved(status) {
23
+ return status === 'approved';
24
+ }
25
+ /**
26
+ * Derives the owner-visible stage.
27
+ *
28
+ * Order matters: terminal states win over progress states, and a persisted
29
+ * delivery receipt wins over everything, because `delivered` is defined by the
30
+ * receipt rather than by the Run (ADR-112 section 6).
31
+ */
32
+ export function projectTransportWorkStage(input) {
33
+ const deliveryMode = input.proposal?.deliveryMode ?? null;
34
+ const outstandingGates = [...input.outstandingGates];
35
+ const base = {
36
+ deliveryMode,
37
+ outstandingGates,
38
+ };
39
+ if (hasSentResult(input.deliveryRows)) {
40
+ return {
41
+ ...base,
42
+ stage: 'delivered',
43
+ rationale: 'A result message reached the source binding and its receipt is persisted.',
44
+ allowedActions: ['view'],
45
+ };
46
+ }
47
+ if (input.run?.status === 'cancelled' || input.task?.status === 'cancelled') {
48
+ return {
49
+ ...base,
50
+ stage: 'cancelled',
51
+ rationale: 'The authoritative Task or Run is cancelled.',
52
+ allowedActions: ['view'],
53
+ };
54
+ }
55
+ if (input.run?.status === 'failed' || input.outcome?.status === 'failed') {
56
+ return {
57
+ ...base,
58
+ stage: 'failed',
59
+ rationale: 'The authoritative Run or Outcome recorded a terminal failure.',
60
+ allowedActions: ['retry', 'cancel', 'view'],
61
+ };
62
+ }
63
+ if (hasAcceptedResultEvidence(input)) {
64
+ if (outstandingGates.length === 0) {
65
+ return {
66
+ ...base,
67
+ stage: 'publish_authorized',
68
+ rationale: 'Result evidence is accepted and no delivery gate remains outstanding.',
69
+ allowedActions: ['view'],
70
+ };
71
+ }
72
+ return {
73
+ ...base,
74
+ stage: 'result_ready',
75
+ rationale: 'Result evidence is accepted but a delivery gate still requires an owner decision.',
76
+ allowedActions: ['publish', 'deny', 'cancel', 'view'],
77
+ };
78
+ }
79
+ if (input.awaitingOwnerDecision || input.run?.status === 'blocked') {
80
+ return {
81
+ ...base,
82
+ stage: 'decision_needed',
83
+ rationale: 'The supervised Run is blocked on an owner decision.',
84
+ allowedActions: ['approve', 'deny', 'retry', 'cancel', 'view'],
85
+ };
86
+ }
87
+ if (input.run?.status === 'running') {
88
+ return {
89
+ ...base,
90
+ stage: 'running',
91
+ rationale: 'The supervised Run is active.',
92
+ // `resume` is offered because a Run can be `running` with nothing driving
93
+ // it — the usual cause being a host restart mid-flight.
94
+ allowedActions: ['resume', 'cancel', 'view'],
95
+ };
96
+ }
97
+ if (input.run?.status === 'queued') {
98
+ return {
99
+ ...base,
100
+ stage: 'admitted',
101
+ rationale: 'An approved Task and a queued supervised Run exist.',
102
+ allowedActions: ['cancel', 'view'],
103
+ };
104
+ }
105
+ // No Run yet. An approved Task means the owner authorized this revision and
106
+ // admission is mid-flight or was interrupted; that is deliberately distinct
107
+ // from `admitted`, which requires the Run to exist.
108
+ if (input.task !== null && isOwnerApproved(input.task.approval.status)) {
109
+ return {
110
+ ...base,
111
+ stage: 'execution_authorized',
112
+ rationale: 'The owner approved this proposal revision; the supervised Run is not queued yet.',
113
+ allowedActions: ['view'],
114
+ };
115
+ }
116
+ if (input.proposal !== null) {
117
+ return {
118
+ ...base,
119
+ stage: 'scope_proposed',
120
+ rationale: 'A versioned scope proposal is visible and awaiting owner authorization.',
121
+ // `adjust` is withdrawn until the FR-16 clarification loop exists.
122
+ allowedActions: ['start_work', 'cancel', 'view'],
123
+ };
124
+ }
125
+ return {
126
+ ...base,
127
+ stage: 'received',
128
+ rationale: 'The source update was accepted and a durable intake anchor exists.',
129
+ allowedActions: ['cancel', 'view'],
130
+ };
131
+ }
132
+ //# sourceMappingURL=stageProjection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stageProjection.js","sourceRoot":"","sources":["../../../../../src/platform/transports/work-delivery/stageProjection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Durable state owned by the transport work-delivery boundary.
3
+ *
4
+ * Cats Core remains the work ledger. This store contains only the transport
5
+ * details Core deliberately does not own: opaque callback grants and outbound
6
+ * delivery intents/receipts. Both families share one atomic file so a token or
7
+ * receipt update cannot overwrite the other family with a stale snapshot.
8
+ */
9
+ import type { TransportWorkActionTokenV1, TransportWorkDeliveryV1 } from './contracts.js';
10
+ export interface TransportWorkStateStore {
11
+ listDeliveries(): TransportWorkDeliveryV1[];
12
+ putDelivery(row: TransportWorkDeliveryV1): void;
13
+ listActionTokens(): TransportWorkActionTokenV1[];
14
+ putActionToken(token: TransportWorkActionTokenV1): void;
15
+ deleteActionToken(token: string): boolean;
16
+ deleteActionTokensForWorkItem(workItemId: string): number;
17
+ }
18
+ export declare function createMemoryTransportWorkStateStore(): TransportWorkStateStore;
19
+ export declare function createFileTransportWorkStateStore(statePath: string): TransportWorkStateStore;
20
+ export declare function resolveTransportWorkStatePath(platformStateDir: string): string;
21
+ //# sourceMappingURL=stateStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateStore.d.ts","sourceRoot":"","sources":["../../../../../src/platform/transports/work-delivery/stateStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAQxB,MAAM,WAAW,uBAAuB;IACtC,cAAc,IAAI,uBAAuB,EAAE,CAAC;IAC5C,WAAW,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAChD,gBAAgB,IAAI,0BAA0B,EAAE,CAAC;IACjD,cAAc,CAAC,KAAK,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACxD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1C,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3D;AAoMD,wBAAgB,mCAAmC,IAAI,uBAAuB,CAE7E;AAED,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB,CAE5F;AAED,wBAAgB,6BAA6B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAE9E"}