spawnfile 0.1.12 → 0.1.14
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/README.md +58 -12
- package/dist/audit/auditCli.d.ts +19 -0
- package/dist/audit/auditCli.js +63 -0
- package/dist/audit/checks.d.ts +100 -0
- package/dist/audit/checks.js +279 -0
- package/dist/audit/checksShared.d.ts +74 -0
- package/dist/audit/checksShared.js +37 -0
- package/dist/audit/generateAudit.d.ts +19 -0
- package/dist/audit/generateAudit.js +122 -0
- package/dist/audit/index.d.ts +4 -0
- package/dist/audit/index.js +4 -0
- package/dist/audit/readAudit.d.ts +50 -0
- package/dist/audit/readAudit.js +59 -0
- package/dist/audit/types.d.ts +40 -0
- package/dist/audit/types.js +8 -0
- package/dist/auth/credentialEnvFile.d.ts +11 -0
- package/dist/auth/credentialEnvFile.js +60 -0
- package/dist/auth/credentialProvisioning.d.ts +15 -0
- package/dist/auth/credentialProvisioning.js +75 -0
- package/dist/auth/credentialProvisioningReceipt.d.ts +28 -0
- package/dist/auth/credentialProvisioningReceipt.js +70 -0
- package/dist/auth/credentialProvisioningRequest.d.ts +51 -0
- package/dist/auth/credentialProvisioningRequest.js +169 -0
- package/dist/auth/credentialWorldBindings.d.ts +21 -0
- package/dist/auth/credentialWorldBindings.js +104 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.js +7 -0
- package/dist/auth/paths.d.ts +11 -0
- package/dist/auth/paths.js +21 -0
- package/dist/auth/runtimeCredentials.js +18 -2
- package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
- package/dist/auth/targetSecretSourceAuthor.js +52 -0
- package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
- package/dist/auth/targetSecretSourceFsPublish.js +49 -0
- package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
- package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
- package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
- package/dist/auth/targetSecretSourceFsRead.js +198 -0
- package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
- package/dist/auth/targetSecretSourceGrant.js +99 -0
- package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
- package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
- package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
- package/dist/auth/targetSecretSourceLifecycle.js +52 -0
- package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
- package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
- package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
- package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
- package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
- package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
- package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
- package/dist/auth/targetSecretSourceResolver.js +137 -0
- package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
- package/dist/auth/targetSecretSourceRevoke.js +92 -0
- package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
- package/dist/auth/targetSecretSourceRotate.js +121 -0
- package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
- package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
- package/dist/cli/artifactsCommands.d.ts +27 -0
- package/dist/cli/artifactsCommands.js +132 -0
- package/dist/cli/authCommands.d.ts +5 -0
- package/dist/cli/authCommands.js +221 -0
- package/dist/cli/compileBuildCommands.d.ts +3 -0
- package/dist/cli/compileBuildCommands.js +35 -0
- package/dist/cli/containerBundleCommand.d.ts +6 -0
- package/dist/cli/containerBundleCommand.js +116 -0
- package/dist/cli/devCommands.d.ts +3 -0
- package/dist/cli/devCommands.js +115 -0
- package/dist/cli/downCommand.d.ts +25 -0
- package/dist/cli/downCommand.js +134 -0
- package/dist/cli/index.js +6 -3
- package/dist/cli/lifecycleCommands.d.ts +1 -1
- package/dist/cli/lifecycleCommands.js +11 -179
- package/dist/cli/lifecycleMachine.d.ts +19 -0
- package/dist/cli/lifecycleMachine.js +78 -0
- package/dist/cli/lifecyclePlan.d.ts +35 -0
- package/dist/cli/lifecyclePlan.js +240 -0
- package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
- package/dist/cli/lifecyclePlanningCommands.js +30 -0
- package/dist/cli/runCli.d.ts +15 -2
- package/dist/cli/runCli.js +31 -71
- package/dist/cli/runPublishCommands.d.ts +3 -0
- package/dist/cli/runPublishCommands.js +70 -0
- package/dist/cli/statusCommand.d.ts +3 -32
- package/dist/cli/statusCommand.js +37 -233
- package/dist/cli/statusCommandLive.d.ts +20 -0
- package/dist/cli/statusCommandLive.js +188 -0
- package/dist/cli/statusCommandOptions.d.ts +40 -0
- package/dist/cli/statusCommandOptions.js +42 -0
- package/dist/cli/targetCliRoute.d.ts +2 -0
- package/dist/cli/targetCliRoute.js +30 -0
- package/dist/cli/targetCommands.d.ts +33 -0
- package/dist/cli/targetCommands.js +257 -0
- package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
- package/dist/cli/targetComposedPreparationCommand.js +39 -0
- package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
- package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
- package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
- package/dist/cli/targetDefaultAuthorities.js +210 -0
- package/dist/cli/targetDefaultConfig.d.ts +68 -0
- package/dist/cli/targetDefaultConfig.js +317 -0
- package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
- package/dist/cli/targetDefaultConfigStdin.js +215 -0
- package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
- package/dist/cli/targetDefaultEnvelope.js +13 -0
- package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
- package/dist/cli/targetDefaultHandlerFactory.js +247 -0
- package/dist/cli/targetDefaultHandlers.d.ts +21 -0
- package/dist/cli/targetDefaultHandlers.js +72 -0
- package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
- package/dist/cli/targetDefaultJournalAuthority.js +135 -0
- package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
- package/dist/cli/targetDefaultWorldClock.js +14 -0
- package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
- package/dist/cli/targetDefaultWorldQueries.js +11 -0
- package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
- package/dist/cli/targetDefaultWorldReadiness.js +17 -0
- package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
- package/dist/cli/targetEvidenceHelperResolution.js +23 -0
- package/dist/cli/targetLookupCli.d.ts +3 -0
- package/dist/cli/targetLookupCli.js +31 -0
- package/dist/cli/targetLookupCommands.d.ts +12 -0
- package/dist/cli/targetLookupCommands.js +69 -0
- package/dist/cli/targetOperationDispatch.d.ts +58 -0
- package/dist/cli/targetOperationDispatch.js +21 -0
- package/dist/cli/targetReceiptOutput.d.ts +14 -0
- package/dist/cli/targetReceiptOutput.js +21 -0
- package/dist/cli/targetRequestFile.d.ts +14 -0
- package/dist/cli/targetRequestFile.js +63 -0
- package/dist/cli/targetSecretSourceInput.d.ts +28 -0
- package/dist/cli/targetSecretSourceInput.js +121 -0
- package/dist/cli/targetWorldClockCommand.d.ts +10 -0
- package/dist/cli/targetWorldClockCommand.js +42 -0
- package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
- package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
- package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
- package/dist/cli/targetWorldReadinessCommand.js +43 -0
- package/dist/cli/upCommand.d.ts +3 -0
- package/dist/cli/upCommand.js +133 -0
- package/dist/cli/upImageCommand.d.ts +11 -0
- package/dist/cli/upImageCommand.js +41 -0
- package/dist/cli/upLifecycleInvocation.d.ts +41 -0
- package/dist/cli/upLifecycleInvocation.js +48 -0
- package/dist/cli/upLifecycleRecovery.d.ts +4 -0
- package/dist/cli/upLifecycleRecovery.js +53 -0
- package/dist/compiler/agentNodeMerge.d.ts +2 -0
- package/dist/compiler/agentNodeMerge.js +79 -0
- package/dist/compiler/agentSurfaces.js +11 -1
- package/dist/compiler/buildCompilePlan.js +17 -0
- package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
- package/dist/compiler/buildCompilePlanAgent.js +56 -0
- package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
- package/dist/compiler/buildCompilePlanTeams.js +4 -1
- package/dist/compiler/buildCompilePlanTraversal.js +75 -82
- package/dist/compiler/buildProject.d.ts +20 -1
- package/dist/compiler/buildProject.js +121 -7
- package/dist/compiler/compilePlanHelpers.js +2 -0
- package/dist/compiler/compileProject.d.ts +15 -0
- package/dist/compiler/compileProject.js +29 -75
- package/dist/compiler/compileProjectPolicy.d.ts +5 -0
- package/dist/compiler/compileProjectPolicy.js +21 -0
- package/dist/compiler/compileProjectReports.d.ts +9 -0
- package/dist/compiler/compileProjectReports.js +52 -0
- package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
- package/dist/compiler/containerArtifactSummaries.js +138 -0
- package/dist/compiler/containerArtifacts.d.ts +10 -0
- package/dist/compiler/containerArtifacts.js +126 -125
- package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
- package/dist/compiler/containerArtifactsPlans.js +31 -118
- package/dist/compiler/containerArtifactsRender.d.ts +3 -1
- package/dist/compiler/containerArtifactsRender.js +40 -81
- package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
- package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
- package/dist/compiler/containerConfigEnvRender.js +54 -0
- package/dist/compiler/containerEntrypointRender.d.ts +1 -0
- package/dist/compiler/containerEntrypointRender.js +60 -53
- package/dist/compiler/containerEntrypointShell.d.ts +5 -0
- package/dist/compiler/containerEntrypointShell.js +29 -0
- package/dist/compiler/containerPackageOverrides.d.ts +27 -0
- package/dist/compiler/containerPackageOverrides.js +63 -0
- package/dist/compiler/containerPackageRender.d.ts +15 -0
- package/dist/compiler/containerPackageRender.js +63 -0
- package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
- package/dist/compiler/containerTargetPlanResolution.js +97 -0
- package/dist/compiler/containerTargetResources.js +3 -1
- package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
- package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
- package/dist/compiler/dockerBuildContext.d.ts +16 -0
- package/dist/compiler/dockerBuildContext.js +159 -0
- package/dist/compiler/dockerBuildSkip.d.ts +30 -0
- package/dist/compiler/dockerBuildSkip.js +81 -0
- package/dist/compiler/index.d.ts +4 -0
- package/dist/compiler/index.js +4 -0
- package/dist/compiler/memoryArtifacts.d.ts +26 -0
- package/dist/compiler/memoryArtifacts.js +134 -0
- package/dist/compiler/memoryResolution.d.ts +4 -0
- package/dist/compiler/memoryResolution.js +147 -0
- package/dist/compiler/modelEnv.d.ts +2 -0
- package/dist/compiler/modelEnv.js +6 -0
- package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
- package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
- package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
- package/dist/compiler/moltnetArtifactPaths.js +49 -0
- package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
- package/dist/compiler/moltnetArtifactTypes.js +1 -0
- package/dist/compiler/moltnetArtifacts.d.ts +2 -40
- package/dist/compiler/moltnetArtifacts.js +56 -95
- package/dist/compiler/moltnetBinaries.d.ts +21 -1
- package/dist/compiler/moltnetBinaries.js +156 -28
- package/dist/compiler/moltnetClientConfig.js +18 -2
- package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
- package/dist/compiler/moltnetConfigLowering.js +67 -5
- package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
- package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
- package/dist/compiler/moltnetNodeConfig.js +7 -2
- package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
- package/dist/compiler/moltnetReleaseAuthority.js +73 -0
- package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
- package/dist/compiler/moltnetReleaseDownload.js +85 -0
- package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
- package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
- package/dist/compiler/moltnetResolution.js +72 -20
- package/dist/compiler/moltnetRoomMemberships.js +37 -9
- package/dist/compiler/moltnetRuntimeConfig.js +11 -0
- package/dist/compiler/moltnetServerPlans.d.ts +9 -0
- package/dist/compiler/moltnetServerPlans.js +132 -0
- package/dist/compiler/organizationIdentity.d.ts +27 -0
- package/dist/compiler/organizationIdentity.js +297 -0
- package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
- package/dist/compiler/organizationReadyEvidence.js +261 -0
- package/dist/compiler/projectManifestGraph.d.ts +4 -0
- package/dist/compiler/projectManifestGraph.js +24 -0
- package/dist/compiler/runProject.d.ts +4 -0
- package/dist/compiler/runProject.js +37 -22
- package/dist/compiler/runProjectAuth.d.ts +7 -1
- package/dist/compiler/runProjectAuth.js +87 -9
- package/dist/compiler/runProjectDocker.d.ts +7 -0
- package/dist/compiler/runProjectDocker.js +187 -19
- package/dist/compiler/runProjectLifecycle.d.ts +7 -0
- package/dist/compiler/runProjectLifecycle.js +40 -0
- package/dist/compiler/syncProjectAuth.js +4 -1
- package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
- package/dist/compiler/teamContextActiveEnvironments.js +255 -0
- package/dist/compiler/teamContextSupport.js +32 -40
- package/dist/compiler/teamContextTypes.d.ts +2 -0
- package/dist/compiler/types.d.ts +82 -1
- package/dist/compiler/upProject.d.ts +5 -0
- package/dist/compiler/upProject.js +257 -20
- package/dist/compiler/upReceipt.d.ts +36 -0
- package/dist/compiler/upReceipt.js +82 -0
- package/dist/compiler/updateProjectModels.js +42 -60
- package/dist/compiler/updateProjectRuntime.js +22 -35
- package/dist/compiler/updateProjectSurfaces.js +53 -47
- package/dist/compiler/worldBindings.d.ts +39 -0
- package/dist/compiler/worldBindings.js +247 -0
- package/dist/compiler/worldBindingsFile.d.ts +5 -0
- package/dist/compiler/worldBindingsFile.js +162 -0
- package/dist/deployment/artifactsExport.d.ts +49 -0
- package/dist/deployment/artifactsExport.js +217 -0
- package/dist/deployment/artifactsExportDocker.d.ts +48 -0
- package/dist/deployment/artifactsExportDocker.js +91 -0
- package/dist/deployment/artifactsExportPlan.d.ts +24 -0
- package/dist/deployment/artifactsExportPlan.js +135 -0
- package/dist/deployment/artifactsExportTypes.d.ts +50 -0
- package/dist/deployment/artifactsExportTypes.js +52 -0
- package/dist/deployment/buildImageCacheStore.d.ts +23 -0
- package/dist/deployment/buildImageCacheStore.js +54 -0
- package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
- package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
- package/dist/deployment/dockerInspect.d.ts +9 -0
- package/dist/deployment/dockerInspect.js +24 -1
- package/dist/deployment/dockerLabels.d.ts +2 -0
- package/dist/deployment/dockerLabels.js +2 -0
- package/dist/deployment/dockerLogs.js +2 -10
- package/dist/deployment/dockerManager.d.ts +51 -0
- package/dist/deployment/dockerManager.js +118 -1
- package/dist/deployment/dockerProbeGateway.js +64 -5
- package/dist/deployment/dockerRecover.d.ts +17 -0
- package/dist/deployment/dockerRecover.js +137 -0
- package/dist/deployment/dockerTeardown.d.ts +32 -0
- package/dist/deployment/dockerTeardown.js +61 -0
- package/dist/deployment/downDeployment.d.ts +34 -0
- package/dist/deployment/downDeployment.js +147 -0
- package/dist/deployment/downReceiptTypes.d.ts +21 -0
- package/dist/deployment/downReceiptTypes.js +30 -0
- package/dist/deployment/index.d.ts +17 -0
- package/dist/deployment/index.js +18 -0
- package/dist/deployment/lifecycleCompletion.d.ts +37 -0
- package/dist/deployment/lifecycleCompletion.js +236 -0
- package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
- package/dist/deployment/lifecycleCompletionContracts.js +106 -0
- package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
- package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
- package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
- package/dist/deployment/lifecycleCompletionLookup.js +88 -0
- package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
- package/dist/deployment/lifecycleCompletionOwner.js +31 -0
- package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
- package/dist/deployment/lifecycleCompletionParsing.js +108 -0
- package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
- package/dist/deployment/lifecycleCompletionPaths.js +16 -0
- package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
- package/dist/deployment/lifecycleCompletionPublication.js +35 -0
- package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
- package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
- package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
- package/dist/deployment/lifecycleCompletionRoot.js +243 -0
- package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
- package/dist/deployment/lifecycleCompletionStore.js +151 -0
- package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
- package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
- package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
- package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
- package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
- package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
- package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
- package/dist/deployment/organizationHandoffTypes.js +80 -0
- package/dist/deployment/organizationReady.d.ts +52 -0
- package/dist/deployment/organizationReady.js +200 -0
- package/dist/deployment/privateArtifactsExport.d.ts +18 -0
- package/dist/deployment/privateArtifactsExport.js +80 -0
- package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
- package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
- package/dist/deployment/record.d.ts +26 -1
- package/dist/deployment/record.js +49 -4
- package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
- package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
- package/dist/deployment/target.d.ts +1 -35
- package/dist/deployment/target.js +1 -96
- package/dist/deployment/upReceiptTypes.d.ts +111 -0
- package/dist/deployment/upReceiptTypes.js +164 -0
- package/dist/dev/activity.d.ts +14 -0
- package/dist/dev/activity.js +48 -0
- package/dist/dev/docker.d.ts +16 -0
- package/dist/dev/docker.js +71 -0
- package/dist/dev/index.d.ts +2 -0
- package/dist/dev/index.js +2 -0
- package/dist/dev/project.d.ts +35 -0
- package/dist/dev/project.js +170 -0
- package/dist/distribution/buildDistributionReport.d.ts +2 -1
- package/dist/distribution/buildDistributionReport.js +2 -1
- package/dist/distribution/distributionReportSchema.d.ts +5 -0
- package/dist/distribution/distributionReportSchema.js +7 -2
- package/dist/distribution/index.d.ts +2 -2
- package/dist/distribution/index.js +1 -1
- package/dist/distribution/types.d.ts +7 -0
- package/dist/distribution/types.js +1 -0
- package/dist/filesystem/paths.js +10 -1
- package/dist/ledger/causalConformanceCli.d.ts +1 -0
- package/dist/ledger/causalConformanceCli.js +41 -0
- package/dist/ledger/causeNamespace.d.ts +8 -0
- package/dist/ledger/causeNamespace.js +24 -0
- package/dist/ledger/conformance.d.ts +83 -0
- package/dist/ledger/conformance.js +259 -0
- package/dist/ledger/emitters.d.ts +76 -0
- package/dist/ledger/emitters.js +188 -0
- package/dist/ledger/index.d.ts +4 -0
- package/dist/ledger/index.js +4 -0
- package/dist/ledger/principal.d.ts +96 -0
- package/dist/ledger/principal.js +121 -0
- package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
- package/dist/manifest/externalParticipantSchemas.js +17 -0
- package/dist/manifest/index.d.ts +1 -0
- package/dist/manifest/index.js +1 -0
- package/dist/manifest/inlineAgentMember.d.ts +2 -0
- package/dist/manifest/inlineAgentMember.js +9 -0
- package/dist/manifest/loadManifest.js +14 -8
- package/dist/manifest/mcpSchemas.d.ts +17 -0
- package/dist/manifest/mcpSchemas.js +41 -0
- package/dist/manifest/memorySchemas.d.ts +245 -0
- package/dist/manifest/memorySchemas.js +148 -0
- package/dist/manifest/renderSpawnfile.js +22 -131
- package/dist/manifest/renderSpawnfileNetworks.js +9 -2
- package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
- package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
- package/dist/manifest/schemas.d.ts +1868 -99
- package/dist/manifest/schemas.js +78 -32
- package/dist/manifest/surfaceSchemas.d.ts +17 -0
- package/dist/manifest/surfaceSchemas.js +24 -1
- package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
- package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
- package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
- package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
- package/dist/manifest/teamNetworkSchemas.js +3 -317
- package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
- package/dist/manifest/teamNetworkServerSchemas.js +199 -0
- package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
- package/dist/ownership/siblingBuildFreshness.js +20 -0
- package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
- package/dist/ownership/simfileRunOperatorInputs.js +139 -0
- package/dist/report/types.d.ts +142 -0
- package/dist/runtime/common.d.ts +37 -0
- package/dist/runtime/common.js +56 -1
- package/dist/runtime/container.d.ts +29 -1
- package/dist/runtime/container.js +127 -11
- package/dist/runtime/containerPackageOverrides.d.ts +37 -0
- package/dist/runtime/containerPackageOverrides.js +33 -0
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.js +2 -0
- package/dist/runtime/install.d.ts +1 -1
- package/dist/runtime/install.js +43 -1
- package/dist/runtime/mnemeMcp.d.ts +15 -0
- package/dist/runtime/mnemeMcp.js +109 -0
- package/dist/runtime/openclaw/adapter.js +15 -4
- package/dist/runtime/openclaw/mcp.d.ts +10 -0
- package/dist/runtime/openclaw/mcp.js +69 -0
- package/dist/runtime/openclaw/runAuth.js +2 -2
- package/dist/runtime/openclaw/scaffold.js +1 -1
- package/dist/runtime/openclaw/schedules.d.ts +38 -0
- package/dist/runtime/openclaw/schedules.js +74 -0
- package/dist/runtime/pi/adapter.d.ts +4 -0
- package/dist/runtime/pi/adapter.js +231 -0
- package/dist/runtime/pi/appActivitySource.d.ts +1 -0
- package/dist/runtime/pi/appActivitySource.js +199 -0
- package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
- package/dist/runtime/pi/appAgentConfig.js +264 -0
- package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
- package/dist/runtime/pi/appCliEnginesSource.js +183 -0
- package/dist/runtime/pi/appCliSource.d.ts +1 -0
- package/dist/runtime/pi/appCliSource.js +353 -0
- package/dist/runtime/pi/appControlSource.d.ts +1 -0
- package/dist/runtime/pi/appControlSource.js +390 -0
- package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
- package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
- package/dist/runtime/pi/appCoreSource.d.ts +4 -0
- package/dist/runtime/pi/appCoreSource.js +244 -0
- package/dist/runtime/pi/appPreludeSource.d.ts +1 -0
- package/dist/runtime/pi/appPreludeSource.js +191 -0
- package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
- package/dist/runtime/pi/appScheduleSource.js +80 -0
- package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
- package/dist/runtime/pi/appScriptedEngine.js +42 -0
- package/dist/runtime/pi/appSource.d.ts +4 -0
- package/dist/runtime/pi/appSource.js +12 -0
- package/dist/runtime/pi/appTemplate.d.ts +14 -0
- package/dist/runtime/pi/appTemplate.js +27 -0
- package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
- package/dist/runtime/pi/appTemplateTypes.js +18 -0
- package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
- package/dist/runtime/pi/appWakeContextSource.js +398 -0
- package/dist/runtime/pi/containerTargets.d.ts +4 -0
- package/dist/runtime/pi/containerTargets.js +57 -0
- package/dist/runtime/pi/runAuth.d.ts +2 -0
- package/dist/runtime/pi/runAuth.js +185 -0
- package/dist/runtime/pi/testHelpers.d.ts +2 -0
- package/dist/runtime/pi/testHelpers.js +40 -0
- package/dist/runtime/picoclaw/adapter.js +23 -27
- package/dist/runtime/picoclaw/mcp.d.ts +4 -0
- package/dist/runtime/picoclaw/mcp.js +43 -0
- package/dist/runtime/picoclaw/memory.d.ts +7 -0
- package/dist/runtime/picoclaw/memory.js +17 -0
- package/dist/runtime/picoclaw/runAuth.js +1 -1
- package/dist/runtime/picoclaw/scaffold.js +1 -1
- package/dist/runtime/picoclaw/schedules.d.ts +26 -0
- package/dist/runtime/picoclaw/schedules.js +62 -3
- package/dist/runtime/registry.js +3 -0
- package/dist/runtime/scheduleUtils.d.ts +2 -0
- package/dist/runtime/scheduleUtils.js +15 -0
- package/dist/runtime/types.d.ts +26 -2
- package/dist/shared/errors.d.ts +1 -1
- package/dist/shared/errors.js +2 -2
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +1 -0
- package/dist/shared/redaction.d.ts +2 -0
- package/dist/shared/redaction.js +10 -0
- package/dist/status/buildStatus.d.ts +1 -0
- package/dist/status/buildStatus.js +2 -0
- package/dist/status/compileReport.d.ts +22 -0
- package/dist/status/compileReport.js +16 -2
- package/dist/status/compiledProbeCollection.d.ts +21 -0
- package/dist/status/compiledProbeCollection.js +27 -0
- package/dist/status/deployments.js +5 -12
- package/dist/status/imageStatusReport.js +6 -0
- package/dist/status/index.d.ts +3 -0
- package/dist/status/index.js +3 -0
- package/dist/status/lifecycleProbes.d.ts +19 -0
- package/dist/status/lifecycleProbes.js +174 -0
- package/dist/status/moltnetProbes.d.ts +7 -8
- package/dist/status/moltnetProbes.js +27 -198
- package/dist/status/moltnetWiringProbes.d.ts +19 -0
- package/dist/status/moltnetWiringProbes.js +178 -0
- package/dist/target/cleanupRun.d.ts +41 -0
- package/dist/target/cleanupRun.js +139 -0
- package/dist/target/cleanupRunDocker.d.ts +16 -0
- package/dist/target/cleanupRunDocker.js +66 -0
- package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
- package/dist/target/cleanupRunDocker.test-helper.js +238 -0
- package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
- package/dist/target/cleanupRunDockerPreflight.js +224 -0
- package/dist/target/composedPreparation.d.ts +205 -0
- package/dist/target/composedPreparation.js +223 -0
- package/dist/target/containerBundle.d.ts +82 -0
- package/dist/target/containerBundle.js +243 -0
- package/dist/target/containerBundleArchive.d.ts +31 -0
- package/dist/target/containerBundleArchive.js +140 -0
- package/dist/target/containerBundleAuthority.d.ts +25 -0
- package/dist/target/containerBundleAuthority.js +65 -0
- package/dist/target/containerBundleContracts.d.ts +114 -0
- package/dist/target/containerBundleContracts.js +173 -0
- package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
- package/dist/target/containerBundleFilesystemStore.js +247 -0
- package/dist/target/containerBundlePolicy.d.ts +33 -0
- package/dist/target/containerBundlePolicy.js +64 -0
- package/dist/target/containerBundleStore.d.ts +127 -0
- package/dist/target/containerBundleStore.js +284 -0
- package/dist/target/contracts.d.ts +538 -0
- package/dist/target/contracts.js +373 -0
- package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
- package/dist/target/dockerArtifactIdentityTypes.js +1 -0
- package/dist/target/dockerArtifactInspection.d.ts +40 -0
- package/dist/target/dockerArtifactInspection.js +125 -0
- package/dist/target/dockerArtifacts.d.ts +21 -0
- package/dist/target/dockerArtifacts.js +110 -0
- package/dist/target/dockerArtifactsProvider.d.ts +41 -0
- package/dist/target/dockerArtifactsProvider.js +449 -0
- package/dist/target/dockerCommandExecutor.d.ts +27 -0
- package/dist/target/dockerCommandExecutor.js +200 -0
- package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
- package/dist/target/dockerCommandExecutorCore.js +273 -0
- package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
- package/dist/target/dockerContainerBundleBuilder.js +256 -0
- package/dist/target/dockerContextSnapshot.d.ts +21 -0
- package/dist/target/dockerContextSnapshot.js +158 -0
- package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
- package/dist/target/dockerEndpointFingerprint.js +9 -0
- package/dist/target/dockerPreparedArtifact.d.ts +48 -0
- package/dist/target/dockerPreparedArtifact.js +131 -0
- package/dist/target/dockerProjectionJson.d.ts +1 -0
- package/dist/target/dockerProjectionJson.js +80 -0
- package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
- package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
- package/dist/target/dockerResources.d.ts +26 -0
- package/dist/target/dockerResources.js +162 -0
- package/dist/target/dockerResourcesProvider.d.ts +44 -0
- package/dist/target/dockerResourcesProvider.js +207 -0
- package/dist/target/dockerSecrets.d.ts +39 -0
- package/dist/target/dockerSecrets.js +249 -0
- package/dist/target/dockerSecretsAuthority.d.ts +26 -0
- package/dist/target/dockerSecretsAuthority.js +216 -0
- package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
- package/dist/target/dockerSecretsLifecycle.js +133 -0
- package/dist/target/dockerSecretsProvider.d.ts +68 -0
- package/dist/target/dockerSecretsProvider.js +329 -0
- package/dist/target/dockerTarget.d.ts +52 -0
- package/dist/target/dockerTarget.js +48 -0
- package/dist/target/dockerTargetBinding.d.ts +14 -0
- package/dist/target/dockerTargetBinding.js +96 -0
- package/dist/target/dockerWorldClock.d.ts +17 -0
- package/dist/target/dockerWorldClock.js +111 -0
- package/dist/target/dockerWorldReadiness.d.ts +17 -0
- package/dist/target/dockerWorldReadiness.js +119 -0
- package/dist/target/dockerWorldService.d.ts +23 -0
- package/dist/target/dockerWorldService.js +216 -0
- package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
- package/dist/target/dockerWorldServiceAuthority.js +182 -0
- package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
- package/dist/target/dockerWorldServiceLifecycle.js +275 -0
- package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
- package/dist/target/dockerWorldServiceProvider.js +318 -0
- package/dist/target/dockerWorldServiceStore.d.ts +73 -0
- package/dist/target/dockerWorldServiceStore.js +367 -0
- package/dist/target/evidenceExport.d.ts +55 -0
- package/dist/target/evidenceExport.js +518 -0
- package/dist/target/evidenceExportArchive.d.ts +10 -0
- package/dist/target/evidenceExportArchive.js +302 -0
- package/dist/target/evidenceExportContract.d.ts +27 -0
- package/dist/target/evidenceExportContract.js +40 -0
- package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
- package/dist/target/evidenceExportOperationsTestKit.js +312 -0
- package/dist/target/evidenceExportProvider.d.ts +85 -0
- package/dist/target/evidenceExportProvider.js +187 -0
- package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
- package/dist/target/evidenceExportPublicationTypes.js +1 -0
- package/dist/target/evidenceExportStore.d.ts +70 -0
- package/dist/target/evidenceExportStore.js +498 -0
- package/dist/target/evidenceExportStorePublication.d.ts +7 -0
- package/dist/target/evidenceExportStorePublication.js +395 -0
- package/dist/target/handles.d.ts +20 -0
- package/dist/target/handles.js +56 -0
- package/dist/target/index.d.ts +12 -0
- package/dist/target/index.js +11 -0
- package/dist/target/journal.d.ts +59 -0
- package/dist/target/journal.js +529 -0
- package/dist/target/journalFilesystem.d.ts +3 -0
- package/dist/target/journalFilesystem.js +111 -0
- package/dist/target/journalRoot.d.ts +4 -0
- package/dist/target/journalRoot.js +6 -0
- package/dist/target/organizationAttachment.d.ts +23 -0
- package/dist/target/organizationAttachment.js +263 -0
- package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
- package/dist/target/organizationAttachmentAuthority.js +161 -0
- package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
- package/dist/target/organizationAttachmentLifecycle.js +101 -0
- package/dist/target/organizationAttachmentProvider.d.ts +76 -0
- package/dist/target/organizationAttachmentProvider.js +289 -0
- package/dist/target/organizationAttachmentStore.d.ts +51 -0
- package/dist/target/organizationAttachmentStore.js +316 -0
- package/dist/target/publicArtifactSnapshot.d.ts +41 -0
- package/dist/target/publicArtifactSnapshot.js +150 -0
- package/dist/target/topologyActivation.d.ts +51 -0
- package/dist/target/topologyActivation.js +149 -0
- package/dist/target/topologyAttestation.d.ts +37 -0
- package/dist/target/topologyAttestation.js +300 -0
- package/dist/target/topologyAttestationErrors.d.ts +1 -0
- package/dist/target/topologyAttestationErrors.js +1 -0
- package/dist/target/worldClock.d.ts +60 -0
- package/dist/target/worldClock.js +129 -0
- package/dist/target/worldReadiness.d.ts +103 -0
- package/dist/target/worldReadiness.js +153 -0
- package/moltnet-releases.json +20 -0
- package/package.json +29 -8
- package/runtimes.yaml +28 -27
- package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
- package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
- /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
- /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import YAML from "yaml";
|
|
2
|
-
import { buildContextOrientation, collectMoltnetBindings, createContextBaseKey, createVisibleTeamCards,
|
|
2
|
+
import { buildContextOrientation, collectMoltnetBindings, createContextBaseKey, createVisibleTeamCards, findTeamBySource, getSystemTeamDoc, reportKeySegment, shortHash } from "./teamContextHelpers.js";
|
|
3
|
+
import { buildActiveEnvironments } from "./teamContextActiveEnvironments.js";
|
|
3
4
|
import { generateTeamRoster, listTeamRepresentatives } from "./teamRoster.js";
|
|
4
5
|
const assignContextKeys = (contexts) => {
|
|
5
6
|
const baseCounts = new Map();
|
|
@@ -84,6 +85,11 @@ const createTeamCapabilities = (teamNode) => [
|
|
|
84
85
|
message: "Team context orientation was surfaced through runtime system instructions",
|
|
85
86
|
outcome: "supported"
|
|
86
87
|
},
|
|
88
|
+
{
|
|
89
|
+
key: "team.active_environments",
|
|
90
|
+
message: "Derived active environment bindings were emitted in team-contexts.yaml",
|
|
91
|
+
outcome: "supported"
|
|
92
|
+
},
|
|
87
93
|
{
|
|
88
94
|
key: "team.representatives",
|
|
89
95
|
message: "Representative chains were resolved",
|
|
@@ -134,44 +140,11 @@ const createRepresentativeDiagnostics = (plan, teamNode) => {
|
|
|
134
140
|
}
|
|
135
141
|
return diagnostics;
|
|
136
142
|
};
|
|
137
|
-
const addAmbiguousBindingDiagnostics = (agentNode, contexts, diagnosticsByTeamSource) => {
|
|
138
|
-
const bindings = new Map();
|
|
139
|
-
for (const context of contexts) {
|
|
140
|
-
const teamSource = context.kind === "direct"
|
|
141
|
-
? context.membership.teamSource
|
|
142
|
-
: context.parentTeamNode.source;
|
|
143
|
-
const memberId = context.kind === "direct"
|
|
144
|
-
? context.membership.memberId
|
|
145
|
-
: context.representativeMemberId;
|
|
146
|
-
for (const binding of collectMoltnetBindings(agentNode, teamSource, memberId)) {
|
|
147
|
-
for (const room of binding.rooms) {
|
|
148
|
-
const key = `moltnet:${binding.network}:${room}`;
|
|
149
|
-
bindings.set(key, [...(bindings.get(key) ?? []), context]);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
for (const [binding, bindingContexts] of bindings) {
|
|
154
|
-
const uniqueKeys = [...new Set(bindingContexts.map((context) => context.contextKey))];
|
|
155
|
-
if (uniqueKeys.length < 2) {
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
for (const context of bindingContexts) {
|
|
159
|
-
const teamSource = context.kind === "direct"
|
|
160
|
-
? context.membership.teamSource
|
|
161
|
-
: context.parentTeamNode.source;
|
|
162
|
-
addMapEntries(diagnosticsByTeamSource, teamSource, [
|
|
163
|
-
{
|
|
164
|
-
level: "warn",
|
|
165
|
-
message: `Agent ${agentNode.name} maps ${binding} to multiple team contexts: ${uniqueKeys.join(", ")}`
|
|
166
|
-
}
|
|
167
|
-
]);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
143
|
export const prepareTeamCompileSupport = async (plan) => {
|
|
172
144
|
const capabilitiesByTeamSource = new Map();
|
|
173
145
|
const diagnosticsByTeamSource = new Map();
|
|
174
146
|
const filesByAgentSource = new Map();
|
|
147
|
+
const activeEnvironmentsByAgentSource = new Map();
|
|
175
148
|
const contextsByAgent = collectAgentContexts(plan);
|
|
176
149
|
for (const node of plan.nodes) {
|
|
177
150
|
if (node.value.kind !== "team") {
|
|
@@ -180,12 +153,24 @@ export const prepareTeamCompileSupport = async (plan) => {
|
|
|
180
153
|
addMapEntries(capabilitiesByTeamSource, node.value.source, createTeamCapabilities(node.value));
|
|
181
154
|
addMapEntries(diagnosticsByTeamSource, node.value.source, createRepresentativeDiagnostics(plan, node.value));
|
|
182
155
|
}
|
|
183
|
-
for (const
|
|
184
|
-
|
|
185
|
-
if (!agentNode) {
|
|
156
|
+
for (const node of plan.nodes) {
|
|
157
|
+
if (node.value.kind !== "agent") {
|
|
186
158
|
continue;
|
|
187
159
|
}
|
|
160
|
+
const agentNode = node.value;
|
|
161
|
+
const agentSource = agentNode.source;
|
|
162
|
+
const contexts = contextsByAgent.get(agentSource) ?? [];
|
|
188
163
|
const directCount = contexts.filter((context) => context.kind === "direct").length;
|
|
164
|
+
const activeEnvironmentsResult = buildActiveEnvironments(plan, agentNode, contexts, directCount);
|
|
165
|
+
for (const { source, diagnostic } of activeEnvironmentsResult.diagnostics) {
|
|
166
|
+
addMapEntries(diagnosticsByTeamSource, source, [diagnostic]);
|
|
167
|
+
}
|
|
168
|
+
if (activeEnvironmentsResult.activeEnvironments !== undefined) {
|
|
169
|
+
activeEnvironmentsByAgentSource.set(agentSource, activeEnvironmentsResult.activeEnvironments);
|
|
170
|
+
}
|
|
171
|
+
if (contexts.length === 0 && activeEnvironmentsResult.activeEnvironments === undefined) {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
189
174
|
const directIndex = [];
|
|
190
175
|
const representationIndex = [];
|
|
191
176
|
const files = [];
|
|
@@ -247,6 +232,9 @@ export const prepareTeamCompileSupport = async (plan) => {
|
|
|
247
232
|
}
|
|
248
233
|
}
|
|
249
234
|
const contextIndex = {
|
|
235
|
+
...(activeEnvironmentsResult.activeEnvironments
|
|
236
|
+
? { active_environments: activeEnvironmentsResult.activeEnvironments }
|
|
237
|
+
: {}),
|
|
250
238
|
direct_memberships: directIndex,
|
|
251
239
|
representations: representationIndex
|
|
252
240
|
};
|
|
@@ -258,7 +246,11 @@ export const prepareTeamCompileSupport = async (plan) => {
|
|
|
258
246
|
path: ".spawnfile/team-contexts.md"
|
|
259
247
|
});
|
|
260
248
|
filesByAgentSource.set(agentSource, files);
|
|
261
|
-
addAmbiguousBindingDiagnostics(agentNode, contexts, diagnosticsByTeamSource);
|
|
262
249
|
}
|
|
263
|
-
return {
|
|
250
|
+
return {
|
|
251
|
+
activeEnvironmentsByAgentSource,
|
|
252
|
+
capabilitiesByTeamSource,
|
|
253
|
+
diagnosticsByTeamSource,
|
|
254
|
+
filesByAgentSource
|
|
255
|
+
};
|
|
264
256
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { CapabilityReport, DiagnosticReport } from "../report/index.js";
|
|
2
|
+
import type { ActiveEnvironmentsIndex } from "./teamContextActiveEnvironments.js";
|
|
2
3
|
import type { EmittedFile } from "../runtime/index.js";
|
|
3
4
|
import type { ResolvedMemberRef, ResolvedTeamMembershipContext, ResolvedTeamNode } from "./types.js";
|
|
4
5
|
export interface TeamCompileSupport {
|
|
6
|
+
activeEnvironmentsByAgentSource: Map<string, ActiveEnvironmentsIndex>;
|
|
5
7
|
capabilitiesByTeamSource: Map<string, CapabilityReport[]>;
|
|
6
8
|
diagnosticsByTeamSource: Map<string, DiagnosticReport[]>;
|
|
7
9
|
filesByAgentSource: Map<string, EmittedFile[]>;
|
package/dist/compiler/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { AgentSchedule, ExecutionBlock, McpServer, ModelEndpoint, Secret, TeamNetworkServer } from "../manifest/index.js";
|
|
1
|
+
import { AgentSchedule, ExecutionBlock, McpServer, MemoryConsolidation, MemoryRetention, ModelEndpoint, Secret, TeamNetworkServer, type ExternalParticipantService } from "../manifest/index.js";
|
|
2
2
|
import { ModelAuthMethod, StringMap } from "../shared/index.js";
|
|
3
3
|
import type { ResolvedWorkspaceResource } from "./workspaceResources.js";
|
|
4
|
+
import type { ResolvedExternalParticipant, ResolvedOrganizationIdentity } from "./organizationIdentity.js";
|
|
4
5
|
export interface ResolvedDocument {
|
|
5
6
|
content: string;
|
|
6
7
|
role: string;
|
|
@@ -86,8 +87,12 @@ export interface ResolvedMoltnetRoomPolicy {
|
|
|
86
87
|
}
|
|
87
88
|
export interface ResolvedMoltnetDMConfig extends ResolvedMoltnetRoomPolicy {
|
|
88
89
|
enabled: boolean;
|
|
90
|
+
allowedWakeSenders?: string[];
|
|
89
91
|
}
|
|
90
92
|
export interface ResolvedMoltnetAttachment {
|
|
93
|
+
auth?: {
|
|
94
|
+
tokenId: string;
|
|
95
|
+
};
|
|
91
96
|
contextRooms?: Record<string, string[]>;
|
|
92
97
|
dms?: ResolvedMoltnetDMConfig;
|
|
93
98
|
memberId: string | null;
|
|
@@ -123,6 +128,67 @@ export interface ResolvedTeamNetwork {
|
|
|
123
128
|
rooms: ResolvedTeamNetworkRoom[];
|
|
124
129
|
server?: TeamNetworkServer;
|
|
125
130
|
}
|
|
131
|
+
export interface ResolvedMemoryStorePersistence {
|
|
132
|
+
mode: "durable" | "ephemeral";
|
|
133
|
+
mount?: string;
|
|
134
|
+
name?: string;
|
|
135
|
+
}
|
|
136
|
+
export interface ResolvedMemoryStore {
|
|
137
|
+
kind: "json" | "memory" | "postgres" | "sqlite";
|
|
138
|
+
path?: string;
|
|
139
|
+
persistence?: ResolvedMemoryStorePersistence;
|
|
140
|
+
dsn_secret?: string;
|
|
141
|
+
}
|
|
142
|
+
export interface ResolvedMemoryIndex {
|
|
143
|
+
graph: {
|
|
144
|
+
enabled: boolean;
|
|
145
|
+
kind?: "entity_graph" | "temporal_kg";
|
|
146
|
+
};
|
|
147
|
+
lexical: {
|
|
148
|
+
enabled: boolean;
|
|
149
|
+
engine?: "bm25" | "sqlite_fts";
|
|
150
|
+
};
|
|
151
|
+
rerank: {
|
|
152
|
+
enabled: boolean;
|
|
153
|
+
};
|
|
154
|
+
vector: {
|
|
155
|
+
base_url?: string;
|
|
156
|
+
enabled: boolean;
|
|
157
|
+
model?: string;
|
|
158
|
+
provider?: "ollama";
|
|
159
|
+
dimensions?: number;
|
|
160
|
+
timeout_ms?: number;
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
export interface ResolvedMemoryConsolidation {
|
|
164
|
+
mode: MemoryConsolidation["mode"];
|
|
165
|
+
schedule?: string;
|
|
166
|
+
summarize_after_events?: number;
|
|
167
|
+
}
|
|
168
|
+
export interface ResolvedMemoryRetention {
|
|
169
|
+
forgetting: MemoryRetention["forgetting"];
|
|
170
|
+
ttl?: string;
|
|
171
|
+
}
|
|
172
|
+
export interface ResolvedMemoryBank {
|
|
173
|
+
access?: {
|
|
174
|
+
members?: string[];
|
|
175
|
+
};
|
|
176
|
+
consolidation: ResolvedMemoryConsolidation;
|
|
177
|
+
declaredBy: "agent" | "team";
|
|
178
|
+
declaredName: string;
|
|
179
|
+
id: string;
|
|
180
|
+
index: ResolvedMemoryIndex;
|
|
181
|
+
retention: ResolvedMemoryRetention;
|
|
182
|
+
source: string;
|
|
183
|
+
store: ResolvedMemoryStore;
|
|
184
|
+
}
|
|
185
|
+
export interface ResolvedMemoryAccess {
|
|
186
|
+
agentSource: string;
|
|
187
|
+
declaringKind: "agent" | "team";
|
|
188
|
+
slotId?: string;
|
|
189
|
+
source: string;
|
|
190
|
+
bank: ResolvedMemoryBank;
|
|
191
|
+
}
|
|
126
192
|
export interface EffectiveModelTarget {
|
|
127
193
|
auth: {
|
|
128
194
|
key?: string;
|
|
@@ -159,8 +225,11 @@ export interface ResolvedAgentNode {
|
|
|
159
225
|
secrets: Secret[];
|
|
160
226
|
skills: ResolvedSkill[];
|
|
161
227
|
source: string;
|
|
228
|
+
sourcePath?: string;
|
|
162
229
|
surfaces?: ResolvedAgentSurfaces;
|
|
163
230
|
subagents: ResolvedSubagentRef[];
|
|
231
|
+
memory?: ResolvedMemoryBank[];
|
|
232
|
+
memoryAccess?: ResolvedMemoryAccess[];
|
|
164
233
|
workspaceResources?: ResolvedWorkspaceResource[];
|
|
165
234
|
}
|
|
166
235
|
export interface ResolvedTeamNode {
|
|
@@ -168,6 +237,7 @@ export interface ResolvedTeamNode {
|
|
|
168
237
|
docs: ResolvedDocument[];
|
|
169
238
|
external: string[];
|
|
170
239
|
externalExplicit?: boolean;
|
|
240
|
+
externalParticipants?: ExternalParticipantService[];
|
|
171
241
|
kind: "team";
|
|
172
242
|
lead: string | null;
|
|
173
243
|
members: ResolvedMemberRef[];
|
|
@@ -184,6 +254,7 @@ export interface ResolvedTeamNode {
|
|
|
184
254
|
skills: ResolvedSkill[];
|
|
185
255
|
packages?: ResolvedPackage[];
|
|
186
256
|
};
|
|
257
|
+
memory?: ResolvedMemoryBank[];
|
|
187
258
|
source: string;
|
|
188
259
|
}
|
|
189
260
|
export interface CompilePlanEdge {
|
|
@@ -224,6 +295,7 @@ export interface ResolvedMoltnetRoomMembership {
|
|
|
224
295
|
}
|
|
225
296
|
export interface CompilePlan {
|
|
226
297
|
edges: CompilePlanEdge[];
|
|
298
|
+
memoryAccess?: ResolvedMemoryAccess[];
|
|
227
299
|
memberships?: ResolvedTeamMembershipContext[];
|
|
228
300
|
moltnetRoomMemberships?: ResolvedMoltnetRoomMembership[];
|
|
229
301
|
nodes: CompilePlanNode[];
|
|
@@ -231,4 +303,13 @@ export interface CompilePlan {
|
|
|
231
303
|
runtimes: Record<string, {
|
|
232
304
|
nodeIds: string[];
|
|
233
305
|
}>;
|
|
306
|
+
organizationIdentity?: ResolvedOrganizationIdentity;
|
|
307
|
+
moltnetExternalParticipantIntents?: MoltnetExternalParticipantIntent[];
|
|
308
|
+
}
|
|
309
|
+
export interface MoltnetExternalParticipantIntent {
|
|
310
|
+
participant: ResolvedExternalParticipant;
|
|
311
|
+
networkId: string;
|
|
312
|
+
tokenId: string;
|
|
313
|
+
tokenEnv: string;
|
|
314
|
+
directMessagePeers: string[];
|
|
234
315
|
}
|
|
@@ -14,6 +14,11 @@ export interface UpProjectOptions extends CompileProjectOptions {
|
|
|
14
14
|
envFilePath?: string;
|
|
15
15
|
imageTag?: string;
|
|
16
16
|
runRunner?: DockerRunRunner;
|
|
17
|
+
networkAttachmentHandle?: string;
|
|
18
|
+
organizationHandoffRunId?: string;
|
|
19
|
+
descriptorDigest?: string;
|
|
20
|
+
selectedTargetReceipt?: unknown;
|
|
21
|
+
selectedTargetReceiptDigest?: string;
|
|
17
22
|
targetExecFile?: DockerTargetExecFile;
|
|
18
23
|
}
|
|
19
24
|
export interface UpProjectResult extends BuildProjectResult {
|
|
@@ -1,11 +1,110 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { rm } from "node:fs/promises";
|
|
4
|
+
import { createOrganizationReadinessPending, createDockerOrganizationHandoffSession, createDockerDeploymentRecord, initializeOrganizationHandoffAuthorityStore, parseCanonicalSha256Digest, probeDockerOrganizationReadiness, readDeploymentRecord, resolveDockerDeploymentTarget, resolveDeploymentRecordPath, writeDeploymentRecord, writeDockerDeploymentRecordForRun } from "../deployment/index.js";
|
|
5
|
+
import { createCanonicalSelectedTargetReceiptBytes, parseOpaqueTargetHandle, parseRunId, parseSelectedTargetReceipt, selectTarget } from "../target/index.js";
|
|
4
6
|
import { buildProject } from "./buildProject.js";
|
|
5
7
|
import { createDockerRunInvocation, resolveDetachedDeploymentOptions, runDockerContainer } from "./runProject.js";
|
|
8
|
+
import { executeDockerRunWithSupportCleanup } from "./runProjectLifecycle.js";
|
|
6
9
|
import { requireAuthProfile } from "../auth/index.js";
|
|
7
|
-
import { DEFAULT_OUTPUT_DIRECTORY } from "../shared/index.js";
|
|
10
|
+
import { DEFAULT_OUTPUT_DIRECTORY, SpawnfileError } from "../shared/index.js";
|
|
11
|
+
import { ensureNoopolisRunId, resolveNoopolisRunId } from "../runtime/index.js";
|
|
12
|
+
import { fileExists } from "../filesystem/index.js";
|
|
13
|
+
import { resolveHostCliCredential } from "./runProjectAuth.js";
|
|
14
|
+
const handoffInputError = () => new SpawnfileError("validation_error", "Organization handoff requires authorized run id, selected target receipt, descriptor digest, selected target receipt digest, network attachment handle, and world bindings");
|
|
15
|
+
const handoffRecoveryIncompleteError = () => new SpawnfileError("runtime_error", "Organization handoff recovery is incomplete; redeploy with explicit authorization");
|
|
16
|
+
const stableRecord = (record) => {
|
|
17
|
+
const { created_at: _createdAt, export_index: _exportIndex, organization_ready: _organizationReady, ...stable } = record;
|
|
18
|
+
return stable;
|
|
19
|
+
};
|
|
20
|
+
const canonicalJson = (value) => {
|
|
21
|
+
if (Array.isArray(value))
|
|
22
|
+
return `[${value.map(canonicalJson).join(",")}]`;
|
|
23
|
+
if (value !== null && typeof value === "object") {
|
|
24
|
+
const record = value;
|
|
25
|
+
return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key])}`).join(",")}}`;
|
|
26
|
+
}
|
|
27
|
+
const serialized = JSON.stringify(value);
|
|
28
|
+
if (serialized === undefined)
|
|
29
|
+
throw handoffInputError();
|
|
30
|
+
return serialized;
|
|
31
|
+
};
|
|
32
|
+
const resolveRequestedHandoff = (options) => {
|
|
33
|
+
const values = [
|
|
34
|
+
options.descriptorDigest,
|
|
35
|
+
options.organizationHandoffRunId,
|
|
36
|
+
options.selectedTargetReceiptDigest,
|
|
37
|
+
options.selectedTargetReceipt,
|
|
38
|
+
options.networkAttachmentHandle,
|
|
39
|
+
options.worldBindingsPath
|
|
40
|
+
];
|
|
41
|
+
if (values.every((value) => value === undefined))
|
|
42
|
+
return null;
|
|
43
|
+
if (values.some((value) => value === undefined) || !options.detach)
|
|
44
|
+
throw handoffInputError();
|
|
45
|
+
try {
|
|
46
|
+
const selectedTarget = parseSelectedTargetReceipt(options.selectedTargetReceipt);
|
|
47
|
+
const selectedDigest = parseCanonicalSha256Digest(options.selectedTargetReceiptDigest, "selected_target_receipt_digest");
|
|
48
|
+
const computedDigest = `sha256:${createHash("sha256").update(createCanonicalSelectedTargetReceiptBytes(selectedTarget), "utf8").digest("hex")}`;
|
|
49
|
+
if (selectedDigest !== computedDigest)
|
|
50
|
+
throw new Error("selected receipt digest mismatch");
|
|
51
|
+
return {
|
|
52
|
+
descriptorDigest: parseCanonicalSha256Digest(options.descriptorDigest, "descriptor_digest"),
|
|
53
|
+
runId: parseRunId(options.organizationHandoffRunId),
|
|
54
|
+
networkAttachmentHandle: parseOpaqueTargetHandle(options.networkAttachmentHandle),
|
|
55
|
+
selectedTarget,
|
|
56
|
+
selectedTargetReceiptDigest: selectedDigest
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
throw handoffInputError();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const verifyRequestedHandoffTarget = async (requested, resolved, options) => {
|
|
64
|
+
if (!requested)
|
|
65
|
+
return;
|
|
66
|
+
if (typeof resolved.dockerContext !== "string" || resolved.dockerContext.length === 0
|
|
67
|
+
|| resolved.dockerHost != null || process.env.DOCKER_HOST != null)
|
|
68
|
+
throw handoffInputError();
|
|
69
|
+
try {
|
|
70
|
+
const actual = await selectTarget({
|
|
71
|
+
context: resolved.dockerContext,
|
|
72
|
+
dockerCommand: options.dockerCommand,
|
|
73
|
+
execFile: options.targetExecFile
|
|
74
|
+
});
|
|
75
|
+
if (createCanonicalSelectedTargetReceiptBytes(actual)
|
|
76
|
+
!== createCanonicalSelectedTargetReceiptBytes(requested.selectedTarget))
|
|
77
|
+
throw new Error("target mismatch");
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
throw handoffInputError();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const resolveCompiledHandoff = (requested, buildResult) => {
|
|
84
|
+
if (!requested)
|
|
85
|
+
return undefined;
|
|
86
|
+
try {
|
|
87
|
+
const bindingDigest = buildResult.organizationReadinessEvidence.worldBindings?.digest;
|
|
88
|
+
if (!bindingDigest)
|
|
89
|
+
throw new Error("missing compiled binding evidence");
|
|
90
|
+
const bindingDigestParsed = parseCanonicalSha256Digest(bindingDigest, "binding_digest");
|
|
91
|
+
return { authority: { ...requested, bindingDigest: bindingDigestParsed }, organizationHandoff: {
|
|
92
|
+
bindingDigest: bindingDigestParsed, networkAttachmentHandle: requested.networkAttachmentHandle,
|
|
93
|
+
selectedTargetReceiptDigest: requested.selectedTargetReceiptDigest
|
|
94
|
+
} };
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
throw handoffInputError();
|
|
98
|
+
}
|
|
99
|
+
};
|
|
8
100
|
export const upProject = async (inputPath, options = {}) => {
|
|
101
|
+
// Parse caller authority before any target or build work. Target identity is
|
|
102
|
+
// verified below from the resolved detached options, including exact record reuse.
|
|
103
|
+
const requestedHandoff = resolveRequestedHandoff(options);
|
|
104
|
+
// Handoff reservation identity must survive a process crash. Unlike an
|
|
105
|
+
// ordinary deployment run, it may never silently mint a fresh run id.
|
|
106
|
+
if (requestedHandoff && resolveNoopolisRunId(process.env) !== requestedHandoff.runId)
|
|
107
|
+
throw handoffInputError();
|
|
9
108
|
const resolvedOptions = await resolveDetachedDeploymentOptions(path.resolve(options.outputDirectory ?? DEFAULT_OUTPUT_DIRECTORY), {
|
|
10
109
|
authProfile: options.authProfile,
|
|
11
110
|
containerName: options.containerName,
|
|
@@ -18,19 +117,37 @@ export const upProject = async (inputPath, options = {}) => {
|
|
|
18
117
|
imageTag: options.imageTag,
|
|
19
118
|
targetExecFile: options.targetExecFile
|
|
20
119
|
});
|
|
120
|
+
await verifyRequestedHandoffTarget(requestedHandoff, resolvedOptions, options);
|
|
121
|
+
// Every authority container compiled for this deployment must stamp
|
|
122
|
+
// causal events under the same real run id (see specs/CAUSAL.md).
|
|
123
|
+
// buildProject/compileProject stay deterministic functions of the host
|
|
124
|
+
// env; this only fills in a generated id when the host did not already
|
|
125
|
+
// provide one, before the build step that bakes it into the
|
|
126
|
+
// entrypoint/recipe env.
|
|
127
|
+
if (!requestedHandoff)
|
|
128
|
+
ensureNoopolisRunId();
|
|
21
129
|
const buildResult = await buildProject(inputPath, {
|
|
22
130
|
buildRunner: options.buildRunner,
|
|
23
131
|
clean: options.clean,
|
|
132
|
+
containerArchitecture: options.containerArchitecture,
|
|
133
|
+
dockerContext: resolvedOptions.dockerContext,
|
|
24
134
|
dockerCommand: options.dockerCommand,
|
|
25
135
|
imageTag: resolvedOptions.imageTag,
|
|
26
|
-
outputDirectory: options.outputDirectory
|
|
136
|
+
outputDirectory: options.outputDirectory,
|
|
137
|
+
runtimePackageOverrides: options.runtimePackageOverrides,
|
|
138
|
+
...(options.worldBindingsPath !== undefined
|
|
139
|
+
? { worldBindingsPath: options.worldBindingsPath }
|
|
140
|
+
: {})
|
|
27
141
|
});
|
|
142
|
+
const handoff = resolveCompiledHandoff(requestedHandoff, buildResult);
|
|
28
143
|
const authProfile = resolvedOptions.authProfile
|
|
29
144
|
? await requireAuthProfile(resolvedOptions.authProfile)
|
|
30
145
|
: null;
|
|
146
|
+
const cliCredential = await resolveHostCliCredential(buildResult.report.container);
|
|
31
147
|
const imageTag = resolvedOptions.imageTag ?? buildResult.imageTag;
|
|
32
148
|
const invocation = await createDockerRunInvocation(buildResult, imageTag, {
|
|
33
149
|
authProfile,
|
|
150
|
+
...(cliCredential ? { cliCredential: { name: cliCredential.name, value: cliCredential.value } } : {}),
|
|
34
151
|
containerName: resolvedOptions.containerName,
|
|
35
152
|
detach: options.detach,
|
|
36
153
|
deploymentName: resolvedOptions.deploymentName,
|
|
@@ -39,27 +156,147 @@ export const upProject = async (inputPath, options = {}) => {
|
|
|
39
156
|
dockerHost: resolvedOptions.dockerHost,
|
|
40
157
|
envFilePath: resolvedOptions.envFilePath
|
|
41
158
|
});
|
|
42
|
-
let
|
|
159
|
+
let authority;
|
|
160
|
+
let deploymentRecordPath;
|
|
161
|
+
let recovered = false;
|
|
162
|
+
let dockerLifecycleInvoked = false;
|
|
43
163
|
try {
|
|
44
|
-
|
|
164
|
+
let pending;
|
|
165
|
+
if (handoff) {
|
|
166
|
+
if (!invocation.deploymentLabels || !invocation.containerName)
|
|
167
|
+
throw handoffInputError();
|
|
168
|
+
const session = createDockerOrganizationHandoffSession({
|
|
169
|
+
bindingDigest: handoff.authority.bindingDigest,
|
|
170
|
+
containerName: invocation.containerName,
|
|
171
|
+
deploymentLabels: invocation.deploymentLabels,
|
|
172
|
+
descriptorDigest: handoff.authority.descriptorDigest,
|
|
173
|
+
organizationHandoff: handoff.organizationHandoff,
|
|
174
|
+
runId: handoff.authority.runId,
|
|
175
|
+
selectedTarget: handoff.authority.selectedTarget,
|
|
176
|
+
selectedTargetReceiptDigest: handoff.authority.selectedTargetReceiptDigest
|
|
177
|
+
});
|
|
178
|
+
authority = await initializeOrganizationHandoffAuthorityStore();
|
|
179
|
+
const begun = await authority.begin(session.authorityInput);
|
|
180
|
+
pending = begun.pending;
|
|
181
|
+
recovered = !begun.created;
|
|
182
|
+
}
|
|
183
|
+
let runMetadata = undefined;
|
|
184
|
+
if (!recovered) {
|
|
185
|
+
dockerLifecycleInvoked = true;
|
|
186
|
+
runMetadata = await executeDockerRunWithSupportCleanup(invocation, options.runRunner ?? runDockerContainer);
|
|
187
|
+
}
|
|
188
|
+
const observed = recovered && authority && pending
|
|
189
|
+
? await authority.readDockerMutation(pending.pending_key)
|
|
190
|
+
: undefined;
|
|
191
|
+
if (recovered && !observed)
|
|
192
|
+
throw handoffRecoveryIncompleteError();
|
|
193
|
+
const recoveredMetadata = observed
|
|
194
|
+
? { containerId: observed.container_id, deploymentLabels: observed.deployment_labels, imageId: observed.image_id }
|
|
195
|
+
: undefined;
|
|
196
|
+
const exactRunMetadata = runMetadata ?? recoveredMetadata;
|
|
197
|
+
let organizationHandoffHandle;
|
|
198
|
+
if (handoff) {
|
|
199
|
+
if (!exactRunMetadata?.containerId || !exactRunMetadata.deploymentLabels || !exactRunMetadata.imageId || !authority || !pending)
|
|
200
|
+
throw handoffInputError();
|
|
201
|
+
if (!recovered)
|
|
202
|
+
await authority.observeDockerMutation(pending.pending_key, {
|
|
203
|
+
containerId: exactRunMetadata.containerId, deploymentLabels: exactRunMetadata.deploymentLabels, imageId: exactRunMetadata.imageId
|
|
204
|
+
});
|
|
205
|
+
const finalized = await authority.finalize(pending.pending_key, { containerId: exactRunMetadata.containerId, deploymentLabels: exactRunMetadata.deploymentLabels });
|
|
206
|
+
organizationHandoffHandle = finalized.organization_handoff_handle;
|
|
207
|
+
const existingRecordPath = invocation.detach && invocation.deploymentName
|
|
208
|
+
? resolveDeploymentRecordPath(buildResult.outputDirectory, invocation.deploymentName)
|
|
209
|
+
: null;
|
|
210
|
+
if (existingRecordPath && await fileExists(existingRecordPath)) {
|
|
211
|
+
const existing = await readDeploymentRecord(existingRecordPath);
|
|
212
|
+
const target = await resolveDockerDeploymentTarget({
|
|
213
|
+
context: invocation.dockerContext ?? undefined,
|
|
214
|
+
dockerCommand: invocation.command,
|
|
215
|
+
dockerHost: invocation.dockerHost ?? undefined,
|
|
216
|
+
execFile: options.targetExecFile
|
|
217
|
+
});
|
|
218
|
+
const expected = createDockerDeploymentRecord({
|
|
219
|
+
authProfileName: authProfile?.name ?? null,
|
|
220
|
+
compileFingerprint: buildResult.report.compile_fingerprint ?? "",
|
|
221
|
+
containerName: invocation.containerName,
|
|
222
|
+
deploymentName: invocation.deploymentName ?? undefined,
|
|
223
|
+
envFilePath: resolvedOptions.envFilePath,
|
|
224
|
+
imageTag,
|
|
225
|
+
networkIds: buildResult.report.container?.moltnet?.server_plans
|
|
226
|
+
.filter((server) => server.mode === "managed").map((server) => server.network_id),
|
|
227
|
+
nodes: buildResult.report.nodes,
|
|
228
|
+
organizationHandoff: handoff.organizationHandoff,
|
|
229
|
+
organizationHandoffHandle,
|
|
230
|
+
outputDirectory: buildResult.outputDirectory,
|
|
231
|
+
projectRoot: buildResult.report.root,
|
|
232
|
+
runId: handoff.authority.runId,
|
|
233
|
+
runMetadata: exactRunMetadata,
|
|
234
|
+
runtimeInstanceIds: buildResult.report.container?.runtime_instances.map((instance) => instance.id) ?? [],
|
|
235
|
+
target
|
|
236
|
+
});
|
|
237
|
+
if (canonicalJson(stableRecord(existing)) !== canonicalJson(stableRecord(expected)))
|
|
238
|
+
throw handoffInputError();
|
|
239
|
+
deploymentRecordPath = existingRecordPath;
|
|
240
|
+
}
|
|
241
|
+
else
|
|
242
|
+
deploymentRecordPath = invocation.detach && invocation.deploymentName
|
|
243
|
+
? await writeDockerDeploymentRecordForRun({ authProfileName: authProfile?.name ?? null, envFilePath: resolvedOptions.envFilePath,
|
|
244
|
+
imageTag, invocation, outputDirectory: buildResult.outputDirectory,
|
|
245
|
+
organizationHandoff: handoff.organizationHandoff, organizationHandoffHandle, report: buildResult.report,
|
|
246
|
+
runMetadata: exactRunMetadata, targetExecFile: options.targetExecFile })
|
|
247
|
+
: null;
|
|
248
|
+
}
|
|
249
|
+
else
|
|
250
|
+
deploymentRecordPath = invocation.detach && invocation.deploymentName
|
|
251
|
+
? await writeDockerDeploymentRecordForRun({ authProfileName: authProfile?.name ?? null, envFilePath: resolvedOptions.envFilePath,
|
|
252
|
+
imageTag, invocation, outputDirectory: buildResult.outputDirectory, report: buildResult.report,
|
|
253
|
+
runMetadata: runMetadata ?? undefined, targetExecFile: options.targetExecFile })
|
|
254
|
+
: null;
|
|
45
255
|
}
|
|
46
256
|
finally {
|
|
47
|
-
|
|
48
|
-
|
|
257
|
+
// Replay creates a fresh support directory but does not invoke the normal
|
|
258
|
+
// Docker lifecycle wrapper. Preserve its detached credential cleanup
|
|
259
|
+
// semantics without deleting bind-mount support files.
|
|
260
|
+
let cleanupError;
|
|
261
|
+
try {
|
|
262
|
+
if (invocation.detach && !dockerLifecycleInvoked)
|
|
263
|
+
await rm(invocation.envFilePath, { force: true });
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
cleanupError = error;
|
|
267
|
+
}
|
|
268
|
+
try {
|
|
269
|
+
await authority?.dispose();
|
|
49
270
|
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
if (cleanupError === undefined)
|
|
273
|
+
throw error;
|
|
274
|
+
}
|
|
275
|
+
if (cleanupError !== undefined)
|
|
276
|
+
throw cleanupError;
|
|
277
|
+
}
|
|
278
|
+
if (deploymentRecordPath && buildResult.organizationReadinessEvidence) {
|
|
279
|
+
const record = await readDeploymentRecord(deploymentRecordPath);
|
|
280
|
+
const pending = createOrganizationReadinessPending(buildResult.organizationReadinessEvidence, {
|
|
281
|
+
compileFingerprint: record.compile_fingerprint,
|
|
282
|
+
deploymentName: record.name,
|
|
283
|
+
runId: record.run_id ?? null,
|
|
284
|
+
unitCount: record.units.length,
|
|
285
|
+
unitId: record.units[0]?.id ?? "invalid-unit"
|
|
286
|
+
});
|
|
287
|
+
const pendingRecord = { ...record, organization_ready: pending };
|
|
288
|
+
await writeDeploymentRecord(buildResult.outputDirectory, pendingRecord);
|
|
289
|
+
const organizationReady = await probeDockerOrganizationReadiness({
|
|
290
|
+
dockerCommand: options.dockerCommand,
|
|
291
|
+
evidence: buildResult.organizationReadinessEvidence,
|
|
292
|
+
execFile: options.targetExecFile,
|
|
293
|
+
record: pendingRecord
|
|
294
|
+
});
|
|
295
|
+
await writeDeploymentRecord(buildResult.outputDirectory, {
|
|
296
|
+
...pendingRecord,
|
|
297
|
+
organization_ready: organizationReady
|
|
298
|
+
});
|
|
50
299
|
}
|
|
51
|
-
const deploymentRecordPath = invocation.detach && invocation.deploymentName
|
|
52
|
-
? await writeDockerDeploymentRecordForRun({
|
|
53
|
-
authProfileName: authProfile?.name ?? null,
|
|
54
|
-
envFilePath: resolvedOptions.envFilePath,
|
|
55
|
-
imageTag,
|
|
56
|
-
invocation,
|
|
57
|
-
outputDirectory: buildResult.outputDirectory,
|
|
58
|
-
report: buildResult.report,
|
|
59
|
-
runMetadata: runMetadata ?? undefined,
|
|
60
|
-
targetExecFile: options.targetExecFile
|
|
61
|
-
})
|
|
62
|
-
: null;
|
|
63
300
|
return {
|
|
64
301
|
...buildResult,
|
|
65
302
|
authProfileName: authProfile?.name ?? null,
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type CompiledEngineEntry, type CompiledScheduleEntry, type UpReceipt } from "../deployment/index.js";
|
|
2
|
+
import type { CompilePlan } from "./types.js";
|
|
3
|
+
import type { UpProjectResult } from "./upProject.js";
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the `{agent, cron}` pairs an up-receipt's `compiled_schedule` field carries
|
|
6
|
+
* (Decision 21 Piece 4) — the raw material for simfile's wake-diff denominator oracle.
|
|
7
|
+
* Only `kind: "cron"` schedules are represented; `every`/`disabled` schedules have no
|
|
8
|
+
* cron-fire cadence to diff against sim-time and are intentionally omitted, not zeroed.
|
|
9
|
+
*/
|
|
10
|
+
export declare const resolveCompiledSchedule: (plan: CompilePlan) => CompiledScheduleEntry[];
|
|
11
|
+
/**
|
|
12
|
+
* Extracts `{agent, engine}` pairs (Piece 5, Slice B) — disclosure ground truth for the
|
|
13
|
+
* run-manifest's `pinned-engine` field, so a `scripted` (or any non-default) pi engine is
|
|
14
|
+
* visibly disclosed rather than an invisible test-only branch. Reads
|
|
15
|
+
* `report.container.runtime_instances[].engine_by_node_id`, the single source of truth
|
|
16
|
+
* `containerArtifacts.ts` already stamps from the pi adapter's own resolved engine kinds
|
|
17
|
+
* (see `src/runtime/pi/adapter.ts`'s `createContainerTargets`) — deliberately not
|
|
18
|
+
* re-derived from a fresh `buildCompilePlan` walk (unlike `resolveCompiledSchedule` above),
|
|
19
|
+
* since that would recompute the exact same fact from pi-adapter-internal logic
|
|
20
|
+
* (`resolvePiEngine`) that compiler code has no business reaching into directly.
|
|
21
|
+
*/
|
|
22
|
+
export declare const resolveCompiledEngines: (report: UpProjectResult["report"]) => CompiledEngineEntry[];
|
|
23
|
+
/**
|
|
24
|
+
* Builds `spawnfile.up-receipt.v1` from a project-path `upProject()` result. Reads back
|
|
25
|
+
* the deployment record `upProject` already wrote (for `run_id`/deployment name/container
|
|
26
|
+
* id — the same record `spawnfile artifacts export`/`spawnfile down` resolve), and
|
|
27
|
+
* re-derives `compiled_schedule` from the resolved graph, since `compileProject` does not
|
|
28
|
+
* retain its own `CompilePlan` past the compile step.
|
|
29
|
+
*
|
|
30
|
+
* `readiness` reuses whatever signal `upProject` already has — a bare `docker run -d`
|
|
31
|
+
* that returned a container id, not a new health probe: `up` has never polled
|
|
32
|
+
* application-level readiness, and this receipt does not invent one. `moltnet_base_url`
|
|
33
|
+
* comes straight from the compiled container report's own managed/external server plan;
|
|
34
|
+
* no credentials ever land on this contract (contracts.md).
|
|
35
|
+
*/
|
|
36
|
+
export declare const buildUpReceipt: (inputPath: string, result: UpProjectResult) => Promise<UpReceipt>;
|