@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.
- package/dist/app/bootstrap/apiAdapterPackageLoader.d.ts +0 -10
- package/dist/app/bootstrap/apiAdapterPackageLoader.js +1 -1
- package/dist/app/bootstrap/apiAdapterPackageLoader.js.map +1 -1
- package/dist/app/bootstrap/operatorPackageService.d.ts +11 -4
- package/dist/app/bootstrap/operatorPackageService.js +231 -59
- package/dist/app/bootstrap/operatorPackageService.js.map +1 -1
- package/dist/app/bootstrap/runtimeBootstrap.d.ts +2 -1
- package/dist/app/bootstrap/runtimeBootstrap.js +14 -3
- package/dist/app/bootstrap/runtimeBootstrap.js.map +1 -1
- package/dist/app/control-api/services/actions.d.ts +12 -16
- package/dist/app/control-api/services/actions.js +89 -68
- package/dist/app/control-api/services/actions.js.map +1 -1
- package/dist/app/control-api/services/controlPlane.d.ts +17 -21
- package/dist/app/control-api/services/controlPlane.js +69 -74
- package/dist/app/control-api/services/controlPlane.js.map +1 -1
- package/dist/app/control-api/services/state.js +5 -9
- package/dist/app/control-api/services/state.js.map +1 -1
- package/dist/core/domain/memory/retrieval/indexTargets.js +6 -6
- package/dist/core/domain/memory/retrieval/indexTargets.js.map +1 -1
- package/dist/core/domain/memory/retrieval/schema.js +10 -6
- package/dist/core/domain/memory/retrieval/schema.js.map +1 -1
- package/dist/core/domain/memory/retrieval/scope.d.ts +2 -2
- package/dist/core/domain/memory/retrieval/scope.js +7 -7
- package/dist/core/domain/memory/retrieval/scope.js.map +1 -1
- package/dist/core/domain/memory/retrieval/types.d.ts +2 -7
- package/dist/core/domain/memory/retrieval/types.js.map +1 -1
- package/dist/core/domain/memory/retrieval.d.ts +1 -2
- package/dist/core/domain/memory/retrieval.js +9 -16
- package/dist/core/domain/memory/retrieval.js.map +1 -1
- package/dist/core/domain/memory/store.d.ts +1 -1
- package/dist/core/domain/memory/store.js +2 -2
- package/dist/core/domain/memory/store.js.map +1 -1
- package/dist/core/domain/sessions/managedWorkerSessions.d.ts +0 -1
- package/dist/core/domain/sessions/managedWorkerSessions.js.map +1 -1
- package/dist/core/domain/sessions/runtimeWorkManagementService.d.ts +17 -62
- package/dist/core/domain/sessions/runtimeWorkManagementService.js +97 -341
- package/dist/core/domain/sessions/runtimeWorkManagementService.js.map +1 -1
- package/dist/core/domain/sessions/sessionLifecycleService.d.ts +1 -1
- package/dist/core/domain/sessions/sessionLifecycleService.js +4 -4
- package/dist/core/domain/sessions/sessionLifecycleService.js.map +1 -1
- package/dist/core/domain/sessions/sessionState.d.ts +10 -8
- package/dist/core/domain/sessions/sessionState.js +38 -28
- package/dist/core/domain/sessions/sessionState.js.map +1 -1
- package/dist/core/domain/sessions/workManagement/transportResourceNames.d.ts +2 -0
- package/dist/core/domain/sessions/workManagement/{spaceNames.js → transportResourceNames.js} +2 -2
- package/dist/core/domain/sessions/workManagement/transportResourceNames.js.map +1 -0
- package/dist/core/extension/capabilities/capabilities.d.ts +1 -1
- package/dist/core/extension/capabilities/capabilities.js +8 -8
- package/dist/core/extension/capabilities/capabilities.js.map +1 -1
- package/dist/core/extension/packages/bundledArchiveResolver.d.ts +2 -0
- package/dist/core/extension/packages/{officialArchiveResolver.js → bundledArchiveResolver.js} +4 -4
- package/dist/core/extension/packages/bundledArchiveResolver.js.map +1 -0
- package/dist/core/extension/packages/npmRegistryClient.d.ts +3 -2
- package/dist/core/extension/packages/npmRegistryClient.js +9 -22
- package/dist/core/extension/packages/npmRegistryClient.js.map +1 -1
- package/dist/core/extension/packages/packageActivation.d.ts +0 -4
- package/dist/core/extension/packages/packageActivation.js +2 -12
- package/dist/core/extension/packages/packageActivation.js.map +1 -1
- package/dist/core/extension/packages/packageApplyPlanner.js +1 -4
- package/dist/core/extension/packages/packageApplyPlanner.js.map +1 -1
- package/dist/core/extension/packages/packageConfigSchema.js +0 -33
- package/dist/core/extension/packages/packageConfigSchema.js.map +1 -1
- package/dist/core/extension/packages/packageDependencyResolver.js +2 -20
- package/dist/core/extension/packages/packageDependencyResolver.js.map +1 -1
- package/dist/core/extension/packages/packageInstaller.js +3 -0
- package/dist/core/extension/packages/packageInstaller.js.map +1 -1
- package/dist/core/extension/packages/packageInventoryStore.js +20 -4
- package/dist/core/extension/packages/packageInventoryStore.js.map +1 -1
- package/dist/core/extension/packages/packageRegistryBlocklist.d.ts +2 -2
- package/dist/core/extension/packages/packageRegistryBlocklist.js +1 -1
- package/dist/core/extension/packages/packageRegistryBlocklist.js.map +1 -1
- package/dist/core/extension/packages/packageRegistryService.d.ts +8 -3
- package/dist/core/extension/packages/packageRegistryService.js +109 -49
- package/dist/core/extension/packages/packageRegistryService.js.map +1 -1
- package/dist/core/extension/packages/packageRegistryTypes.d.ts +14 -6
- package/dist/core/extension/packages/packageSource.js +120 -5
- package/dist/core/extension/packages/packageSource.js.map +1 -1
- package/dist/core/extension/packages/packageValidation.js +1 -1
- package/dist/core/extension/packages/packageValidation.js.map +1 -1
- package/dist/core/extension/packages/packageVersionResolver.d.ts +6 -11
- package/dist/core/extension/packages/packageVersionResolver.js +5 -5
- package/dist/core/extension/packages/packageVersionResolver.js.map +1 -1
- package/dist/core/extension/packages/runtimeStartability.d.ts +2 -2
- package/dist/core/extension/packages/runtimeStartability.js +26 -23
- package/dist/core/extension/packages/runtimeStartability.js.map +1 -1
- package/dist/core/extension/plugins/pluginHost.d.ts +9 -4
- package/dist/core/extension/plugins/pluginHost.js +33 -7
- package/dist/core/extension/plugins/pluginHost.js.map +1 -1
- package/dist/core/extension/plugins/pluginId.d.ts +0 -1
- package/dist/core/extension/plugins/pluginId.js +0 -3
- package/dist/core/extension/plugins/pluginId.js.map +1 -1
- package/dist/core/extension/plugins/runtimePluginLoader.d.ts +0 -1
- package/dist/core/extension/plugins/runtimePluginLoader.js +0 -7
- package/dist/core/extension/plugins/runtimePluginLoader.js.map +1 -1
- package/dist/core/extension/skills/skillRegistry.d.ts +3 -2
- package/dist/core/extension/skills/skillWriter.d.ts +1 -1
- package/dist/core/extension/skills/skillWriter.js +2 -2
- package/dist/core/runtime/execution/commandReactor.d.ts +5 -5
- package/dist/core/runtime/execution/commandReactor.js +10 -7
- package/dist/core/runtime/execution/commandReactor.js.map +1 -1
- package/dist/core/runtime/execution/defaultModelSelection.js +1 -1
- package/dist/core/runtime/execution/orchestrationEngine.js +10 -10
- package/dist/core/runtime/execution/orchestrationEngine.js.map +1 -1
- package/dist/core/runtime/execution/orchestrationHealth.d.ts +0 -7
- package/dist/core/runtime/execution/orchestrationHealth.js +1 -1
- package/dist/core/runtime/execution/orchestrationHealth.js.map +1 -1
- package/dist/core/runtime/execution/pluginContext/defaultSessionOwner.js +3 -5
- package/dist/core/runtime/execution/pluginContext/defaultSessionOwner.js.map +1 -1
- package/dist/core/runtime/execution/pluginContext/pluginCapabilities.d.ts +0 -2
- package/dist/core/runtime/execution/pluginContext/pluginCapabilities.js +0 -2
- package/dist/core/runtime/execution/pluginContext/pluginCapabilities.js.map +1 -1
- package/dist/core/runtime/execution/pluginContext/pluginContextFactory.d.ts +1 -2
- package/dist/core/runtime/execution/pluginContext/pluginContextFactory.js +1 -2
- package/dist/core/runtime/execution/pluginContext/pluginContextFactory.js.map +1 -1
- package/dist/core/runtime/execution/providerCoordination/providerSessionCoordinator.js +3 -3
- package/dist/core/runtime/execution/providerCoordination/providerSessionCoordinator.js.map +1 -1
- package/dist/core/runtime/execution/providerOrchestration/ports.d.ts +3 -13
- package/dist/core/runtime/execution/providerOrchestration/providerAttachmentResolver.d.ts +3 -3
- package/dist/core/runtime/execution/providerOrchestration/providerAttachmentResolver.js +4 -5
- package/dist/core/runtime/execution/providerOrchestration/providerAttachmentResolver.js.map +1 -1
- package/dist/core/runtime/execution/providerOrchestration/providerCompactionPolicy.d.ts +2 -1
- package/dist/core/runtime/execution/providerOrchestration/providerCompactionPolicy.js +5 -5
- package/dist/core/runtime/execution/providerOrchestration/providerCompactionPolicy.js.map +1 -1
- package/dist/core/runtime/execution/providerOrchestration/providerEventPipeline.d.ts +3 -5
- package/dist/core/runtime/execution/providerOrchestration/providerEventPipeline.js +10 -8
- package/dist/core/runtime/execution/providerOrchestration/providerEventPipeline.js.map +1 -1
- package/dist/core/runtime/execution/providerOrchestration/providerOrchestrator.d.ts +3 -3
- package/dist/core/runtime/execution/providerOrchestration/providerOrchestrator.js +0 -3
- package/dist/core/runtime/execution/providerOrchestration/providerOrchestrator.js.map +1 -1
- package/dist/core/runtime/execution/providerOrchestration/providerRequestProjector.d.ts +3 -2
- package/dist/core/runtime/execution/providerOrchestration/providerRequestProjector.js +6 -6
- package/dist/core/runtime/execution/providerOrchestration/providerRequestProjector.js.map +1 -1
- package/dist/core/runtime/execution/providerOrchestration/providerSessionOrchestrator.d.ts +9 -6
- package/dist/core/runtime/execution/providerOrchestration/providerSessionOrchestrator.js +36 -15
- package/dist/core/runtime/execution/providerOrchestration/providerSessionOrchestrator.js.map +1 -1
- package/dist/core/runtime/execution/providerOrchestration/providerTurnBroker.d.ts +9 -3
- package/dist/core/runtime/execution/providerOrchestration/providerTurnBroker.js +19 -7
- package/dist/core/runtime/execution/providerOrchestration/providerTurnBroker.js.map +1 -1
- package/dist/core/runtime/execution/providerProjectionTypes.d.ts +4 -2
- package/dist/core/runtime/execution/providerProjectionTypes.js +2 -0
- package/dist/core/runtime/execution/providerProjectionTypes.js.map +1 -1
- package/dist/core/runtime/execution/providerSessionDirectory.js +12 -4
- package/dist/core/runtime/execution/providerSessionDirectory.js.map +1 -1
- package/dist/core/runtime/execution/runtimeDomain.d.ts +11 -9
- package/dist/core/runtime/execution/runtimeDomain.js +10 -3
- package/dist/core/runtime/execution/runtimeDomain.js.map +1 -1
- package/dist/core/runtime/execution/runtimeIngestion.js +15 -13
- package/dist/core/runtime/execution/runtimeIngestion.js.map +1 -1
- package/dist/core/runtime/execution/runtimeInteractionService.d.ts +4 -18
- package/dist/core/runtime/execution/runtimeInteractionService.js +15 -93
- package/dist/core/runtime/execution/runtimeInteractionService.js.map +1 -1
- package/dist/core/runtime/execution/runtimeOrchestrationRequestService.d.ts +1 -1
- package/dist/core/runtime/execution/runtimeOrchestrationRequestService.js +8 -28
- package/dist/core/runtime/execution/runtimeOrchestrationRequestService.js.map +1 -1
- package/dist/core/runtime/execution/runtimeOrchestrationRequests.d.ts +7 -29
- package/dist/core/runtime/execution/runtimeOrchestrationRequests.js +21 -67
- package/dist/core/runtime/execution/runtimeOrchestrationRequests.js.map +1 -1
- package/dist/core/runtime/execution/runtimeOrchestrationResult.js +5 -0
- package/dist/core/runtime/execution/runtimeOrchestrationResult.js.map +1 -1
- package/dist/core/runtime/execution/runtimePendingRequestService.d.ts +2 -2
- package/dist/core/runtime/execution/runtimePendingRequestService.js +10 -10
- package/dist/core/runtime/execution/runtimePendingRequestService.js.map +1 -1
- package/dist/core/runtime/execution/runtimePluginContextService.d.ts +28 -15
- package/dist/core/runtime/execution/runtimePluginContextService.js +989 -166
- package/dist/core/runtime/execution/runtimePluginContextService.js.map +1 -1
- package/dist/core/runtime/execution/runtimeWorkerQueues.js +1 -1
- package/dist/core/runtime/execution/runtimeWorkerQueues.js.map +1 -1
- package/dist/core/runtime/hosting/managedTransportResourceMetadata.d.ts +6 -0
- package/dist/core/runtime/hosting/managedTransportResourceMetadata.js +8 -0
- package/dist/core/runtime/hosting/managedTransportResourceMetadata.js.map +1 -0
- package/dist/core/runtime/hosting/runtimeHostingService.d.ts +1 -1
- package/dist/core/runtime/hosting/runtimeHostingService.js +16 -20
- package/dist/core/runtime/hosting/runtimeHostingService.js.map +1 -1
- package/dist/core/runtime/hosting/runtimeLayout.js +1 -1
- package/dist/core/runtime/hosting/runtimeLayout.js.map +1 -1
- package/dist/core/runtime/hosting/runtimeTransportSurfaceService.d.ts +4 -4
- package/dist/core/runtime/hosting/runtimeTransportSurfaceService.js +17 -17
- package/dist/core/runtime/hosting/runtimeTransportSurfaceService.js.map +1 -1
- package/dist/core/runtime/hosting/systemEmbeds.d.ts +0 -1
- package/dist/core/runtime/hosting/systemEmbeds.js +0 -9
- package/dist/core/runtime/hosting/systemEmbeds.js.map +1 -1
- package/dist/core/runtime/lifecycle/{managedChannelLifecycleService.d.ts → managedTransportResourceLifecycleService.d.ts} +6 -9
- package/dist/core/runtime/lifecycle/managedTransportResourceLifecycleService.js +158 -0
- package/dist/core/runtime/lifecycle/managedTransportResourceLifecycleService.js.map +1 -0
- package/dist/core/runtime/lifecycle/packageJobSchedulerService.d.ts +21 -0
- package/dist/core/runtime/lifecycle/packageJobSchedulerService.js +84 -0
- package/dist/core/runtime/lifecycle/packageJobSchedulerService.js.map +1 -0
- package/dist/core/runtime/lifecycle/runtimeLifecycleService.d.ts +2 -13
- package/dist/core/runtime/lifecycle/runtimeLifecycleService.js +19 -250
- package/dist/core/runtime/lifecycle/runtimeLifecycleService.js.map +1 -1
- package/dist/core/runtime/moorlineRuntime.d.ts +7 -8
- package/dist/core/runtime/moorlineRuntime.js +71 -47
- package/dist/core/runtime/moorlineRuntime.js.map +1 -1
- package/dist/core/runtime/moorlineRuntimeBuilder.d.ts +17 -18
- package/dist/core/runtime/moorlineRuntimeBuilder.js +53 -93
- package/dist/core/runtime/moorlineRuntimeBuilder.js.map +1 -1
- package/dist/core/runtime/runtimeBootstrapRegistry.d.ts +0 -2
- package/dist/core/runtime/runtimeBootstrapRegistry.js +0 -6
- package/dist/core/runtime/runtimeBootstrapRegistry.js.map +1 -1
- package/dist/core/runtime/runtimeStatus.js +2 -2
- package/dist/core/runtime/runtimeStatus.js.map +1 -1
- package/dist/core/runtime/supervision/runtimeControlService.js +4 -1
- package/dist/core/runtime/supervision/runtimeControlService.js.map +1 -1
- package/dist/core/shared/errors/statusError.d.ts +5 -0
- package/dist/core/shared/errors/statusError.js +18 -0
- package/dist/core/shared/errors/statusError.js.map +1 -0
- package/dist/core/shared/fs/canonicalPathContainment.d.ts +0 -2
- package/dist/core/shared/fs/canonicalPathContainment.js +1 -6
- package/dist/core/shared/fs/canonicalPathContainment.js.map +1 -1
- package/dist/core/shared/fs/runtimeOwnedPath.d.ts +1 -1
- package/dist/core/shared/fs/runtimeOwnedPath.js +3 -3
- package/dist/core/shared/fs/runtimeOwnedPath.js.map +1 -1
- package/dist/core/shared/scheduling/packageSchedule.d.ts +22 -0
- package/dist/core/{domain/missions/missionSchedule.js → shared/scheduling/packageSchedule.js} +15 -18
- package/dist/core/shared/scheduling/packageSchedule.js.map +1 -0
- package/dist/core/shared/utils/childProcessEnv.js +1 -1
- package/dist/core/shared/utils/childProcessEnv.js.map +1 -1
- package/dist/core/shared/utils/payloadRedaction.d.ts +0 -12
- package/dist/core/shared/utils/payloadRedaction.js +0 -77
- package/dist/core/shared/utils/payloadRedaction.js.map +1 -1
- package/dist/core/shared/utils/remoteNetworkPolicy.d.ts +0 -4
- package/dist/core/shared/utils/remoteNetworkPolicy.js +1 -7
- package/dist/core/shared/utils/remoteNetworkPolicy.js.map +1 -1
- package/dist/core/shared/utils/runtimeMessageUtils.d.ts +0 -1
- package/dist/core/shared/utils/runtimeMessageUtils.js +0 -19
- package/dist/core/shared/utils/runtimeMessageUtils.js.map +1 -1
- package/dist/core/system/backup/runtimeBackupService.d.ts +0 -2
- package/dist/core/system/backup/runtimeBackupService.js +71 -2
- package/dist/core/system/backup/runtimeBackupService.js.map +1 -1
- package/dist/core/system/config/configStore.d.ts +3 -3
- package/dist/core/system/config/configStore.js +19 -20
- package/dist/core/system/config/configStore.js.map +1 -1
- package/dist/core/system/projection/managementReadModel/deps.d.ts +4 -5
- package/dist/core/system/projection/managementReadModel/objects/serviceObjects.d.ts +2 -1
- package/dist/core/system/projection/managementReadModel/objects/serviceObjects.js +13 -7
- package/dist/core/system/projection/managementReadModel/objects/serviceObjects.js.map +1 -1
- package/dist/core/system/projection/managementReadModel/packageTrust.d.ts +5 -0
- package/dist/core/system/projection/managementReadModel/packageTrust.js +40 -0
- package/dist/core/system/projection/managementReadModel/packageTrust.js.map +1 -0
- package/dist/core/system/projection/managementReadModel/pluginDiskRecords.d.ts +0 -1
- package/dist/core/system/projection/managementReadModel/pluginDiskRecords.js +1 -10
- package/dist/core/system/projection/managementReadModel/pluginDiskRecords.js.map +1 -1
- package/dist/core/system/projection/managementReadModelService.d.ts +3 -1
- package/dist/core/system/projection/managementReadModelService.js +133 -117
- package/dist/core/system/projection/managementReadModelService.js.map +1 -1
- package/dist/core/system/projection/pendingRequestProjectionStore.d.ts +1 -1
- package/dist/core/system/projection/pendingRequestProjectionStore.js +9 -9
- package/dist/core/system/projection/pendingRequestProjectionStore.js.map +1 -1
- package/dist/core/system/projection/runtimeActivityStore.d.ts +1 -1
- package/dist/core/system/projection/runtimeActivityStore.js +7 -7
- package/dist/core/system/projection/runtimeActivityStore.js.map +1 -1
- package/dist/core/system/projection/runtimeProjectionService.d.ts +1 -1
- package/dist/core/system/projection/runtimeProjectionService.js +3 -3
- package/dist/core/system/projection/runtimeProjectionService.js.map +1 -1
- package/dist/core/system/projection/runtimeReceiptStore.js +5 -5
- package/dist/core/system/projection/runtimeReceiptStore.js.map +1 -1
- package/dist/core/system/projection/runtimeReconciler.js +2 -2
- package/dist/core/system/projection/runtimeReconciler.js.map +1 -1
- package/dist/core/system/projection/runtimeSnapshotQuery.d.ts +6 -5
- package/dist/core/system/projection/runtimeSnapshotQuery.js +6 -6
- package/dist/core/system/projection/runtimeSnapshotQuery.js.map +1 -1
- package/dist/core/system/release/releaseArtifacts.d.ts +0 -2
- package/dist/core/system/release/releaseArtifacts.js +1 -12
- package/dist/core/system/release/releaseArtifacts.js.map +1 -1
- package/dist/core/system/release/runtimePackageLoadReport.d.ts +0 -1
- package/dist/core/system/release/runtimePackageLoadReport.js +0 -7
- package/dist/core/system/release/runtimePackageLoadReport.js.map +1 -1
- package/dist/core/system/state/canonicalEventLogStore.d.ts +1 -1
- package/dist/core/system/state/canonicalEventLogStore.js +7 -7
- package/dist/core/system/state/canonicalEventLogStore.js.map +1 -1
- package/dist/core/system/state/safeJson.d.ts +2 -1
- package/dist/core/system/state/sqlite/domainEventLogRepository.js +5 -5
- package/dist/core/system/state/sqlite/domainEventLogRepository.js.map +1 -1
- package/dist/core/system/state/sqlite/externalResourceRepository.d.ts +25 -0
- package/dist/core/system/state/sqlite/externalResourceRepository.js +105 -0
- package/dist/core/system/state/sqlite/externalResourceRepository.js.map +1 -0
- package/dist/core/system/state/sqlite/gateRunRepository.d.ts +13 -0
- package/dist/core/system/state/sqlite/gateRunRepository.js +66 -0
- package/dist/core/system/state/sqlite/gateRunRepository.js.map +1 -0
- package/dist/core/system/state/sqlite/orchestrationRepository.js +6 -6
- package/dist/core/system/state/sqlite/orchestrationRepository.js.map +1 -1
- package/dist/core/system/state/sqlite/packageJobRepository.d.ts +11 -0
- package/dist/core/system/state/sqlite/packageJobRepository.js +60 -0
- package/dist/core/system/state/sqlite/packageJobRepository.js.map +1 -0
- package/dist/core/system/state/sqlite/packageStateRepository.d.ts +10 -0
- package/dist/core/system/state/sqlite/packageStateRepository.js +45 -0
- package/dist/core/system/state/sqlite/packageStateRepository.js.map +1 -0
- package/dist/core/system/state/sqlite/pendingRequestRepository.d.ts +2 -2
- package/dist/core/system/state/sqlite/pendingRequestRepository.js +10 -10
- package/dist/core/system/state/sqlite/pendingRequestRepository.js.map +1 -1
- package/dist/core/system/state/sqlite/providerEventLogRepository.d.ts +1 -1
- package/dist/core/system/state/sqlite/providerEventLogRepository.js +6 -6
- package/dist/core/system/state/sqlite/providerEventLogRepository.js.map +1 -1
- package/dist/core/system/state/sqlite/rowMappers.d.ts +0 -1
- package/dist/core/system/state/sqlite/rowMappers.js +0 -3
- package/dist/core/system/state/sqlite/rowMappers.js.map +1 -1
- package/dist/core/system/state/sqlite/runtimeReceiptRepository.js +4 -4
- package/dist/core/system/state/sqlite/runtimeReceiptRepository.js.map +1 -1
- package/dist/core/system/state/sqlite/sessionRepository.d.ts +1 -1
- package/dist/core/system/state/sqlite/sessionRepository.js +13 -10
- package/dist/core/system/state/sqlite/sessionRepository.js.map +1 -1
- package/dist/core/system/state/sqlite/types.d.ts +91 -48
- package/dist/core/system/state/sqlite/types.js +86 -31
- package/dist/core/system/state/sqlite/types.js.map +1 -1
- package/dist/core/system/state/sqlite/workItemRepository.d.ts +25 -0
- package/dist/core/system/state/sqlite/workItemRepository.js +200 -0
- package/dist/core/system/state/sqlite/workItemRepository.js.map +1 -0
- package/dist/core/system/state/sqliteSessionStore.d.ts +62 -24
- package/dist/core/system/state/sqliteSessionStore.js +77 -41
- package/dist/core/system/state/sqliteSessionStore.js.map +1 -1
- package/dist/core/system/vcs/gitIgnoreTemplate.js +1 -1
- package/dist/core/system/vcs/gitIgnoreTemplate.js.map +1 -1
- package/dist/core/system/vcs/gitTrackedPaths.js +1 -1
- package/dist/core/system/vcs/gitTrackedPaths.js.map +1 -1
- package/dist/types/app.d.ts +35 -36
- package/dist/types/config.d.ts +14 -19
- package/dist/types/config.js +16 -22
- package/dist/types/config.js.map +1 -1
- package/dist/types/distro.d.ts +1 -1
- package/dist/types/distro.js.map +1 -1
- package/dist/types/external.d.ts +1 -0
- package/dist/types/external.js +2 -0
- package/dist/types/external.js.map +1 -0
- package/dist/types/package.d.ts +4 -4
- package/dist/types/provider.d.ts +2 -2
- package/dist/types/provider.js +1 -1
- package/dist/types/provider.js.map +1 -1
- package/dist/types/runtime.d.ts +2 -2
- package/dist/types/runtime.js +1 -1
- package/dist/types/runtime.js.map +1 -1
- package/dist/types/transport.d.ts +1 -1
- package/dist/types/transport.js.map +1 -1
- package/package.json +2 -2
- package/resources/migrations/001_sessions.sql +8 -9
- package/resources/migrations/003_provider_projections.sql +2 -2
- package/resources/migrations/004_runtime_projection_state.sql +1 -1
- package/resources/migrations/007_package_state_jobs.sql +28 -0
- package/resources/migrations/{009_session_orchestration.sql → 008_session_orchestration.sql} +1 -1
- package/resources/migrations/010_scope_space_terminology.sql +2 -0
- package/resources/migrations/015_external_work_spine.sql +92 -0
- package/resources/migrations/016_provider_profiles.sql +4 -0
- package/resources/migrations/017_nullable_session_workspace.sql +49 -0
- package/resources/policies/default-secure.json +13 -95
- package/dist/app/bootstrap/officialCatalog.d.ts +0 -1
- package/dist/app/bootstrap/officialCatalog.js +0 -2
- package/dist/app/bootstrap/officialCatalog.js.map +0 -1
- package/dist/core/domain/memory/operatorMemoryService.d.ts +0 -36
- package/dist/core/domain/memory/operatorMemoryService.js +0 -81
- package/dist/core/domain/memory/operatorMemoryService.js.map +0 -1
- package/dist/core/domain/missions/missionDraftSetup.d.ts +0 -12
- package/dist/core/domain/missions/missionDraftSetup.js +0 -92
- package/dist/core/domain/missions/missionDraftSetup.js.map +0 -1
- package/dist/core/domain/missions/missionHookService.d.ts +0 -41
- package/dist/core/domain/missions/missionHookService.js +0 -161
- package/dist/core/domain/missions/missionHookService.js.map +0 -1
- package/dist/core/domain/missions/missionHookValidation.d.ts +0 -8
- package/dist/core/domain/missions/missionHookValidation.js +0 -59
- package/dist/core/domain/missions/missionHookValidation.js.map +0 -1
- package/dist/core/domain/missions/missionRegistry.d.ts +0 -55
- package/dist/core/domain/missions/missionRegistry.js +0 -204
- package/dist/core/domain/missions/missionRegistry.js.map +0 -1
- package/dist/core/domain/missions/missionSchedule.d.ts +0 -24
- package/dist/core/domain/missions/missionSchedule.js.map +0 -1
- package/dist/core/domain/sessions/workManagement/spaceNames.d.ts +0 -2
- package/dist/core/domain/sessions/workManagement/spaceNames.js.map +0 -1
- package/dist/core/extension/packages/officialArchiveResolver.d.ts +0 -2
- package/dist/core/extension/packages/officialArchiveResolver.js.map +0 -1
- package/dist/core/extension/packages/officialCatalog.d.ts +0 -9
- package/dist/core/extension/packages/officialCatalog.js +0 -198
- package/dist/core/extension/packages/officialCatalog.js.map +0 -1
- package/dist/core/extension/packages/packageDistroMetadata.d.ts +0 -14
- package/dist/core/extension/packages/packageDistroMetadata.js +0 -153
- package/dist/core/extension/packages/packageDistroMetadata.js.map +0 -1
- package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.d.ts +0 -7
- package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.js +0 -25
- package/dist/core/runtime/execution/providerCoordination/providerCompactionCoordinator.js.map +0 -1
- package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.d.ts +0 -7
- package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.js +0 -6
- package/dist/core/runtime/execution/providerCoordination/providerRecoveryService.js.map +0 -1
- package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.d.ts +0 -3
- package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.js +0 -6
- package/dist/core/runtime/execution/providerCoordination/providerTurnCoordinator.js.map +0 -1
- package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.d.ts +0 -12
- package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.js +0 -71
- package/dist/core/runtime/execution/providerOrchestration/providerMissionEventProjector.js.map +0 -1
- package/dist/core/runtime/hosting/managedSpaceMetadata.d.ts +0 -7
- package/dist/core/runtime/hosting/managedSpaceMetadata.js +0 -14
- package/dist/core/runtime/hosting/managedSpaceMetadata.js.map +0 -1
- package/dist/core/runtime/lifecycle/managedChannelLifecycleService.js +0 -256
- package/dist/core/runtime/lifecycle/managedChannelLifecycleService.js.map +0 -1
- package/dist/core/system/state/sqlite/missionRepository.d.ts +0 -24
- package/dist/core/system/state/sqlite/missionRepository.js +0 -252
- package/dist/core/system/state/sqlite/missionRepository.js.map +0 -1
- package/resources/migrations/007_missions.sql +0 -41
- package/resources/migrations/008_mission_schedule_anchor.sql +0 -5
- package/resources/migrations/010_mission_archival.sql +0 -1
- package/resources/migrations/012_scope_space_terminology.sql +0 -19
- package/resources/migrations/015_mission_schedule_meta.sql +0 -9
- package/resources/migrations/016_mission_hook_bindings.sql +0 -16
- package/resources/official-catalog.json +0 -444
- /package/resources/migrations/{011_managed_sidecars.sql → 009_managed_sidecars.sql} +0 -0
- /package/resources/migrations/{013_orchestration_dedupe.sql → 011_orchestration_dedupe.sql} +0 -0
- /package/resources/migrations/{014_orchestration_execution_claims.sql → 012_orchestration_execution_claims.sql} +0 -0
- /package/resources/migrations/{017_domain_event_provenance.sql → 013_domain_event_provenance.sql} +0 -0
- /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 {
|
|
2
|
+
import { slugifyResourceName, truncatePreview } from './workManagement/transportResourceNames.js';
|
|
4
3
|
import { enforceManagedSessionLimit } from './workManagement/managedSessionLimit.js';
|
|
5
|
-
import {
|
|
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
|
|
13
|
+
const surface = this.deps.requireSurfaceState();
|
|
17
14
|
const owner = input.owner ?? this.deps.defaultSessionOwner(input.actorId);
|
|
18
|
-
const
|
|
19
|
-
const objective = input.objective ?? ownerMission?.goal ?? null;
|
|
15
|
+
const objective = input.objective ?? null;
|
|
20
16
|
enforceManagedSessionLimit(this.deps.snapshots, owner);
|
|
21
|
-
const
|
|
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}:${
|
|
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
|
|
35
|
-
action: 'transport.
|
|
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}:${
|
|
38
|
-
execute: async () => await this.
|
|
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
|
-
|
|
45
|
-
|
|
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
|
|
59
|
-
const adopted = this.deps.sessionRegistry.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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 (
|
|
87
|
+
if (recoveredFromLifecycleRace) {
|
|
79
88
|
this.deps.appendAuditEvent('session.created.race_recovered', {
|
|
80
89
|
sessionId: session.sessionId,
|
|
81
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
129
|
+
transportResourceId: session.transportResourceId,
|
|
121
130
|
sessionId: session.sessionId,
|
|
122
131
|
instruction: input.initialInstruction
|
|
123
132
|
});
|
|
124
133
|
}
|
|
125
|
-
return { session,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
244
|
+
action: 'transport.resource.delete',
|
|
224
245
|
actor: input.actorId,
|
|
225
|
-
target: session.
|
|
226
|
-
execute: async () => await this.
|
|
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.
|
|
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
|
-
|
|
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
|
|
244
|
-
const
|
|
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
|
-
|
|
272
|
+
transportResourceId: target.session.transportResourceId,
|
|
448
273
|
sessionId: target.session.sessionId
|
|
449
274
|
});
|
|
450
275
|
return session ? { kind: 'session', session } : null;
|
|
451
276
|
}
|
|
452
|
-
|
|
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
|
|
460
|
-
const target = this.
|
|
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
|
-
|
|
287
|
+
transportResourceId: target.session.transportResourceId,
|
|
468
288
|
sessionId: target.session.sessionId
|
|
469
289
|
});
|
|
470
290
|
return session ? { kind: 'session', session } : null;
|
|
471
291
|
}
|
|
472
|
-
|
|
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.
|
|
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
|
-
|
|
545
|
-
const session = this.resolveManagedWorkerSession({
|
|
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.
|
|
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
|
|
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
|
|
345
|
+
async createRuntimeTransportResource(name, parentId) {
|
|
592
346
|
const transport = this.deps.getTransport();
|
|
593
|
-
if (!transport.capabilities().
|
|
594
|
-
throw new Error('Managed
|
|
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.
|
|
350
|
+
return await transport.createTransportResource({
|
|
597
351
|
scopeId: this.deps.config.transport.scopeId,
|
|
598
352
|
name,
|
|
599
|
-
kind: '
|
|
600
|
-
metadata:
|
|
353
|
+
kind: 'conversation',
|
|
354
|
+
metadata: buildManagedTransportResourceMetadata({
|
|
601
355
|
scopeId: this.deps.config.transport.scopeId,
|
|
602
|
-
|
|
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
|
|
363
|
+
async deleteRuntimeTransportResource(transportResourceId, mode) {
|
|
608
364
|
const transport = this.deps.getTransport();
|
|
609
|
-
if (!transport.capabilities().
|
|
365
|
+
if (!transport.capabilities().resources.delete || !transport.deleteTransportResource) {
|
|
610
366
|
return;
|
|
611
367
|
}
|
|
612
368
|
try {
|
|
613
|
-
await transport.
|
|
369
|
+
await transport.deleteTransportResource({
|
|
614
370
|
scopeId: this.deps.config.transport.scopeId,
|
|
615
|
-
|
|
371
|
+
transportResourceId: transportResourceId
|
|
616
372
|
});
|
|
617
373
|
}
|
|
618
374
|
catch (error) {
|