@cats-inc/cats-platform 0.1.21 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/.env.example +3 -7
  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 +114 -34
  8. package/build/desktop/bootstrapPage.js.map +1 -1
  9. package/build/desktop/cliInventoryProbe.d.ts +5 -2
  10. package/build/desktop/cliInventoryProbe.d.ts.map +1 -1
  11. package/build/desktop/cliInventoryProbe.js +14 -11
  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 +10 -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 +144 -249
  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 +14 -33
  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/updateDialog.d.ts +27 -1
  51. package/build/desktop/updateDialog.d.ts.map +1 -1
  52. package/build/desktop/updateDialog.js +85 -5
  53. package/build/desktop/updateDialog.js.map +1 -1
  54. package/build/renderer/assets/{ActiveSessionPermissionChip-DImsuR9T.js → ActiveSessionPermissionChip-CAgN-tXv.js} +1 -1
  55. package/build/renderer/assets/App-BZA23O2J.js +2 -0
  56. package/build/renderer/assets/App-DxsV-tKS.css +1 -0
  57. package/build/renderer/assets/{App-DKOSn0o_.js → App-YqprEL2n.js} +1 -1
  58. package/build/renderer/assets/App-rGw9J8PZ.js +1 -0
  59. package/build/renderer/assets/WorkspaceAppRoutes-BCHCikmJ.js +1 -0
  60. package/build/renderer/assets/app-BV3UAQkR.css +1 -0
  61. package/build/renderer/assets/app-CVPqqfZo.js +45 -0
  62. package/build/renderer/assets/conversationSidebarRecentEntries-iqaLqA1n.js +6 -0
  63. package/build/renderer/assets/{useDraftSessionChips-DCIId0eY.js → useDraftSessionChips-D9BX6X92.js} +1 -1
  64. package/build/renderer/index.html +2 -2
  65. package/build/server/app/renderer/providerCatalogClient.d.ts.map +1 -1
  66. package/build/server/app/renderer/providerCatalogClient.js +15 -6
  67. package/build/server/app/renderer/providerCatalogClient.js.map +1 -1
  68. package/build/server/app/renderer/providerRegistryClient.d.ts +1 -1
  69. package/build/server/app/renderer/providerRegistryClient.d.ts.map +1 -1
  70. package/build/server/app/renderer/providerRegistryClient.js +23 -41
  71. package/build/server/app/renderer/providerRegistryClient.js.map +1 -1
  72. package/build/server/app/server/appPackageRoutes.d.ts +2 -0
  73. package/build/server/app/server/appPackageRoutes.d.ts.map +1 -1
  74. package/build/server/app/server/appPackageRoutes.js +105 -0
  75. package/build/server/app/server/appPackageRoutes.js.map +1 -1
  76. package/build/server/app/server/authGatePolicy.js +7 -1
  77. package/build/server/app/server/authGatePolicy.js.map +1 -1
  78. package/build/server/app/server/contracts.d.ts +15 -0
  79. package/build/server/app/server/contracts.d.ts.map +1 -1
  80. package/build/server/app/server/dependencies.d.ts.map +1 -1
  81. package/build/server/app/server/dependencies.js +42 -1
  82. package/build/server/app/server/dependencies.js.map +1 -1
  83. package/build/server/app/server/goldenPathStartupResume.d.ts +55 -0
  84. package/build/server/app/server/goldenPathStartupResume.d.ts.map +1 -0
  85. package/build/server/app/server/goldenPathStartupResume.js +109 -0
  86. package/build/server/app/server/goldenPathStartupResume.js.map +1 -0
  87. package/build/server/app/server/platformSetupRoutes.d.ts.map +1 -1
  88. package/build/server/app/server/platformSetupRoutes.js +1 -13
  89. package/build/server/app/server/platformSetupRoutes.js.map +1 -1
  90. package/build/server/app/server/polling.d.ts.map +1 -1
  91. package/build/server/app/server/polling.js +2 -0
  92. package/build/server/app/server/polling.js.map +1 -1
  93. package/build/server/app/server/requestRouter.d.ts.map +1 -1
  94. package/build/server/app/server/requestRouter.js +30 -0
  95. package/build/server/app/server/requestRouter.js.map +1 -1
  96. package/build/server/app/server/runtimeSurfaceProxy.d.ts.map +1 -1
  97. package/build/server/app/server/runtimeSurfaceProxy.js +4 -2
  98. package/build/server/app/server/runtimeSurfaceProxy.js.map +1 -1
  99. package/build/server/app/server/startupRecovery.d.ts.map +1 -1
  100. package/build/server/app/server/startupRecovery.js +5 -0
  101. package/build/server/app/server/startupRecovery.js.map +1 -1
  102. package/build/server/app/server/telegramCommandSurface.d.ts +29 -0
  103. package/build/server/app/server/telegramCommandSurface.d.ts.map +1 -0
  104. package/build/server/app/server/telegramCommandSurface.js +123 -0
  105. package/build/server/app/server/telegramCommandSurface.js.map +1 -0
  106. package/build/server/app/server/transportWorkGoldenPath.d.ts +82 -0
  107. package/build/server/app/server/transportWorkGoldenPath.d.ts.map +1 -0
  108. package/build/server/app/server/transportWorkGoldenPath.js +307 -0
  109. package/build/server/app/server/transportWorkGoldenPath.js.map +1 -0
  110. package/build/server/config.d.ts +21 -0
  111. package/build/server/config.d.ts.map +1 -1
  112. package/build/server/config.js +12 -0
  113. package/build/server/config.js.map +1 -1
  114. package/build/server/design/components/providerModelFieldsSupport.d.ts +3 -3
  115. package/build/server/design/components/providerModelFieldsSupport.d.ts.map +1 -1
  116. package/build/server/design/components/providerModelFieldsSupport.js +37 -38
  117. package/build/server/design/components/providerModelFieldsSupport.js.map +1 -1
  118. package/build/server/design/components/useProviderCatalogState.d.ts +1 -0
  119. package/build/server/design/components/useProviderCatalogState.d.ts.map +1 -1
  120. package/build/server/design/components/useProviderCatalogState.js +1 -0
  121. package/build/server/design/components/useProviderCatalogState.js.map +1 -1
  122. package/build/server/design/components/useProviderRegistryAutoRecheck.d.ts.map +1 -1
  123. package/build/server/design/components/useProviderRegistryAutoRecheck.js +20 -13
  124. package/build/server/design/components/useProviderRegistryAutoRecheck.js.map +1 -1
  125. package/build/server/design/components/useProviderRegistryState.d.ts.map +1 -1
  126. package/build/server/design/components/useProviderRegistryState.js +12 -25
  127. package/build/server/design/components/useProviderRegistryState.js.map +1 -1
  128. package/build/server/design/components/useProviderTargetReconciliation.d.ts.map +1 -1
  129. package/build/server/design/components/useProviderTargetReconciliation.js +2 -1
  130. package/build/server/design/components/useProviderTargetReconciliation.js.map +1 -1
  131. package/build/server/index.js +4 -0
  132. package/build/server/index.js.map +1 -1
  133. package/build/server/platform/apps/packageInstaller.d.ts +19 -0
  134. package/build/server/platform/apps/packageInstaller.d.ts.map +1 -0
  135. package/build/server/platform/apps/packageInstaller.js +92 -0
  136. package/build/server/platform/apps/packageInstaller.js.map +1 -0
  137. package/build/server/platform/apps/registry.d.ts +6 -0
  138. package/build/server/platform/apps/registry.d.ts.map +1 -1
  139. package/build/server/platform/apps/registry.js +24 -0
  140. package/build/server/platform/apps/registry.js.map +1 -1
  141. package/build/server/platform/apps/renderer.d.ts +6 -0
  142. package/build/server/platform/apps/renderer.d.ts.map +1 -0
  143. package/build/server/platform/apps/renderer.js +18 -0
  144. package/build/server/platform/apps/renderer.js.map +1 -0
  145. package/build/server/platform/runtime/deliveryClient.d.ts +111 -0
  146. package/build/server/platform/runtime/deliveryClient.d.ts.map +1 -0
  147. package/build/server/platform/runtime/deliveryClient.js +289 -0
  148. package/build/server/platform/runtime/deliveryClient.js.map +1 -0
  149. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts +1 -0
  150. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.d.ts.map +1 -1
  151. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js +10 -0
  152. package/build/server/platform/supervision/providerCapabilityBootstrapYaml.js.map +1 -1
  153. package/build/server/platform/supervision/runtimeBoundary.d.ts +11 -1
  154. package/build/server/platform/supervision/runtimeBoundary.d.ts.map +1 -1
  155. package/build/server/platform/supervision/runtimeBoundary.js +2 -2
  156. package/build/server/platform/supervision/runtimeBoundary.js.map +1 -1
  157. package/build/server/platform/transports/telegram/bridge.d.ts +18 -0
  158. package/build/server/platform/transports/telegram/bridge.d.ts.map +1 -1
  159. package/build/server/platform/transports/telegram/bridge.js +176 -0
  160. package/build/server/platform/transports/telegram/bridge.js.map +1 -1
  161. package/build/server/platform/transports/telegram/commandPort.d.ts +40 -0
  162. package/build/server/platform/transports/telegram/commandPort.d.ts.map +1 -0
  163. package/build/server/platform/transports/telegram/commandPort.js +17 -0
  164. package/build/server/platform/transports/telegram/commandPort.js.map +1 -0
  165. package/build/server/platform/transports/telegram/commandRouter.d.ts +22 -0
  166. package/build/server/platform/transports/telegram/commandRouter.d.ts.map +1 -1
  167. package/build/server/platform/transports/telegram/commandRouter.js.map +1 -1
  168. package/build/server/platform/transports/telegram/commands/index.d.ts.map +1 -1
  169. package/build/server/platform/transports/telegram/commands/index.js +38 -0
  170. package/build/server/platform/transports/telegram/commands/index.js.map +1 -1
  171. package/build/server/platform/transports/telegram/ingressDispatch.d.ts +56 -0
  172. package/build/server/platform/transports/telegram/ingressDispatch.d.ts.map +1 -0
  173. package/build/server/platform/transports/telegram/ingressDispatch.js +93 -0
  174. package/build/server/platform/transports/telegram/ingressDispatch.js.map +1 -0
  175. package/build/server/platform/transports/telegram/polling.d.ts +34 -0
  176. package/build/server/platform/transports/telegram/polling.d.ts.map +1 -1
  177. package/build/server/platform/transports/telegram/polling.js +86 -9
  178. package/build/server/platform/transports/telegram/polling.js.map +1 -1
  179. package/build/server/platform/transports/telegram/relay/index.d.ts +3 -0
  180. package/build/server/platform/transports/telegram/relay/index.d.ts.map +1 -1
  181. package/build/server/platform/transports/telegram/relay/index.js +5 -1
  182. package/build/server/platform/transports/telegram/relay/index.js.map +1 -1
  183. package/build/server/platform/transports/telegram/relay/ingress.d.ts +2 -0
  184. package/build/server/platform/transports/telegram/relay/ingress.d.ts.map +1 -1
  185. package/build/server/platform/transports/telegram/relay/ingress.js +1 -1
  186. package/build/server/platform/transports/telegram/relay/ingress.js.map +1 -1
  187. package/build/server/platform/transports/work-delivery/actionTokens.d.ts +66 -0
  188. package/build/server/platform/transports/work-delivery/actionTokens.d.ts.map +1 -0
  189. package/build/server/platform/transports/work-delivery/actionTokens.js +145 -0
  190. package/build/server/platform/transports/work-delivery/actionTokens.js.map +1 -0
  191. package/build/server/platform/transports/work-delivery/contracts.d.ts +172 -0
  192. package/build/server/platform/transports/work-delivery/contracts.d.ts.map +1 -0
  193. package/build/server/platform/transports/work-delivery/contracts.js +26 -0
  194. package/build/server/platform/transports/work-delivery/contracts.js.map +1 -0
  195. package/build/server/platform/transports/work-delivery/deliveryGates.d.ts +32 -0
  196. package/build/server/platform/transports/work-delivery/deliveryGates.d.ts.map +1 -0
  197. package/build/server/platform/transports/work-delivery/deliveryGates.js +45 -0
  198. package/build/server/platform/transports/work-delivery/deliveryGates.js.map +1 -0
  199. package/build/server/platform/transports/work-delivery/inboundClassification.d.ts +31 -0
  200. package/build/server/platform/transports/work-delivery/inboundClassification.d.ts.map +1 -0
  201. package/build/server/platform/transports/work-delivery/inboundClassification.js +52 -0
  202. package/build/server/platform/transports/work-delivery/inboundClassification.js.map +1 -0
  203. package/build/server/platform/transports/work-delivery/outbox.d.ts +84 -0
  204. package/build/server/platform/transports/work-delivery/outbox.d.ts.map +1 -0
  205. package/build/server/platform/transports/work-delivery/outbox.js +270 -0
  206. package/build/server/platform/transports/work-delivery/outbox.js.map +1 -0
  207. package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts +57 -0
  208. package/build/server/platform/transports/work-delivery/permissionEnvelope.d.ts.map +1 -0
  209. package/build/server/platform/transports/work-delivery/permissionEnvelope.js +74 -0
  210. package/build/server/platform/transports/work-delivery/permissionEnvelope.js.map +1 -0
  211. package/build/server/platform/transports/work-delivery/port.d.ts +60 -0
  212. package/build/server/platform/transports/work-delivery/port.d.ts.map +1 -0
  213. package/build/server/platform/transports/work-delivery/port.js +15 -0
  214. package/build/server/platform/transports/work-delivery/port.js.map +1 -0
  215. package/build/server/platform/transports/work-delivery/proposal.d.ts +31 -0
  216. package/build/server/platform/transports/work-delivery/proposal.d.ts.map +1 -0
  217. package/build/server/platform/transports/work-delivery/proposal.js +59 -0
  218. package/build/server/platform/transports/work-delivery/proposal.js.map +1 -0
  219. package/build/server/platform/transports/work-delivery/readiness.d.ts +61 -0
  220. package/build/server/platform/transports/work-delivery/readiness.d.ts.map +1 -0
  221. package/build/server/platform/transports/work-delivery/readiness.js +123 -0
  222. package/build/server/platform/transports/work-delivery/readiness.js.map +1 -0
  223. package/build/server/platform/transports/work-delivery/stageProjection.d.ts +43 -0
  224. package/build/server/platform/transports/work-delivery/stageProjection.d.ts.map +1 -0
  225. package/build/server/platform/transports/work-delivery/stageProjection.js +132 -0
  226. package/build/server/platform/transports/work-delivery/stageProjection.js.map +1 -0
  227. package/build/server/platform/transports/work-delivery/stateStore.d.ts +21 -0
  228. package/build/server/platform/transports/work-delivery/stateStore.d.ts.map +1 -0
  229. package/build/server/platform/transports/work-delivery/stateStore.js +193 -0
  230. package/build/server/platform/transports/work-delivery/stateStore.js.map +1 -0
  231. package/build/server/platform/transports/work-delivery/telemetry.d.ts +49 -0
  232. package/build/server/platform/transports/work-delivery/telemetry.d.ts.map +1 -0
  233. package/build/server/platform/transports/work-delivery/telemetry.js +80 -0
  234. package/build/server/platform/transports/work-delivery/telemetry.js.map +1 -0
  235. package/build/server/products/chat/api/contracts.d.ts +10 -0
  236. package/build/server/products/chat/api/contracts.d.ts.map +1 -1
  237. package/build/server/products/chat/api/resources/channelRoutes.d.ts.map +1 -1
  238. package/build/server/products/chat/api/resources/channelRoutes.js +27 -1
  239. package/build/server/products/chat/api/resources/channelRoutes.js.map +1 -1
  240. package/build/server/products/chat/api/routeSupport.d.ts +8 -0
  241. package/build/server/products/chat/api/routeSupport.d.ts.map +1 -1
  242. package/build/server/products/chat/api/routeSupport.js +5 -4
  243. package/build/server/products/chat/api/routeSupport.js.map +1 -1
  244. package/build/server/products/chat/api/setupRoutes.d.ts.map +1 -1
  245. package/build/server/products/chat/api/setupRoutes.js +23 -8
  246. package/build/server/products/chat/api/setupRoutes.js.map +1 -1
  247. package/build/server/products/chat/state/model/channelExecutionTargets.d.ts +15 -0
  248. package/build/server/products/chat/state/model/channelExecutionTargets.d.ts.map +1 -1
  249. package/build/server/products/chat/state/model/channelExecutionTargets.js +25 -0
  250. package/build/server/products/chat/state/model/channelExecutionTargets.js.map +1 -1
  251. package/build/server/products/chat/state/model/index.d.ts +1 -1
  252. package/build/server/products/chat/state/model/index.d.ts.map +1 -1
  253. package/build/server/products/chat/state/model/index.js +1 -1
  254. package/build/server/products/chat/state/model/index.js.map +1 -1
  255. package/build/server/products/code/api/relayRoutes.d.ts.map +1 -1
  256. package/build/server/products/code/api/relayRoutes.js +36 -7
  257. package/build/server/products/code/api/relayRoutes.js.map +1 -1
  258. package/build/server/products/code/state/relayState.d.ts +2 -1
  259. package/build/server/products/code/state/relayState.d.ts.map +1 -1
  260. package/build/server/products/code/state/relayState.js +7 -7
  261. package/build/server/products/code/state/relayState.js.map +1 -1
  262. package/build/server/products/shared/api/workspaceContracts.d.ts +5 -0
  263. package/build/server/products/shared/api/workspaceContracts.d.ts.map +1 -1
  264. package/build/server/products/work/api/goldenPathProjection.d.ts +156 -0
  265. package/build/server/products/work/api/goldenPathProjection.d.ts.map +1 -0
  266. package/build/server/products/work/api/goldenPathProjection.js +252 -0
  267. package/build/server/products/work/api/goldenPathProjection.js.map +1 -0
  268. package/build/server/products/work/api/index.d.ts +54 -1
  269. package/build/server/products/work/api/index.d.ts.map +1 -1
  270. package/build/server/products/work/api/index.js +182 -4
  271. package/build/server/products/work/api/index.js.map +1 -1
  272. package/build/server/products/work/api/projection.d.ts +7 -1
  273. package/build/server/products/work/api/projection.d.ts.map +1 -1
  274. package/build/server/products/work/api/projection.js +7 -1
  275. package/build/server/products/work/api/projection.js.map +1 -1
  276. package/build/server/products/work/shared/apiPaths.d.ts +8 -0
  277. package/build/server/products/work/shared/apiPaths.d.ts.map +1 -1
  278. package/build/server/products/work/shared/apiPaths.js +8 -0
  279. package/build/server/products/work/shared/apiPaths.js.map +1 -1
  280. package/build/server/products/work/shared/workGoldenPathMessages.d.ts +83 -0
  281. package/build/server/products/work/shared/workGoldenPathMessages.d.ts.map +1 -0
  282. package/build/server/products/work/shared/workGoldenPathMessages.js +211 -0
  283. package/build/server/products/work/shared/workGoldenPathMessages.js.map +1 -0
  284. package/build/server/products/work/shared/workGoldenPathMetadata.d.ts +45 -0
  285. package/build/server/products/work/shared/workGoldenPathMetadata.d.ts.map +1 -0
  286. package/build/server/products/work/shared/workGoldenPathMetadata.js +122 -0
  287. package/build/server/products/work/shared/workGoldenPathMetadata.js.map +1 -0
  288. package/build/server/products/work/state/workCompletionEvidence.d.ts +42 -0
  289. package/build/server/products/work/state/workCompletionEvidence.d.ts.map +1 -0
  290. package/build/server/products/work/state/workCompletionEvidence.js +59 -0
  291. package/build/server/products/work/state/workCompletionEvidence.js.map +1 -0
  292. package/build/server/products/work/state/workExecutionTaskDelegate.d.ts +16 -0
  293. package/build/server/products/work/state/workExecutionTaskDelegate.d.ts.map +1 -1
  294. package/build/server/products/work/state/workExecutionTaskDelegate.js +91 -68
  295. package/build/server/products/work/state/workExecutionTaskDelegate.js.map +1 -1
  296. package/build/server/products/work/state/workGoldenPathAdmission.d.ts +78 -0
  297. package/build/server/products/work/state/workGoldenPathAdmission.d.ts.map +1 -0
  298. package/build/server/products/work/state/workGoldenPathAdmission.js +249 -0
  299. package/build/server/products/work/state/workGoldenPathAdmission.js.map +1 -0
  300. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts +33 -0
  301. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.d.ts.map +1 -0
  302. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js +161 -0
  303. package/build/server/products/work/state/workGoldenPathDeliveryEvidence.js.map +1 -0
  304. package/build/server/products/work/state/workGoldenPathIntake.d.ts +34 -0
  305. package/build/server/products/work/state/workGoldenPathIntake.d.ts.map +1 -0
  306. package/build/server/products/work/state/workGoldenPathIntake.js +50 -0
  307. package/build/server/products/work/state/workGoldenPathIntake.js.map +1 -0
  308. package/build/server/products/work/state/workGoldenPathLifecycle.d.ts +44 -0
  309. package/build/server/products/work/state/workGoldenPathLifecycle.d.ts.map +1 -0
  310. package/build/server/products/work/state/workGoldenPathLifecycle.js +146 -0
  311. package/build/server/products/work/state/workGoldenPathLifecycle.js.map +1 -0
  312. package/build/server/products/work/state/workGoldenPathPublish.d.ts +84 -0
  313. package/build/server/products/work/state/workGoldenPathPublish.d.ts.map +1 -0
  314. package/build/server/products/work/state/workGoldenPathPublish.js +488 -0
  315. package/build/server/products/work/state/workGoldenPathPublish.js.map +1 -0
  316. package/build/server/products/work/state/workGoldenPathRunner.d.ts +121 -0
  317. package/build/server/products/work/state/workGoldenPathRunner.d.ts.map +1 -0
  318. package/build/server/products/work/state/workGoldenPathRunner.js +447 -0
  319. package/build/server/products/work/state/workGoldenPathRunner.js.map +1 -0
  320. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts +74 -0
  321. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.d.ts.map +1 -0
  322. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js +239 -0
  323. package/build/server/products/work/state/workGoldenPathRuntimeExecutor.js.map +1 -0
  324. package/build/server/products/work/state/workGoldenPathService.d.ts +152 -0
  325. package/build/server/products/work/state/workGoldenPathService.d.ts.map +1 -0
  326. package/build/server/products/work/state/workGoldenPathService.js +1057 -0
  327. package/build/server/products/work/state/workGoldenPathService.js.map +1 -0
  328. package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts +87 -0
  329. package/build/server/products/work/state/workGoldenPathTelegramPort.d.ts.map +1 -0
  330. package/build/server/products/work/state/workGoldenPathTelegramPort.js +220 -0
  331. package/build/server/products/work/state/workGoldenPathTelegramPort.js.map +1 -0
  332. package/build/server/runtime/client.d.ts +13 -0
  333. package/build/server/runtime/client.d.ts.map +1 -1
  334. package/build/server/runtime/client.js +39 -0
  335. package/build/server/runtime/client.js.map +1 -1
  336. package/build/server/runtime/setup.d.ts +10 -4
  337. package/build/server/runtime/setup.d.ts.map +1 -1
  338. package/build/server/runtime/setup.js +14 -18
  339. package/build/server/runtime/setup.js.map +1 -1
  340. package/build/server/runtime/usageSnapshot.d.ts +3 -0
  341. package/build/server/runtime/usageSnapshot.d.ts.map +1 -0
  342. package/build/server/runtime/usageSnapshot.js +69 -0
  343. package/build/server/runtime/usageSnapshot.js.map +1 -0
  344. package/build/server/server/routes/providerCapabilityBootstrap.d.ts +69 -0
  345. package/build/server/server/routes/providerCapabilityBootstrap.d.ts.map +1 -0
  346. package/build/server/server/routes/providerCapabilityBootstrap.js +165 -0
  347. package/build/server/server/routes/providerCapabilityBootstrap.js.map +1 -0
  348. package/build/server/server/routes/providers.d.ts.map +1 -1
  349. package/build/server/server/routes/providers.js +112 -81
  350. package/build/server/server/routes/providers.js.map +1 -1
  351. package/build/server/server/routes/telegram.d.ts +9 -0
  352. package/build/server/server/routes/telegram.d.ts.map +1 -1
  353. package/build/server/server/routes/telegram.js +79 -72
  354. package/build/server/server/routes/telegram.js.map +1 -1
  355. package/build/server/shared/catsAppManifest.d.ts +3 -1
  356. package/build/server/shared/catsAppManifest.d.ts.map +1 -1
  357. package/build/server/shared/catsAppManifest.js +2 -0
  358. package/build/server/shared/catsAppManifest.js.map +1 -1
  359. package/build/server/shared/executionLabel.d.ts.map +1 -1
  360. package/build/server/shared/executionLabel.js +8 -1
  361. package/build/server/shared/executionLabel.js.map +1 -1
  362. package/build/server/shared/i18n/catalogs/en.d.ts.map +1 -1
  363. package/build/server/shared/i18n/catalogs/en.js +198 -3
  364. package/build/server/shared/i18n/catalogs/en.js.map +1 -1
  365. package/build/server/shared/i18n/catalogs/zh-TW.d.ts.map +1 -1
  366. package/build/server/shared/i18n/catalogs/zh-TW.js +197 -3
  367. package/build/server/shared/i18n/catalogs/zh-TW.js.map +1 -1
  368. package/build/server/shared/i18n/index.d.ts +192 -0
  369. package/build/server/shared/i18n/index.d.ts.map +1 -1
  370. package/build/server/shared/i18n/messageKeys.d.ts +192 -0
  371. package/build/server/shared/i18n/messageKeys.d.ts.map +1 -1
  372. package/build/server/shared/i18n/messageKeys.js +192 -0
  373. package/build/server/shared/i18n/messageKeys.js.map +1 -1
  374. package/build/server/shared/platformSetupOperation.d.ts +2 -0
  375. package/build/server/shared/platformSetupOperation.d.ts.map +1 -0
  376. package/build/server/shared/platformSetupOperation.js +9 -0
  377. package/build/server/shared/platformSetupOperation.js.map +1 -0
  378. package/build/server/shared/providerCatalog.d.ts +5 -2
  379. package/build/server/shared/providerCatalog.d.ts.map +1 -1
  380. package/build/server/shared/providerCatalog.js +6 -0
  381. package/build/server/shared/providerCatalog.js.map +1 -1
  382. package/build/server/shared/providerCatalogData.d.ts +28 -22
  383. package/build/server/shared/providerCatalogData.d.ts.map +1 -1
  384. package/build/server/shared/providerCatalogData.js +22 -10
  385. package/build/server/shared/providerCatalogData.js.map +1 -1
  386. package/build/server/shared/providerCatalogInstances.d.ts.map +1 -1
  387. package/build/server/shared/providerCatalogInstances.js +3 -0
  388. package/build/server/shared/providerCatalogInstances.js.map +1 -1
  389. package/build/server/shared/providerModelLabelRegistry.d.ts +29 -0
  390. package/build/server/shared/providerModelLabelRegistry.d.ts.map +1 -0
  391. package/build/server/shared/providerModelLabelRegistry.js +49 -0
  392. package/build/server/shared/providerModelLabelRegistry.js.map +1 -0
  393. package/build/server/shared/providerSelection.d.ts.map +1 -1
  394. package/build/server/shared/providerSelection.js +10 -13
  395. package/build/server/shared/providerSelection.js.map +1 -1
  396. package/build/server/shared/runtimeSetup.d.ts +17 -4
  397. package/build/server/shared/runtimeSetup.d.ts.map +1 -1
  398. package/build/server/shared/runtimeStatusPresentation.js +1 -1
  399. package/build/server/shared/runtimeStatusPresentation.js.map +1 -1
  400. package/package.json +23 -1
  401. package/packages/app-sdk/browser.d.ts +51 -0
  402. package/packages/app-sdk/browser.js +48 -0
  403. package/packages/app-sdk/package.d.ts +14 -0
  404. package/packages/app-sdk/package.js +131 -0
  405. package/packages/app-sdk/package.json +7 -0
  406. package/scripts/README.md +43 -26
  407. package/scripts/build-desktop-installer.mjs +15 -0
  408. package/scripts/build-test-ui.mjs +1 -1
  409. package/scripts/bundle-server.mjs +23 -10
  410. package/scripts/linux/build-desktop-package.sh +6 -6
  411. package/scripts/linux/install-antigravity.sh +0 -0
  412. package/scripts/linux/install-devin.sh +0 -0
  413. package/scripts/linux/install-meta-cli.sh +8 -0
  414. package/scripts/linux/provider-cli-common.sh +103 -30
  415. package/scripts/linux/sync-agent-skills.sh +27 -5
  416. package/scripts/linux/test-linux-package-smoke.sh +4 -3
  417. package/scripts/linux/upgrade-cli-tools.sh +1 -1
  418. package/scripts/macos/build-desktop-package.sh +5 -5
  419. package/scripts/macos/install-antigravity.sh +0 -0
  420. package/scripts/macos/install-devin.sh +0 -0
  421. package/scripts/macos/install-meta-cli.sh +8 -0
  422. package/scripts/macos/provider-cli-common.sh +103 -30
  423. package/scripts/macos/sync-agent-skills.sh +27 -5
  424. package/scripts/macos/test-macos-package-smoke.sh +4 -3
  425. package/scripts/macos/upgrade-cli-tools.sh +1 -1
  426. package/scripts/package-desktop.mjs +15 -2
  427. package/scripts/testing/check-usage-app.mts +266 -0
  428. package/scripts/testing/usage-app-smoke-electron.cjs +10 -0
  429. package/scripts/testing/usage-app-smoke-renderer.tsx +8 -0
  430. package/scripts/verify-desktop-app-bundle.mjs +108 -0
  431. package/scripts/windows/Build-DesktopPackage.ps1 +9 -6
  432. package/scripts/windows/{Install-Aider.ps1 → Install-MetaCli.ps1} +180 -92
  433. package/scripts/windows/Install-Ollama.ps1 +4 -1
  434. package/scripts/windows/Sync-AgentSkills.ps1 +29 -6
  435. package/scripts/windows/Test-WindowsInstallerSmoke.ps1 +2 -1
  436. package/build/desktop/updateNotifications.d.ts +0 -64
  437. package/build/desktop/updateNotifications.d.ts.map +0 -1
  438. package/build/desktop/updateNotifications.js +0 -143
  439. package/build/desktop/updateNotifications.js.map +0 -1
  440. package/build/renderer/assets/App-BfOvMP2m.js +0 -1
  441. package/build/renderer/assets/App-DGwkRFZl.css +0 -1
  442. package/build/renderer/assets/App-DWd7I3Z2.js +0 -2
  443. package/build/renderer/assets/WorkspaceAppRoutes-CrbTA9En.js +0 -1
  444. package/build/renderer/assets/app-BTww3Hl4.js +0 -43
  445. package/build/renderer/assets/app-CPxWQwLA.css +0 -1
  446. package/build/renderer/assets/conversationSidebarRecentEntries-QuaOPxCb.js +0 -6
  447. package/scripts/linux/install-aider.sh +0 -8
  448. package/scripts/macos/install-aider.sh +0 -8
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Owner-visible message rendering for the golden path (SPEC-114 FR-15, FR-27,
3
+ * FR-34, FR-37, FR-44).
4
+ *
5
+ * One rule governs everything here: a payload may contain a summary and
6
+ * *safely transportable references* only. Local filesystem paths, credentials,
7
+ * and raw provider output never appear, because Telegram cannot act on them and
8
+ * putting them in a chat message leaks the operator's machine layout.
9
+ *
10
+ * Text is localized at render time rather than at send time, so the durable
11
+ * outbox row holds exactly what the owner will read and a retry after a restart
12
+ * cannot silently change language.
13
+ */
14
+ import type { CoreDeliveryGate, CoreDeliveryMode } from '../../../core/types.js';
15
+ import { createTranslator, type MessageKey } from '../../../shared/i18n/index.js';
16
+ import type { TransportWorkAction, TransportWorkDeliveryPayload, TransportWorkPayloadAction, TransportWorkProposalV1, TransportWorkReadiness, TransportWorkReadinessReason } from '../../../platform/transports/work-delivery/contracts.js';
17
+ import type { WorkCompletionEvidenceResult } from '../state/workCompletionEvidence.js';
18
+ export type WorkGoldenPathTranslator = ReturnType<typeof createTranslator>;
19
+ export declare function createWorkGoldenPathTranslator(locale: string | null): WorkGoldenPathTranslator;
20
+ export declare const READINESS_REASON_KEYS: Record<TransportWorkReadinessReason, MessageKey>;
21
+ export declare const DELIVERY_MODE_KEYS: Record<CoreDeliveryMode, MessageKey>;
22
+ export declare function describeDeliverySideEffectsLocalized(t: WorkGoldenPathTranslator, mode: CoreDeliveryMode): string;
23
+ export declare function localizeTransportWorkAction(t: WorkGoldenPathTranslator, action: TransportWorkAction): string;
24
+ /**
25
+ * Authenticated Desktop entry point for a work item.
26
+ *
27
+ * A route, never a filesystem path: the Desktop host resolves it against the
28
+ * owner's session, so it carries no authority on its own.
29
+ */
30
+ export declare function buildWorkGoldenPathDeepLink(workItemId: string): string;
31
+ export declare function renderAcceptedMessage(input: {
32
+ t: WorkGoldenPathTranslator;
33
+ workItemId: string;
34
+ goal: string;
35
+ }): TransportWorkDeliveryPayload;
36
+ export declare function renderNotReadyMessage(input: {
37
+ t: WorkGoldenPathTranslator;
38
+ readiness: TransportWorkReadiness;
39
+ }): TransportWorkDeliveryPayload;
40
+ export declare function renderProposalMessage(input: {
41
+ t: WorkGoldenPathTranslator;
42
+ workItemId: string;
43
+ proposal: TransportWorkProposalV1;
44
+ actions: readonly TransportWorkPayloadAction[];
45
+ }): TransportWorkDeliveryPayload;
46
+ export declare function renderProgressMessage(input: {
47
+ t: WorkGoldenPathTranslator;
48
+ workItemId: string;
49
+ stageKey: MessageKey;
50
+ milestoneKey: MessageKey;
51
+ }): TransportWorkDeliveryPayload;
52
+ export declare function renderDecisionMessage(input: {
53
+ t: WorkGoldenPathTranslator;
54
+ workItemId: string;
55
+ reason: string;
56
+ consequence: string;
57
+ }): TransportWorkDeliveryPayload;
58
+ export declare function renderResultMessage(input: {
59
+ t: WorkGoldenPathTranslator;
60
+ workItemId: string;
61
+ proposal: TransportWorkProposalV1;
62
+ summary: string;
63
+ evidence: WorkCompletionEvidenceResult;
64
+ commitId: string | null;
65
+ artifactTitle: string | null;
66
+ outstandingGates: readonly CoreDeliveryGate[];
67
+ /** Inline decision actions, when the result still needs one (FR-41). */
68
+ actions?: readonly TransportWorkPayloadAction[];
69
+ }): TransportWorkDeliveryPayload;
70
+ export declare function renderRefusalMessage(input: {
71
+ t: WorkGoldenPathTranslator;
72
+ reasonKey: MessageKey;
73
+ values?: Record<string, string>;
74
+ }): TransportWorkDeliveryPayload;
75
+ /**
76
+ * Last line of defence before a payload reaches a transport.
77
+ *
78
+ * The renderers above are careful, but "careful" is not a guarantee once a
79
+ * summary can come from a provider. This rejects the two classes of content
80
+ * that must never leave the host.
81
+ */
82
+ export declare function assertSafeTransportPayload(payload: TransportWorkDeliveryPayload): void;
83
+ //# sourceMappingURL=workGoldenPathMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workGoldenPathMessages.d.ts","sourceRoot":"","sources":["../../../../../src/products/work/shared/workGoldenPathMessages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Owner-visible message rendering for the golden path (SPEC-114 FR-15, FR-27,
3
+ * FR-34, FR-37, FR-44).
4
+ *
5
+ * One rule governs everything here: a payload may contain a summary and
6
+ * *safely transportable references* only. Local filesystem paths, credentials,
7
+ * and raw provider output never appear, because Telegram cannot act on them and
8
+ * putting them in a chat message leaks the operator's machine layout.
9
+ *
10
+ * Text is localized at render time rather than at send time, so the durable
11
+ * outbox row holds exactly what the owner will read and a retry after a restart
12
+ * cannot silently change language.
13
+ */
14
+ import { createTranslator, messageKeys, normalizeMessageLocale, } from '../../../shared/i18n/index.js';
15
+ /** Cap so one message cannot become a transcript dump. */
16
+ const MAX_SUMMARY_CHARS = 600;
17
+ export function createWorkGoldenPathTranslator(locale) {
18
+ return createTranslator(normalizeMessageLocale(locale));
19
+ }
20
+ function truncate(value, limit = MAX_SUMMARY_CHARS) {
21
+ const trimmed = value.trim();
22
+ return trimmed.length <= limit ? trimmed : `${trimmed.slice(0, limit - 1)}…`;
23
+ }
24
+ export const READINESS_REASON_KEYS = {
25
+ binding_disabled: messageKeys.workDeliveryReadinessBindingDisabled,
26
+ binding_unhealthy: messageKeys.workDeliveryReadinessBindingUnhealthy,
27
+ owner_not_authorized: messageKeys.workDeliveryReadinessOwnerNotAuthorized,
28
+ cat_not_bound: messageKeys.workDeliveryReadinessCatNotBound,
29
+ execution_target_missing: messageKeys.workDeliveryReadinessExecutionTargetMissing,
30
+ capability_profile_missing: messageKeys.workDeliveryReadinessCapabilityProfileMissing,
31
+ workspace_missing: messageKeys.workDeliveryReadinessWorkspaceMissing,
32
+ workspace_unreachable: messageKeys.workDeliveryReadinessWorkspaceUnreachable,
33
+ workspace_not_a_repository: messageKeys.workDeliveryReadinessWorkspaceNotARepository,
34
+ workspace_not_clean: messageKeys.workDeliveryReadinessWorkspaceNotClean,
35
+ delivery_policy_unresolved: messageKeys.workDeliveryReadinessDeliveryPolicyUnresolved,
36
+ background_service_unavailable: messageKeys.workDeliveryReadinessBackgroundServiceUnavailable,
37
+ };
38
+ export const DELIVERY_MODE_KEYS = {
39
+ artifact_only: messageKeys.sharedOperatorDeliveryModeArtifactOnly,
40
+ commit_only: messageKeys.sharedOperatorDeliveryModeCommitOnly,
41
+ push_branch: messageKeys.sharedOperatorDeliveryModePushBranch,
42
+ pr_with_checks: messageKeys.sharedOperatorDeliveryModePrWithChecks,
43
+ deploy_preview: messageKeys.sharedOperatorDeliveryModeDeployPreview,
44
+ };
45
+ const DELIVERY_GATE_KEYS = {
46
+ manual_review_required: messageKeys.sharedOperatorGateManualReviewRequired,
47
+ owner_approval_required: messageKeys.sharedOperatorGateOwnerApprovalRequired,
48
+ publish_artifact_required: messageKeys.sharedOperatorGatePublishArtifactRequired,
49
+ };
50
+ const SIDE_EFFECT_KEYS = {
51
+ artifact_only: messageKeys.workDeliverySideEffectsArtifactOnly,
52
+ commit_only: messageKeys.workDeliverySideEffectsCommitOnly,
53
+ push_branch: messageKeys.workDeliverySideEffectsPushBranch,
54
+ pr_with_checks: messageKeys.workDeliverySideEffectsPrWithChecks,
55
+ deploy_preview: messageKeys.workDeliverySideEffectsDeployPreview,
56
+ };
57
+ const ACTION_LABEL_KEYS = {
58
+ start_work: messageKeys.workDeliveryActionStartWork,
59
+ cancel: messageKeys.workDeliveryActionCancel,
60
+ };
61
+ export function describeDeliverySideEffectsLocalized(t, mode) {
62
+ return t(SIDE_EFFECT_KEYS[mode]);
63
+ }
64
+ export function localizeTransportWorkAction(t, action) {
65
+ const key = ACTION_LABEL_KEYS[action];
66
+ return key ? t(key) : action;
67
+ }
68
+ /**
69
+ * Authenticated Desktop entry point for a work item.
70
+ *
71
+ * A route, never a filesystem path: the Desktop host resolves it against the
72
+ * owner's session, so it carries no authority on its own.
73
+ */
74
+ export function buildWorkGoldenPathDeepLink(workItemId) {
75
+ return `cats://work/items/${encodeURIComponent(workItemId)}`;
76
+ }
77
+ function renderGates(t, gates) {
78
+ return gates.length === 0
79
+ ? t(messageKeys.workDeliveryValueNone)
80
+ : gates.map((gate) => t(DELIVERY_GATE_KEYS[gate])).join(', ');
81
+ }
82
+ export function renderAcceptedMessage(input) {
83
+ return {
84
+ text: [
85
+ input.t(messageKeys.workDeliveryAcceptedTitle, { goal: truncate(input.goal, 160) }),
86
+ input.t(messageKeys.workDeliveryAcceptedBody),
87
+ ].join('\n'),
88
+ deepLink: buildWorkGoldenPathDeepLink(input.workItemId),
89
+ actions: [],
90
+ };
91
+ }
92
+ export function renderNotReadyMessage(input) {
93
+ return {
94
+ text: [
95
+ input.t(messageKeys.workDeliveryNotReadyTitle),
96
+ ...input.readiness.blockers.map((blocker) => `- ${input.t(READINESS_REASON_KEYS[blocker.reason])}`),
97
+ input.t(messageKeys.workDeliveryNotReadyFooter),
98
+ ].join('\n'),
99
+ deepLink: null,
100
+ actions: [],
101
+ };
102
+ }
103
+ export function renderProposalMessage(input) {
104
+ const { t, proposal } = input;
105
+ const lines = [
106
+ t(messageKeys.workDeliveryProposalTitle, { revision: String(proposal.revision) }),
107
+ t(messageKeys.workDeliveryProposalGoal, { goal: truncate(proposal.goal, 200) }),
108
+ // The label, not the workspace path: FR-44.
109
+ t(messageKeys.workDeliveryProposalTarget, { target: proposal.targetLabel }),
110
+ t(messageKeys.workDeliveryProposalDoneWhen, {
111
+ criteria: proposal.acceptanceCriteria.join('; ')
112
+ || t(messageKeys.workDeliveryValueNotSpecified),
113
+ }),
114
+ t(messageKeys.workDeliveryProposalDelivery, {
115
+ mode: t(DELIVERY_MODE_KEYS[proposal.deliveryMode]),
116
+ }),
117
+ t(messageKeys.workDeliveryProposalSideEffects, {
118
+ effects: proposal.sideEffects.join(' ') || t(messageKeys.workDeliveryValueNone),
119
+ }),
120
+ t(messageKeys.workDeliveryProposalGates, { gates: renderGates(t, proposal.deliveryGates) }),
121
+ ];
122
+ if (proposal.openQuestion !== null) {
123
+ lines.push(t(messageKeys.workDeliveryProposalQuestion, { question: proposal.openQuestion }));
124
+ }
125
+ lines.push(t(messageKeys.workDeliveryProposalConfirm));
126
+ return {
127
+ text: lines.join('\n'),
128
+ deepLink: buildWorkGoldenPathDeepLink(input.workItemId),
129
+ actions: [...input.actions],
130
+ };
131
+ }
132
+ export function renderProgressMessage(input) {
133
+ return {
134
+ text: input.t(messageKeys.workDeliveryProgress, {
135
+ stage: input.t(input.stageKey),
136
+ milestone: input.t(input.milestoneKey),
137
+ }),
138
+ deepLink: buildWorkGoldenPathDeepLink(input.workItemId),
139
+ actions: [],
140
+ };
141
+ }
142
+ export function renderDecisionMessage(input) {
143
+ return {
144
+ text: [
145
+ input.t(messageKeys.workDeliveryDecisionTitle),
146
+ input.t(messageKeys.workDeliveryDecisionReason, { reason: truncate(input.reason, 240) }),
147
+ input.t(messageKeys.workDeliveryDecisionConsequence, {
148
+ consequence: truncate(input.consequence, 240),
149
+ }),
150
+ ].join('\n'),
151
+ deepLink: buildWorkGoldenPathDeepLink(input.workItemId),
152
+ actions: [],
153
+ };
154
+ }
155
+ export function renderResultMessage(input) {
156
+ const { t } = input;
157
+ const lines = [
158
+ t(messageKeys.workDeliveryResultTitle, { goal: truncate(input.proposal.goal, 160) }),
159
+ truncate(input.summary),
160
+ t(messageKeys.workDeliveryProposalDelivery, {
161
+ mode: t(DELIVERY_MODE_KEYS[input.proposal.deliveryMode]),
162
+ }),
163
+ ];
164
+ if (input.commitId !== null) {
165
+ lines.push(t(messageKeys.workDeliveryResultCommit, { commitId: input.commitId }));
166
+ }
167
+ if (input.artifactTitle !== null) {
168
+ // The title and the Desktop link, never the artifact's local path.
169
+ lines.push(t(messageKeys.workDeliveryResultArtifact, { title: input.artifactTitle }));
170
+ }
171
+ lines.push(input.evidence.accepted
172
+ ? t(messageKeys.workDeliveryResultAcceptanceMet)
173
+ : t(messageKeys.workDeliveryResultAcceptanceUnmet, {
174
+ gaps: input.evidence.gaps.join(', '),
175
+ }));
176
+ if (input.outstandingGates.length > 0) {
177
+ lines.push(t(messageKeys.workDeliveryResultWaitingOn, {
178
+ gates: renderGates(t, input.outstandingGates),
179
+ }));
180
+ }
181
+ return {
182
+ text: lines.join('\n'),
183
+ deepLink: buildWorkGoldenPathDeepLink(input.workItemId),
184
+ actions: [...(input.actions ?? [])],
185
+ };
186
+ }
187
+ export function renderRefusalMessage(input) {
188
+ return {
189
+ text: input.t(input.reasonKey, input.values),
190
+ deepLink: null,
191
+ actions: [],
192
+ };
193
+ }
194
+ /**
195
+ * Last line of defence before a payload reaches a transport.
196
+ *
197
+ * The renderers above are careful, but "careful" is not a guarantee once a
198
+ * summary can come from a provider. This rejects the two classes of content
199
+ * that must never leave the host.
200
+ */
201
+ export function assertSafeTransportPayload(payload) {
202
+ const unsafePath = /(^|\s)(\/(Users|home|var|tmp|etc)\/|[A-Za-z]:\\)/u;
203
+ if (unsafePath.test(payload.text)) {
204
+ throw new Error('Refusing to send a transport payload containing a local filesystem path.');
205
+ }
206
+ const secretLike = /\b(bot[_-]?token|api[_-]?key|secret|bearer\s+[\w.-]{10,})\b/iu;
207
+ if (secretLike.test(payload.text)) {
208
+ throw new Error('Refusing to send a transport payload containing credential-like content.');
209
+ }
210
+ }
211
+ //# sourceMappingURL=workGoldenPathMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workGoldenPathMessages.js","sourceRoot":"","sources":["../../../../../src/products/work/shared/workGoldenPathMessages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Additive golden-path metadata on existing Cats Core records.
3
+ *
4
+ * ADR-112 section 1 forbids a new Core record family for this slice, so source
5
+ * provenance and the versioned proposal ride along in `metadata` on the Work
6
+ * Item that already owns them. Reading is defensive: metadata is untyped by
7
+ * construction, and a partially-written envelope must degrade to "no proposal"
8
+ * rather than throw somewhere deep in a transport handler.
9
+ */
10
+ import type { CoreRecordMetadata } from '../../../core/types.js';
11
+ import type { TransportWorkOriginV1, TransportWorkProposalV1 } from '../../../platform/transports/work-delivery/contracts.js';
12
+ export declare const WORK_GOLDEN_PATH_METADATA_KEY = "workGoldenPath";
13
+ export declare const WORK_GOLDEN_PATH_METADATA_VERSION = 1;
14
+ export interface WorkGoldenPathMetadata {
15
+ schemaVersion: number;
16
+ origin: TransportWorkOriginV1 | null;
17
+ proposal: TransportWorkProposalV1 | null;
18
+ /**
19
+ * The locale the owner was speaking at intake.
20
+ *
21
+ * Kept beside the origin rather than inside it so `TransportWorkOriginV1`
22
+ * stays the shape SPEC-114 specifies, while later messages (progress, result)
23
+ * can still be rendered in the language the request arrived in.
24
+ */
25
+ locale: string | null;
26
+ /**
27
+ * The external user that authorized this work.
28
+ *
29
+ * Kept so a later action token (publish, deny) can be bound to the same
30
+ * person without guessing that a chat reference identifies a user.
31
+ */
32
+ externalUserRef: string | null;
33
+ }
34
+ export declare function readWorkGoldenPathMetadata(metadata: CoreRecordMetadata | unknown): WorkGoldenPathMetadata | null;
35
+ /**
36
+ * Merges golden-path provenance into an existing metadata bag without
37
+ * disturbing sibling envelopes such as `workIntake`.
38
+ */
39
+ export declare function writeWorkGoldenPathMetadata(metadata: CoreRecordMetadata | undefined, input: {
40
+ origin: TransportWorkOriginV1;
41
+ proposal: TransportWorkProposalV1;
42
+ locale: string | null;
43
+ externalUserRef: string;
44
+ }): CoreRecordMetadata;
45
+ //# sourceMappingURL=workGoldenPathMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workGoldenPathMetadata.d.ts","sourceRoot":"","sources":["../../../../../src/products/work/shared/workGoldenPathMetadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAsC,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,yDAAyD,CAAC;AAEjE,eAAO,MAAM,6BAA6B,mBAAmB,CAAC;AAE9D,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACzC;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAuFD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,GACrC,sBAAsB,GAAG,IAAI,CAiB/B;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,EACxC,KAAK,EAAE;IACL,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB,GACA,kBAAkB,CAWpB"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Additive golden-path metadata on existing Cats Core records.
3
+ *
4
+ * ADR-112 section 1 forbids a new Core record family for this slice, so source
5
+ * provenance and the versioned proposal ride along in `metadata` on the Work
6
+ * Item that already owns them. Reading is defensive: metadata is untyped by
7
+ * construction, and a partially-written envelope must degrade to "no proposal"
8
+ * rather than throw somewhere deep in a transport handler.
9
+ */
10
+ export const WORK_GOLDEN_PATH_METADATA_KEY = 'workGoldenPath';
11
+ export const WORK_GOLDEN_PATH_METADATA_VERSION = 1;
12
+ function isRecord(value) {
13
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
14
+ }
15
+ function readString(value) {
16
+ return typeof value === 'string' && value.trim() !== '' ? value : null;
17
+ }
18
+ function readStringArray(value) {
19
+ return Array.isArray(value)
20
+ ? value.filter((entry) => typeof entry === 'string')
21
+ : [];
22
+ }
23
+ function readOrigin(value) {
24
+ if (!isRecord(value)) {
25
+ return null;
26
+ }
27
+ const bindingId = readString(value.bindingId);
28
+ const conversationId = readString(value.conversationId);
29
+ const workItemId = readString(value.workItemId);
30
+ const externalConversationRef = readString(value.externalConversationRef);
31
+ const externalUpdateRef = readString(value.externalUpdateRef);
32
+ const proposalDigest = readString(value.proposalDigest);
33
+ if (bindingId === null
34
+ || conversationId === null
35
+ || workItemId === null
36
+ || externalConversationRef === null
37
+ || externalUpdateRef === null
38
+ || proposalDigest === null
39
+ || typeof value.proposalRevision !== 'number') {
40
+ return null;
41
+ }
42
+ return {
43
+ version: 1,
44
+ transport: 'telegram',
45
+ bindingId,
46
+ externalConversationRef,
47
+ externalUpdateRef,
48
+ externalMessageRef: readString(value.externalMessageRef),
49
+ conversationId,
50
+ workItemId,
51
+ proposalRevision: value.proposalRevision,
52
+ proposalDigest,
53
+ };
54
+ }
55
+ function readProposal(value) {
56
+ if (!isRecord(value)) {
57
+ return null;
58
+ }
59
+ const goal = readString(value.goal);
60
+ const digest = readString(value.digest);
61
+ const targetLabel = readString(value.targetLabel);
62
+ const deliveryMode = readString(value.deliveryMode);
63
+ const createdAt = readString(value.createdAt);
64
+ if (goal === null
65
+ || digest === null
66
+ || targetLabel === null
67
+ || deliveryMode === null
68
+ || createdAt === null
69
+ || typeof value.revision !== 'number') {
70
+ return null;
71
+ }
72
+ return {
73
+ version: 1,
74
+ revision: value.revision,
75
+ digest,
76
+ goal,
77
+ targetLabel,
78
+ projectId: readString(value.projectId),
79
+ workspacePath: readString(value.workspacePath),
80
+ acceptanceCriteria: readStringArray(value.acceptanceCriteria),
81
+ deliveryMode: deliveryMode,
82
+ deliveryGates: readStringArray(value.deliveryGates),
83
+ sideEffects: readStringArray(value.sideEffects),
84
+ openQuestion: readString(value.openQuestion),
85
+ createdAt,
86
+ };
87
+ }
88
+ export function readWorkGoldenPathMetadata(metadata) {
89
+ if (!isRecord(metadata)) {
90
+ return null;
91
+ }
92
+ const envelope = metadata[WORK_GOLDEN_PATH_METADATA_KEY];
93
+ if (!isRecord(envelope)) {
94
+ return null;
95
+ }
96
+ return {
97
+ schemaVersion: typeof envelope.schemaVersion === 'number'
98
+ ? envelope.schemaVersion
99
+ : WORK_GOLDEN_PATH_METADATA_VERSION,
100
+ origin: readOrigin(envelope.origin),
101
+ proposal: readProposal(envelope.proposal),
102
+ locale: readString(envelope.locale),
103
+ externalUserRef: readString(envelope.externalUserRef),
104
+ };
105
+ }
106
+ /**
107
+ * Merges golden-path provenance into an existing metadata bag without
108
+ * disturbing sibling envelopes such as `workIntake`.
109
+ */
110
+ export function writeWorkGoldenPathMetadata(metadata, input) {
111
+ return {
112
+ ...(isRecord(metadata) ? metadata : {}),
113
+ [WORK_GOLDEN_PATH_METADATA_KEY]: {
114
+ schemaVersion: WORK_GOLDEN_PATH_METADATA_VERSION,
115
+ origin: { ...input.origin },
116
+ proposal: { ...input.proposal },
117
+ locale: input.locale,
118
+ externalUserRef: input.externalUserRef,
119
+ },
120
+ };
121
+ }
122
+ //# sourceMappingURL=workGoldenPathMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workGoldenPathMetadata.js","sourceRoot":"","sources":["../../../../../src/products/work/shared/workGoldenPathMetadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Completion-evidence evaluation (SPEC-114 FR-30, FR-31).
3
+ *
4
+ * The rule this module exists to enforce: a provider returning a final
5
+ * assistant message is evidence that an execution *step* returned, not that the
6
+ * requested outcome happened. Cats accepts terminal completion only against the
7
+ * approved acceptance criteria plus mode-appropriate delivery evidence.
8
+ */
9
+ import type { CoreArtifactRecord, CoreDeliveryMode } from '../../../core/types.js';
10
+ export declare const WORK_COMPLETION_EVIDENCE_GAPS: readonly ["no_outcome_recorded", "outcome_not_successful", "no_ready_artifact", "no_commit_evidence", "no_validation_evidence", "acceptance_criteria_unmet"];
11
+ export type WorkCompletionEvidenceGap = (typeof WORK_COMPLETION_EVIDENCE_GAPS)[number];
12
+ export interface WorkCommitEvidence {
13
+ /** Immutable commit id. A branch name or "HEAD" is not acceptable. */
14
+ commitId: string;
15
+ changeSummary: string;
16
+ /** Validation the run performed (test command, typecheck, lint). */
17
+ validation: {
18
+ command: string;
19
+ passed: boolean;
20
+ } | null;
21
+ /** Runtime-owned location that contains this commit, never the operator's source worktree. */
22
+ deliveryWorkspacePath?: string | null;
23
+ /** Runtime session that owns the isolated delivery workspace. */
24
+ deliverySessionId?: string | null;
25
+ }
26
+ export interface WorkCompletionEvidenceInput {
27
+ deliveryMode: CoreDeliveryMode;
28
+ acceptanceCriteria: readonly string[];
29
+ /** Criteria the supervised run reported as satisfied, by exact text. */
30
+ satisfiedCriteria: readonly string[];
31
+ outcomeStatus: 'succeeded' | 'blocked' | 'failed' | 'cancelled' | null;
32
+ artifacts: readonly CoreArtifactRecord[];
33
+ commit: WorkCommitEvidence | null;
34
+ }
35
+ export interface WorkCompletionEvidenceResult {
36
+ accepted: boolean;
37
+ gaps: WorkCompletionEvidenceGap[];
38
+ /** Criteria still outstanding, for the decision/result message. */
39
+ unmetCriteria: string[];
40
+ }
41
+ export declare function evaluateWorkCompletionEvidence(input: WorkCompletionEvidenceInput): WorkCompletionEvidenceResult;
42
+ //# sourceMappingURL=workCompletionEvidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workCompletionEvidence.d.ts","sourceRoot":"","sources":["../../../../../src/products/work/state/workCompletionEvidence.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,eAAO,MAAM,6BAA6B,8JAOhC,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvF,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,8FAA8F;IAC9F,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,gBAAgB,CAAC;IAC/B,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,wEAAwE;IACxE,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,aAAa,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC;IACvE,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,yBAAyB,EAAE,CAAC;IAClC,mEAAmE;IACnE,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAcD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,2BAA2B,GACjC,4BAA4B,CAoC9B"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Completion-evidence evaluation (SPEC-114 FR-30, FR-31).
3
+ *
4
+ * The rule this module exists to enforce: a provider returning a final
5
+ * assistant message is evidence that an execution *step* returned, not that the
6
+ * requested outcome happened. Cats accepts terminal completion only against the
7
+ * approved acceptance criteria plus mode-appropriate delivery evidence.
8
+ */
9
+ export const WORK_COMPLETION_EVIDENCE_GAPS = [
10
+ 'no_outcome_recorded',
11
+ 'outcome_not_successful',
12
+ 'no_ready_artifact',
13
+ 'no_commit_evidence',
14
+ 'no_validation_evidence',
15
+ 'acceptance_criteria_unmet',
16
+ ];
17
+ function normalize(value) {
18
+ return value.trim().toLowerCase();
19
+ }
20
+ /**
21
+ * A commit id must look like a real object id. This is what stops a run from
22
+ * "delivering" `commit_only` by reporting a branch name it never wrote.
23
+ */
24
+ function isImmutableCommitId(commitId) {
25
+ return /^[0-9a-f]{7,40}$/u.test(commitId.trim());
26
+ }
27
+ export function evaluateWorkCompletionEvidence(input) {
28
+ const gaps = [];
29
+ if (input.outcomeStatus === null) {
30
+ gaps.push('no_outcome_recorded');
31
+ }
32
+ else if (input.outcomeStatus !== 'succeeded') {
33
+ gaps.push('outcome_not_successful');
34
+ }
35
+ const satisfied = new Set(input.satisfiedCriteria.map(normalize));
36
+ const unmetCriteria = input.acceptanceCriteria.filter((criterion) => !satisfied.has(normalize(criterion)));
37
+ if (unmetCriteria.length > 0) {
38
+ gaps.push('acceptance_criteria_unmet');
39
+ }
40
+ // Every repository-backed mode builds on a local commit. Push, PR, and
41
+ // preview are publication steps added *after* that evidence, not substitutes
42
+ // for proving the provider's edits were captured.
43
+ if (input.deliveryMode !== 'artifact_only') {
44
+ if (input.commit === null || !isImmutableCommitId(input.commit.commitId)) {
45
+ gaps.push('no_commit_evidence');
46
+ }
47
+ else if (input.commit.validation === null || !input.commit.validation.passed) {
48
+ gaps.push('no_validation_evidence');
49
+ }
50
+ }
51
+ else {
52
+ const hasReadyArtifact = input.artifacts.some((artifact) => artifact.status === 'ready' || artifact.status === 'published');
53
+ if (!hasReadyArtifact) {
54
+ gaps.push('no_ready_artifact');
55
+ }
56
+ }
57
+ return { accepted: gaps.length === 0, gaps, unmetCriteria };
58
+ }
59
+ //# sourceMappingURL=workCompletionEvidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workCompletionEvidence.js","sourceRoot":"","sources":["../../../../../src/products/work/state/workCompletionEvidence.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,qBAAqB;IACrB,wBAAwB;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,wBAAwB;IACxB,2BAA2B;CACnB,CAAC;AAiCX,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAkC;IAElC,MAAM,IAAI,GAAgC,EAAE,CAAC;IAE7C,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,KAAK,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,KAAK,CAAC,kBAAkB,CAAC,MAAM,CACnD,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CACpD,CAAC;IACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC;IAED,uEAAuE;IACvE,6EAA6E;IAC7E,kDAAkD;IAClD,IAAI,KAAK,CAAC,YAAY,KAAK,eAAe,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/E,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAC3C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,CAC7E,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAC9D,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { CoreStore } from '../../../core/store.js';
2
+ import type { CatsCoreState, CoreTaskRecord } from '../../../core/types.js';
2
3
  import type { ToolResult } from '../../../platform/supervision/contracts.js';
3
4
  import type { SupervisedToolExecutor } from '../../../platform/supervision/toolBoundary.js';
4
5
  import { WORK_TASK_CREATE_FROM_WORK_ITEM_TOOL, type WorkTaskCreateFromWorkItemInput, type WorkTaskCreateFromWorkItemResult } from '../shared/workToolSurface.js';
@@ -19,5 +20,20 @@ export interface WorkExecutionTaskToolExecutors {
19
20
  }
20
21
  export declare function createWorkExecutionTaskDelegate(options: WorkExecutionTaskDelegateOptions): WorkExecutionTaskDelegate;
21
22
  export declare function createWorkExecutionTaskToolExecutors(delegate: WorkExecutionTaskDelegate): WorkExecutionTaskToolExecutors;
23
+ /**
24
+ * The Core mutation behind `work.task.create_from_work_item`, exposed so a
25
+ * caller that must be atomic across several writes (the transport golden-path
26
+ * admission command) can compose it inside one `updateCore` transaction instead
27
+ * of chaining separate persisted steps.
28
+ *
29
+ * Throws `WorkExecutionTaskPrecheckError` on any precondition failure, which
30
+ * leaves the surrounding transaction untouched.
31
+ */
32
+ export declare function applyWorkExecutionTaskCreation(core: CatsCoreState, input: WorkTaskCreateFromWorkItemInput, context: WorkExecutionTaskMutationContext, createdAt: Date): {
33
+ core: CatsCoreState;
34
+ task: CoreTaskRecord;
35
+ created: boolean;
36
+ linked: boolean;
37
+ };
22
38
  export declare function createTaskFromWorkItem(coreStore: CoreStore, input: WorkTaskCreateFromWorkItemInput, context: WorkExecutionTaskMutationContext, now?: () => Date): Promise<ToolResult<WorkTaskCreateFromWorkItemResult>>;
23
39
  //# sourceMappingURL=workExecutionTaskDelegate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workExecutionTaskDelegate.d.ts","sourceRoot":"","sources":["../../../../../src/products/work/state/workExecutionTaskDelegate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EACL,oCAAoC,EACpC,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EAEtC,MAAM,8BAA8B,CAAC;AAQtC,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,sBAAsB,CACpB,KAAK,EAAE,+BAA+B,EACtC,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,8BAA8B;IAC7C,CAAC,oCAAoC,CAAC,EAAE,sBAAsB,CAC5D,+BAA+B,EAC/B,gCAAgC,CACjC,CAAC;CACH;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gCAAgC,GACxC,yBAAyB,CAQ3B;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,yBAAyB,GAClC,8BAA8B,CAKhC;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,+BAA+B,EACtC,OAAO,EAAE,gCAAgC,EACzC,GAAG,GAAE,MAAM,IAAuB,GACjC,OAAO,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAgKvD"}
1
+ {"version":3,"file":"workExecutionTaskDelegate.d.ts","sourceRoot":"","sources":["../../../../../src/products/work/state/workExecutionTaskDelegate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAsB,MAAM,wBAAwB,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EACL,oCAAoC,EACpC,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EAEtC,MAAM,8BAA8B,CAAC;AAQtC,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,sBAAsB,CACpB,KAAK,EAAE,+BAA+B,EACtC,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,8BAA8B;IAC7C,CAAC,oCAAoC,CAAC,EAAE,sBAAsB,CAC5D,+BAA+B,EAC/B,gCAAgC,CACjC,CAAC;CACH;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gCAAgC,GACxC,yBAAyB,CAQ3B;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,yBAAyB,GAClC,8BAA8B,CAKhC;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,+BAA+B,EACtC,OAAO,EAAE,gCAAgC,EACzC,SAAS,EAAE,IAAI,GACd;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAgHlF;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,+BAA+B,EACtC,OAAO,EAAE,gCAAgC,EACzC,GAAG,GAAE,MAAM,IAAuB,GACjC,OAAO,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CA4DvD"}