@moorline/core 0.0.1 → 0.0.2

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 (405) hide show
  1. package/dist/app/bootstrap/apiAdapterPackageLoader.d.ts +0 -10
  2. package/dist/app/bootstrap/apiAdapterPackageLoader.js +1 -1
  3. package/dist/app/bootstrap/apiAdapterPackageLoader.js.map +1 -1
  4. package/dist/app/bootstrap/operatorPackageService.d.ts +11 -4
  5. package/dist/app/bootstrap/operatorPackageService.js +231 -59
  6. package/dist/app/bootstrap/operatorPackageService.js.map +1 -1
  7. package/dist/app/bootstrap/runtimeBootstrap.d.ts +2 -1
  8. package/dist/app/bootstrap/runtimeBootstrap.js +14 -3
  9. package/dist/app/bootstrap/runtimeBootstrap.js.map +1 -1
  10. package/dist/app/control-api/services/actions.d.ts +12 -16
  11. package/dist/app/control-api/services/actions.js +89 -68
  12. package/dist/app/control-api/services/actions.js.map +1 -1
  13. package/dist/app/control-api/services/controlPlane.d.ts +17 -21
  14. package/dist/app/control-api/services/controlPlane.js +69 -74
  15. package/dist/app/control-api/services/controlPlane.js.map +1 -1
  16. package/dist/app/control-api/services/state.js +5 -9
  17. package/dist/app/control-api/services/state.js.map +1 -1
  18. package/dist/core/domain/memory/retrieval/indexTargets.js +6 -6
  19. package/dist/core/domain/memory/retrieval/indexTargets.js.map +1 -1
  20. package/dist/core/domain/memory/retrieval/schema.js +10 -6
  21. package/dist/core/domain/memory/retrieval/schema.js.map +1 -1
  22. package/dist/core/domain/memory/retrieval/scope.d.ts +2 -2
  23. package/dist/core/domain/memory/retrieval/scope.js +7 -7
  24. package/dist/core/domain/memory/retrieval/scope.js.map +1 -1
  25. package/dist/core/domain/memory/retrieval/types.d.ts +2 -7
  26. package/dist/core/domain/memory/retrieval/types.js.map +1 -1
  27. package/dist/core/domain/memory/retrieval.d.ts +1 -2
  28. package/dist/core/domain/memory/retrieval.js +9 -16
  29. package/dist/core/domain/memory/retrieval.js.map +1 -1
  30. package/dist/core/domain/memory/store.d.ts +1 -1
  31. package/dist/core/domain/memory/store.js +2 -2
  32. package/dist/core/domain/memory/store.js.map +1 -1
  33. package/dist/core/domain/sessions/managedWorkerSessions.d.ts +0 -1
  34. package/dist/core/domain/sessions/managedWorkerSessions.js.map +1 -1
  35. package/dist/core/domain/sessions/runtimeWorkManagementService.d.ts +17 -62
  36. package/dist/core/domain/sessions/runtimeWorkManagementService.js +97 -341
  37. package/dist/core/domain/sessions/runtimeWorkManagementService.js.map +1 -1
  38. package/dist/core/domain/sessions/sessionLifecycleService.d.ts +1 -1
  39. package/dist/core/domain/sessions/sessionLifecycleService.js +4 -4
  40. package/dist/core/domain/sessions/sessionLifecycleService.js.map +1 -1
  41. package/dist/core/domain/sessions/sessionState.d.ts +10 -8
  42. package/dist/core/domain/sessions/sessionState.js +38 -28
  43. package/dist/core/domain/sessions/sessionState.js.map +1 -1
  44. package/dist/core/domain/sessions/workManagement/transportResourceNames.d.ts +2 -0
  45. package/dist/core/domain/sessions/workManagement/{spaceNames.js → transportResourceNames.js} +2 -2
  46. package/dist/core/domain/sessions/workManagement/transportResourceNames.js.map +1 -0
  47. package/dist/core/extension/capabilities/capabilities.d.ts +1 -1
  48. package/dist/core/extension/capabilities/capabilities.js +8 -8
  49. package/dist/core/extension/capabilities/capabilities.js.map +1 -1
  50. package/dist/core/extension/packages/bundledArchiveResolver.d.ts +2 -0
  51. package/dist/core/extension/packages/{officialArchiveResolver.js → bundledArchiveResolver.js} +4 -4
  52. package/dist/core/extension/packages/bundledArchiveResolver.js.map +1 -0
  53. package/dist/core/extension/packages/npmRegistryClient.d.ts +3 -2
  54. package/dist/core/extension/packages/npmRegistryClient.js +9 -22
  55. package/dist/core/extension/packages/npmRegistryClient.js.map +1 -1
  56. package/dist/core/extension/packages/packageActivation.d.ts +0 -4
  57. package/dist/core/extension/packages/packageActivation.js +2 -12
  58. package/dist/core/extension/packages/packageActivation.js.map +1 -1
  59. package/dist/core/extension/packages/packageApplyPlanner.js +1 -4
  60. package/dist/core/extension/packages/packageApplyPlanner.js.map +1 -1
  61. package/dist/core/extension/packages/packageConfigSchema.js +0 -33
  62. package/dist/core/extension/packages/packageConfigSchema.js.map +1 -1
  63. package/dist/core/extension/packages/packageDependencyResolver.js +2 -20
  64. package/dist/core/extension/packages/packageDependencyResolver.js.map +1 -1
  65. package/dist/core/extension/packages/packageInstaller.js +3 -0
  66. package/dist/core/extension/packages/packageInstaller.js.map +1 -1
  67. package/dist/core/extension/packages/packageInventoryStore.js +20 -4
  68. package/dist/core/extension/packages/packageInventoryStore.js.map +1 -1
  69. package/dist/core/extension/packages/packageRegistryBlocklist.d.ts +2 -2
  70. package/dist/core/extension/packages/packageRegistryBlocklist.js +1 -1
  71. package/dist/core/extension/packages/packageRegistryBlocklist.js.map +1 -1
  72. package/dist/core/extension/packages/packageRegistryService.d.ts +8 -3
  73. package/dist/core/extension/packages/packageRegistryService.js +109 -49
  74. package/dist/core/extension/packages/packageRegistryService.js.map +1 -1
  75. package/dist/core/extension/packages/packageRegistryTypes.d.ts +14 -6
  76. package/dist/core/extension/packages/packageSource.js +120 -5
  77. package/dist/core/extension/packages/packageSource.js.map +1 -1
  78. package/dist/core/extension/packages/packageValidation.js +1 -1
  79. package/dist/core/extension/packages/packageValidation.js.map +1 -1
  80. package/dist/core/extension/packages/packageVersionResolver.d.ts +6 -11
  81. package/dist/core/extension/packages/packageVersionResolver.js +5 -5
  82. package/dist/core/extension/packages/packageVersionResolver.js.map +1 -1
  83. package/dist/core/extension/packages/runtimeStartability.d.ts +2 -2
  84. package/dist/core/extension/packages/runtimeStartability.js +26 -23
  85. package/dist/core/extension/packages/runtimeStartability.js.map +1 -1
  86. package/dist/core/extension/plugins/pluginHost.d.ts +9 -4
  87. package/dist/core/extension/plugins/pluginHost.js +33 -7
  88. package/dist/core/extension/plugins/pluginHost.js.map +1 -1
  89. package/dist/core/extension/plugins/pluginId.d.ts +0 -1
  90. package/dist/core/extension/plugins/pluginId.js +0 -3
  91. package/dist/core/extension/plugins/pluginId.js.map +1 -1
  92. package/dist/core/extension/plugins/runtimePluginLoader.d.ts +0 -1
  93. package/dist/core/extension/plugins/runtimePluginLoader.js +0 -7
  94. package/dist/core/extension/plugins/runtimePluginLoader.js.map +1 -1
  95. package/dist/core/extension/skills/skillRegistry.d.ts +3 -2
  96. package/dist/core/extension/skills/skillWriter.d.ts +1 -1
  97. package/dist/core/extension/skills/skillWriter.js +2 -2
  98. package/dist/core/runtime/execution/commandReactor.d.ts +5 -5
  99. package/dist/core/runtime/execution/commandReactor.js +10 -7
  100. package/dist/core/runtime/execution/commandReactor.js.map +1 -1
  101. package/dist/core/runtime/execution/defaultModelSelection.js +1 -1
  102. package/dist/core/runtime/execution/orchestrationEngine.js +10 -10
  103. package/dist/core/runtime/execution/orchestrationEngine.js.map +1 -1
  104. package/dist/core/runtime/execution/orchestrationHealth.d.ts +0 -7
  105. package/dist/core/runtime/execution/orchestrationHealth.js +1 -1
  106. package/dist/core/runtime/execution/orchestrationHealth.js.map +1 -1
  107. package/dist/core/runtime/execution/pluginContext/defaultSessionOwner.js +3 -5
  108. package/dist/core/runtime/execution/pluginContext/defaultSessionOwner.js.map +1 -1
  109. package/dist/core/runtime/execution/pluginContext/pluginCapabilities.d.ts +0 -2
  110. package/dist/core/runtime/execution/pluginContext/pluginCapabilities.js +0 -2
  111. package/dist/core/runtime/execution/pluginContext/pluginCapabilities.js.map +1 -1
  112. package/dist/core/runtime/execution/pluginContext/pluginContextFactory.d.ts +1 -2
  113. package/dist/core/runtime/execution/pluginContext/pluginContextFactory.js +1 -2
  114. package/dist/core/runtime/execution/pluginContext/pluginContextFactory.js.map +1 -1
  115. package/dist/core/runtime/execution/providerCoordination/providerSessionCoordinator.js +3 -3
  116. package/dist/core/runtime/execution/providerCoordination/providerSessionCoordinator.js.map +1 -1
  117. package/dist/core/runtime/execution/providerOrchestration/ports.d.ts +3 -13
  118. package/dist/core/runtime/execution/providerOrchestration/providerAttachmentResolver.d.ts +3 -3
  119. package/dist/core/runtime/execution/providerOrchestration/providerAttachmentResolver.js +4 -5
  120. package/dist/core/runtime/execution/providerOrchestration/providerAttachmentResolver.js.map +1 -1
  121. package/dist/core/runtime/execution/providerOrchestration/providerCompactionPolicy.d.ts +2 -1
  122. package/dist/core/runtime/execution/providerOrchestration/providerCompactionPolicy.js +5 -5
  123. package/dist/core/runtime/execution/providerOrchestration/providerCompactionPolicy.js.map +1 -1
  124. package/dist/core/runtime/execution/providerOrchestration/providerEventPipeline.d.ts +3 -5
  125. package/dist/core/runtime/execution/providerOrchestration/providerEventPipeline.js +10 -8
  126. package/dist/core/runtime/execution/providerOrchestration/providerEventPipeline.js.map +1 -1
  127. package/dist/core/runtime/execution/providerOrchestration/providerOrchestrator.d.ts +3 -3
  128. package/dist/core/runtime/execution/providerOrchestration/providerOrchestrator.js +0 -3
  129. package/dist/core/runtime/execution/providerOrchestration/providerOrchestrator.js.map +1 -1
  130. package/dist/core/runtime/execution/providerOrchestration/providerRequestProjector.d.ts +3 -2
  131. package/dist/core/runtime/execution/providerOrchestration/providerRequestProjector.js +6 -6
  132. package/dist/core/runtime/execution/providerOrchestration/providerRequestProjector.js.map +1 -1
  133. package/dist/core/runtime/execution/providerOrchestration/providerSessionOrchestrator.d.ts +9 -6
  134. package/dist/core/runtime/execution/providerOrchestration/providerSessionOrchestrator.js +36 -15
  135. package/dist/core/runtime/execution/providerOrchestration/providerSessionOrchestrator.js.map +1 -1
  136. package/dist/core/runtime/execution/providerOrchestration/providerTurnBroker.d.ts +9 -3
  137. package/dist/core/runtime/execution/providerOrchestration/providerTurnBroker.js +19 -7
  138. package/dist/core/runtime/execution/providerOrchestration/providerTurnBroker.js.map +1 -1
  139. package/dist/core/runtime/execution/providerProjectionTypes.d.ts +4 -2
  140. package/dist/core/runtime/execution/providerProjectionTypes.js +2 -0
  141. package/dist/core/runtime/execution/providerProjectionTypes.js.map +1 -1
  142. package/dist/core/runtime/execution/providerSessionDirectory.js +12 -4
  143. package/dist/core/runtime/execution/providerSessionDirectory.js.map +1 -1
  144. package/dist/core/runtime/execution/runtimeDomain.d.ts +11 -9
  145. package/dist/core/runtime/execution/runtimeDomain.js +10 -3
  146. package/dist/core/runtime/execution/runtimeDomain.js.map +1 -1
  147. package/dist/core/runtime/execution/runtimeIngestion.js +15 -13
  148. package/dist/core/runtime/execution/runtimeIngestion.js.map +1 -1
  149. package/dist/core/runtime/execution/runtimeInteractionService.d.ts +4 -18
  150. package/dist/core/runtime/execution/runtimeInteractionService.js +15 -93
  151. package/dist/core/runtime/execution/runtimeInteractionService.js.map +1 -1
  152. package/dist/core/runtime/execution/runtimeOrchestrationRequestService.d.ts +1 -1
  153. package/dist/core/runtime/execution/runtimeOrchestrationRequestService.js +8 -28
  154. package/dist/core/runtime/execution/runtimeOrchestrationRequestService.js.map +1 -1
  155. package/dist/core/runtime/execution/runtimeOrchestrationRequests.d.ts +7 -29
  156. package/dist/core/runtime/execution/runtimeOrchestrationRequests.js +21 -67
  157. package/dist/core/runtime/execution/runtimeOrchestrationRequests.js.map +1 -1
  158. package/dist/core/runtime/execution/runtimeOrchestrationResult.js +5 -0
  159. package/dist/core/runtime/execution/runtimeOrchestrationResult.js.map +1 -1
  160. package/dist/core/runtime/execution/runtimePendingRequestService.d.ts +2 -2
  161. package/dist/core/runtime/execution/runtimePendingRequestService.js +10 -10
  162. package/dist/core/runtime/execution/runtimePendingRequestService.js.map +1 -1
  163. package/dist/core/runtime/execution/runtimePluginContextService.d.ts +28 -15
  164. package/dist/core/runtime/execution/runtimePluginContextService.js +989 -166
  165. package/dist/core/runtime/execution/runtimePluginContextService.js.map +1 -1
  166. package/dist/core/runtime/execution/runtimeWorkerQueues.js +1 -1
  167. package/dist/core/runtime/execution/runtimeWorkerQueues.js.map +1 -1
  168. package/dist/core/runtime/hosting/managedTransportResourceMetadata.d.ts +6 -0
  169. package/dist/core/runtime/hosting/managedTransportResourceMetadata.js +8 -0
  170. package/dist/core/runtime/hosting/managedTransportResourceMetadata.js.map +1 -0
  171. package/dist/core/runtime/hosting/runtimeHostingService.d.ts +1 -1
  172. package/dist/core/runtime/hosting/runtimeHostingService.js +16 -20
  173. package/dist/core/runtime/hosting/runtimeHostingService.js.map +1 -1
  174. package/dist/core/runtime/hosting/runtimeLayout.js +1 -1
  175. package/dist/core/runtime/hosting/runtimeLayout.js.map +1 -1
  176. package/dist/core/runtime/hosting/runtimeTransportSurfaceService.d.ts +4 -4
  177. package/dist/core/runtime/hosting/runtimeTransportSurfaceService.js +17 -17
  178. package/dist/core/runtime/hosting/runtimeTransportSurfaceService.js.map +1 -1
  179. package/dist/core/runtime/hosting/systemEmbeds.d.ts +0 -1
  180. package/dist/core/runtime/hosting/systemEmbeds.js +0 -9
  181. package/dist/core/runtime/hosting/systemEmbeds.js.map +1 -1
  182. package/dist/core/runtime/lifecycle/{managedChannelLifecycleService.d.ts → managedTransportResourceLifecycleService.d.ts} +6 -9
  183. package/dist/core/runtime/lifecycle/managedTransportResourceLifecycleService.js +158 -0
  184. package/dist/core/runtime/lifecycle/managedTransportResourceLifecycleService.js.map +1 -0
  185. package/dist/core/runtime/lifecycle/packageJobSchedulerService.d.ts +21 -0
  186. package/dist/core/runtime/lifecycle/packageJobSchedulerService.js +84 -0
  187. package/dist/core/runtime/lifecycle/packageJobSchedulerService.js.map +1 -0
  188. package/dist/core/runtime/lifecycle/runtimeLifecycleService.d.ts +2 -13
  189. package/dist/core/runtime/lifecycle/runtimeLifecycleService.js +19 -250
  190. package/dist/core/runtime/lifecycle/runtimeLifecycleService.js.map +1 -1
  191. package/dist/core/runtime/moorlineRuntime.d.ts +7 -8
  192. package/dist/core/runtime/moorlineRuntime.js +71 -47
  193. package/dist/core/runtime/moorlineRuntime.js.map +1 -1
  194. package/dist/core/runtime/moorlineRuntimeBuilder.d.ts +17 -18
  195. package/dist/core/runtime/moorlineRuntimeBuilder.js +53 -93
  196. package/dist/core/runtime/moorlineRuntimeBuilder.js.map +1 -1
  197. package/dist/core/runtime/runtimeBootstrapRegistry.d.ts +0 -2
  198. package/dist/core/runtime/runtimeBootstrapRegistry.js +0 -6
  199. package/dist/core/runtime/runtimeBootstrapRegistry.js.map +1 -1
  200. package/dist/core/runtime/runtimeStatus.js +2 -2
  201. package/dist/core/runtime/runtimeStatus.js.map +1 -1
  202. package/dist/core/runtime/supervision/runtimeControlService.js +4 -1
  203. package/dist/core/runtime/supervision/runtimeControlService.js.map +1 -1
  204. package/dist/core/shared/errors/statusError.d.ts +5 -0
  205. package/dist/core/shared/errors/statusError.js +18 -0
  206. package/dist/core/shared/errors/statusError.js.map +1 -0
  207. package/dist/core/shared/fs/canonicalPathContainment.d.ts +0 -2
  208. package/dist/core/shared/fs/canonicalPathContainment.js +1 -6
  209. package/dist/core/shared/fs/canonicalPathContainment.js.map +1 -1
  210. package/dist/core/shared/fs/runtimeOwnedPath.d.ts +1 -1
  211. package/dist/core/shared/fs/runtimeOwnedPath.js +3 -3
  212. package/dist/core/shared/fs/runtimeOwnedPath.js.map +1 -1
  213. package/dist/core/shared/scheduling/packageSchedule.d.ts +22 -0
  214. package/dist/core/{domain/missions/missionSchedule.js → shared/scheduling/packageSchedule.js} +15 -18
  215. package/dist/core/shared/scheduling/packageSchedule.js.map +1 -0
  216. package/dist/core/shared/utils/childProcessEnv.js +1 -1
  217. package/dist/core/shared/utils/childProcessEnv.js.map +1 -1
  218. package/dist/core/shared/utils/payloadRedaction.d.ts +0 -12
  219. package/dist/core/shared/utils/payloadRedaction.js +0 -77
  220. package/dist/core/shared/utils/payloadRedaction.js.map +1 -1
  221. package/dist/core/shared/utils/remoteNetworkPolicy.d.ts +0 -4
  222. package/dist/core/shared/utils/remoteNetworkPolicy.js +1 -7
  223. package/dist/core/shared/utils/remoteNetworkPolicy.js.map +1 -1
  224. package/dist/core/shared/utils/runtimeMessageUtils.d.ts +0 -1
  225. package/dist/core/shared/utils/runtimeMessageUtils.js +0 -19
  226. package/dist/core/shared/utils/runtimeMessageUtils.js.map +1 -1
  227. package/dist/core/system/backup/runtimeBackupService.d.ts +0 -2
  228. package/dist/core/system/backup/runtimeBackupService.js +71 -2
  229. package/dist/core/system/backup/runtimeBackupService.js.map +1 -1
  230. package/dist/core/system/config/configStore.d.ts +3 -3
  231. package/dist/core/system/config/configStore.js +19 -20
  232. package/dist/core/system/config/configStore.js.map +1 -1
  233. package/dist/core/system/projection/managementReadModel/deps.d.ts +4 -5
  234. package/dist/core/system/projection/managementReadModel/objects/serviceObjects.d.ts +2 -1
  235. package/dist/core/system/projection/managementReadModel/objects/serviceObjects.js +13 -7
  236. package/dist/core/system/projection/managementReadModel/objects/serviceObjects.js.map +1 -1
  237. package/dist/core/system/projection/managementReadModel/packageTrust.d.ts +5 -0
  238. package/dist/core/system/projection/managementReadModel/packageTrust.js +40 -0
  239. package/dist/core/system/projection/managementReadModel/packageTrust.js.map +1 -0
  240. package/dist/core/system/projection/managementReadModel/pluginDiskRecords.d.ts +0 -1
  241. package/dist/core/system/projection/managementReadModel/pluginDiskRecords.js +1 -10
  242. package/dist/core/system/projection/managementReadModel/pluginDiskRecords.js.map +1 -1
  243. package/dist/core/system/projection/managementReadModelService.d.ts +3 -1
  244. package/dist/core/system/projection/managementReadModelService.js +133 -117
  245. package/dist/core/system/projection/managementReadModelService.js.map +1 -1
  246. package/dist/core/system/projection/pendingRequestProjectionStore.d.ts +1 -1
  247. package/dist/core/system/projection/pendingRequestProjectionStore.js +9 -9
  248. package/dist/core/system/projection/pendingRequestProjectionStore.js.map +1 -1
  249. package/dist/core/system/projection/runtimeActivityStore.d.ts +1 -1
  250. package/dist/core/system/projection/runtimeActivityStore.js +7 -7
  251. package/dist/core/system/projection/runtimeActivityStore.js.map +1 -1
  252. package/dist/core/system/projection/runtimeProjectionService.d.ts +1 -1
  253. package/dist/core/system/projection/runtimeProjectionService.js +3 -3
  254. package/dist/core/system/projection/runtimeProjectionService.js.map +1 -1
  255. package/dist/core/system/projection/runtimeReceiptStore.js +5 -5
  256. package/dist/core/system/projection/runtimeReceiptStore.js.map +1 -1
  257. package/dist/core/system/projection/runtimeReconciler.js +2 -2
  258. package/dist/core/system/projection/runtimeReconciler.js.map +1 -1
  259. package/dist/core/system/projection/runtimeSnapshotQuery.d.ts +6 -5
  260. package/dist/core/system/projection/runtimeSnapshotQuery.js +6 -6
  261. package/dist/core/system/projection/runtimeSnapshotQuery.js.map +1 -1
  262. package/dist/core/system/release/releaseArtifacts.d.ts +0 -2
  263. package/dist/core/system/release/releaseArtifacts.js +1 -12
  264. package/dist/core/system/release/releaseArtifacts.js.map +1 -1
  265. package/dist/core/system/release/runtimePackageLoadReport.d.ts +0 -1
  266. package/dist/core/system/release/runtimePackageLoadReport.js +0 -7
  267. package/dist/core/system/release/runtimePackageLoadReport.js.map +1 -1
  268. package/dist/core/system/state/canonicalEventLogStore.d.ts +1 -1
  269. package/dist/core/system/state/canonicalEventLogStore.js +7 -7
  270. package/dist/core/system/state/canonicalEventLogStore.js.map +1 -1
  271. package/dist/core/system/state/safeJson.d.ts +2 -1
  272. package/dist/core/system/state/sqlite/domainEventLogRepository.js +5 -5
  273. package/dist/core/system/state/sqlite/domainEventLogRepository.js.map +1 -1
  274. package/dist/core/system/state/sqlite/externalResourceRepository.d.ts +25 -0
  275. package/dist/core/system/state/sqlite/externalResourceRepository.js +105 -0
  276. package/dist/core/system/state/sqlite/externalResourceRepository.js.map +1 -0
  277. package/dist/core/system/state/sqlite/gateRunRepository.d.ts +13 -0
  278. package/dist/core/system/state/sqlite/gateRunRepository.js +66 -0
  279. package/dist/core/system/state/sqlite/gateRunRepository.js.map +1 -0
  280. package/dist/core/system/state/sqlite/orchestrationRepository.js +6 -6
  281. package/dist/core/system/state/sqlite/orchestrationRepository.js.map +1 -1
  282. package/dist/core/system/state/sqlite/packageJobRepository.d.ts +11 -0
  283. package/dist/core/system/state/sqlite/packageJobRepository.js +60 -0
  284. package/dist/core/system/state/sqlite/packageJobRepository.js.map +1 -0
  285. package/dist/core/system/state/sqlite/packageStateRepository.d.ts +10 -0
  286. package/dist/core/system/state/sqlite/packageStateRepository.js +45 -0
  287. package/dist/core/system/state/sqlite/packageStateRepository.js.map +1 -0
  288. package/dist/core/system/state/sqlite/pendingRequestRepository.d.ts +2 -2
  289. package/dist/core/system/state/sqlite/pendingRequestRepository.js +10 -10
  290. package/dist/core/system/state/sqlite/pendingRequestRepository.js.map +1 -1
  291. package/dist/core/system/state/sqlite/providerEventLogRepository.d.ts +1 -1
  292. package/dist/core/system/state/sqlite/providerEventLogRepository.js +6 -6
  293. package/dist/core/system/state/sqlite/providerEventLogRepository.js.map +1 -1
  294. package/dist/core/system/state/sqlite/rowMappers.d.ts +0 -1
  295. package/dist/core/system/state/sqlite/rowMappers.js +0 -3
  296. package/dist/core/system/state/sqlite/rowMappers.js.map +1 -1
  297. package/dist/core/system/state/sqlite/runtimeReceiptRepository.js +4 -4
  298. package/dist/core/system/state/sqlite/runtimeReceiptRepository.js.map +1 -1
  299. package/dist/core/system/state/sqlite/sessionRepository.d.ts +1 -1
  300. package/dist/core/system/state/sqlite/sessionRepository.js +13 -10
  301. package/dist/core/system/state/sqlite/sessionRepository.js.map +1 -1
  302. package/dist/core/system/state/sqlite/types.d.ts +91 -48
  303. package/dist/core/system/state/sqlite/types.js +86 -31
  304. package/dist/core/system/state/sqlite/types.js.map +1 -1
  305. package/dist/core/system/state/sqlite/workItemRepository.d.ts +25 -0
  306. package/dist/core/system/state/sqlite/workItemRepository.js +200 -0
  307. package/dist/core/system/state/sqlite/workItemRepository.js.map +1 -0
  308. package/dist/core/system/state/sqliteSessionStore.d.ts +62 -24
  309. package/dist/core/system/state/sqliteSessionStore.js +77 -41
  310. package/dist/core/system/state/sqliteSessionStore.js.map +1 -1
  311. package/dist/core/system/vcs/gitIgnoreTemplate.js +1 -1
  312. package/dist/core/system/vcs/gitIgnoreTemplate.js.map +1 -1
  313. package/dist/core/system/vcs/gitTrackedPaths.js +1 -1
  314. package/dist/core/system/vcs/gitTrackedPaths.js.map +1 -1
  315. package/dist/types/app.d.ts +35 -36
  316. package/dist/types/config.d.ts +14 -19
  317. package/dist/types/config.js +16 -22
  318. package/dist/types/config.js.map +1 -1
  319. package/dist/types/distro.d.ts +1 -1
  320. package/dist/types/distro.js.map +1 -1
  321. package/dist/types/external.d.ts +1 -0
  322. package/dist/types/external.js +2 -0
  323. package/dist/types/external.js.map +1 -0
  324. package/dist/types/package.d.ts +4 -4
  325. package/dist/types/provider.d.ts +2 -2
  326. package/dist/types/provider.js +1 -1
  327. package/dist/types/provider.js.map +1 -1
  328. package/dist/types/runtime.d.ts +2 -2
  329. package/dist/types/runtime.js +1 -1
  330. package/dist/types/runtime.js.map +1 -1
  331. package/dist/types/transport.d.ts +1 -1
  332. package/dist/types/transport.js.map +1 -1
  333. package/package.json +2 -2
  334. package/resources/migrations/001_sessions.sql +8 -9
  335. package/resources/migrations/003_provider_projections.sql +2 -2
  336. package/resources/migrations/004_runtime_projection_state.sql +1 -1
  337. package/resources/migrations/007_package_state_jobs.sql +28 -0
  338. package/resources/migrations/{009_session_orchestration.sql → 008_session_orchestration.sql} +1 -1
  339. package/resources/migrations/010_scope_space_terminology.sql +2 -0
  340. package/resources/migrations/015_external_work_spine.sql +92 -0
  341. package/resources/migrations/016_provider_profiles.sql +4 -0
  342. package/resources/migrations/017_nullable_session_workspace.sql +49 -0
  343. package/resources/policies/default-secure.json +13 -95
  344. package/dist/app/bootstrap/officialCatalog.d.ts +0 -1
  345. package/dist/app/bootstrap/officialCatalog.js +0 -2
  346. package/dist/app/bootstrap/officialCatalog.js.map +0 -1
  347. package/dist/core/domain/memory/operatorMemoryService.d.ts +0 -36
  348. package/dist/core/domain/memory/operatorMemoryService.js +0 -81
  349. package/dist/core/domain/memory/operatorMemoryService.js.map +0 -1
  350. package/dist/core/domain/missions/missionDraftSetup.d.ts +0 -12
  351. package/dist/core/domain/missions/missionDraftSetup.js +0 -92
  352. package/dist/core/domain/missions/missionDraftSetup.js.map +0 -1
  353. package/dist/core/domain/missions/missionHookService.d.ts +0 -41
  354. package/dist/core/domain/missions/missionHookService.js +0 -161
  355. package/dist/core/domain/missions/missionHookService.js.map +0 -1
  356. package/dist/core/domain/missions/missionHookValidation.d.ts +0 -8
  357. package/dist/core/domain/missions/missionHookValidation.js +0 -59
  358. package/dist/core/domain/missions/missionHookValidation.js.map +0 -1
  359. package/dist/core/domain/missions/missionRegistry.d.ts +0 -55
  360. package/dist/core/domain/missions/missionRegistry.js +0 -204
  361. package/dist/core/domain/missions/missionRegistry.js.map +0 -1
  362. package/dist/core/domain/missions/missionSchedule.d.ts +0 -24
  363. package/dist/core/domain/missions/missionSchedule.js.map +0 -1
  364. package/dist/core/domain/sessions/workManagement/spaceNames.d.ts +0 -2
  365. package/dist/core/domain/sessions/workManagement/spaceNames.js.map +0 -1
  366. package/dist/core/extension/packages/officialArchiveResolver.d.ts +0 -2
  367. package/dist/core/extension/packages/officialArchiveResolver.js.map +0 -1
  368. package/dist/core/extension/packages/officialCatalog.d.ts +0 -9
  369. package/dist/core/extension/packages/officialCatalog.js +0 -198
  370. package/dist/core/extension/packages/officialCatalog.js.map +0 -1
  371. package/dist/core/extension/packages/packageDistroMetadata.d.ts +0 -14
  372. package/dist/core/extension/packages/packageDistroMetadata.js +0 -153
  373. package/dist/core/extension/packages/packageDistroMetadata.js.map +0 -1
  374. package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.d.ts +0 -7
  375. package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.js +0 -25
  376. package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.js.map +0 -1
  377. package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.d.ts +0 -7
  378. package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.js +0 -6
  379. package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.js.map +0 -1
  380. package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.d.ts +0 -3
  381. package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.js +0 -6
  382. package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.js.map +0 -1
  383. package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.d.ts +0 -12
  384. package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.js +0 -71
  385. package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.js.map +0 -1
  386. package/dist/core/runtime/hosting/managedSpaceMetadata.d.ts +0 -7
  387. package/dist/core/runtime/hosting/managedSpaceMetadata.js +0 -14
  388. package/dist/core/runtime/hosting/managedSpaceMetadata.js.map +0 -1
  389. package/dist/core/runtime/lifecycle/managedChannelLifecycleService.js +0 -256
  390. package/dist/core/runtime/lifecycle/managedChannelLifecycleService.js.map +0 -1
  391. package/dist/core/system/state/sqlite/missionRepository.d.ts +0 -24
  392. package/dist/core/system/state/sqlite/missionRepository.js +0 -252
  393. package/dist/core/system/state/sqlite/missionRepository.js.map +0 -1
  394. package/resources/migrations/007_missions.sql +0 -41
  395. package/resources/migrations/008_mission_schedule_anchor.sql +0 -5
  396. package/resources/migrations/010_mission_archival.sql +0 -1
  397. package/resources/migrations/012_scope_space_terminology.sql +0 -19
  398. package/resources/migrations/015_mission_schedule_meta.sql +0 -9
  399. package/resources/migrations/016_mission_hook_bindings.sql +0 -16
  400. package/resources/official-catalog.json +0 -444
  401. /package/resources/migrations/{011_managed_sidecars.sql → 009_managed_sidecars.sql} +0 -0
  402. /package/resources/migrations/{013_orchestration_dedupe.sql → 011_orchestration_dedupe.sql} +0 -0
  403. /package/resources/migrations/{014_orchestration_execution_claims.sql → 012_orchestration_execution_claims.sql} +0 -0
  404. /package/resources/migrations/{017_domain_event_provenance.sql → 013_domain_event_provenance.sql} +0 -0
  405. /package/resources/migrations/{018_provider_event_processing.sql → 014_provider_event_processing.sql} +0 -0
@@ -1,28 +1,24 @@
1
- import { parseMissionSchedule, parseMissionStartTime } from '../missions/missionSchedule.js';
2
1
  import { isManagedWorkerSession } from './managedWorkerSessions.js';
3
- import { slugifySpaceName, truncatePreview } from './workManagement/spaceNames.js';
2
+ import { slugifyResourceName, truncatePreview } from './workManagement/transportResourceNames.js';
4
3
  import { enforceManagedSessionLimit } from './workManagement/managedSessionLimit.js';
5
- import { buildManagedSpaceMetadata } from '../../runtime/hosting/managedSpaceMetadata.js';
4
+ import { buildManagedTransportResourceMetadata } from '../../runtime/hosting/managedTransportResourceMetadata.js';
5
+ import { MoorlineStatusError } from '../../shared/errors/statusError.js';
6
6
  const INITIAL_KICKOFF_PREVIEW_LIMIT = 700;
7
7
  export class RuntimeWorkManagementService {
8
8
  deps;
9
9
  constructor(deps) {
10
10
  this.deps = deps;
11
11
  }
12
- resolveMission(input) {
13
- return (input.missionId ? this.deps.missionRegistry.getById(input.missionId) : null) ?? this.deps.missionRegistry.getBySpaceId(input.spaceId);
14
- }
15
12
  async createManagedSession(input) {
16
- const namespace = this.deps.requireNamespaceState();
13
+ const surface = this.deps.requireSurfaceState();
17
14
  const owner = input.owner ?? this.deps.defaultSessionOwner(input.actorId);
18
- const ownerMission = owner.kind === 'mission' ? this.deps.missionRegistry.getByThreadId(owner.id) : null;
19
- const objective = input.objective ?? ownerMission?.goal ?? null;
15
+ const objective = input.objective ?? null;
20
16
  enforceManagedSessionLimit(this.deps.snapshots, owner);
21
- const spaceName = slugifySpaceName('session', input.requestedName);
17
+ const transportResourceName = slugifyResourceName('session', input.requestedName);
22
18
  await this.deps.getGuard().run({
23
19
  action: 'session.create',
24
20
  actor: input.actorId,
25
- target: `${this.deps.config.transport.scopeId}:${spaceName}`,
21
+ target: `${this.deps.config.transport.scopeId}:${transportResourceName}`,
26
22
  payload: {
27
23
  runtimeMode: input.runtimeMode,
28
24
  owner,
@@ -31,18 +27,19 @@ export class RuntimeWorkManagementService {
31
27
  },
32
28
  execute: async () => undefined
33
29
  });
34
- const space = await this.deps.getGuard().run({
35
- action: 'transport.space.create',
30
+ const resource = await this.deps.getGuard().run({
31
+ action: 'transport.resource.create',
36
32
  actor: input.actorId,
37
- target: `${this.deps.config.transport.scopeId}:${spaceName}`,
38
- execute: async () => await this.createRuntimeSpace(spaceName, namespace.sessionsCategoryId)
33
+ target: `${this.deps.config.transport.scopeId}:${transportResourceName}`,
34
+ execute: async () => await this.createRuntimeTransportResource(transportResourceName, surface.sessionsCategoryId)
39
35
  });
40
36
  let session;
37
+ let recoveredFromLifecycleRace = false;
41
38
  try {
42
39
  session = this.deps.reactor.createSession({
43
40
  scopeId: this.deps.config.transport.scopeId,
44
- spaceId: space.id,
45
- spaceName: space.name,
41
+ transportResourceId: resource.id,
42
+ transportResourceName: resource.name,
46
43
  requestedName: input.requestedName,
47
44
  runtimeMode: input.runtimeMode,
48
45
  nowIso: this.deps.now(),
@@ -55,19 +52,31 @@ export class RuntimeWorkManagementService {
55
52
  }
56
53
  catch (error) {
57
54
  // Resource lifecycle adoption can race with explicit managed session creation.
58
- // If adoption already persisted the session for this new space, reuse it.
59
- const adopted = this.deps.sessionRegistry.getBySpaceId(space.id);
55
+ // If adoption already persisted the session for this new resource, reuse it.
56
+ const adopted = this.deps.sessionRegistry.getByTransportResourceId(resource.id);
60
57
  if (adopted) {
61
- session = adopted;
58
+ recoveredFromLifecycleRace = adopted.createdBy === 'runtime:transport/resource-lifecycle';
59
+ session = this.deps.sessionRegistry.updateSession({
60
+ ...adopted,
61
+ runtimeMode: input.runtimeMode,
62
+ providerAutoStartEnabled: this.deps.getProviderAutoStartDefault(),
63
+ ownerKind: owner.kind,
64
+ ownerId: owner.id,
65
+ ownerLabel: owner.label,
66
+ objective: objective ?? adopted.objective,
67
+ tags: input.tags ?? adopted.tags ?? [],
68
+ createdBy: input.actorId,
69
+ updatedAt: this.deps.now()
70
+ });
62
71
  }
63
72
  else {
64
- await this.deleteRuntimeSpace(space.id, 'best-effort');
73
+ await this.deleteRuntimeTransportResource(resource.id, 'best-effort');
65
74
  throw error;
66
75
  }
67
76
  }
68
77
  this.deps.appendAuditEvent('session.created', {
69
78
  sessionId: session.sessionId,
70
- spaceId: session.spaceId,
79
+ transportResourceId: session.transportResourceId,
71
80
  runtimeMode: session.runtimeMode,
72
81
  ownerKind: session.ownerKind,
73
82
  ownerId: session.ownerId,
@@ -75,16 +84,16 @@ export class RuntimeWorkManagementService {
75
84
  tags: session.tags ?? [],
76
85
  actorId: input.actorId
77
86
  });
78
- if (session.createdBy === 'runtime:transport/space-lifecycle') {
87
+ if (recoveredFromLifecycleRace) {
79
88
  this.deps.appendAuditEvent('session.created.race_recovered', {
80
89
  sessionId: session.sessionId,
81
- spaceId: session.spaceId,
90
+ transportResourceId: session.transportResourceId,
82
91
  actorId: input.actorId
83
92
  });
84
93
  }
85
94
  if (input.initialInstruction?.trim()) {
86
95
  try {
87
- await this.deps.postTransportMessage(input.actorId, session.spaceId, {
96
+ await this.deps.postTransportMessage(input.actorId, session.transportResourceId, {
88
97
  text: `Queued initial kickoff for ${session.sessionId}.`,
89
98
  blocks: [
90
99
  {
@@ -110,24 +119,24 @@ export class RuntimeWorkManagementService {
110
119
  catch (error) {
111
120
  this.deps.appendAuditEvent('session.created.notification_failed', {
112
121
  sessionId: session.sessionId,
113
- spaceId: session.spaceId,
122
+ transportResourceId: session.transportResourceId,
114
123
  actorId: input.actorId,
115
124
  error: error instanceof Error ? error.message : String(error)
116
125
  });
117
126
  }
118
127
  this.enqueueInitialManagedSessionKickoff({
119
128
  actorId: input.actorId,
120
- spaceId: session.spaceId,
129
+ transportResourceId: session.transportResourceId,
121
130
  sessionId: session.sessionId,
122
131
  instruction: input.initialInstruction
123
132
  });
124
133
  }
125
- return { session, spaceId: space.id };
134
+ return { session, transportResourceId: resource.id };
126
135
  }
127
136
  async directManagedSession(input) {
128
137
  const session = this.resolveManagedWorkerSession(input);
129
138
  if (!session) {
130
- throw new Error('No matching managed worker session found.');
139
+ throw new MoorlineStatusError(404, 'No matching managed worker session found.');
131
140
  }
132
141
  if (session.lifecycleStatus === 'archived') {
133
142
  throw new Error(`Session ${session.sessionId} is archived.`);
@@ -148,17 +157,17 @@ export class RuntimeWorkManagementService {
148
157
  : instruction;
149
158
  const reply = await this.deps.runOrchestrationTurn(session, input.actorId, prompt);
150
159
  const updatedSession = this.deps.sessionRegistry.markDirected({
151
- spaceId: session.spaceId,
160
+ transportResourceId: session.transportResourceId,
152
161
  directedAt: this.deps.now(),
153
162
  directedBy: input.actorId
154
163
  }) ?? session;
155
164
  this.deps.appendAuditEvent('session.directed', {
156
165
  sessionId: session.sessionId,
157
- spaceId: session.spaceId,
166
+ transportResourceId: session.transportResourceId,
158
167
  actorId: input.actorId,
159
168
  reason: input.reason ?? null
160
169
  });
161
- await this.deps.postTransportMessage(input.actorId, session.spaceId, reply);
170
+ await this.deps.postTransportMessage(input.actorId, session.transportResourceId, reply);
162
171
  return {
163
172
  session: updatedSession,
164
173
  reply
@@ -169,23 +178,13 @@ export class RuntimeWorkManagementService {
169
178
  if (!session) {
170
179
  return null;
171
180
  }
172
- const namespace = this.deps.requireNamespaceState();
181
+ const surface = this.deps.requireSurfaceState();
173
182
  await this.deps.getGuard().run({
174
183
  action: 'session.archive',
175
184
  actor: input.actorId,
176
185
  target: session.sessionId,
177
186
  execute: async () => undefined
178
187
  });
179
- await this.deps.getGuard().run({
180
- action: 'transport.space.update',
181
- actor: input.actorId,
182
- target: session.spaceId,
183
- execute: async () => this.deps.getTransport().updateSpace?.({
184
- scopeId: this.deps.config.transport.scopeId,
185
- spaceId: session.spaceId,
186
- parentId: namespace.archiveCategoryId
187
- })
188
- });
189
188
  this.deps.providerService.stopSession(session.threadId);
190
189
  this.deps.providerDirectory.delete(session.threadId);
191
190
  this.deps.rejectTurnWaitersForThread(session.threadId, `Session ${session.sessionId} was archived.`);
@@ -196,14 +195,36 @@ export class RuntimeWorkManagementService {
196
195
  lifecycleStatus: 'archived',
197
196
  archivedAt: nowIso,
198
197
  providerThreadId: null,
199
- resumeThreadId: null,
198
+ resumeCursor: null,
200
199
  providerStatus: 'closed',
201
200
  activeTurnId: null,
202
201
  updatedAt: nowIso
203
202
  });
203
+ await this.deps.getGuard().run({
204
+ action: 'transport.resource.update',
205
+ actor: input.actorId,
206
+ target: session.transportResourceId,
207
+ execute: async () => {
208
+ try {
209
+ await this.deps.getTransport().updateTransportResource?.({
210
+ scopeId: this.deps.config.transport.scopeId,
211
+ transportResourceId: session.transportResourceId,
212
+ parentId: surface.archiveCategoryId
213
+ });
214
+ }
215
+ catch (error) {
216
+ this.deps.appendAuditEvent('session.archive.transport_update_failed', {
217
+ sessionId: session.sessionId,
218
+ transportResourceId: session.transportResourceId,
219
+ actorId: input.actorId,
220
+ error: error instanceof Error ? error.message : String(error)
221
+ });
222
+ }
223
+ }
224
+ });
204
225
  this.deps.appendAuditEvent('session.archived', {
205
226
  sessionId: archived.sessionId,
206
- spaceId: archived.spaceId,
227
+ transportResourceId: archived.transportResourceId,
207
228
  actorId: input.actorId
208
229
  });
209
230
  return archived;
@@ -220,340 +241,73 @@ export class RuntimeWorkManagementService {
220
241
  execute: async () => undefined
221
242
  });
222
243
  await this.deps.getGuard().run({
223
- action: 'transport.space.delete',
244
+ action: 'transport.resource.delete',
224
245
  actor: input.actorId,
225
- target: session.spaceId,
226
- execute: async () => await this.deleteRuntimeSpace(session.spaceId, 'strict')
246
+ target: session.transportResourceId,
247
+ execute: async () => await this.deleteRuntimeTransportResource(session.transportResourceId, 'best-effort')
227
248
  });
228
249
  this.deps.providerService.stopSession(session.threadId);
229
250
  this.deps.providerDirectory.delete(session.threadId);
230
251
  this.deps.rejectTurnWaitersForThread(session.threadId, `Session ${session.sessionId} was deleted.`);
231
252
  await this.deps.cleanupScopedSidecars('session', session.sessionId, `session ${session.sessionId} deleted`);
232
- const deleted = this.deps.sessionRegistry.deleteArchived(session.spaceId);
253
+ const deleted = this.deps.sessionRegistry.deleteArchived(session.transportResourceId);
233
254
  if (deleted) {
234
255
  this.deps.appendAuditEvent('session.deleted', {
235
256
  sessionId: deleted.sessionId,
236
- spaceId: deleted.spaceId,
257
+ transportResourceId: deleted.transportResourceId,
237
258
  workspacePath: deleted.workspacePath,
238
259
  actorId: input.actorId
239
260
  });
240
261
  }
241
262
  return deleted;
242
263
  }
243
- async createMission(input) {
244
- const namespace = this.deps.requireNamespaceState();
245
- const spaceName = slugifySpaceName('mission', input.title);
246
- parseMissionSchedule(input.schedule);
247
- parseMissionStartTime(input.startTime, this.deps.now());
248
- await this.deps.getGuard().run({
249
- action: 'mission.create',
250
- actor: input.actorId,
251
- target: `${this.deps.config.transport.scopeId}:${spaceName}`,
252
- payload: { runtimeMode: input.runtimeMode, schedule: input.schedule, startTime: input.startTime ?? null },
253
- execute: async () => undefined
254
- });
255
- const space = await this.deps.getGuard().run({
256
- action: 'transport.space.create',
257
- actor: input.actorId,
258
- target: `${this.deps.config.transport.scopeId}:${spaceName}`,
259
- execute: async () => await this.createRuntimeSpace(spaceName, namespace.missionsCategoryId)
260
- });
261
- let mission;
262
- try {
263
- mission = this.deps.missionRegistry.create({
264
- scopeId: this.deps.config.transport.scopeId,
265
- spaceId: space.id,
266
- spaceName: space.name,
267
- title: input.title,
268
- goal: input.goal,
269
- schedule: input.schedule,
270
- ...(input.startTime ? { startTime: input.startTime } : {}),
271
- runtimeMode: input.runtimeMode,
272
- nowIso: this.deps.now()
273
- });
274
- }
275
- catch (error) {
276
- await this.deleteRuntimeSpace(space.id, 'best-effort');
277
- throw error;
278
- }
279
- this.deps.appendAuditEvent('mission.created', {
280
- missionId: mission.missionId,
281
- spaceId: mission.spaceId,
282
- runtimeMode: mission.runtimeMode,
283
- actorId: input.actorId
284
- });
285
- return { mission, spaceId: space.id };
286
- }
287
- async adoptMissionChannel(input) {
288
- await this.deps.getGuard().run({
289
- action: 'mission.create',
290
- actor: input.actorId,
291
- target: `${this.deps.config.transport.scopeId}:${input.spaceName}`,
292
- execute: async () => undefined
293
- });
294
- const mission = this.deps.missionRegistry.createDraft({
295
- scopeId: this.deps.config.transport.scopeId,
296
- spaceId: input.spaceId,
297
- spaceName: input.spaceName,
298
- title: input.spaceName,
299
- runtimeMode: this.deps.config.defaults.runtimeMode,
300
- nowIso: this.deps.now()
301
- });
302
- this.deps.appendAuditEvent('mission.adopted_from_transport', {
303
- missionId: mission.missionId,
304
- spaceId: mission.spaceId,
305
- actorId: input.actorId
306
- });
307
- return mission;
308
- }
309
- async configureDraftMission(input) {
310
- const mission = this.resolveMission({ spaceId: input.spaceId, missionId: input.missionId });
311
- if (!mission) {
312
- throw new Error('No matching mission found.');
313
- }
314
- if (mission.lifecycleStatus !== 'draft') {
315
- throw new Error(`Mission ${mission.missionId} is not waiting for initial setup.`);
316
- }
317
- const goal = input.goal.trim();
318
- const schedule = input.schedule.trim();
319
- if (!goal) {
320
- throw new Error('goal is required');
321
- }
322
- if (!schedule) {
323
- throw new Error('schedule is required');
324
- }
325
- await this.deps.getGuard().run({
326
- action: 'mission.create',
327
- actor: input.actorId,
328
- target: mission.missionId,
329
- payload: {
330
- schedule,
331
- startTime: input.startTime ?? null,
332
- runtimeMode: input.runtimeMode ?? mission.runtimeMode
333
- },
334
- execute: async () => undefined
335
- });
336
- const configured = this.deps.missionRegistry.configureDraftMission({
337
- missionId: mission.missionId,
338
- goal,
339
- schedule,
340
- ...(input.startTime ? { startTime: input.startTime } : {}),
341
- ...(input.runtimeMode ? { runtimeMode: input.runtimeMode } : {}),
342
- nowIso: this.deps.now()
343
- });
344
- this.deps.appendAuditEvent('mission.configured', {
345
- missionId: configured.missionId,
346
- spaceId: configured.spaceId,
347
- actorId: input.actorId,
348
- schedule: configured.scheduleText,
349
- runtimeMode: configured.runtimeMode
350
- });
351
- return configured;
352
- }
353
- async archiveMission(input) {
354
- const mission = this.resolveMission({ spaceId: input.spaceId, missionId: input.missionId });
355
- if (!mission) {
356
- return null;
357
- }
358
- const currentMission = this.deps.missionRegistry.getById(mission.missionId);
359
- if (!currentMission) {
360
- return null;
361
- }
362
- if (currentMission.archivedAt) {
363
- return currentMission;
364
- }
365
- const namespace = this.deps.requireNamespaceState();
366
- await this.deps.getGuard().run({
367
- action: 'mission.archive',
368
- actor: input.actorId,
369
- target: currentMission.missionId,
370
- execute: async () => undefined
371
- });
372
- await this.deps.getGuard().run({
373
- action: 'transport.space.update',
374
- actor: input.actorId,
375
- target: currentMission.spaceId,
376
- execute: async () => this.deps.getTransport().updateSpace?.({
377
- scopeId: this.deps.config.transport.scopeId,
378
- spaceId: currentMission.spaceId,
379
- parentId: namespace.archiveCategoryId
380
- })
381
- });
382
- this.deps.providerService.stopSession(currentMission.threadId);
383
- this.deps.providerDirectory.delete(currentMission.threadId);
384
- this.deps.rejectTurnWaitersForThread(currentMission.threadId, `Mission ${currentMission.missionId} was archived.`);
385
- const archivedAt = this.deps.now();
386
- const archived = this.deps.missionRegistry.update({
387
- ...currentMission,
388
- lifecycleStatus: 'stopped',
389
- pausedAt: null,
390
- nextRunAt: null,
391
- stoppedAt: currentMission.stoppedAt ?? archivedAt,
392
- archivedAt,
393
- updatedAt: archivedAt
394
- });
395
- this.deps.appendAuditEvent('mission.archived', {
396
- missionId: archived.missionId,
397
- spaceId: archived.spaceId,
398
- actorId: input.actorId
399
- });
400
- return archived;
401
- }
402
- async deleteArchivedMission(input) {
403
- const mission = this.resolveMission({ spaceId: input.spaceId, missionId: input.missionId });
404
- if (!mission || !mission.archivedAt) {
405
- return null;
406
- }
407
- return await this.deps.queue(`mission:${mission.missionId}`, async () => {
408
- const currentMission = this.deps.missionRegistry.getById(mission.missionId);
409
- if (!currentMission || !currentMission.archivedAt) {
410
- return null;
411
- }
412
- await this.deps.getGuard().run({
413
- action: 'mission.delete',
414
- actor: input.actorId,
415
- target: currentMission.missionId,
416
- execute: async () => undefined
417
- });
418
- await this.deps.getGuard().run({
419
- action: 'transport.space.delete',
420
- actor: input.actorId,
421
- target: currentMission.spaceId,
422
- execute: async () => await this.deleteRuntimeSpace(currentMission.spaceId, 'strict')
423
- });
424
- this.deps.providerService.stopSession(currentMission.threadId);
425
- this.deps.providerDirectory.delete(currentMission.threadId);
426
- this.deps.rejectTurnWaitersForThread(currentMission.threadId, `Mission ${currentMission.missionId} was deleted.`);
427
- const deleted = this.deps.missionRegistry.deleteArchived(currentMission.spaceId);
428
- if (deleted) {
429
- this.deps.appendAuditEvent('mission.deleted', {
430
- missionId: deleted.missionId,
431
- spaceId: deleted.spaceId,
432
- workspacePath: deleted.workspacePath,
433
- actorId: input.actorId
434
- });
435
- }
436
- return deleted;
437
- });
438
- }
439
- async archiveChannelTarget(input) {
440
- const target = this.resolveArchivableChannelTarget(input.spaceId);
264
+ async archiveResourceTarget(input) {
265
+ const target = this.resolveArchivableResourceTarget(input.transportResourceId);
441
266
  if (!target) {
442
267
  return null;
443
268
  }
444
269
  if (target.kind === 'session') {
445
270
  const session = await this.archiveManagedSession({
446
271
  actorId: input.actorId,
447
- spaceId: target.session.spaceId,
272
+ transportResourceId: target.session.transportResourceId,
448
273
  sessionId: target.session.sessionId
449
274
  });
450
275
  return session ? { kind: 'session', session } : null;
451
276
  }
452
- const mission = await this.archiveMission({
453
- actorId: input.actorId,
454
- spaceId: target.mission.spaceId,
455
- missionId: target.mission.missionId
456
- });
457
- return mission ? { kind: 'mission', mission } : null;
277
+ return null;
458
278
  }
459
- async deleteArchivedChannelTarget(input) {
460
- const target = this.resolveArchivableChannelTarget(input.spaceId);
279
+ async deleteArchivedResourceTarget(input) {
280
+ const target = this.resolveArchivableResourceTarget(input.transportResourceId);
461
281
  if (!target) {
462
282
  return null;
463
283
  }
464
284
  if (target.kind === 'session') {
465
285
  const session = await this.deleteManagedSession({
466
286
  actorId: input.actorId,
467
- spaceId: target.session.spaceId,
287
+ transportResourceId: target.session.transportResourceId,
468
288
  sessionId: target.session.sessionId
469
289
  });
470
290
  return session ? { kind: 'session', session } : null;
471
291
  }
472
- const mission = await this.deleteArchivedMission({
473
- actorId: input.actorId,
474
- spaceId: target.mission.spaceId,
475
- missionId: target.mission.missionId
476
- });
477
- return mission ? { kind: 'mission', mission } : null;
478
- }
479
- async updateMissionLifecycle(actorId, input, action) {
480
- const mission = this.resolveMission(input);
481
- if (!mission) {
482
- return null;
483
- }
484
- await this.deps.getGuard().run({
485
- action: 'mission.control',
486
- actor: actorId,
487
- target: mission.missionId,
488
- execute: async () => undefined
489
- });
490
- const nowIso = this.deps.now();
491
- if (mission.lifecycleStatus === 'draft') {
492
- throw new Error(`Mission ${mission.missionId} still needs goal and schedule setup before lifecycle controls are available.`);
493
- }
494
- if (action === 'pause') {
495
- if (mission.archivedAt) {
496
- throw new Error(`Mission ${mission.missionId} is archived and cannot be paused.`);
497
- }
498
- if (mission.lifecycleStatus === 'active' || mission.lifecycleStatus === 'waiting_on_user') {
499
- throw new Error(`Mission ${mission.missionId} is busy. Stop it before pausing.`);
500
- }
501
- return this.deps.missionRegistry.update({
502
- ...mission,
503
- pausedAt: nowIso,
504
- lifecycleStatus: 'sleeping',
505
- updatedAt: nowIso
506
- });
507
- }
508
- if (mission.archivedAt) {
509
- throw new Error(`Mission ${mission.missionId} is archived and cannot be resumed.`);
510
- }
511
- if (action === 'resume') {
512
- if (mission.lifecycleStatus === 'stopped' && mission.stoppedAt) {
513
- throw new Error(`Mission ${mission.missionId} is stopped and cannot be resumed.`);
514
- }
515
- const resumedNextRunAt = this.deps.missionRegistry.runAtOrAfter(mission, nowIso);
516
- const resumedOneShotComplete = this.deps.missionRegistry.isOneShotSchedule(mission) && !resumedNextRunAt;
517
- return this.deps.missionRegistry.update({
518
- ...mission,
519
- pausedAt: null,
520
- lifecycleStatus: resumedOneShotComplete ? 'completed' : 'sleeping',
521
- nextRunAt: resumedNextRunAt,
522
- completedAt: resumedOneShotComplete ? nowIso : mission.completedAt,
523
- updatedAt: nowIso
524
- });
525
- }
526
- this.deps.providerService.stopSession(mission.threadId);
527
- return this.deps.missionRegistry.update({
528
- ...mission,
529
- pausedAt: null,
530
- lifecycleStatus: 'stopped',
531
- stoppedAt: nowIso,
532
- nextRunAt: null,
533
- updatedAt: nowIso
534
- });
292
+ return null;
535
293
  }
536
294
  resolveSession(input) {
537
295
  return ((input.sessionId ? this.deps.sessionRegistry.list().find((entry) => entry.sessionId === input.sessionId) : null) ??
538
- (input.spaceId ? this.deps.sessionRegistry.getBySpaceId(input.spaceId) : null));
296
+ (input.transportResourceId ? this.deps.sessionRegistry.getByTransportResourceId(input.transportResourceId) : null));
539
297
  }
540
298
  resolveManagedWorkerSession(input) {
541
299
  const session = this.resolveSession(input);
542
300
  return session && isManagedWorkerSession(session) ? session : null;
543
301
  }
544
- resolveArchivableChannelTarget(spaceId) {
545
- const session = this.resolveManagedWorkerSession({ spaceId });
302
+ resolveArchivableResourceTarget(transportResourceId) {
303
+ const session = this.resolveManagedWorkerSession({ transportResourceId });
546
304
  if (session) {
547
305
  return { kind: 'session', session };
548
306
  }
549
- const mission = this.deps.missionRegistry.getBySpaceId(spaceId);
550
- if (mission) {
551
- return { kind: 'mission', mission };
552
- }
553
307
  return null;
554
308
  }
555
309
  enqueueInitialManagedSessionKickoff(input) {
556
- void this.deps.queue(input.spaceId, async () => {
310
+ void this.deps.queue(input.transportResourceId, async () => {
557
311
  try {
558
312
  await this.directManagedSession({
559
313
  actorId: input.actorId,
@@ -573,7 +327,7 @@ export class RuntimeWorkManagementService {
573
327
  if (session) {
574
328
  try {
575
329
  await this.deps.sendStatusUpdate({
576
- text: `Initial kickoff failed for ${session.sessionId} in space ${session.spaceId}: ${message}`
330
+ text: `Initial kickoff failed for ${session.sessionId} in transport resource ${session.transportResourceId}: ${message}`
577
331
  });
578
332
  }
579
333
  catch (statusError) {
@@ -588,31 +342,33 @@ export class RuntimeWorkManagementService {
588
342
  }
589
343
  });
590
344
  }
591
- async createRuntimeSpace(name, parentId) {
345
+ async createRuntimeTransportResource(name, parentId) {
592
346
  const transport = this.deps.getTransport();
593
- if (!transport.capabilities().spaces.create || !transport.createSpace) {
594
- throw new Error('Managed space creation requires transport support for spaces.create. Configure a transport with managed space creation or disable managed sessions/missions.');
347
+ if (!transport.capabilities().resources.create || !transport.createTransportResource) {
348
+ throw new Error('Managed resource creation requires transport support for resources.create. Configure a transport with managed resource creation or disable managed sessions.');
595
349
  }
596
- return await transport.createSpace({
350
+ return await transport.createTransportResource({
597
351
  scopeId: this.deps.config.transport.scopeId,
598
352
  name,
599
- kind: 'room',
600
- metadata: buildManagedSpaceMetadata({
353
+ kind: 'conversation',
354
+ metadata: buildManagedTransportResourceMetadata({
601
355
  scopeId: this.deps.config.transport.scopeId,
602
- applicationId: this.deps.config.transport.applicationId
356
+ ...(typeof this.deps.config.transport.config.applicationId === 'string'
357
+ ? { ownerApplicationId: this.deps.config.transport.config.applicationId }
358
+ : {})
603
359
  }),
604
360
  parentId
605
361
  });
606
362
  }
607
- async deleteRuntimeSpace(spaceId, mode) {
363
+ async deleteRuntimeTransportResource(transportResourceId, mode) {
608
364
  const transport = this.deps.getTransport();
609
- if (!transport.capabilities().spaces.delete || !transport.deleteSpace) {
365
+ if (!transport.capabilities().resources.delete || !transport.deleteTransportResource) {
610
366
  return;
611
367
  }
612
368
  try {
613
- await transport.deleteSpace({
369
+ await transport.deleteTransportResource({
614
370
  scopeId: this.deps.config.transport.scopeId,
615
- spaceId: spaceId
371
+ transportResourceId: transportResourceId
616
372
  });
617
373
  }
618
374
  catch (error) {