@moorline/core 0.0.1 → 0.0.3

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 (413) 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 +41 -60
  36. package/dist/core/domain/sessions/runtimeWorkManagementService.js +169 -351
  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 +14 -8
  42. package/dist/core/domain/sessions/sessionState.js +74 -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 +11 -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 +12 -37
  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 +13 -8
  87. package/dist/core/extension/plugins/pluginHost.js +41 -13
  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 +12 -26
  150. package/dist/core/runtime/execution/runtimeInteractionService.js +23 -113
  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 +994 -165
  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 +6 -4
  172. package/dist/core/runtime/hosting/runtimeHostingService.js +23 -46
  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/runtimeTransportEffectService.d.ts +22 -0
  177. package/dist/core/runtime/hosting/runtimeTransportEffectService.js +86 -0
  178. package/dist/core/runtime/hosting/runtimeTransportEffectService.js.map +1 -0
  179. package/dist/core/runtime/hosting/runtimeTransportIntentService.d.ts +23 -0
  180. package/dist/core/runtime/hosting/runtimeTransportIntentService.js +144 -0
  181. package/dist/core/runtime/hosting/runtimeTransportIntentService.js.map +1 -0
  182. package/dist/core/runtime/hosting/runtimeTransportSurfaceService.d.ts +6 -7
  183. package/dist/core/runtime/hosting/runtimeTransportSurfaceService.js +15 -63
  184. package/dist/core/runtime/hosting/runtimeTransportSurfaceService.js.map +1 -1
  185. package/dist/core/runtime/hosting/systemEmbeds.d.ts +0 -1
  186. package/dist/core/runtime/hosting/systemEmbeds.js +0 -9
  187. package/dist/core/runtime/hosting/systemEmbeds.js.map +1 -1
  188. package/dist/core/runtime/lifecycle/packageJobSchedulerService.d.ts +21 -0
  189. package/dist/core/runtime/lifecycle/packageJobSchedulerService.js +84 -0
  190. package/dist/core/runtime/lifecycle/packageJobSchedulerService.js.map +1 -0
  191. package/dist/core/runtime/lifecycle/runtimeLifecycleService.d.ts +2 -13
  192. package/dist/core/runtime/lifecycle/runtimeLifecycleService.js +12 -256
  193. package/dist/core/runtime/lifecycle/runtimeLifecycleService.js.map +1 -1
  194. package/dist/core/runtime/moorlineRuntime.d.ts +7 -8
  195. package/dist/core/runtime/moorlineRuntime.js +73 -57
  196. package/dist/core/runtime/moorlineRuntime.js.map +1 -1
  197. package/dist/core/runtime/moorlineRuntimeBuilder.d.ts +19 -18
  198. package/dist/core/runtime/moorlineRuntimeBuilder.js +69 -109
  199. package/dist/core/runtime/moorlineRuntimeBuilder.js.map +1 -1
  200. package/dist/core/runtime/runtimeBootstrapRegistry.d.ts +0 -2
  201. package/dist/core/runtime/runtimeBootstrapRegistry.js +0 -6
  202. package/dist/core/runtime/runtimeBootstrapRegistry.js.map +1 -1
  203. package/dist/core/runtime/runtimeStatus.js +2 -2
  204. package/dist/core/runtime/runtimeStatus.js.map +1 -1
  205. package/dist/core/runtime/supervision/runtimeControlService.js +4 -1
  206. package/dist/core/runtime/supervision/runtimeControlService.js.map +1 -1
  207. package/dist/core/shared/errors/statusError.d.ts +5 -0
  208. package/dist/core/shared/errors/statusError.js +18 -0
  209. package/dist/core/shared/errors/statusError.js.map +1 -0
  210. package/dist/core/shared/fs/canonicalPathContainment.d.ts +0 -2
  211. package/dist/core/shared/fs/canonicalPathContainment.js +1 -6
  212. package/dist/core/shared/fs/canonicalPathContainment.js.map +1 -1
  213. package/dist/core/shared/fs/runtimeOwnedPath.d.ts +1 -1
  214. package/dist/core/shared/fs/runtimeOwnedPath.js +3 -3
  215. package/dist/core/shared/fs/runtimeOwnedPath.js.map +1 -1
  216. package/dist/core/shared/scheduling/packageSchedule.d.ts +22 -0
  217. package/dist/core/{domain/missions/missionSchedule.js → shared/scheduling/packageSchedule.js} +15 -18
  218. package/dist/core/shared/scheduling/packageSchedule.js.map +1 -0
  219. package/dist/core/shared/utils/childProcessEnv.js +1 -1
  220. package/dist/core/shared/utils/childProcessEnv.js.map +1 -1
  221. package/dist/core/shared/utils/payloadRedaction.d.ts +0 -12
  222. package/dist/core/shared/utils/payloadRedaction.js +0 -77
  223. package/dist/core/shared/utils/payloadRedaction.js.map +1 -1
  224. package/dist/core/shared/utils/remoteNetworkPolicy.d.ts +0 -4
  225. package/dist/core/shared/utils/remoteNetworkPolicy.js +1 -7
  226. package/dist/core/shared/utils/remoteNetworkPolicy.js.map +1 -1
  227. package/dist/core/shared/utils/runtimeMessageUtils.d.ts +0 -1
  228. package/dist/core/shared/utils/runtimeMessageUtils.js +0 -19
  229. package/dist/core/shared/utils/runtimeMessageUtils.js.map +1 -1
  230. package/dist/core/system/backup/runtimeBackupService.d.ts +0 -2
  231. package/dist/core/system/backup/runtimeBackupService.js +71 -2
  232. package/dist/core/system/backup/runtimeBackupService.js.map +1 -1
  233. package/dist/core/system/config/configStore.d.ts +3 -3
  234. package/dist/core/system/config/configStore.js +19 -20
  235. package/dist/core/system/config/configStore.js.map +1 -1
  236. package/dist/core/system/projection/managementReadModel/deps.d.ts +4 -5
  237. package/dist/core/system/projection/managementReadModel/objects/serviceObjects.d.ts +2 -1
  238. package/dist/core/system/projection/managementReadModel/objects/serviceObjects.js +13 -7
  239. package/dist/core/system/projection/managementReadModel/objects/serviceObjects.js.map +1 -1
  240. package/dist/core/system/projection/managementReadModel/packageTrust.d.ts +5 -0
  241. package/dist/core/system/projection/managementReadModel/packageTrust.js +40 -0
  242. package/dist/core/system/projection/managementReadModel/packageTrust.js.map +1 -0
  243. package/dist/core/system/projection/managementReadModel/pluginDiskRecords.d.ts +0 -1
  244. package/dist/core/system/projection/managementReadModel/pluginDiskRecords.js +1 -10
  245. package/dist/core/system/projection/managementReadModel/pluginDiskRecords.js.map +1 -1
  246. package/dist/core/system/projection/managementReadModelService.d.ts +3 -1
  247. package/dist/core/system/projection/managementReadModelService.js +133 -117
  248. package/dist/core/system/projection/managementReadModelService.js.map +1 -1
  249. package/dist/core/system/projection/pendingRequestProjectionStore.d.ts +1 -1
  250. package/dist/core/system/projection/pendingRequestProjectionStore.js +9 -9
  251. package/dist/core/system/projection/pendingRequestProjectionStore.js.map +1 -1
  252. package/dist/core/system/projection/runtimeActivityStore.d.ts +1 -1
  253. package/dist/core/system/projection/runtimeActivityStore.js +7 -7
  254. package/dist/core/system/projection/runtimeActivityStore.js.map +1 -1
  255. package/dist/core/system/projection/runtimeProjectionService.d.ts +1 -1
  256. package/dist/core/system/projection/runtimeProjectionService.js +3 -3
  257. package/dist/core/system/projection/runtimeProjectionService.js.map +1 -1
  258. package/dist/core/system/projection/runtimeReceiptStore.js +5 -5
  259. package/dist/core/system/projection/runtimeReceiptStore.js.map +1 -1
  260. package/dist/core/system/projection/runtimeReconciler.js +2 -2
  261. package/dist/core/system/projection/runtimeReconciler.js.map +1 -1
  262. package/dist/core/system/projection/runtimeSnapshotQuery.d.ts +6 -5
  263. package/dist/core/system/projection/runtimeSnapshotQuery.js +6 -6
  264. package/dist/core/system/projection/runtimeSnapshotQuery.js.map +1 -1
  265. package/dist/core/system/release/releaseArtifacts.d.ts +0 -2
  266. package/dist/core/system/release/releaseArtifacts.js +1 -12
  267. package/dist/core/system/release/releaseArtifacts.js.map +1 -1
  268. package/dist/core/system/release/runtimePackageLoadReport.d.ts +0 -1
  269. package/dist/core/system/release/runtimePackageLoadReport.js +0 -7
  270. package/dist/core/system/release/runtimePackageLoadReport.js.map +1 -1
  271. package/dist/core/system/state/canonicalEventLogStore.d.ts +1 -1
  272. package/dist/core/system/state/canonicalEventLogStore.js +7 -7
  273. package/dist/core/system/state/canonicalEventLogStore.js.map +1 -1
  274. package/dist/core/system/state/safeJson.d.ts +2 -1
  275. package/dist/core/system/state/sqlite/domainEventLogRepository.js +5 -5
  276. package/dist/core/system/state/sqlite/domainEventLogRepository.js.map +1 -1
  277. package/dist/core/system/state/sqlite/externalResourceRepository.d.ts +25 -0
  278. package/dist/core/system/state/sqlite/externalResourceRepository.js +105 -0
  279. package/dist/core/system/state/sqlite/externalResourceRepository.js.map +1 -0
  280. package/dist/core/system/state/sqlite/gateRunRepository.d.ts +13 -0
  281. package/dist/core/system/state/sqlite/gateRunRepository.js +66 -0
  282. package/dist/core/system/state/sqlite/gateRunRepository.js.map +1 -0
  283. package/dist/core/system/state/sqlite/orchestrationRepository.js +6 -6
  284. package/dist/core/system/state/sqlite/orchestrationRepository.js.map +1 -1
  285. package/dist/core/system/state/sqlite/packageJobRepository.d.ts +11 -0
  286. package/dist/core/system/state/sqlite/packageJobRepository.js +60 -0
  287. package/dist/core/system/state/sqlite/packageJobRepository.js.map +1 -0
  288. package/dist/core/system/state/sqlite/packageStateRepository.d.ts +10 -0
  289. package/dist/core/system/state/sqlite/packageStateRepository.js +45 -0
  290. package/dist/core/system/state/sqlite/packageStateRepository.js.map +1 -0
  291. package/dist/core/system/state/sqlite/pendingRequestRepository.d.ts +2 -2
  292. package/dist/core/system/state/sqlite/pendingRequestRepository.js +10 -10
  293. package/dist/core/system/state/sqlite/pendingRequestRepository.js.map +1 -1
  294. package/dist/core/system/state/sqlite/providerEventLogRepository.d.ts +1 -1
  295. package/dist/core/system/state/sqlite/providerEventLogRepository.js +6 -6
  296. package/dist/core/system/state/sqlite/providerEventLogRepository.js.map +1 -1
  297. package/dist/core/system/state/sqlite/rowMappers.d.ts +0 -1
  298. package/dist/core/system/state/sqlite/rowMappers.js +0 -3
  299. package/dist/core/system/state/sqlite/rowMappers.js.map +1 -1
  300. package/dist/core/system/state/sqlite/runtimeReceiptRepository.js +4 -4
  301. package/dist/core/system/state/sqlite/runtimeReceiptRepository.js.map +1 -1
  302. package/dist/core/system/state/sqlite/sessionRepository.d.ts +1 -1
  303. package/dist/core/system/state/sqlite/sessionRepository.js +13 -10
  304. package/dist/core/system/state/sqlite/sessionRepository.js.map +1 -1
  305. package/dist/core/system/state/sqlite/transportIntentRepository.d.ts +12 -0
  306. package/dist/core/system/state/sqlite/transportIntentRepository.js +106 -0
  307. package/dist/core/system/state/sqlite/transportIntentRepository.js.map +1 -0
  308. package/dist/core/system/state/sqlite/types.d.ts +91 -48
  309. package/dist/core/system/state/sqlite/types.js +86 -31
  310. package/dist/core/system/state/sqlite/types.js.map +1 -1
  311. package/dist/core/system/state/sqlite/workItemRepository.d.ts +25 -0
  312. package/dist/core/system/state/sqlite/workItemRepository.js +200 -0
  313. package/dist/core/system/state/sqlite/workItemRepository.js.map +1 -0
  314. package/dist/core/system/state/sqliteSessionStore.d.ts +68 -24
  315. package/dist/core/system/state/sqliteSessionStore.js +92 -41
  316. package/dist/core/system/state/sqliteSessionStore.js.map +1 -1
  317. package/dist/core/system/vcs/gitIgnoreTemplate.js +1 -1
  318. package/dist/core/system/vcs/gitIgnoreTemplate.js.map +1 -1
  319. package/dist/core/system/vcs/gitTrackedPaths.js +1 -1
  320. package/dist/core/system/vcs/gitTrackedPaths.js.map +1 -1
  321. package/dist/types/app.d.ts +35 -36
  322. package/dist/types/config.d.ts +14 -26
  323. package/dist/types/config.js +16 -22
  324. package/dist/types/config.js.map +1 -1
  325. package/dist/types/distro.d.ts +1 -1
  326. package/dist/types/distro.js.map +1 -1
  327. package/dist/types/external.d.ts +1 -0
  328. package/dist/types/external.js +2 -0
  329. package/dist/types/external.js.map +1 -0
  330. package/dist/types/package.d.ts +4 -4
  331. package/dist/types/provider.d.ts +2 -2
  332. package/dist/types/provider.js +1 -1
  333. package/dist/types/provider.js.map +1 -1
  334. package/dist/types/runtime.d.ts +2 -2
  335. package/dist/types/runtime.js +1 -1
  336. package/dist/types/runtime.js.map +1 -1
  337. package/dist/types/transport.d.ts +1 -1
  338. package/dist/types/transport.js.map +1 -1
  339. package/package.json +6 -3
  340. package/resources/migrations/001_sessions.sql +8 -9
  341. package/resources/migrations/003_provider_projections.sql +2 -2
  342. package/resources/migrations/004_runtime_projection_state.sql +1 -1
  343. package/resources/migrations/007_package_state_jobs.sql +28 -0
  344. package/resources/migrations/{009_session_orchestration.sql → 008_session_orchestration.sql} +1 -1
  345. package/resources/migrations/010_scope_space_terminology.sql +2 -0
  346. package/resources/migrations/015_external_work_spine.sql +92 -0
  347. package/resources/migrations/016_provider_profiles.sql +4 -0
  348. package/resources/migrations/017_nullable_session_workspace.sql +49 -0
  349. package/resources/migrations/018_transport_intents.sql +18 -0
  350. package/resources/policies/default-secure.json +13 -95
  351. package/dist/app/bootstrap/officialCatalog.d.ts +0 -1
  352. package/dist/app/bootstrap/officialCatalog.js +0 -2
  353. package/dist/app/bootstrap/officialCatalog.js.map +0 -1
  354. package/dist/core/domain/memory/operatorMemoryService.d.ts +0 -36
  355. package/dist/core/domain/memory/operatorMemoryService.js +0 -81
  356. package/dist/core/domain/memory/operatorMemoryService.js.map +0 -1
  357. package/dist/core/domain/missions/missionDraftSetup.d.ts +0 -12
  358. package/dist/core/domain/missions/missionDraftSetup.js +0 -92
  359. package/dist/core/domain/missions/missionDraftSetup.js.map +0 -1
  360. package/dist/core/domain/missions/missionHookService.d.ts +0 -41
  361. package/dist/core/domain/missions/missionHookService.js +0 -161
  362. package/dist/core/domain/missions/missionHookService.js.map +0 -1
  363. package/dist/core/domain/missions/missionHookValidation.d.ts +0 -8
  364. package/dist/core/domain/missions/missionHookValidation.js +0 -59
  365. package/dist/core/domain/missions/missionHookValidation.js.map +0 -1
  366. package/dist/core/domain/missions/missionRegistry.d.ts +0 -55
  367. package/dist/core/domain/missions/missionRegistry.js +0 -204
  368. package/dist/core/domain/missions/missionRegistry.js.map +0 -1
  369. package/dist/core/domain/missions/missionSchedule.d.ts +0 -24
  370. package/dist/core/domain/missions/missionSchedule.js.map +0 -1
  371. package/dist/core/domain/sessions/workManagement/spaceNames.d.ts +0 -2
  372. package/dist/core/domain/sessions/workManagement/spaceNames.js.map +0 -1
  373. package/dist/core/extension/packages/officialArchiveResolver.d.ts +0 -2
  374. package/dist/core/extension/packages/officialArchiveResolver.js.map +0 -1
  375. package/dist/core/extension/packages/officialCatalog.d.ts +0 -9
  376. package/dist/core/extension/packages/officialCatalog.js +0 -198
  377. package/dist/core/extension/packages/officialCatalog.js.map +0 -1
  378. package/dist/core/extension/packages/packageDistroMetadata.d.ts +0 -14
  379. package/dist/core/extension/packages/packageDistroMetadata.js +0 -153
  380. package/dist/core/extension/packages/packageDistroMetadata.js.map +0 -1
  381. package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.d.ts +0 -7
  382. package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.js +0 -25
  383. package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.js.map +0 -1
  384. package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.d.ts +0 -7
  385. package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.js +0 -6
  386. package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.js.map +0 -1
  387. package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.d.ts +0 -3
  388. package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.js +0 -6
  389. package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.js.map +0 -1
  390. package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.d.ts +0 -12
  391. package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.js +0 -71
  392. package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.js.map +0 -1
  393. package/dist/core/runtime/hosting/managedSpaceMetadata.d.ts +0 -7
  394. package/dist/core/runtime/hosting/managedSpaceMetadata.js +0 -14
  395. package/dist/core/runtime/hosting/managedSpaceMetadata.js.map +0 -1
  396. package/dist/core/runtime/lifecycle/managedChannelLifecycleService.d.ts +0 -37
  397. package/dist/core/runtime/lifecycle/managedChannelLifecycleService.js +0 -256
  398. package/dist/core/runtime/lifecycle/managedChannelLifecycleService.js.map +0 -1
  399. package/dist/core/system/state/sqlite/missionRepository.d.ts +0 -24
  400. package/dist/core/system/state/sqlite/missionRepository.js +0 -252
  401. package/dist/core/system/state/sqlite/missionRepository.js.map +0 -1
  402. package/resources/migrations/007_missions.sql +0 -41
  403. package/resources/migrations/008_mission_schedule_anchor.sql +0 -5
  404. package/resources/migrations/010_mission_archival.sql +0 -1
  405. package/resources/migrations/012_scope_space_terminology.sql +0 -19
  406. package/resources/migrations/015_mission_schedule_meta.sql +0 -9
  407. package/resources/migrations/016_mission_hook_bindings.sql +0 -16
  408. package/resources/official-catalog.json +0 -444
  409. /package/resources/migrations/{011_managed_sidecars.sql → 009_managed_sidecars.sql} +0 -0
  410. /package/resources/migrations/{013_orchestration_dedupe.sql → 011_orchestration_dedupe.sql} +0 -0
  411. /package/resources/migrations/{014_orchestration_execution_claims.sql → 012_orchestration_execution_claims.sql} +0 -0
  412. /package/resources/migrations/{017_domain_event_provenance.sql → 013_domain_event_provenance.sql} +0 -0
  413. /package/resources/migrations/{018_provider_event_processing.sql → 014_provider_event_processing.sql} +0 -0
@@ -1,28 +1,23 @@
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();
17
13
  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;
14
+ const objective = input.objective ?? null;
20
15
  enforceManagedSessionLimit(this.deps.snapshots, owner);
21
- const spaceName = slugifySpaceName('session', input.requestedName);
16
+ const transportResourceName = slugifyResourceName('session', input.requestedName);
22
17
  await this.deps.getGuard().run({
23
18
  action: 'session.create',
24
19
  actor: input.actorId,
25
- target: `${this.deps.config.transport.scopeId}:${spaceName}`,
20
+ target: `${this.deps.config.transport.scopeId}:${transportResourceName}`,
26
21
  payload: {
27
22
  runtimeMode: input.runtimeMode,
28
23
  owner,
@@ -31,43 +26,28 @@ export class RuntimeWorkManagementService {
31
26
  },
32
27
  execute: async () => undefined
33
28
  });
34
- const space = await this.deps.getGuard().run({
35
- action: 'transport.space.create',
29
+ const resource = await this.deps.getGuard().run({
30
+ action: 'transport.resource.create',
36
31
  actor: input.actorId,
37
- target: `${this.deps.config.transport.scopeId}:${spaceName}`,
38
- execute: async () => await this.createRuntimeSpace(spaceName, namespace.sessionsCategoryId)
32
+ target: `${this.deps.config.transport.scopeId}:${transportResourceName}`,
33
+ execute: async () => await this.createRuntimeTransportResource(input.actorId, transportResourceName, null)
34
+ });
35
+ const session = this.deps.reactor.createSession({
36
+ scopeId: this.deps.config.transport.scopeId,
37
+ transportResourceId: resource.id,
38
+ transportResourceName: resource.name,
39
+ requestedName: input.requestedName,
40
+ runtimeMode: input.runtimeMode,
41
+ nowIso: this.deps.now(),
42
+ providerAutoStartEnabled: this.deps.getProviderAutoStartDefault(),
43
+ owner,
44
+ objective: objective ?? undefined,
45
+ tags: input.tags,
46
+ createdBy: input.actorId
39
47
  });
40
- let session;
41
- try {
42
- session = this.deps.reactor.createSession({
43
- scopeId: this.deps.config.transport.scopeId,
44
- spaceId: space.id,
45
- spaceName: space.name,
46
- requestedName: input.requestedName,
47
- runtimeMode: input.runtimeMode,
48
- nowIso: this.deps.now(),
49
- providerAutoStartEnabled: this.deps.getProviderAutoStartDefault(),
50
- owner,
51
- objective: objective ?? undefined,
52
- tags: input.tags,
53
- createdBy: input.actorId
54
- });
55
- }
56
- catch (error) {
57
- // 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);
60
- if (adopted) {
61
- session = adopted;
62
- }
63
- else {
64
- await this.deleteRuntimeSpace(space.id, 'best-effort');
65
- throw error;
66
- }
67
- }
68
48
  this.deps.appendAuditEvent('session.created', {
69
49
  sessionId: session.sessionId,
70
- spaceId: session.spaceId,
50
+ transportResourceId: session.transportResourceId,
71
51
  runtimeMode: session.runtimeMode,
72
52
  ownerKind: session.ownerKind,
73
53
  ownerId: session.ownerId,
@@ -75,16 +55,9 @@ export class RuntimeWorkManagementService {
75
55
  tags: session.tags ?? [],
76
56
  actorId: input.actorId
77
57
  });
78
- if (session.createdBy === 'runtime:transport/space-lifecycle') {
79
- this.deps.appendAuditEvent('session.created.race_recovered', {
80
- sessionId: session.sessionId,
81
- spaceId: session.spaceId,
82
- actorId: input.actorId
83
- });
84
- }
85
58
  if (input.initialInstruction?.trim()) {
86
59
  try {
87
- await this.deps.postTransportMessage(input.actorId, session.spaceId, {
60
+ await this.deps.postTransportMessage(input.actorId, session.transportResourceId, {
88
61
  text: `Queued initial kickoff for ${session.sessionId}.`,
89
62
  blocks: [
90
63
  {
@@ -110,24 +83,82 @@ export class RuntimeWorkManagementService {
110
83
  catch (error) {
111
84
  this.deps.appendAuditEvent('session.created.notification_failed', {
112
85
  sessionId: session.sessionId,
113
- spaceId: session.spaceId,
86
+ transportResourceId: session.transportResourceId,
114
87
  actorId: input.actorId,
115
88
  error: error instanceof Error ? error.message : String(error)
116
89
  });
117
90
  }
118
91
  this.enqueueInitialManagedSessionKickoff({
119
92
  actorId: input.actorId,
120
- spaceId: session.spaceId,
93
+ transportResourceId: session.transportResourceId,
121
94
  sessionId: session.sessionId,
122
95
  instruction: input.initialInstruction
123
96
  });
124
97
  }
125
- return { session, spaceId: space.id };
98
+ return { session, transportResourceId: resource.id };
99
+ }
100
+ async bindManagedSessionToTransportResource(input) {
101
+ const existing = this.deps.sessionRegistry.getByTransportResourceId(input.transportResourceId);
102
+ if (existing) {
103
+ const updated = this.deps.sessionRegistry.updateSession({
104
+ ...existing,
105
+ transportResourceName: input.transportResourceName,
106
+ runtimeMode: input.runtimeMode,
107
+ ownerKind: input.owner?.kind ?? existing.ownerKind,
108
+ ownerId: input.owner?.id ?? existing.ownerId,
109
+ ownerLabel: input.owner?.label ?? existing.ownerLabel,
110
+ objective: input.objective ?? existing.objective,
111
+ tags: input.tags ?? existing.tags ?? [],
112
+ updatedAt: this.deps.now()
113
+ });
114
+ this.deps.appendAuditEvent('session.transport_binding.updated', {
115
+ sessionId: updated.sessionId,
116
+ transportResourceId: updated.transportResourceId,
117
+ actorId: input.actorId
118
+ });
119
+ return updated;
120
+ }
121
+ const owner = input.owner ?? this.deps.defaultSessionOwner(input.actorId);
122
+ const objective = input.objective ?? null;
123
+ enforceManagedSessionLimit(this.deps.snapshots, owner);
124
+ await this.deps.getGuard().run({
125
+ action: 'session.create',
126
+ actor: input.actorId,
127
+ target: `${this.deps.config.transport.scopeId}:${input.transportResourceId}`,
128
+ payload: {
129
+ runtimeMode: input.runtimeMode,
130
+ owner,
131
+ objective,
132
+ tags: input.tags ?? [],
133
+ source: 'transport-intent'
134
+ },
135
+ execute: async () => undefined
136
+ });
137
+ const session = this.deps.reactor.createSession({
138
+ scopeId: this.deps.config.transport.scopeId,
139
+ transportResourceId: input.transportResourceId,
140
+ transportResourceName: input.transportResourceName,
141
+ requestedName: input.requestedName ?? input.transportResourceName,
142
+ runtimeMode: input.runtimeMode,
143
+ nowIso: this.deps.now(),
144
+ providerAutoStartEnabled: this.deps.getProviderAutoStartDefault(),
145
+ owner,
146
+ objective: objective ?? undefined,
147
+ tags: input.tags,
148
+ createdBy: input.actorId
149
+ });
150
+ this.deps.appendAuditEvent('session.created.from_transport_intent', {
151
+ sessionId: session.sessionId,
152
+ transportResourceId: session.transportResourceId,
153
+ runtimeMode: session.runtimeMode,
154
+ actorId: input.actorId
155
+ });
156
+ return session;
126
157
  }
127
158
  async directManagedSession(input) {
128
159
  const session = this.resolveManagedWorkerSession(input);
129
160
  if (!session) {
130
- throw new Error('No matching managed worker session found.');
161
+ throw new MoorlineStatusError(404, 'No matching managed worker session found.');
131
162
  }
132
163
  if (session.lifecycleStatus === 'archived') {
133
164
  throw new Error(`Session ${session.sessionId} is archived.`);
@@ -148,17 +179,17 @@ export class RuntimeWorkManagementService {
148
179
  : instruction;
149
180
  const reply = await this.deps.runOrchestrationTurn(session, input.actorId, prompt);
150
181
  const updatedSession = this.deps.sessionRegistry.markDirected({
151
- spaceId: session.spaceId,
182
+ transportResourceId: session.transportResourceId,
152
183
  directedAt: this.deps.now(),
153
184
  directedBy: input.actorId
154
185
  }) ?? session;
155
186
  this.deps.appendAuditEvent('session.directed', {
156
187
  sessionId: session.sessionId,
157
- spaceId: session.spaceId,
188
+ transportResourceId: session.transportResourceId,
158
189
  actorId: input.actorId,
159
190
  reason: input.reason ?? null
160
191
  });
161
- await this.deps.postTransportMessage(input.actorId, session.spaceId, reply);
192
+ await this.deps.postTransportMessage(input.actorId, session.transportResourceId, reply);
162
193
  return {
163
194
  session: updatedSession,
164
195
  reply
@@ -169,23 +200,12 @@ export class RuntimeWorkManagementService {
169
200
  if (!session) {
170
201
  return null;
171
202
  }
172
- const namespace = this.deps.requireNamespaceState();
173
203
  await this.deps.getGuard().run({
174
204
  action: 'session.archive',
175
205
  actor: input.actorId,
176
206
  target: session.sessionId,
177
207
  execute: async () => undefined
178
208
  });
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
209
  this.deps.providerService.stopSession(session.threadId);
190
210
  this.deps.providerDirectory.delete(session.threadId);
191
211
  this.deps.rejectTurnWaitersForThread(session.threadId, `Session ${session.sessionId} was archived.`);
@@ -196,14 +216,14 @@ export class RuntimeWorkManagementService {
196
216
  lifecycleStatus: 'archived',
197
217
  archivedAt: nowIso,
198
218
  providerThreadId: null,
199
- resumeThreadId: null,
219
+ resumeCursor: null,
200
220
  providerStatus: 'closed',
201
221
  activeTurnId: null,
202
222
  updatedAt: nowIso
203
223
  });
204
224
  this.deps.appendAuditEvent('session.archived', {
205
225
  sessionId: archived.sessionId,
206
- spaceId: archived.spaceId,
226
+ transportResourceId: archived.transportResourceId,
207
227
  actorId: input.actorId
208
228
  });
209
229
  return archived;
@@ -220,340 +240,136 @@ export class RuntimeWorkManagementService {
220
240
  execute: async () => undefined
221
241
  });
222
242
  await this.deps.getGuard().run({
223
- action: 'transport.space.delete',
243
+ action: 'transport.resource.delete',
224
244
  actor: input.actorId,
225
- target: session.spaceId,
226
- execute: async () => await this.deleteRuntimeSpace(session.spaceId, 'strict')
245
+ target: session.transportResourceId,
246
+ execute: async () => await this.deleteRuntimeTransportResource(session.transportResourceId, 'best-effort')
227
247
  });
228
248
  this.deps.providerService.stopSession(session.threadId);
229
249
  this.deps.providerDirectory.delete(session.threadId);
230
250
  this.deps.rejectTurnWaitersForThread(session.threadId, `Session ${session.sessionId} was deleted.`);
231
251
  await this.deps.cleanupScopedSidecars('session', session.sessionId, `session ${session.sessionId} deleted`);
232
- const deleted = this.deps.sessionRegistry.deleteArchived(session.spaceId);
252
+ const deleted = this.deps.sessionRegistry.deleteArchived(session.transportResourceId);
233
253
  if (deleted) {
234
254
  this.deps.appendAuditEvent('session.deleted', {
235
255
  sessionId: deleted.sessionId,
236
- spaceId: deleted.spaceId,
256
+ transportResourceId: deleted.transportResourceId,
237
257
  workspacePath: deleted.workspacePath,
238
258
  actorId: input.actorId
239
259
  });
240
260
  }
241
261
  return deleted;
242
262
  }
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');
263
+ async deleteManagedSessionNow(input) {
264
+ const session = this.resolveManagedWorkerSession(input);
265
+ if (!session) {
266
+ return null;
324
267
  }
325
268
  await this.deps.getGuard().run({
326
- action: 'mission.create',
269
+ action: 'session.delete',
327
270
  actor: input.actorId,
328
- target: mission.missionId,
271
+ target: session.sessionId,
329
272
  payload: {
330
- schedule,
331
- startTime: input.startTime ?? null,
332
- runtimeMode: input.runtimeMode ?? mission.runtimeMode
273
+ deleteWorkspace: input.deleteWorkspace,
274
+ reason: input.reason ?? null
333
275
  },
334
276
  execute: async () => undefined
335
277
  });
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;
278
+ this.deps.providerService.stopSession(session.threadId);
279
+ this.deps.providerDirectory.delete(session.threadId);
280
+ this.deps.rejectTurnWaitersForThread(session.threadId, input.reason ?? `Session ${session.sessionId} was deleted.`);
281
+ await this.deps.cleanupScopedSidecars('session', session.sessionId, `session ${session.sessionId} deleted`);
282
+ const deleted = input.deleteWorkspace
283
+ ? this.deps.sessionRegistry.delete(session.transportResourceId)
284
+ : this.deleteSessionStateOnly(session);
285
+ if (deleted) {
286
+ this.deps.appendAuditEvent('session.deleted', {
287
+ sessionId: deleted.sessionId,
288
+ transportResourceId: deleted.transportResourceId,
289
+ workspacePath: deleted.workspacePath,
290
+ actorId: input.actorId,
291
+ deleteWorkspace: input.deleteWorkspace,
292
+ reason: input.reason ?? null
293
+ });
357
294
  }
358
- const currentMission = this.deps.missionRegistry.getById(mission.missionId);
359
- if (!currentMission) {
295
+ return deleted;
296
+ }
297
+ async resumeManagedSession(input) {
298
+ const session = this.resolveManagedWorkerSession(input);
299
+ if (!session) {
360
300
  return null;
361
301
  }
362
- if (currentMission.archivedAt) {
363
- return currentMission;
302
+ if (session.lifecycleStatus !== 'archived' && session.lifecycleStatus !== 'cool') {
303
+ return session;
364
304
  }
365
- const namespace = this.deps.requireNamespaceState();
366
305
  await this.deps.getGuard().run({
367
- action: 'mission.archive',
306
+ action: 'session.resume',
368
307
  actor: input.actorId,
369
- target: currentMission.missionId,
308
+ target: session.sessionId,
309
+ payload: { reason: input.reason ?? null },
370
310
  execute: async () => undefined
371
311
  });
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')
312
+ const resumed = this.deps.sessionRegistry.resume(session.transportResourceId, this.deps.now());
313
+ if (resumed) {
314
+ this.deps.appendAuditEvent('session.resumed', {
315
+ sessionId: resumed.sessionId,
316
+ transportResourceId: resumed.transportResourceId,
317
+ actorId: input.actorId,
318
+ reason: input.reason ?? null
423
319
  });
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
- });
320
+ }
321
+ return resumed;
438
322
  }
439
- async archiveChannelTarget(input) {
440
- const target = this.resolveArchivableChannelTarget(input.spaceId);
323
+ async archiveResourceTarget(input) {
324
+ const target = this.resolveArchivableResourceTarget(input.transportResourceId);
441
325
  if (!target) {
442
326
  return null;
443
327
  }
444
328
  if (target.kind === 'session') {
445
329
  const session = await this.archiveManagedSession({
446
330
  actorId: input.actorId,
447
- spaceId: target.session.spaceId,
331
+ transportResourceId: target.session.transportResourceId,
448
332
  sessionId: target.session.sessionId
449
333
  });
450
334
  return session ? { kind: 'session', session } : null;
451
335
  }
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;
336
+ return null;
458
337
  }
459
- async deleteArchivedChannelTarget(input) {
460
- const target = this.resolveArchivableChannelTarget(input.spaceId);
338
+ async deleteArchivedResourceTarget(input) {
339
+ const target = this.resolveArchivableResourceTarget(input.transportResourceId);
461
340
  if (!target) {
462
341
  return null;
463
342
  }
464
343
  if (target.kind === 'session') {
465
344
  const session = await this.deleteManagedSession({
466
345
  actorId: input.actorId,
467
- spaceId: target.session.spaceId,
346
+ transportResourceId: target.session.transportResourceId,
468
347
  sessionId: target.session.sessionId
469
348
  });
470
349
  return session ? { kind: 'session', session } : null;
471
350
  }
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
- });
351
+ return null;
535
352
  }
536
353
  resolveSession(input) {
537
354
  return ((input.sessionId ? this.deps.sessionRegistry.list().find((entry) => entry.sessionId === input.sessionId) : null) ??
538
- (input.spaceId ? this.deps.sessionRegistry.getBySpaceId(input.spaceId) : null));
355
+ (input.transportResourceId ? this.deps.sessionRegistry.getByTransportResourceId(input.transportResourceId) : null));
539
356
  }
540
357
  resolveManagedWorkerSession(input) {
541
358
  const session = this.resolveSession(input);
542
359
  return session && isManagedWorkerSession(session) ? session : null;
543
360
  }
544
- resolveArchivableChannelTarget(spaceId) {
545
- const session = this.resolveManagedWorkerSession({ spaceId });
361
+ resolveArchivableResourceTarget(transportResourceId) {
362
+ const session = this.resolveManagedWorkerSession({ transportResourceId });
546
363
  if (session) {
547
364
  return { kind: 'session', session };
548
365
  }
549
- const mission = this.deps.missionRegistry.getBySpaceId(spaceId);
550
- if (mission) {
551
- return { kind: 'mission', mission };
552
- }
553
366
  return null;
554
367
  }
368
+ deleteSessionStateOnly(session) {
369
+ return this.deps.sessionRegistry.deleteRecordOnly(session.transportResourceId) ?? session;
370
+ }
555
371
  enqueueInitialManagedSessionKickoff(input) {
556
- void this.deps.queue(input.spaceId, async () => {
372
+ void this.deps.queue(input.transportResourceId, async () => {
557
373
  try {
558
374
  await this.directManagedSession({
559
375
  actorId: input.actorId,
@@ -573,7 +389,7 @@ export class RuntimeWorkManagementService {
573
389
  if (session) {
574
390
  try {
575
391
  await this.deps.sendStatusUpdate({
576
- text: `Initial kickoff failed for ${session.sessionId} in space ${session.spaceId}: ${message}`
392
+ text: `Initial kickoff failed for ${session.sessionId} in transport resource ${session.transportResourceId}: ${message}`
577
393
  });
578
394
  }
579
395
  catch (statusError) {
@@ -588,31 +404,33 @@ export class RuntimeWorkManagementService {
588
404
  }
589
405
  });
590
406
  }
591
- async createRuntimeSpace(name, parentId) {
407
+ async createRuntimeTransportResource(actor, name, parentId) {
592
408
  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.');
409
+ if (!transport.capabilities().resources.create) {
410
+ throw new Error('Managed resource creation requires transport support for resources.create. Configure a transport with managed resource creation or disable managed sessions.');
595
411
  }
596
- return await transport.createSpace({
412
+ return await this.deps.effects().createResource(actor, {
597
413
  scopeId: this.deps.config.transport.scopeId,
598
414
  name,
599
- kind: 'room',
600
- metadata: buildManagedSpaceMetadata({
415
+ kind: 'conversation',
416
+ metadata: buildManagedTransportResourceMetadata({
601
417
  scopeId: this.deps.config.transport.scopeId,
602
- applicationId: this.deps.config.transport.applicationId
418
+ ...(typeof this.deps.config.transport.config.applicationId === 'string'
419
+ ? { ownerApplicationId: this.deps.config.transport.config.applicationId }
420
+ : {})
603
421
  }),
604
422
  parentId
605
423
  });
606
424
  }
607
- async deleteRuntimeSpace(spaceId, mode) {
425
+ async deleteRuntimeTransportResource(transportResourceId, mode) {
608
426
  const transport = this.deps.getTransport();
609
- if (!transport.capabilities().spaces.delete || !transport.deleteSpace) {
427
+ if (!transport.capabilities().resources.delete) {
610
428
  return;
611
429
  }
612
430
  try {
613
- await transport.deleteSpace({
431
+ await this.deps.effects().deleteResource('runtime:work-management', {
614
432
  scopeId: this.deps.config.transport.scopeId,
615
- spaceId: spaceId
433
+ transportResourceId: transportResourceId
616
434
  });
617
435
  }
618
436
  catch (error) {