spawnfile 0.1.13 → 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 +50 -11
- 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/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/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 -181
- 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 +9 -2
- package/dist/cli/runCli.js +27 -71
- package/dist/cli/runPublishCommands.d.ts +3 -0
- package/dist/cli/runPublishCommands.js +70 -0
- package/dist/cli/statusCommand.d.ts +3 -33
- package/dist/cli/statusCommand.js +19 -249
- 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 +11 -0
- package/dist/compiler/buildProject.js +77 -2
- package/dist/compiler/compilePlanHelpers.js +2 -0
- package/dist/compiler/compileProject.d.ts +13 -0
- package/dist/compiler/compileProject.js +26 -74
- 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 +15 -12
- 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 +56 -52
- 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/containerTargetPlanResolution.d.ts +20 -0
- package/dist/compiler/containerTargetPlanResolution.js +97 -0
- 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 +43 -97
- package/dist/compiler/moltnetBinaries.d.ts +21 -4
- package/dist/compiler/moltnetBinaries.js +134 -27
- package/dist/compiler/moltnetClientConfig.js +7 -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/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 +30 -21
- 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 +31 -8
- 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 +256 -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.js +9 -1
- 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 +16 -0
- package/dist/deployment/index.js +17 -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/project.js +15 -9
- 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 +35 -0
- package/dist/runtime/common.js +55 -0
- package/dist/runtime/container.d.ts +28 -1
- package/dist/runtime/container.js +38 -5
- 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/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 +1 -1
- package/dist/runtime/pi/adapter.js +86 -53
- package/dist/runtime/pi/appActivitySource.js +114 -2
- 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 -1
- package/dist/runtime/pi/appCoreSource.js +104 -214
- package/dist/runtime/pi/appPreludeSource.js +140 -52
- 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 -1
- package/dist/runtime/pi/appSource.js +6 -2
- package/dist/runtime/pi/appTemplate.d.ts +8 -22
- package/dist/runtime/pi/appTemplate.js +9 -126
- 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.js +126 -9
- 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/scheduleUtils.d.ts +2 -0
- package/dist/runtime/scheduleUtils.js +15 -0
- package/dist/runtime/types.d.ts +25 -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/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 +27 -11
- package/runtimes.yaml +8 -23
- 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
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import path from "node:path/posix";
|
|
2
|
+
import { resolveNoopolisRunId } from "../runtime/index.js";
|
|
3
|
+
import { slugify } from "./helpers.js";
|
|
4
|
+
import { createPersistentVolumeName } from "./moltnetArtifactPaths.js";
|
|
5
|
+
const normalizePosixPath = (value) => path.normalize(value).replace(/\/+$/u, "") || "/";
|
|
6
|
+
const safeSlug = (value) => slugify(value).trim() || "memory";
|
|
7
|
+
const createMountId = (mountPath) => `memory-${safeSlug(mountPath)}`;
|
|
8
|
+
const isFileBackedMemoryStore = (bank) => bank.store.kind === "sqlite" || bank.store.kind === "json";
|
|
9
|
+
const transportFromRuntime = (runtimeName, bank) => {
|
|
10
|
+
switch (runtimeName) {
|
|
11
|
+
case "pi":
|
|
12
|
+
case "daimon":
|
|
13
|
+
return "direct";
|
|
14
|
+
case "picoclaw":
|
|
15
|
+
case "openclaw":
|
|
16
|
+
return isFileBackedMemoryStore(bank) ? "mcp" : "degraded_mcp";
|
|
17
|
+
default:
|
|
18
|
+
return "unsupported";
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const memoryMountPath = (bank) => {
|
|
22
|
+
if (bank.store.kind !== "sqlite" && bank.store.kind !== "json") {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
if (bank.store.persistence?.mode === "ephemeral") {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
if (bank.store.persistence?.mount) {
|
|
29
|
+
return normalizePosixPath(bank.store.persistence.mount);
|
|
30
|
+
}
|
|
31
|
+
return bank.store.path
|
|
32
|
+
? path.dirname(normalizePosixPath(bank.store.path))
|
|
33
|
+
: null;
|
|
34
|
+
};
|
|
35
|
+
const summarizeMemoryStore = (bank, mountId) => {
|
|
36
|
+
const persistenceMode = bank.store.kind === "sqlite" || bank.store.kind === "json"
|
|
37
|
+
? (bank.store.persistence?.mode ?? "durable")
|
|
38
|
+
: undefined;
|
|
39
|
+
return {
|
|
40
|
+
kind: bank.store.kind,
|
|
41
|
+
...(bank.store.path ? { path: bank.store.path } : {}),
|
|
42
|
+
...(persistenceMode ? { persistence: persistenceMode } : {}),
|
|
43
|
+
...(mountId ? { persistent_mount_id: mountId } : {}),
|
|
44
|
+
...(bank.store.kind === "postgres" ? { dsn_secret: bank.store.dsn_secret } : {})
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export const createMemoryArtifactBundle = (plan) => {
|
|
48
|
+
// Run-scoping key for every derived volume name below (see
|
|
49
|
+
// createPersistentVolumeName's doc comment in moltnetArtifactPaths.ts):
|
|
50
|
+
// present whenever this compile was driven by `spawnfile run`/`up`
|
|
51
|
+
// (which always call ensureNoopolisRunId() first), absent for a bare
|
|
52
|
+
// `spawnfile compile`/`spawnfile build`.
|
|
53
|
+
const runId = resolveNoopolisRunId(process.env);
|
|
54
|
+
const sourceToNode = new Map(plan.nodes.map((node) => [node.value.source, node]));
|
|
55
|
+
const groupedMemory = new Map();
|
|
56
|
+
for (const access of plan.memoryAccess ?? []) {
|
|
57
|
+
const key = `${access.source}::${access.bank.id}`;
|
|
58
|
+
const existing = groupedMemory.get(key);
|
|
59
|
+
if (existing) {
|
|
60
|
+
existing.accesses.push(access);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
groupedMemory.set(key, { bank: access.bank, source: access.source, accesses: [access] });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const mounts = [];
|
|
67
|
+
const mountPathMemoryMap = new Map();
|
|
68
|
+
const mountByPath = new Map();
|
|
69
|
+
const memories = [...groupedMemory.entries()]
|
|
70
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
71
|
+
.map(([, entry]) => {
|
|
72
|
+
const declaringNode = sourceToNode.get(entry.source);
|
|
73
|
+
if (!declaringNode) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const transportByNodeId = {};
|
|
77
|
+
const accessibleNodeIds = new Set();
|
|
78
|
+
for (const access of entry.accesses) {
|
|
79
|
+
const agentNode = sourceToNode.get(access.agentSource);
|
|
80
|
+
if (!agentNode || agentNode.value.kind !== "agent") {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const transport = transportFromRuntime(agentNode.runtimeName, entry.bank);
|
|
84
|
+
transportByNodeId[agentNode.id] = transport;
|
|
85
|
+
accessibleNodeIds.add(agentNode.id);
|
|
86
|
+
}
|
|
87
|
+
const declaringNodeId = declaringNode.id;
|
|
88
|
+
const mountPath = memoryMountPath(entry.bank);
|
|
89
|
+
let persistentMountId;
|
|
90
|
+
if (mountPath !== null) {
|
|
91
|
+
const mountId = createMountId(mountPath);
|
|
92
|
+
// createPersistentVolumeName also folds in plan.root (previously
|
|
93
|
+
// missing here entirely), so two different projects that happen to
|
|
94
|
+
// share a mount-path convention no longer derive the same volume
|
|
95
|
+
// name — the same isolation moltnet's own persistent mounts already
|
|
96
|
+
// had before this change.
|
|
97
|
+
const volumeName = createPersistentVolumeName(plan.root, mountId, entry.bank.store.persistence?.name, runId);
|
|
98
|
+
const existingMount = mountByPath.get(mountPath);
|
|
99
|
+
if (existingMount && existingMount.volume_name !== volumeName) {
|
|
100
|
+
throw new Error(`Memory store mount ${mountPath} resolves to conflicting volume names`);
|
|
101
|
+
}
|
|
102
|
+
const mount = existingMount ?? {
|
|
103
|
+
id: mountId,
|
|
104
|
+
mount_path: mountPath,
|
|
105
|
+
reason: `durable memory stores under ${mountPath}`,
|
|
106
|
+
volume_name: volumeName
|
|
107
|
+
};
|
|
108
|
+
mountByPath.set(mountPath, mount);
|
|
109
|
+
if (!existingMount) {
|
|
110
|
+
mounts.push(mount);
|
|
111
|
+
}
|
|
112
|
+
persistentMountId = mount.id;
|
|
113
|
+
mountPathMemoryMap.set(persistentMountId, mountPath);
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
id: entry.bank.id,
|
|
117
|
+
declaring_node_id: declaringNodeId,
|
|
118
|
+
accessible_node_ids: [...accessibleNodeIds].sort(),
|
|
119
|
+
store: summarizeMemoryStore(entry.bank, persistentMountId),
|
|
120
|
+
index: entry.bank.index,
|
|
121
|
+
consolidation: entry.bank.consolidation,
|
|
122
|
+
retention: entry.bank.retention,
|
|
123
|
+
transport_by_node_id: transportByNodeId
|
|
124
|
+
};
|
|
125
|
+
})
|
|
126
|
+
.filter((entry) => entry !== null)
|
|
127
|
+
.sort((left, right) => left.declaring_node_id.localeCompare(right.declaring_node_id)
|
|
128
|
+
|| left.id.localeCompare(right.id));
|
|
129
|
+
return {
|
|
130
|
+
mountPathMemoryMap,
|
|
131
|
+
memories,
|
|
132
|
+
mounts: [...mounts].sort((left, right) => left.id.localeCompare(right.id) || left.mount_path.localeCompare(right.mount_path))
|
|
133
|
+
};
|
|
134
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CompilePlan, ResolvedMemoryBank } from "./types.js";
|
|
2
|
+
import type { MemoryBank } from "../manifest/index.js";
|
|
3
|
+
export declare const resolveDeclaredMemoryBanks: (memory: MemoryBank[] | undefined, source: string, declaredBy: "agent" | "team", manifestName: string) => ResolvedMemoryBank[];
|
|
4
|
+
export declare const resolvePlanMemoryAccess: (plan: CompilePlan) => void;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
2
|
+
import { slugify } from "./helpers.js";
|
|
3
|
+
const resolveMemoryIndex = (index) => ({
|
|
4
|
+
graph: {
|
|
5
|
+
enabled: index?.graph?.enabled ?? false,
|
|
6
|
+
...(index?.graph?.kind ? { kind: index.graph.kind } : {})
|
|
7
|
+
},
|
|
8
|
+
lexical: {
|
|
9
|
+
enabled: index?.lexical?.enabled ?? true,
|
|
10
|
+
...(index?.lexical?.engine ? { engine: index.lexical.engine } : {})
|
|
11
|
+
},
|
|
12
|
+
rerank: {
|
|
13
|
+
enabled: index?.rerank?.enabled ?? false
|
|
14
|
+
},
|
|
15
|
+
vector: {
|
|
16
|
+
...(index?.vector?.base_url ? { base_url: index.vector.base_url } : {}),
|
|
17
|
+
dimensions: index?.vector?.dimensions,
|
|
18
|
+
enabled: index?.vector?.enabled ?? false,
|
|
19
|
+
...(index?.vector?.model ? { model: index.vector.model } : {}),
|
|
20
|
+
...(index?.vector?.provider ? { provider: index.vector.provider } : {}),
|
|
21
|
+
...(index?.vector?.timeout_ms ? { timeout_ms: index.vector.timeout_ms } : {})
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
const resolveMemoryConsolidation = (consolidation) => ({
|
|
25
|
+
mode: consolidation?.mode ?? "disabled",
|
|
26
|
+
...(consolidation?.schedule ? { schedule: consolidation.schedule } : {}),
|
|
27
|
+
...(consolidation?.summarize_after_events
|
|
28
|
+
? { summarize_after_events: consolidation.summarize_after_events }
|
|
29
|
+
: {})
|
|
30
|
+
});
|
|
31
|
+
const resolveMemoryRetention = (retention) => ({
|
|
32
|
+
forgetting: retention?.forgetting ?? "manual",
|
|
33
|
+
...(retention?.ttl ? { ttl: retention.ttl } : {})
|
|
34
|
+
});
|
|
35
|
+
const resolveMemoryStore = (store, manifestName, bankId) => {
|
|
36
|
+
const manifestSlug = slugify(manifestName) || "memory";
|
|
37
|
+
const baseDirectory = `/var/lib/spawnfile/memory/${manifestSlug}/${bankId}`;
|
|
38
|
+
if (store.kind === "sqlite" || store.kind === "json") {
|
|
39
|
+
return {
|
|
40
|
+
kind: store.kind,
|
|
41
|
+
path: store.path ?? `${baseDirectory}/${store.kind === "sqlite" ? "memory.sqlite" : "memory.jsonl"}`,
|
|
42
|
+
...(store.persistence
|
|
43
|
+
? {
|
|
44
|
+
persistence: {
|
|
45
|
+
mode: store.persistence.mode,
|
|
46
|
+
...(store.persistence.mount ? { mount: store.persistence.mount } : {}),
|
|
47
|
+
...(store.persistence.name ? { name: store.persistence.name } : {})
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
: {
|
|
51
|
+
persistence: {
|
|
52
|
+
mode: "durable"
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (store.kind === "postgres") {
|
|
58
|
+
return {
|
|
59
|
+
kind: store.kind,
|
|
60
|
+
dsn_secret: store.dsn_secret
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return { kind: "memory" };
|
|
64
|
+
};
|
|
65
|
+
export const resolveDeclaredMemoryBanks = (memory, source, declaredBy, manifestName) => (memory ?? []).map((entry) => ({
|
|
66
|
+
access: entry.access,
|
|
67
|
+
consolidation: resolveMemoryConsolidation(entry.consolidation),
|
|
68
|
+
declaredBy,
|
|
69
|
+
declaredName: manifestName,
|
|
70
|
+
id: entry.id,
|
|
71
|
+
index: resolveMemoryIndex(entry.index),
|
|
72
|
+
retention: resolveMemoryRetention(entry.retention),
|
|
73
|
+
source,
|
|
74
|
+
store: resolveMemoryStore(entry.store, manifestName, entry.id)
|
|
75
|
+
}));
|
|
76
|
+
const getAgentNodes = (plan) => new Map(plan.nodes
|
|
77
|
+
.filter((node) => node.value.kind === "agent")
|
|
78
|
+
.map((node) => [node.value.source, node.value]));
|
|
79
|
+
const getTeamNodes = (plan) => new Map(plan.nodes
|
|
80
|
+
.filter((node) => node.value.kind === "team")
|
|
81
|
+
.map((node) => [node.value.source, node.value]));
|
|
82
|
+
const resolveTeamMembersForBank = (team, members) => {
|
|
83
|
+
if (members !== undefined) {
|
|
84
|
+
return members;
|
|
85
|
+
}
|
|
86
|
+
return team.members.filter((member) => member.kind === "agent").map((member) => member.id);
|
|
87
|
+
};
|
|
88
|
+
export const resolvePlanMemoryAccess = (plan) => {
|
|
89
|
+
const agentBySource = getAgentNodes(plan);
|
|
90
|
+
const teamBySource = getTeamNodes(plan);
|
|
91
|
+
const memoryAccess = [];
|
|
92
|
+
for (const agent of agentBySource.values()) {
|
|
93
|
+
for (const bank of agent.memory ?? []) {
|
|
94
|
+
memoryAccess.push({
|
|
95
|
+
agentSource: agent.source,
|
|
96
|
+
declaringKind: "agent",
|
|
97
|
+
source: bank.source,
|
|
98
|
+
bank
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
for (const team of teamBySource.values()) {
|
|
103
|
+
for (const bank of team.memory ?? []) {
|
|
104
|
+
const allowedMembers = resolveTeamMembersForBank(team, bank.access?.members);
|
|
105
|
+
const validMemberIds = new Set(team.members.map((member) => member.id));
|
|
106
|
+
if (bank.access?.members) {
|
|
107
|
+
for (const memberId of bank.access.members) {
|
|
108
|
+
if (!validMemberIds.has(memberId)) {
|
|
109
|
+
throw new SpawnfileError("validation_error", `Team ${team.name} memory bank ${bank.id} references unknown member ${memberId}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
for (const memberId of allowedMembers) {
|
|
114
|
+
const member = team.members.find((memberRef) => memberRef.id === memberId);
|
|
115
|
+
if (!member || member.kind !== "agent") {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
const agentNode = agentBySource.get(member.nodeSource);
|
|
119
|
+
if (!agentNode) {
|
|
120
|
+
throw new SpawnfileError("validation_error", `Unable to resolve agent member ${memberId} in team ${team.name} for memory bank ${bank.id}`);
|
|
121
|
+
}
|
|
122
|
+
memoryAccess.push({
|
|
123
|
+
agentSource: agentNode.source,
|
|
124
|
+
declaringKind: "team",
|
|
125
|
+
slotId: memberId,
|
|
126
|
+
source: team.source,
|
|
127
|
+
bank
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (memoryAccess.length === 0) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const uniqueAccess = new Map();
|
|
136
|
+
for (const access of memoryAccess) {
|
|
137
|
+
const key = `${access.agentSource}::${access.declaringKind}::${access.source}::${access.bank.id}::${access.slotId ?? ""}`;
|
|
138
|
+
uniqueAccess.set(key, access);
|
|
139
|
+
}
|
|
140
|
+
plan.memoryAccess = [...uniqueAccess.values()].sort((left, right) => `${left.agentSource}:${left.bank.id}:${left.source}:${left.slotId ?? ""}`.localeCompare(`${right.agentSource}:${right.bank.id}:${right.source}:${right.slotId ?? ""}`));
|
|
141
|
+
for (const agent of agentBySource.values()) {
|
|
142
|
+
const access = plan.memoryAccess.filter((entry) => entry.agentSource === agent.source);
|
|
143
|
+
if (access.length > 0) {
|
|
144
|
+
agent.memoryAccess = access;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ExecutionBlock, ModelTarget } from "../manifest/index.js";
|
|
2
2
|
import { type ModelAuthMethod } from "../shared/index.js";
|
|
3
3
|
import type { EffectiveModelTarget } from "./types.js";
|
|
4
|
+
export declare const CLI_CREDENTIAL_SECRET_NAME = "SPAWNFILE_CLI_AUTH_JSON";
|
|
5
|
+
export declare const modelAuthMethodNeedsCliCredential: (method: ModelAuthMethod) => boolean;
|
|
4
6
|
export declare const resolveModelProviderEnvName: (provider: string) => string;
|
|
5
7
|
export declare const listExecutionModelTargets: (execution: ExecutionBlock | undefined) => ModelTarget[];
|
|
6
8
|
export declare const resolveEffectiveModelTarget: (target: ModelTarget, execution: ExecutionBlock | undefined) => EffectiveModelTarget;
|
|
@@ -8,6 +8,8 @@ const MODEL_PROVIDER_ENV_VARS = new Map([
|
|
|
8
8
|
["openrouter", "OPENROUTER_API_KEY"],
|
|
9
9
|
["xai", "XAI_API_KEY"]
|
|
10
10
|
]);
|
|
11
|
+
export const CLI_CREDENTIAL_SECRET_NAME = "SPAWNFILE_CLI_AUTH_JSON";
|
|
12
|
+
export const modelAuthMethodNeedsCliCredential = (method) => method !== "api_key" && method !== "none";
|
|
11
13
|
const resolveLegacyModelAuthMethod = (execution, provider) => {
|
|
12
14
|
const auth = execution?.model?.auth;
|
|
13
15
|
if (!auth) {
|
|
@@ -88,6 +90,10 @@ export const resolveExecutionModelAuthMethods = (execution) => {
|
|
|
88
90
|
export const listExecutionModelSecretNames = (execution) => {
|
|
89
91
|
const secretNames = new Set();
|
|
90
92
|
for (const target of listEffectiveExecutionModelTargets(execution)) {
|
|
93
|
+
if (modelAuthMethodNeedsCliCredential(target.auth.method)) {
|
|
94
|
+
secretNames.add(CLI_CREDENTIAL_SECRET_NAME);
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
91
97
|
if (target.auth.method !== "api_key") {
|
|
92
98
|
continue;
|
|
93
99
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
2
|
+
const rootTeamNode = (plan) => {
|
|
3
|
+
const rootNodes = plan.nodes
|
|
4
|
+
.map((entry) => entry.kind === "team" &&
|
|
5
|
+
entry.value.kind === "team" &&
|
|
6
|
+
entry.value.source === plan.root
|
|
7
|
+
? entry.value
|
|
8
|
+
: undefined)
|
|
9
|
+
.filter((team) => Boolean(team));
|
|
10
|
+
if (rootNodes.length !== 1) {
|
|
11
|
+
throw new SpawnfileError("validation_error", `Moltnet attachment validation requires exactly one source-root team; found ${rootNodes.length}`);
|
|
12
|
+
}
|
|
13
|
+
return rootNodes[0];
|
|
14
|
+
};
|
|
15
|
+
const describeAttachment = (network, memberId) => `${network}/${memberId ?? "unknown"}`;
|
|
16
|
+
export const validateAllowedWakeSenders = (plan) => {
|
|
17
|
+
let rootTeam;
|
|
18
|
+
const rootParticipants = () => {
|
|
19
|
+
if (!rootTeam) {
|
|
20
|
+
rootTeam = rootTeamNode(plan);
|
|
21
|
+
}
|
|
22
|
+
return rootTeam.externalParticipants ?? [];
|
|
23
|
+
};
|
|
24
|
+
for (const node of plan.nodes) {
|
|
25
|
+
if (node.value.kind !== "agent")
|
|
26
|
+
continue;
|
|
27
|
+
const attachments = node.value.surfaces?.moltnet ?? [];
|
|
28
|
+
for (const attachment of attachments) {
|
|
29
|
+
if (!attachment.dms?.allowedWakeSenders?.length) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const rootNodeParticipants = rootParticipants();
|
|
33
|
+
for (const authorId of attachment.dms.allowedWakeSenders) {
|
|
34
|
+
const compatible = rootNodeParticipants.filter((service) => service.id === authorId &&
|
|
35
|
+
service.surfaces.moltnet.some((entry) => entry.network === attachment.network && entry.dms.enabled === true));
|
|
36
|
+
if (compatible.length !== 1) {
|
|
37
|
+
throw new SpawnfileError("validation_error", `Moltnet attachment ${node.value.name}/${describeAttachment(attachment.network, attachment.memberId)} has ${compatible.length} root matches for allowed_wake_senders entry ${authorId}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ResolvedTeamNode } from "./types.js";
|
|
2
|
+
export declare const createMoltnetExternalParticipantArtifactPath: (networkId: string, memberId: string) => string;
|
|
3
|
+
/**
|
|
4
|
+
* Derives the host-mounted docker volume name for a durable mount.
|
|
5
|
+
*
|
|
6
|
+
* `runId` (the compiling process's resolved NOOPOLIS_RUN_ID, see
|
|
7
|
+
* src/runtime/common.ts) is the run-scoping key: `spawnfile run`/`spawnfile
|
|
8
|
+
* up` always call `ensureNoopolisRunId()` before compiling, so a fresh
|
|
9
|
+
* invocation with no host-pinned run id gets a fresh generated one and
|
|
10
|
+
* therefore a fresh volume — two concurrent/successive runs (e.g. two
|
|
11
|
+
* memetics replicates) never share durable state. A cold restart that wants
|
|
12
|
+
* to recall the same run's memory sets the SAME `NOOPOLIS_RUN_ID` before
|
|
13
|
+
* re-running, which reproduces this same volume name and remounts it.
|
|
14
|
+
* Omitted (a bare `spawnfile compile`/`spawnfile build` with no run id in
|
|
15
|
+
* the host env) reproduces the pre-run-scoping name exactly, so standard
|
|
16
|
+
* compiles stay byte-identical.
|
|
17
|
+
*
|
|
18
|
+
* `explicitName` (an author-declared `persistence.name`) always wins over
|
|
19
|
+
* both project/id and run scoping — an explicit name is opt-in shared/
|
|
20
|
+
* reused state by author intent, not something this helper should silently
|
|
21
|
+
* fragment across runs.
|
|
22
|
+
*/
|
|
23
|
+
export declare const createPersistentVolumeName: (planRoot: string, id: string, explicitName?: string, runId?: string) => string;
|
|
24
|
+
export declare const toContainerRootfsPath: (rootfsPath: string) => string;
|
|
25
|
+
export declare const isNetworkHttpEnabled: (network: NonNullable<ResolvedTeamNode["networks"]>[number]) => boolean;
|
|
26
|
+
export declare const resolveNetworkPort: (network: NonNullable<ResolvedTeamNode["networks"]>[number], fallbackPort: number) => number;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
2
|
+
import { createShortHash, slugify } from "./helpers.js";
|
|
3
|
+
const ROOTFS_PREFIX = "container/rootfs";
|
|
4
|
+
const ARTIFACT_SEGMENT = /^[a-z][a-z0-9-]{0,62}$/u;
|
|
5
|
+
export const createMoltnetExternalParticipantArtifactPath = (networkId, memberId) => {
|
|
6
|
+
if (!ARTIFACT_SEGMENT.test(networkId) ||
|
|
7
|
+
!/^[a-z][a-z0-9-]{0,62}(?:\.[a-z][a-z0-9-]{0,62}){0,7}$/u.test(memberId) ||
|
|
8
|
+
Buffer.byteLength(memberId, "ascii") > 255) {
|
|
9
|
+
throw new SpawnfileError("validation_error", "invalid Moltnet external participant artifact path segment");
|
|
10
|
+
}
|
|
11
|
+
return `moltnet/external-participants/${networkId}/${memberId}.json`;
|
|
12
|
+
};
|
|
13
|
+
const truncateSegment = (value, maxLength) => value.length > maxLength ? value.slice(0, maxLength).replace(/[-_.]+$/u, "") : value;
|
|
14
|
+
/**
|
|
15
|
+
* Derives the host-mounted docker volume name for a durable mount.
|
|
16
|
+
*
|
|
17
|
+
* `runId` (the compiling process's resolved NOOPOLIS_RUN_ID, see
|
|
18
|
+
* src/runtime/common.ts) is the run-scoping key: `spawnfile run`/`spawnfile
|
|
19
|
+
* up` always call `ensureNoopolisRunId()` before compiling, so a fresh
|
|
20
|
+
* invocation with no host-pinned run id gets a fresh generated one and
|
|
21
|
+
* therefore a fresh volume — two concurrent/successive runs (e.g. two
|
|
22
|
+
* memetics replicates) never share durable state. A cold restart that wants
|
|
23
|
+
* to recall the same run's memory sets the SAME `NOOPOLIS_RUN_ID` before
|
|
24
|
+
* re-running, which reproduces this same volume name and remounts it.
|
|
25
|
+
* Omitted (a bare `spawnfile compile`/`spawnfile build` with no run id in
|
|
26
|
+
* the host env) reproduces the pre-run-scoping name exactly, so standard
|
|
27
|
+
* compiles stay byte-identical.
|
|
28
|
+
*
|
|
29
|
+
* `explicitName` (an author-declared `persistence.name`) always wins over
|
|
30
|
+
* both project/id and run scoping — an explicit name is opt-in shared/
|
|
31
|
+
* reused state by author intent, not something this helper should silently
|
|
32
|
+
* fragment across runs.
|
|
33
|
+
*/
|
|
34
|
+
export const createPersistentVolumeName = (planRoot, id, explicitName, runId) => {
|
|
35
|
+
if (explicitName && explicitName.trim().length > 0) {
|
|
36
|
+
return explicitName.trim();
|
|
37
|
+
}
|
|
38
|
+
const project = truncateSegment(slugify(planRoot.split("/").slice(-2, -1)[0] ?? "project") || "project", 32);
|
|
39
|
+
const suffix = truncateSegment(slugify(id) || "state", 48);
|
|
40
|
+
const trimmedRunId = runId?.trim();
|
|
41
|
+
if (!trimmedRunId) {
|
|
42
|
+
return `spawnfile-${project}-${suffix}-${createShortHash(`${planRoot}:${id}`)}`;
|
|
43
|
+
}
|
|
44
|
+
const runSegment = truncateSegment(slugify(trimmedRunId) || "run", 24);
|
|
45
|
+
return `spawnfile-${project}-${suffix}-${runSegment}-${createShortHash(`${planRoot}:${id}:${trimmedRunId}`)}`;
|
|
46
|
+
};
|
|
47
|
+
export const toContainerRootfsPath = (rootfsPath) => `/${rootfsPath.replace(`${ROOTFS_PREFIX}/`, "")}`;
|
|
48
|
+
export const isNetworkHttpEnabled = (network) => network.server?.mode === "managed" && network.server.human_ingress === true;
|
|
49
|
+
export const resolveNetworkPort = (network, fallbackPort) => network.server?.mode === "managed" ? network.server.listen.port : fallbackPort;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { EmittedFile } from "../runtime/index.js";
|
|
2
|
+
import type { TeamNetworkServer } from "../manifest/index.js";
|
|
3
|
+
import type { MoltnetSecretPatch } from "./moltnetConfigLowering.js";
|
|
4
|
+
import type { MoltnetExternalParticipantArtifactV1 } from "./moltnetExternalParticipantArtifact.js";
|
|
5
|
+
export interface MoltnetServerPlan {
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
configPath?: string;
|
|
8
|
+
id: string;
|
|
9
|
+
mode: "external" | "managed";
|
|
10
|
+
name: string;
|
|
11
|
+
networkId: string;
|
|
12
|
+
port?: number;
|
|
13
|
+
rooms: Array<{
|
|
14
|
+
id: string;
|
|
15
|
+
members: string[];
|
|
16
|
+
name?: string;
|
|
17
|
+
visibility?: "public" | "private";
|
|
18
|
+
write_policy?: "members" | "operators" | "registered_agents";
|
|
19
|
+
}>;
|
|
20
|
+
server: TeamNetworkServer;
|
|
21
|
+
secretPatches: MoltnetSecretPatch[];
|
|
22
|
+
teamSource: string;
|
|
23
|
+
}
|
|
24
|
+
export interface MoltnetNodePlan {
|
|
25
|
+
configPath: string;
|
|
26
|
+
credentialAgentId?: string;
|
|
27
|
+
credentialId?: string;
|
|
28
|
+
credentialSecret?: string;
|
|
29
|
+
memberId?: string;
|
|
30
|
+
networkId: string;
|
|
31
|
+
}
|
|
32
|
+
export interface MoltnetPersistentMount {
|
|
33
|
+
id: string;
|
|
34
|
+
mountPath: string;
|
|
35
|
+
reason: string;
|
|
36
|
+
volumeName: string;
|
|
37
|
+
}
|
|
38
|
+
export interface MoltnetArtifacts {
|
|
39
|
+
externalParticipantArtifacts?: MoltnetExternalParticipantArtifactV1[];
|
|
40
|
+
files: EmittedFile[];
|
|
41
|
+
nodePlans: MoltnetNodePlan[];
|
|
42
|
+
persistentMounts: MoltnetPersistentMount[];
|
|
43
|
+
ports: number[];
|
|
44
|
+
publishedPorts: number[];
|
|
45
|
+
serverPlans: MoltnetServerPlan[];
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,42 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { TeamNetworkServer } from "../manifest/index.js";
|
|
3
|
-
import { type MoltnetSecretPatch } from "./moltnetConfigLowering.js";
|
|
1
|
+
import type { MoltnetArtifacts } from "./moltnetArtifactTypes.js";
|
|
4
2
|
import type { CompilePlan } from "./types.js";
|
|
5
|
-
export
|
|
6
|
-
baseUrl: string;
|
|
7
|
-
configPath?: string;
|
|
8
|
-
id: string;
|
|
9
|
-
mode: "external" | "managed";
|
|
10
|
-
name: string;
|
|
11
|
-
networkId: string;
|
|
12
|
-
port?: number;
|
|
13
|
-
rooms: Array<{
|
|
14
|
-
id: string;
|
|
15
|
-
members: string[];
|
|
16
|
-
name?: string;
|
|
17
|
-
visibility?: "public" | "private";
|
|
18
|
-
write_policy?: "members" | "operators" | "registered_agents";
|
|
19
|
-
}>;
|
|
20
|
-
server: TeamNetworkServer;
|
|
21
|
-
secretPatches: MoltnetSecretPatch[];
|
|
22
|
-
teamSource: string;
|
|
23
|
-
}
|
|
24
|
-
export interface MoltnetNodePlan {
|
|
25
|
-
configPath: string;
|
|
26
|
-
networkId: string;
|
|
27
|
-
}
|
|
28
|
-
export interface MoltnetPersistentMount {
|
|
29
|
-
id: string;
|
|
30
|
-
mountPath: string;
|
|
31
|
-
reason: string;
|
|
32
|
-
volumeName: string;
|
|
33
|
-
}
|
|
34
|
-
export interface MoltnetArtifacts {
|
|
35
|
-
files: EmittedFile[];
|
|
36
|
-
nodePlans: MoltnetNodePlan[];
|
|
37
|
-
persistentMounts: MoltnetPersistentMount[];
|
|
38
|
-
ports: number[];
|
|
39
|
-
publishedPorts: number[];
|
|
40
|
-
serverPlans: MoltnetServerPlan[];
|
|
41
|
-
}
|
|
3
|
+
export type { MoltnetArtifacts, MoltnetNodePlan, MoltnetPersistentMount, MoltnetServerPlan } from "./moltnetArtifactTypes.js";
|
|
42
4
|
export declare const generateMoltnetArtifacts: (plan: CompilePlan) => Promise<MoltnetArtifacts | null>;
|