spawnfile 0.1.13 → 0.1.17
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 +61 -121
- 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/importers.d.ts +10 -0
- package/dist/auth/importers.js +29 -4
- package/dist/auth/index.d.ts +9 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/paths.d.ts +12 -1
- package/dist/auth/paths.js +21 -0
- package/dist/auth/profileStore.js +9 -9
- package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
- package/dist/auth/targetSecretSourceAuthor.js +52 -0
- package/dist/auth/targetSecretSourceFsIdentity.d.ts +40 -0
- package/dist/auth/targetSecretSourceFsIdentity.js +42 -0
- package/dist/auth/targetSecretSourceFsPublish.d.ts +17 -0
- package/dist/auth/targetSecretSourceFsPublish.js +51 -0
- package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +17 -0
- package/dist/auth/targetSecretSourceFsPublishImmutable.js +468 -0
- package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
- package/dist/auth/targetSecretSourceFsRead.js +189 -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/auth/trainingAuth.d.ts +21 -0
- package/dist/auth/trainingAuth.js +86 -0
- package/dist/auth/types.d.ts +1 -1
- 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 +230 -0
- package/dist/cli/canaryCutoverCommand.d.ts +2 -0
- package/dist/cli/canaryCutoverCommand.js +30 -0
- package/dist/cli/capabilitiesCommand.d.ts +3 -0
- package/dist/cli/capabilitiesCommand.js +12 -0
- package/dist/cli/capabilitiesReceipt.d.ts +56 -0
- package/dist/cli/capabilitiesReceipt.js +56 -0
- package/dist/cli/compileBuildCommands.d.ts +3 -0
- package/dist/cli/compileBuildCommands.js +48 -0
- package/dist/cli/composedLifecycleContractSet.d.ts +21 -0
- package/dist/cli/composedLifecycleContractSet.js +204 -0
- package/dist/cli/containerBundleCommand.d.ts +6 -0
- package/dist/cli/containerBundleCommand.js +116 -0
- package/dist/cli/devCommands.js +2 -0
- package/dist/cli/downCommand.d.ts +25 -0
- package/dist/cli/downCommand.js +145 -0
- package/dist/cli/evidenceExportHelperCommand.d.ts +13 -0
- package/dist/cli/evidenceExportHelperCommand.js +51 -0
- package/dist/cli/index.js +15 -3
- package/dist/cli/lifecycleCommands.d.ts +1 -1
- package/dist/cli/lifecycleCommands.js +11 -181
- package/dist/cli/lifecycleMachine.d.ts +25 -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/paideiaDelegation.d.ts +17 -0
- package/dist/cli/paideiaDelegation.js +210 -0
- package/dist/cli/paideiaSupervisor.d.ts +17 -0
- package/dist/cli/paideiaSupervisor.js +48 -0
- package/dist/cli/productStateCloneCommand.d.ts +2 -0
- package/dist/cli/productStateCloneCommand.js +34 -0
- package/dist/cli/runCli.d.ts +19 -2
- package/dist/cli/runCli.js +58 -74
- 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 +30 -0
- package/dist/cli/targetCommands.js +227 -0
- package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
- package/dist/cli/targetComposedPreparationCommand.js +39 -0
- package/dist/cli/targetConfigPreparedPlan.d.ts +3 -0
- package/dist/cli/targetConfigPreparedPlan.js +74 -0
- package/dist/cli/targetConfigResolver.d.ts +3 -0
- package/dist/cli/targetConfigResolver.js +111 -0
- package/dist/cli/targetConfigResolverCommand.d.ts +6 -0
- package/dist/cli/targetConfigResolverCommand.js +43 -0
- package/dist/cli/targetConfigResolverContracts.d.ts +56 -0
- package/dist/cli/targetConfigResolverContracts.js +30 -0
- package/dist/cli/targetConfigResolverDocker.d.ts +4 -0
- package/dist/cli/targetConfigResolverDocker.js +47 -0
- package/dist/cli/targetConfigResolverValidation.d.ts +10 -0
- package/dist/cli/targetConfigResolverValidation.js +94 -0
- package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
- package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
- package/dist/cli/targetDefaultAuthorities.d.ts +55 -0
- package/dist/cli/targetDefaultAuthorities.js +213 -0
- package/dist/cli/targetDefaultConfig.d.ts +75 -0
- package/dist/cli/targetDefaultConfig.js +334 -0
- package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
- package/dist/cli/targetDefaultConfigStdin.js +221 -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 +268 -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/targetProductionCommands.d.ts +5 -0
- package/dist/cli/targetProductionCommands.js +45 -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/targetWorldReadinessCommand.d.ts +10 -0
- package/dist/cli/targetWorldReadinessCommand.js +43 -0
- package/dist/cli/trainCommand.d.ts +3 -0
- package/dist/cli/trainCommand.js +61 -0
- package/dist/cli/upCommand.d.ts +3 -0
- package/dist/cli/upCommand.js +162 -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 +197 -0
- package/dist/cli/usageCommand.d.ts +40 -0
- package/dist/cli/usageCommand.js +284 -0
- package/dist/cli/usageCommandLive.d.ts +84 -0
- package/dist/cli/usageCommandLive.js +95 -0
- package/dist/cli/usageDeploymentSource.d.ts +9 -0
- package/dist/cli/usageDeploymentSource.js +22 -0
- package/dist/cli/workspaceResourceMigrationCommand.d.ts +8 -0
- package/dist/cli/workspaceResourceMigrationCommand.js +36 -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 +2 -1
- package/dist/compiler/buildCompilePlanTeams.js +9 -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 +5 -0
- package/dist/compiler/compileProject.d.ts +15 -0
- package/dist/compiler/compileProject.js +31 -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/compileProjectSupport.js +9 -0
- package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
- package/dist/compiler/containerArtifactSummaries.js +138 -0
- package/dist/compiler/containerArtifacts.d.ts +12 -0
- package/dist/compiler/containerArtifacts.js +180 -127
- package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
- package/dist/compiler/containerArtifactsPlans.js +54 -124
- package/dist/compiler/containerArtifactsRender.d.ts +5 -2
- package/dist/compiler/containerArtifactsRender.js +106 -70
- package/dist/compiler/containerArtifactsTypes.d.ts +20 -0
- package/dist/compiler/containerBackedMountRender.d.ts +56 -0
- package/dist/compiler/containerBackedMountRender.js +101 -0
- package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
- package/dist/compiler/containerConfigEnvRender.js +54 -0
- package/dist/compiler/containerDaimonBrokerRender.d.ts +112 -0
- package/dist/compiler/containerDaimonBrokerRender.js +191 -0
- package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +38 -0
- package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +108 -0
- package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +172 -0
- package/dist/compiler/containerDaimonGrokWorkerRender.js +268 -0
- package/dist/compiler/containerDaimonOwnershipGuardRender.d.ts +12 -0
- package/dist/compiler/containerDaimonOwnershipGuardRender.js +191 -0
- package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +24 -0
- package/dist/compiler/containerDaimonUidEntrypointRender.js +297 -0
- package/dist/compiler/containerEntrypointRender.d.ts +8 -0
- package/dist/compiler/containerEntrypointRender.js +82 -72
- 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/containerPersistentMounts.d.ts +30 -0
- package/dist/compiler/containerPersistentMounts.js +66 -0
- package/dist/compiler/containerReadinessPaths.d.ts +1 -0
- package/dist/compiler/containerReadinessPaths.js +1 -0
- package/dist/compiler/containerRuntimeLinkMaterializer.d.ts +2 -0
- package/dist/compiler/containerRuntimeLinkMaterializer.js +12 -0
- package/dist/compiler/containerRuntimeReadinessRender.d.ts +7 -0
- package/dist/compiler/containerRuntimeReadinessRender.js +40 -0
- package/dist/compiler/containerStateOwnershipRender.d.ts +4 -0
- package/dist/compiler/containerStateOwnershipRender.js +75 -0
- package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
- package/dist/compiler/containerTargetPlanResolution.js +97 -0
- package/dist/compiler/containerTargetResources.d.ts +22 -1
- package/dist/compiler/containerTargetResources.js +94 -2
- package/dist/compiler/containerVolumeBootstrap.d.ts +3 -0
- package/dist/compiler/containerVolumeBootstrap.js +3 -0
- package/dist/compiler/containerWorkspaceResourceRender.js +49 -1
- package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
- package/dist/compiler/daimonTelemetryArtifacts.js +56 -0
- package/dist/compiler/deploymentLineage.d.ts +40 -0
- package/dist/compiler/deploymentLineage.js +50 -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 +7 -0
- package/dist/compiler/index.js +7 -0
- package/dist/compiler/initProject.d.ts +2 -0
- package/dist/compiler/initProject.js +39 -1
- package/dist/compiler/localMoltnetAuthority.d.ts +64 -0
- package/dist/compiler/localMoltnetAuthority.js +177 -0
- package/dist/compiler/memoryArtifacts.d.ts +26 -0
- package/dist/compiler/memoryArtifacts.js +210 -0
- package/dist/compiler/memoryResolution.d.ts +4 -0
- package/dist/compiler/memoryResolution.js +147 -0
- package/dist/compiler/modelEnv.d.ts +7 -0
- package/dist/compiler/modelEnv.js +13 -1
- package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
- package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
- package/dist/compiler/moltnetArtifactPaths.d.ts +31 -0
- package/dist/compiler/moltnetArtifactPaths.js +51 -0
- package/dist/compiler/moltnetArtifactTypes.d.ts +56 -0
- package/dist/compiler/moltnetArtifactTypes.js +1 -0
- package/dist/compiler/moltnetArtifacts.d.ts +3 -41
- package/dist/compiler/moltnetArtifacts.js +87 -101
- package/dist/compiler/moltnetBinaries.d.ts +33 -4
- package/dist/compiler/moltnetBinaries.js +173 -26
- package/dist/compiler/moltnetClientConfig.js +7 -2
- package/dist/compiler/moltnetConfigLowering.d.ts +18 -1
- package/dist/compiler/moltnetConfigLowering.js +92 -6
- 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 +40 -0
- package/dist/compiler/moltnetReleaseAuthority.js +102 -0
- package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
- package/dist/compiler/moltnetReleaseDownload.js +85 -0
- package/dist/compiler/moltnetRepresentativeResolution.d.ts +2 -1
- package/dist/compiler/moltnetRepresentativeResolution.js +17 -3
- package/dist/compiler/moltnetResolution.js +67 -21
- package/dist/compiler/moltnetRoomMemberships.js +52 -9
- package/dist/compiler/moltnetRoomPolicyCompatibility.d.ts +1 -1
- package/dist/compiler/moltnetRoomPolicyCompatibility.js +3 -1
- package/dist/compiler/moltnetRuntimeConfig.d.ts +1 -1
- package/dist/compiler/moltnetRuntimeConfig.js +22 -2
- package/dist/compiler/moltnetServerPlans.d.ts +9 -0
- package/dist/compiler/moltnetServerPlans.js +151 -0
- package/dist/compiler/organizationExternalParticipants.d.ts +3 -0
- package/dist/compiler/organizationExternalParticipants.js +176 -0
- package/dist/compiler/organizationIdentity.d.ts +21 -0
- package/dist/compiler/organizationIdentity.js +64 -0
- package/dist/compiler/organizationIdentityGraph.d.ts +15 -0
- package/dist/compiler/organizationIdentityGraph.js +115 -0
- package/dist/compiler/organizationReadyEvidence.d.ts +57 -0
- package/dist/compiler/organizationReadyEvidence.js +281 -0
- package/dist/compiler/projectManifestGraph.d.ts +4 -0
- package/dist/compiler/projectManifestGraph.js +24 -0
- package/dist/compiler/runProject.d.ts +8 -2
- package/dist/compiler/runProject.js +62 -27
- package/dist/compiler/runProjectAuth.d.ts +10 -2
- package/dist/compiler/runProjectAuth.js +105 -11
- package/dist/compiler/runProjectDaimonCodexDocker.d.ts +3 -0
- package/dist/compiler/runProjectDaimonCodexDocker.js +36 -0
- package/dist/compiler/runProjectDocker.d.ts +11 -0
- package/dist/compiler/runProjectDocker.js +64 -16
- package/dist/compiler/runProjectDockerDaimonGuards.d.ts +15 -0
- package/dist/compiler/runProjectDockerDaimonGuards.js +122 -0
- package/dist/compiler/runProjectDockerReservation.d.ts +3 -0
- package/dist/compiler/runProjectDockerReservation.js +118 -0
- 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/training/broker/declaration.d.ts +45 -0
- package/dist/compiler/training/broker/declaration.js +55 -0
- package/dist/compiler/training/broker/entrypoint.d.ts +39 -0
- package/dist/compiler/training/broker/entrypoint.js +111 -0
- package/dist/compiler/training/broker/index.d.ts +10 -0
- package/dist/compiler/training/broker/index.js +10 -0
- package/dist/compiler/training/broker/main.d.ts +2 -0
- package/dist/compiler/training/broker/main.js +14 -0
- package/dist/compiler/training/broker/paths.d.ts +196 -0
- package/dist/compiler/training/broker/paths.js +241 -0
- package/dist/compiler/training/broker/processes.d.ts +42 -0
- package/dist/compiler/training/broker/processes.js +99 -0
- package/dist/compiler/training/broker/projection.d.ts +51 -0
- package/dist/compiler/training/broker/projection.js +76 -0
- package/dist/compiler/training/broker/provisioning.d.ts +87 -0
- package/dist/compiler/training/broker/provisioning.js +213 -0
- package/dist/compiler/training/broker/receipt.d.ts +77 -0
- package/dist/compiler/training/broker/receipt.js +110 -0
- package/dist/compiler/training/broker/registration.d.ts +41 -0
- package/dist/compiler/training/broker/registration.js +102 -0
- package/dist/compiler/training/broker/runtime.d.ts +25 -0
- package/dist/compiler/training/broker/runtime.js +173 -0
- package/dist/compiler/training/broker/seccompRoutes.d.ts +31 -0
- package/dist/compiler/training/broker/seccompRoutes.js +36 -0
- package/dist/compiler/training/broker/supervisor.d.ts +109 -0
- package/dist/compiler/training/broker/supervisor.js +173 -0
- package/dist/compiler/training/container/contract.d.ts +31 -0
- package/dist/compiler/training/container/contract.js +33 -0
- package/dist/compiler/training/container/index.d.ts +4 -0
- package/dist/compiler/training/container/index.js +2 -0
- package/dist/compiler/training/container/launch.d.ts +18 -0
- package/dist/compiler/training/container/launch.js +173 -0
- package/dist/compiler/training/container/prepare.d.ts +8 -0
- package/dist/compiler/training/container/prepare.js +80 -0
- package/dist/compiler/training/container/process.d.ts +14 -0
- package/dist/compiler/training/container/process.js +70 -0
- package/dist/compiler/training/container/security.d.ts +36 -0
- package/dist/compiler/training/container/security.js +58 -0
- package/dist/compiler/training/context.d.ts +7 -0
- package/dist/compiler/training/context.js +93 -0
- package/dist/compiler/training/contract.d.ts +142 -0
- package/dist/compiler/training/contract.js +34 -0
- package/dist/compiler/training/index.d.ts +4 -0
- package/dist/compiler/training/index.js +3 -0
- package/dist/compiler/training/preparation/assets/Dockerfile +98 -0
- package/dist/compiler/training/preparation/assets/package-lock.json +3787 -0
- package/dist/compiler/training/preparation/broker.d.ts +21 -0
- package/dist/compiler/training/preparation/broker.js +43 -0
- package/dist/compiler/training/preparation/contextModes.d.ts +12 -0
- package/dist/compiler/training/preparation/contextModes.js +38 -0
- package/dist/compiler/training/preparation/contract.d.ts +182 -0
- package/dist/compiler/training/preparation/contract.js +94 -0
- package/dist/compiler/training/preparation/copyAssets.d.ts +1 -0
- package/dist/compiler/training/preparation/copyAssets.js +8 -0
- package/dist/compiler/training/preparation/daimonParent.d.ts +42 -0
- package/dist/compiler/training/preparation/daimonParent.js +114 -0
- package/dist/compiler/training/preparation/files.d.ts +25 -0
- package/dist/compiler/training/preparation/files.js +85 -0
- package/dist/compiler/training/preparation/image.d.ts +28 -0
- package/dist/compiler/training/preparation/image.js +102 -0
- package/dist/compiler/training/preparation/index.d.ts +3 -0
- package/dist/compiler/training/preparation/index.js +2 -0
- package/dist/compiler/training/preparation/inputs.d.ts +23 -0
- package/dist/compiler/training/preparation/inputs.js +93 -0
- package/dist/compiler/training/preparation/prepare.d.ts +33 -0
- package/dist/compiler/training/preparation/prepare.js +186 -0
- package/dist/compiler/training/preparation/scratch.d.ts +19 -0
- package/dist/compiler/training/preparation/scratch.js +48 -0
- package/dist/compiler/training/repair/compatibility.d.ts +11 -0
- package/dist/compiler/training/repair/compatibility.js +34 -0
- package/dist/compiler/training/repair/contract.d.ts +506 -0
- package/dist/compiler/training/repair/contract.js +31 -0
- package/dist/compiler/training/repair/index.d.ts +3 -0
- package/dist/compiler/training/repair/index.js +3 -0
- package/dist/compiler/training/repair/prepare.d.ts +230 -0
- package/dist/compiler/training/repair/prepare.js +74 -0
- package/dist/compiler/training/repair/witness.d.ts +203 -0
- package/dist/compiler/training/repair/witness.js +42 -0
- package/dist/compiler/types.d.ts +84 -1
- package/dist/compiler/upProject.d.ts +31 -1
- package/dist/compiler/upProject.js +197 -22
- package/dist/compiler/upProjectHandoff.d.ts +62 -0
- package/dist/compiler/upProjectHandoff.js +204 -0
- package/dist/compiler/upReceipt.d.ts +36 -0
- package/dist/compiler/upReceipt.js +127 -0
- package/dist/compiler/updateProjectModels.js +43 -60
- package/dist/compiler/updateProjectRuntime.js +22 -35
- package/dist/compiler/updateProjectSurfaces.js +53 -47
- package/dist/compiler/view/types.d.ts +1 -1
- package/dist/compiler/workspaceBundleArtifacts.d.ts +3 -0
- package/dist/compiler/workspaceBundleArtifacts.js +106 -0
- package/dist/compiler/workspaceResources.d.ts +4 -1
- package/dist/compiler/workspaceResources.js +12 -7
- 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 +185 -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/canaryCutover.d.ts +42 -0
- package/dist/deployment/canaryCutover.js +140 -0
- package/dist/deployment/candidateDiagnostics.d.ts +15 -0
- package/dist/deployment/candidateDiagnostics.js +90 -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 +5 -10
- package/dist/deployment/dockerManager.d.ts +51 -0
- package/dist/deployment/dockerManager.js +124 -1
- package/dist/deployment/dockerProbeGateway.d.ts +17 -0
- package/dist/deployment/dockerProbeGateway.js +80 -6
- 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 +39 -0
- package/dist/deployment/downDeployment.js +248 -0
- package/dist/deployment/downReceiptTypes.d.ts +36 -0
- package/dist/deployment/downReceiptTypes.js +45 -0
- package/dist/deployment/index.d.ts +20 -0
- package/dist/deployment/index.js +21 -0
- package/dist/deployment/lifecycleCompletion.d.ts +37 -0
- package/dist/deployment/lifecycleCompletion.js +236 -0
- package/dist/deployment/lifecycleCompletionContracts.d.ts +224 -0
- package/dist/deployment/lifecycleCompletionContracts.js +140 -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 +12 -0
- package/dist/deployment/lifecycleCompletionPaths.js +19 -0
- package/dist/deployment/lifecycleCompletionPublication.d.ts +7 -0
- package/dist/deployment/lifecycleCompletionPublication.js +49 -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/lifecycleUpRecords.d.ts +11 -0
- package/dist/deployment/lifecycleUpRecords.js +127 -0
- package/dist/deployment/native/AGENTS.md +11 -0
- package/dist/deployment/native/rename-noreplace-arm64 +0 -0
- package/dist/deployment/native/rename-noreplace-arm64.provenance.json +1 -0
- package/dist/deployment/native/rename-noreplace-x64 +0 -0
- package/dist/deployment/native/rename-noreplace-x64.provenance.json +1 -0
- package/dist/deployment/noReplaceActivation.d.ts +17 -0
- package/dist/deployment/noReplaceActivation.js +50 -0
- package/dist/deployment/organizationHandoffAuthorityFsBudget.d.ts +110 -0
- package/dist/deployment/organizationHandoffAuthorityFsBudget.js +156 -0
- package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
- package/dist/deployment/organizationHandoffAuthorityFsClient.js +187 -0
- package/dist/deployment/organizationHandoffAuthorityFsElection.d.ts +21 -0
- package/dist/deployment/organizationHandoffAuthorityFsElection.js +57 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorker.js +431 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.js +16 -0
- package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
- package/dist/deployment/organizationHandoffAuthorityStore.js +355 -0
- package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
- package/dist/deployment/organizationHandoffAuthorityTypes.js +149 -0
- package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
- package/dist/deployment/organizationHandoffTypes.js +80 -0
- package/dist/deployment/organizationReady.d.ts +54 -0
- package/dist/deployment/organizationReady.js +232 -0
- package/dist/deployment/privateArtifactsExport.d.ts +18 -0
- package/dist/deployment/privateArtifactsExport.js +80 -0
- package/dist/deployment/productStateClone.d.ts +43 -0
- package/dist/deployment/productStateClone.js +319 -0
- package/dist/deployment/record.d.ts +26 -1
- package/dist/deployment/record.js +49 -4
- package/dist/deployment/target.d.ts +1 -35
- package/dist/deployment/target.js +1 -96
- package/dist/deployment/upLifecycleRecoveryState.d.ts +23 -0
- package/dist/deployment/upLifecycleRecoveryState.js +12 -0
- package/dist/deployment/upReceiptTypes.d.ts +137 -0
- package/dist/deployment/upReceiptTypes.js +191 -0
- package/dist/deployment/workspaceResourceMigration.d.ts +55 -0
- package/dist/deployment/workspaceResourceMigration.js +315 -0
- package/dist/dev/project.d.ts +7 -0
- package/dist/dev/project.js +24 -9
- package/dist/distribution/buildDistributionReport.d.ts +2 -1
- package/dist/distribution/buildDistributionReport.js +2 -1
- package/dist/distribution/consumeImage.d.ts +2 -0
- package/dist/distribution/consumeImage.js +98 -73
- package/dist/distribution/consumeImageDaimonDocker.d.ts +3 -0
- package/dist/distribution/consumeImageDaimonDocker.js +45 -0
- package/dist/distribution/consumeImageLifecycle.d.ts +17 -0
- package/dist/distribution/consumeImageLifecycle.js +231 -0
- package/dist/distribution/consumeImageSupport.d.ts +12 -0
- package/dist/distribution/consumeImageSupport.js +15 -0
- package/dist/distribution/distributionReportSchema.d.ts +16 -1
- package/dist/distribution/distributionReportSchema.js +21 -3
- package/dist/distribution/dockerRunner.d.ts +6 -1
- package/dist/distribution/dockerRunner.js +31 -4
- package/dist/distribution/imageRuntimeAuth.d.ts +9 -1
- package/dist/distribution/imageRuntimeAuth.js +70 -1
- package/dist/distribution/index.d.ts +3 -3
- package/dist/distribution/index.js +2 -2
- package/dist/distribution/preflight.js +5 -1
- package/dist/distribution/types.d.ts +21 -1
- package/dist/distribution/types.js +4 -0
- package/dist/evidenceExportHelper/boundedExecutor.d.ts +3 -0
- package/dist/evidenceExportHelper/boundedExecutor.js +33 -0
- package/dist/evidenceExportHelper/helperProgram.mjs +156 -0
- package/dist/evidenceExportHelper/index.d.ts +4 -0
- package/dist/evidenceExportHelper/index.js +4 -0
- package/dist/evidenceExportHelper/preparedAuthority.d.ts +64 -0
- package/dist/evidenceExportHelper/preparedAuthority.js +228 -0
- package/dist/evidenceExportHelper/preparedBuilder.d.ts +10 -0
- package/dist/evidenceExportHelper/preparedBuilder.js +183 -0
- package/dist/evidenceExportHelper/preparedBuilderTypes.d.ts +19 -0
- package/dist/evidenceExportHelper/preparedBuilderTypes.js +1 -0
- package/dist/evidenceExportHelper/recipe.d.ts +7 -0
- package/dist/evidenceExportHelper/recipe.js +83 -0
- package/dist/filesystem/io.d.ts +2 -0
- package/dist/filesystem/io.js +16 -1
- 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/executionSchemas.d.ts +27 -0
- package/dist/manifest/executionSchemas.js +21 -2
- 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 +18 -0
- package/dist/manifest/mcpSchemas.js +44 -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 +20 -2
- package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
- package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
- package/dist/manifest/renderSpawnfileWorkspace.js +5 -0
- package/dist/manifest/scheduleSchemas.d.ts +3 -1
- package/dist/manifest/scheduleSchemas.js +91 -5
- package/dist/manifest/schemas.d.ts +2034 -40
- package/dist/manifest/schemas.js +82 -33
- package/dist/manifest/surfaceSchemas.d.ts +17 -0
- package/dist/manifest/surfaceSchemas.js +24 -1
- package/dist/manifest/teamNetworkAccessSchemas.d.ts +6 -2
- package/dist/manifest/teamNetworkAccessSchemas.js +11 -0
- package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
- package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
- package/dist/manifest/teamNetworkSchemas.d.ts +25 -190
- package/dist/manifest/teamNetworkSchemas.js +21 -317
- package/dist/manifest/teamNetworkServerSchemas.d.ts +155 -0
- package/dist/manifest/teamNetworkServerSchemas.js +215 -0
- package/dist/manifest/workspaceSchemas.d.ts +16 -0
- package/dist/manifest/workspaceSchemas.js +11 -0
- package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
- package/dist/ownership/siblingBuildFreshness.js +20 -0
- package/dist/report/types.d.ts +173 -1
- package/dist/runtime/common.d.ts +63 -1
- package/dist/runtime/common.js +88 -3
- package/dist/runtime/container.d.ts +28 -1
- package/dist/runtime/container.js +78 -29
- package/dist/runtime/containerPackageOverrides.d.ts +37 -0
- package/dist/runtime/containerPackageOverrides.js +33 -0
- package/dist/runtime/daimon/adapter.d.ts +14 -0
- package/dist/runtime/daimon/adapter.js +243 -0
- package/dist/runtime/daimon/attention.d.ts +8 -0
- package/dist/runtime/daimon/attention.js +32 -0
- package/dist/runtime/daimon/config.d.ts +25 -0
- package/dist/runtime/daimon/config.js +272 -0
- package/dist/runtime/daimon/contractManifest.d.ts +295 -0
- package/dist/runtime/daimon/contractManifest.js +319 -0
- package/dist/runtime/daimon/grokModel.d.ts +19 -0
- package/dist/runtime/daimon/grokModel.js +33 -0
- package/dist/runtime/daimon/grokWorkerConfigBytes.d.ts +26 -0
- package/dist/runtime/daimon/grokWorkerConfigBytes.js +36 -0
- package/dist/runtime/daimon/grokWorkerContract.d.ts +22 -0
- package/dist/runtime/daimon/grokWorkerContract.js +48 -0
- package/dist/runtime/daimon/memory.d.ts +57 -0
- package/dist/runtime/daimon/memory.js +125 -0
- package/dist/runtime/daimon/runAuth.d.ts +51 -0
- package/dist/runtime/daimon/runAuth.js +279 -0
- package/dist/runtime/daimon/runtimeIdentity.d.ts +22 -0
- package/dist/runtime/daimon/runtimeIdentity.js +22 -0
- package/dist/runtime/daimon/scheduleAuthority.d.ts +3 -0
- package/dist/runtime/daimon/scheduleAuthority.js +17 -0
- package/dist/runtime/index.d.ts +6 -0
- package/dist/runtime/index.js +6 -0
- package/dist/runtime/install.d.ts +3 -0
- package/dist/runtime/install.js +3 -0
- package/dist/runtime/localDaimonAuthority.d.ts +11 -0
- package/dist/runtime/localDaimonAuthority.js +77 -0
- package/dist/runtime/mnemeMcp.d.ts +28 -0
- package/dist/runtime/mnemeMcp.js +135 -0
- package/dist/runtime/openclaw/adapter.js +17 -6
- 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 -2
- package/dist/runtime/pi/adapter.js +87 -58
- 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 +84 -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 +25 -29
- 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.d.ts +3 -0
- package/dist/runtime/registry.js +19 -2
- package/dist/runtime/scheduleUtils.d.ts +3 -0
- package/dist/runtime/scheduleUtils.js +19 -0
- package/dist/runtime/types.d.ts +50 -2
- package/dist/runtime/usageLedger.d.ts +158 -0
- package/dist/runtime/usageLedger.js +269 -0
- package/dist/runtime/usageLedgerRead.d.ts +48 -0
- package/dist/runtime/usageLedgerRead.js +102 -0
- package/dist/runtime/usageRequestLedger.d.ts +42 -0
- package/dist/runtime/usageRequestLedger.js +72 -0
- package/dist/shared/daimonCodexDocker.d.ts +32 -0
- package/dist/shared/daimonCodexDocker.js +120 -0
- package/dist/shared/daimonGrokSeccompProfile.d.ts +10 -0
- package/dist/shared/daimonGrokSeccompProfile.js +11 -0
- package/dist/shared/errors.d.ts +1 -1
- package/dist/shared/errors.js +2 -2
- package/dist/shared/index.d.ts +3 -0
- package/dist/shared/index.js +3 -0
- package/dist/shared/redaction.d.ts +2 -0
- package/dist/shared/redaction.js +10 -0
- package/dist/shared/types.d.ts +1 -1
- package/dist/shared/volumeNames.d.ts +6 -0
- package/dist/shared/volumeNames.js +14 -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/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 +476 -0
- package/dist/target/dockerBaseImage.d.ts +2 -0
- package/dist/target/dockerBaseImage.js +11 -0
- package/dist/target/dockerCommandExecutor.d.ts +38 -0
- package/dist/target/dockerCommandExecutor.js +251 -0
- package/dist/target/dockerCommandExecutorCore.d.ts +35 -0
- package/dist/target/dockerCommandExecutorCore.js +275 -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 +83 -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 +53 -0
- package/dist/target/dockerTarget.js +48 -0
- package/dist/target/dockerTargetBinding.d.ts +13 -0
- package/dist/target/dockerTargetBinding.js +95 -0
- package/dist/target/dockerTargetExecFile.d.ts +19 -0
- package/dist/target/dockerTargetExecFile.js +194 -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 +64 -0
- package/dist/target/dockerWorldServiceProvider.js +330 -0
- package/dist/target/dockerWorldServiceStore.d.ts +73 -0
- package/dist/target/dockerWorldServiceStore.js +367 -0
- package/dist/target/evidenceExport.d.ts +57 -0
- package/dist/target/evidenceExport.js +527 -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 +87 -0
- package/dist/target/evidenceExportProvider.js +197 -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 +72 -0
- package/dist/target/publicArtifactSnapshot.js +184 -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/examples/README.md +45 -0
- package/examples/agent-with-subagents/AGENTS.md +3 -0
- package/examples/agent-with-subagents/Spawnfile +30 -0
- package/examples/agent-with-subagents/subagents/critic/AGENTS.md +3 -0
- package/examples/agent-with-subagents/subagents/critic/Spawnfile +15 -0
- package/examples/agent-with-subagents/subagents/researcher/AGENTS.md +3 -0
- package/examples/agent-with-subagents/subagents/researcher/Spawnfile +17 -0
- package/examples/daimon-org/Spawnfile +68 -0
- package/examples/daimon-org/TEAM.md +4 -0
- package/examples/daimon-org/agents/mapper/AGENTS.md +4 -0
- package/examples/daimon-org/agents/mapper/Spawnfile +37 -0
- package/examples/daimon-org/shared/skills/file-note/SKILL.md +9 -0
- package/examples/daimon-org/teams/review/Spawnfile +53 -0
- package/examples/daimon-org/teams/review/agents/reviewer/AGENTS.md +4 -0
- package/examples/daimon-org/teams/review/agents/reviewer/Spawnfile +37 -0
- package/examples/daimon-public-host/AGENTS.md +3 -0
- package/examples/daimon-public-host/Spawnfile +21 -0
- package/examples/distribution-org/Spawnfile +43 -0
- package/examples/distribution-org/TEAM.md +4 -0
- package/examples/distribution-org/agents/coordinator/AGENTS.md +1 -0
- package/examples/distribution-org/agents/coordinator/Spawnfile +20 -0
- package/examples/distribution-org/agents/researcher/AGENTS.md +1 -0
- package/examples/distribution-org/agents/researcher/Spawnfile +20 -0
- package/examples/jungian-daimon-org/Spawnfile +41 -0
- package/examples/jungian-daimon-org/TEAM.md +21 -0
- package/examples/jungian-daimon-org/teams/luna/Spawnfile +47 -0
- package/examples/jungian-daimon-org/teams/luna/TEAM.md +4 -0
- package/examples/jungian-daimon-org/teams/luna/agents/animus/AGENTS.md +10 -0
- package/examples/jungian-daimon-org/teams/luna/agents/animus/Spawnfile +33 -0
- package/examples/jungian-daimon-org/teams/luna/agents/representative/AGENTS.md +21 -0
- package/examples/jungian-daimon-org/teams/luna/agents/representative/Spawnfile +30 -0
- package/examples/jungian-daimon-org/teams/luna/agents/shadow/AGENTS.md +10 -0
- package/examples/jungian-daimon-org/teams/luna/agents/shadow/Spawnfile +33 -0
- package/examples/jungian-daimon-org/teams/selene/Spawnfile +47 -0
- package/examples/jungian-daimon-org/teams/selene/TEAM.md +4 -0
- package/examples/jungian-daimon-org/teams/selene/agents/animus/AGENTS.md +10 -0
- package/examples/jungian-daimon-org/teams/selene/agents/animus/Spawnfile +33 -0
- package/examples/jungian-daimon-org/teams/selene/agents/representative/AGENTS.md +19 -0
- package/examples/jungian-daimon-org/teams/selene/agents/representative/Spawnfile +33 -0
- package/examples/jungian-daimon-org/teams/selene/agents/shadow/AGENTS.md +10 -0
- package/examples/jungian-daimon-org/teams/selene/agents/shadow/Spawnfile +30 -0
- package/examples/mixed-runtime-org/Spawnfile +71 -0
- package/examples/mixed-runtime-org/TEAM.md +8 -0
- package/examples/mixed-runtime-org/agents/analyst/AGENTS.md +8 -0
- package/examples/mixed-runtime-org/agents/analyst/Spawnfile +27 -0
- package/examples/mixed-runtime-org/agents/conductor/AGENTS.md +8 -0
- package/examples/mixed-runtime-org/agents/conductor/Spawnfile +27 -0
- package/examples/mixed-runtime-org/agents/localist/AGENTS.md +7 -0
- package/examples/mixed-runtime-org/agents/localist/Spawnfile +50 -0
- package/examples/moltnet-team-chat/Spawnfile +43 -0
- package/examples/moltnet-team-chat/TEAM.md +5 -0
- package/examples/moltnet-team-chat/agents/coordinator/AGENTS.md +9 -0
- package/examples/moltnet-team-chat/agents/coordinator/Spawnfile +26 -0
- package/examples/moltnet-team-chat/teams/analysis/Spawnfile +23 -0
- package/examples/moltnet-team-chat/teams/analysis/TEAM.md +3 -0
- package/examples/moltnet-team-chat/teams/analysis/agents/observer/AGENTS.md +5 -0
- package/examples/moltnet-team-chat/teams/analysis/agents/observer/Spawnfile +19 -0
- package/examples/moltnet-team-chat/teams/analysis/agents/representative/AGENTS.md +5 -0
- package/examples/moltnet-team-chat/teams/analysis/agents/representative/Spawnfile +19 -0
- package/examples/moltnet-team-chat/teams/field/Spawnfile +41 -0
- package/examples/moltnet-team-chat/teams/field/TEAM.md +3 -0
- package/examples/moltnet-team-chat/teams/field/agents/observer/AGENTS.md +5 -0
- package/examples/moltnet-team-chat/teams/field/agents/observer/Spawnfile +26 -0
- package/examples/moltnet-team-chat/teams/field/agents/representative/AGENTS.md +11 -0
- package/examples/moltnet-team-chat/teams/field/agents/representative/Spawnfile +26 -0
- package/examples/single-agent/AGENTS.md +3 -0
- package/examples/single-agent/HEARTBEAT.md +3 -0
- package/examples/single-agent/IDENTITY.md +3 -0
- package/examples/single-agent/MEMORY.md +3 -0
- package/examples/single-agent/SOUL.md +3 -0
- package/examples/single-agent/Spawnfile +41 -0
- package/examples/single-agent/skills/web_search/SKILL.md +6 -0
- package/moltnet-releases.json +21 -0
- package/package.json +57 -14
- package/runtimes.yaml +11 -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,210 @@
|
|
|
1
|
+
import { resolveMnemeDurableMemoryMountPath } from "../runtime/mnemeMcp.js";
|
|
2
|
+
import { createExclusiveReattachVolumeName, SpawnfileError } from "../shared/index.js";
|
|
3
|
+
import { slugify } from "./helpers.js";
|
|
4
|
+
const safeSlug = (value) => slugify(value).trim() || "memory";
|
|
5
|
+
const createMountId = (mountPath) => `memory-${safeSlug(mountPath)}`;
|
|
6
|
+
const isFileBackedMemoryStore = (bank) => bank.store.kind === "sqlite" || bank.store.kind === "json";
|
|
7
|
+
const transportFromRuntime = (runtimeName, bank) => {
|
|
8
|
+
switch (runtimeName) {
|
|
9
|
+
case "pi":
|
|
10
|
+
case "daimon":
|
|
11
|
+
// Mneme runs in-process for these runtimes (no MCP subprocess), but
|
|
12
|
+
// whether that in-process runtime is reachable -- and whether it
|
|
13
|
+
// persists anything -- depends on the store:
|
|
14
|
+
// - sqlite/json WITH a durable mount: a real runtime home backed by
|
|
15
|
+
// a persistent volume this same module emits.
|
|
16
|
+
// - sqlite/json WITHOUT one (persistence.mode "ephemeral", or no
|
|
17
|
+
// resolvable path at all): no volume is mounted and Daimon emits no
|
|
18
|
+
// memory block, so recall lasts at most the container's lifetime --
|
|
19
|
+
// exactly the "memory" kind's situation, and reported the same way.
|
|
20
|
+
// - memory: Mneme still runs in-process against a synthesized runtime
|
|
21
|
+
// home path, but no persistent volume is emitted for this kind.
|
|
22
|
+
// - postgres: no runtime home path at all; the in-process runtime
|
|
23
|
+
// gets no memory whatsoever.
|
|
24
|
+
//
|
|
25
|
+
// The durable/ephemeral half of that decision is NOT re-derived here:
|
|
26
|
+
// it comes from resolveMnemeDurableMemoryMountPath, the same authority
|
|
27
|
+
// that decides the mount below, so the report cannot disagree with what
|
|
28
|
+
// was actually emitted.
|
|
29
|
+
switch (bank.store.kind) {
|
|
30
|
+
case "sqlite":
|
|
31
|
+
case "json":
|
|
32
|
+
return resolveMnemeDurableMemoryMountPath(bank) === null ? "degraded" : "direct";
|
|
33
|
+
case "memory":
|
|
34
|
+
return "degraded";
|
|
35
|
+
default:
|
|
36
|
+
return "unsupported";
|
|
37
|
+
}
|
|
38
|
+
case "picoclaw":
|
|
39
|
+
case "openclaw":
|
|
40
|
+
return isFileBackedMemoryStore(bank) ? "mcp" : "degraded_mcp";
|
|
41
|
+
default:
|
|
42
|
+
return "unsupported";
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
// The mount decision itself lives in runtime/mnemeMcp.ts so that runtime config
|
|
46
|
+
// emitters (which must only point an in-process Mneme runtime at a path this
|
|
47
|
+
// module actually mounts) and this module cannot drift apart.
|
|
48
|
+
const memoryMountPath = resolveMnemeDurableMemoryMountPath;
|
|
49
|
+
const summarizeMemoryStore = (bank, mountId) => {
|
|
50
|
+
const persistenceMode = bank.store.kind === "sqlite" || bank.store.kind === "json"
|
|
51
|
+
? (bank.store.persistence?.mode ?? "durable")
|
|
52
|
+
: undefined;
|
|
53
|
+
return {
|
|
54
|
+
kind: bank.store.kind,
|
|
55
|
+
...(bank.store.path ? { path: bank.store.path } : {}),
|
|
56
|
+
...(persistenceMode ? { persistence: persistenceMode } : {}),
|
|
57
|
+
...(mountId ? { persistent_mount_id: mountId } : {}),
|
|
58
|
+
...(bank.store.kind === "postgres" ? { dsn_secret: bank.store.dsn_secret } : {})
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* The identity of the PHYSICAL store a declared bank resolves to.
|
|
63
|
+
*
|
|
64
|
+
* Mneme addresses a store by its runtime home directory and then discards the
|
|
65
|
+
* declared filename: `JsonlMemoryStore` always writes `<home>/memory/events.jsonl`
|
|
66
|
+
* and `SQLiteMemoryIndex` always opens `<home>/memory/<default>.db`
|
|
67
|
+
* (mneme/src/store/store.ts, mneme/src/store/sqliteIndex.ts). Spawnfile resolves
|
|
68
|
+
* that home as `dirname(store.path)` unless `persistence.mount` overrides it, so
|
|
69
|
+
* `/data/mem/a.jsonl` and `/data/mem/b.jsonl` are ONE physical store wearing two
|
|
70
|
+
* declared names — two concurrent MemoryRuntimes appending to one file and
|
|
71
|
+
* opening one SQLite database.
|
|
72
|
+
*
|
|
73
|
+
* Two declarations may therefore share a durable directory only when they are
|
|
74
|
+
* the same bank said twice (the legitimate case: one bank declared in an org
|
|
75
|
+
* scope and again in a nested team scope so both sides can access it). Anything
|
|
76
|
+
* that differs — a different id, a different declared file, a different index
|
|
77
|
+
* intent — means the author believes they have two stores and the runtime will
|
|
78
|
+
* silently give them one.
|
|
79
|
+
*/
|
|
80
|
+
const physicalStoreIdentity = (bank) => JSON.stringify({
|
|
81
|
+
consolidation: bank.consolidation,
|
|
82
|
+
id: bank.id,
|
|
83
|
+
index: bank.index,
|
|
84
|
+
retention: bank.retention,
|
|
85
|
+
store: {
|
|
86
|
+
kind: bank.store.kind,
|
|
87
|
+
mount: bank.store.persistence?.mount ?? null,
|
|
88
|
+
name: bank.store.persistence?.name ?? null,
|
|
89
|
+
path: bank.store.path ?? null
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
const collidingBankMessage = (mountPath, prior, next) => `Memory banks ${prior.bankId} (declared in ${prior.source}) and ${next.bankId} `
|
|
93
|
+
+ `(declared in ${next.source}) both resolve to the durable memory directory ${mountPath}, `
|
|
94
|
+
+ "but do not declare the same store. Mneme keys a store by that directory and ignores the "
|
|
95
|
+
+ "declared filename, so these two banks would silently become one physical store with two "
|
|
96
|
+
+ "runtimes writing it. Give each bank its own directory (a distinct store.path parent or "
|
|
97
|
+
+ "persistence.mount), or declare them identically if one shared bank is what you meant.";
|
|
98
|
+
/**
|
|
99
|
+
* The docker volume name for a durable memory directory.
|
|
100
|
+
*
|
|
101
|
+
* Deliberately NOT run-scoped. `createPersistentVolumeName` folds NOOPOLIS_RUN_ID
|
|
102
|
+
* into the name, and `ensureNoopolisRunId` mints a fresh id on every `spawnfile
|
|
103
|
+
* run`/`up`, so a run-scoped memory volume means the organization you redeploy
|
|
104
|
+
* tomorrow starts with an empty memory bank. There is no working escape hatch
|
|
105
|
+
* today either: `spawnfile product-state clone` refuses SQLite paths, and reusing
|
|
106
|
+
* yesterday's NOOPOLIS_RUN_ID to reproduce the volume name would collapse two
|
|
107
|
+
* distinct causal runs onto one run_id in the ledger (specs/CAUSAL.md).
|
|
108
|
+
*
|
|
109
|
+
* `exclusive-reattach` is the existing lifecycle for exactly this: a host-stable
|
|
110
|
+
* name derived from the project root plus the deployment lineage, with a
|
|
111
|
+
* daemon-side reservation that refuses to start when another live container
|
|
112
|
+
* already holds the volume (src/compiler/runProjectDockerReservation.ts). That
|
|
113
|
+
* mutual exclusion is a requirement here rather than a cost — Mneme's append-only
|
|
114
|
+
* JSONL plus its SQLite index are single-writer — and it is why an organization
|
|
115
|
+
* with durable memory cannot use the concurrent blue/green canary workflow and
|
|
116
|
+
* must stop-and-reattach instead (specs/CONTAINERS.md).
|
|
117
|
+
*
|
|
118
|
+
* An author-declared `persistence.name` is honored verbatim: naming a volume is
|
|
119
|
+
* precisely a request for a host-stable identity.
|
|
120
|
+
*/
|
|
121
|
+
const durableMemoryVolumeName = (planRoot, mountId, declaredName, deploymentLineage) => declaredName?.trim()
|
|
122
|
+
|| createExclusiveReattachVolumeName(`${planRoot}\0${deploymentLineage}`, mountId);
|
|
123
|
+
export const createMemoryArtifactBundle = (plan, deploymentLineage = "compile") => {
|
|
124
|
+
const sourceToNode = new Map(plan.nodes.map((node) => [node.value.source, node]));
|
|
125
|
+
const groupedMemory = new Map();
|
|
126
|
+
for (const access of plan.memoryAccess ?? []) {
|
|
127
|
+
const key = `${access.source}::${access.bank.id}`;
|
|
128
|
+
const existing = groupedMemory.get(key);
|
|
129
|
+
if (existing) {
|
|
130
|
+
existing.accesses.push(access);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
groupedMemory.set(key, { bank: access.bank, source: access.source, accesses: [access] });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const mounts = [];
|
|
137
|
+
const mountPathMemoryMap = new Map();
|
|
138
|
+
const mountByPath = new Map();
|
|
139
|
+
const claimantByPath = new Map();
|
|
140
|
+
const memories = [...groupedMemory.entries()]
|
|
141
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
142
|
+
.map(([, entry]) => {
|
|
143
|
+
const declaringNode = sourceToNode.get(entry.source);
|
|
144
|
+
if (!declaringNode) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
const transportByNodeId = {};
|
|
148
|
+
const accessibleNodeIds = new Set();
|
|
149
|
+
for (const access of entry.accesses) {
|
|
150
|
+
const agentNode = sourceToNode.get(access.agentSource);
|
|
151
|
+
if (!agentNode || agentNode.value.kind !== "agent") {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
const transport = transportFromRuntime(agentNode.runtimeName, entry.bank);
|
|
155
|
+
transportByNodeId[agentNode.id] = transport;
|
|
156
|
+
accessibleNodeIds.add(agentNode.id);
|
|
157
|
+
}
|
|
158
|
+
const declaringNodeId = declaringNode.id;
|
|
159
|
+
const mountPath = memoryMountPath(entry.bank);
|
|
160
|
+
let persistentMountId;
|
|
161
|
+
if (mountPath !== null) {
|
|
162
|
+
const mountId = createMountId(mountPath);
|
|
163
|
+
const declaredVolumeName = entry.bank.store.persistence?.name?.trim();
|
|
164
|
+
const volumeName = durableMemoryVolumeName(plan.root, mountId, entry.bank.store.persistence?.name, deploymentLineage);
|
|
165
|
+
const identity = physicalStoreIdentity(entry.bank);
|
|
166
|
+
const claimant = { bankId: entry.bank.id, identity, source: entry.source };
|
|
167
|
+
const priorClaimant = claimantByPath.get(mountPath);
|
|
168
|
+
if (priorClaimant && priorClaimant.identity !== identity) {
|
|
169
|
+
throw new SpawnfileError("validation_error", collidingBankMessage(mountPath, priorClaimant, claimant));
|
|
170
|
+
}
|
|
171
|
+
claimantByPath.set(mountPath, claimant);
|
|
172
|
+
const existingMount = mountByPath.get(mountPath);
|
|
173
|
+
if (existingMount && existingMount.volume_name !== volumeName) {
|
|
174
|
+
throw new Error(`Memory store mount ${mountPath} resolves to conflicting volume names`);
|
|
175
|
+
}
|
|
176
|
+
const mount = existingMount ?? {
|
|
177
|
+
...(declaredVolumeName ? { declared_volume_name: declaredVolumeName } : {}),
|
|
178
|
+
id: mountId,
|
|
179
|
+
lifecycle: "exclusive-reattach",
|
|
180
|
+
mount_path: mountPath,
|
|
181
|
+
reason: `durable memory stores under ${mountPath}`,
|
|
182
|
+
volume_name: volumeName
|
|
183
|
+
};
|
|
184
|
+
mountByPath.set(mountPath, mount);
|
|
185
|
+
if (!existingMount) {
|
|
186
|
+
mounts.push(mount);
|
|
187
|
+
}
|
|
188
|
+
persistentMountId = mount.id;
|
|
189
|
+
mountPathMemoryMap.set(persistentMountId, mountPath);
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
id: entry.bank.id,
|
|
193
|
+
declaring_node_id: declaringNodeId,
|
|
194
|
+
accessible_node_ids: [...accessibleNodeIds].sort(),
|
|
195
|
+
store: summarizeMemoryStore(entry.bank, persistentMountId),
|
|
196
|
+
index: entry.bank.index,
|
|
197
|
+
consolidation: entry.bank.consolidation,
|
|
198
|
+
retention: entry.bank.retention,
|
|
199
|
+
transport_by_node_id: transportByNodeId
|
|
200
|
+
};
|
|
201
|
+
})
|
|
202
|
+
.filter((entry) => entry !== null)
|
|
203
|
+
.sort((left, right) => left.declaring_node_id.localeCompare(right.declaring_node_id)
|
|
204
|
+
|| left.id.localeCompare(right.id));
|
|
205
|
+
return {
|
|
206
|
+
mountPathMemoryMap,
|
|
207
|
+
memories,
|
|
208
|
+
mounts: [...mounts].sort((left, right) => left.id.localeCompare(right.id) || left.mount_path.localeCompare(right.mount_path))
|
|
209
|
+
};
|
|
210
|
+
};
|
|
@@ -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,13 @@
|
|
|
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
|
+
/**
|
|
6
|
+
* Only the host-imported CLI logins travel as `SPAWNFILE_CLI_AUTH_JSON`. `grok`
|
|
7
|
+
* is a Daimon-owned subscription: its credential is the broker's bootstrap
|
|
8
|
+
* slot (`runtime/daimon/runAuth.ts`), never this secret.
|
|
9
|
+
*/
|
|
10
|
+
export declare const modelAuthMethodNeedsCliCredential: (method: ModelAuthMethod) => boolean;
|
|
4
11
|
export declare const resolveModelProviderEnvName: (provider: string) => string;
|
|
5
12
|
export declare const listExecutionModelTargets: (execution: ExecutionBlock | undefined) => ModelTarget[];
|
|
6
13
|
export declare const resolveEffectiveModelTarget: (target: ModelTarget, execution: ExecutionBlock | undefined) => EffectiveModelTarget;
|
|
@@ -8,6 +8,13 @@ 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
|
+
/**
|
|
13
|
+
* Only the host-imported CLI logins travel as `SPAWNFILE_CLI_AUTH_JSON`. `grok`
|
|
14
|
+
* is a Daimon-owned subscription: its credential is the broker's bootstrap
|
|
15
|
+
* slot (`runtime/daimon/runAuth.ts`), never this secret.
|
|
16
|
+
*/
|
|
17
|
+
export const modelAuthMethodNeedsCliCredential = (method) => method === "claude-code" || method === "codex";
|
|
11
18
|
const resolveLegacyModelAuthMethod = (execution, provider) => {
|
|
12
19
|
const auth = execution?.model?.auth;
|
|
13
20
|
if (!auth) {
|
|
@@ -66,7 +73,8 @@ export const resolveEffectiveModelTarget = (target, execution) => {
|
|
|
66
73
|
},
|
|
67
74
|
...(target.endpoint ? { endpoint: target.endpoint } : {}),
|
|
68
75
|
name: target.name,
|
|
69
|
-
provider: target.provider
|
|
76
|
+
provider: target.provider,
|
|
77
|
+
...(target.reasoning_effort ? { reasoningEffort: target.reasoning_effort } : {})
|
|
70
78
|
};
|
|
71
79
|
};
|
|
72
80
|
export const listEffectiveExecutionModelTargets = (execution) => listExecutionModelTargets(execution).map((target) => resolveEffectiveModelTarget(target, execution));
|
|
@@ -88,6 +96,10 @@ export const resolveExecutionModelAuthMethods = (execution) => {
|
|
|
88
96
|
export const listExecutionModelSecretNames = (execution) => {
|
|
89
97
|
const secretNames = new Set();
|
|
90
98
|
for (const target of listEffectiveExecutionModelTargets(execution)) {
|
|
99
|
+
if (modelAuthMethodNeedsCliCredential(target.auth.method)) {
|
|
100
|
+
secretNames.add(CLI_CREDENTIAL_SECRET_NAME);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
91
103
|
if (target.auth.method !== "api_key") {
|
|
92
104
|
continue;
|
|
93
105
|
}
|
|
@@ -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,31 @@
|
|
|
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 **run-scoped** durable
|
|
5
|
+
* mount — state whose whole point is to be fresh per run (today: the Moltnet
|
|
6
|
+
* causal event log, Daimon telemetry, per-network Moltnet runtime state).
|
|
7
|
+
*
|
|
8
|
+
* `runId` (the compiling process's resolved NOOPOLIS_RUN_ID, see
|
|
9
|
+
* src/runtime/common.ts) is the run-scoping key: `spawnfile run`/`spawnfile
|
|
10
|
+
* up` always call `ensureNoopolisRunId()` before compiling, so a fresh
|
|
11
|
+
* invocation with no host-pinned run id gets a fresh generated one and
|
|
12
|
+
* therefore a fresh volume — two concurrent/successive runs (e.g. two
|
|
13
|
+
* memetics replicates) never share it. A cold restart that wants the same
|
|
14
|
+
* run's state sets the SAME `NOOPOLIS_RUN_ID` before re-running, which
|
|
15
|
+
* reproduces this name and remounts it. Omitted (a bare `spawnfile
|
|
16
|
+
* compile`/`spawnfile build` with no run id in the host env) reproduces the
|
|
17
|
+
* pre-run-scoping name exactly, so standard compiles stay byte-identical.
|
|
18
|
+
*
|
|
19
|
+
* State that must SURVIVE a redeploy — workspace `kind: volume` resources,
|
|
20
|
+
* durable Moltnet stores, open-mode agent token directories, durable memory
|
|
21
|
+
* banks, the Daimon usage ledger — must NEVER be named here. Those are
|
|
22
|
+
* `lifecycle: "exclusive-reattach"` and are named by
|
|
23
|
+
* `createExclusiveReattachVolumeName` from the plan root and the deployment
|
|
24
|
+
* lineage, honouring an author-declared name verbatim. This function
|
|
25
|
+
* deliberately takes no author-declared name: a run-scoped volume is never
|
|
26
|
+
* the thing an author names.
|
|
27
|
+
*/
|
|
28
|
+
export declare const createPersistentVolumeName: (planRoot: string, id: string, runId?: string) => string;
|
|
29
|
+
export declare const toContainerRootfsPath: (rootfsPath: string) => string;
|
|
30
|
+
export declare const isNetworkHttpEnabled: (network: NonNullable<ResolvedTeamNode["networks"]>[number]) => boolean;
|
|
31
|
+
export declare const resolveNetworkPort: (network: NonNullable<ResolvedTeamNode["networks"]>[number], fallbackPort: number) => number;
|
|
@@ -0,0 +1,51 @@
|
|
|
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 **run-scoped** durable
|
|
16
|
+
* mount — state whose whole point is to be fresh per run (today: the Moltnet
|
|
17
|
+
* causal event log, Daimon telemetry, per-network Moltnet runtime state).
|
|
18
|
+
*
|
|
19
|
+
* `runId` (the compiling process's resolved NOOPOLIS_RUN_ID, see
|
|
20
|
+
* src/runtime/common.ts) is the run-scoping key: `spawnfile run`/`spawnfile
|
|
21
|
+
* up` always call `ensureNoopolisRunId()` before compiling, so a fresh
|
|
22
|
+
* invocation with no host-pinned run id gets a fresh generated one and
|
|
23
|
+
* therefore a fresh volume — two concurrent/successive runs (e.g. two
|
|
24
|
+
* memetics replicates) never share it. A cold restart that wants the same
|
|
25
|
+
* run's state sets the SAME `NOOPOLIS_RUN_ID` before re-running, which
|
|
26
|
+
* reproduces this name and remounts it. Omitted (a bare `spawnfile
|
|
27
|
+
* compile`/`spawnfile build` with no run id in the host env) reproduces the
|
|
28
|
+
* pre-run-scoping name exactly, so standard compiles stay byte-identical.
|
|
29
|
+
*
|
|
30
|
+
* State that must SURVIVE a redeploy — workspace `kind: volume` resources,
|
|
31
|
+
* durable Moltnet stores, open-mode agent token directories, durable memory
|
|
32
|
+
* banks, the Daimon usage ledger — must NEVER be named here. Those are
|
|
33
|
+
* `lifecycle: "exclusive-reattach"` and are named by
|
|
34
|
+
* `createExclusiveReattachVolumeName` from the plan root and the deployment
|
|
35
|
+
* lineage, honouring an author-declared name verbatim. This function
|
|
36
|
+
* deliberately takes no author-declared name: a run-scoped volume is never
|
|
37
|
+
* the thing an author names.
|
|
38
|
+
*/
|
|
39
|
+
export const createPersistentVolumeName = (planRoot, id, runId) => {
|
|
40
|
+
const project = truncateSegment(slugify(planRoot.split("/").slice(-2, -1)[0] ?? "project") || "project", 32);
|
|
41
|
+
const suffix = truncateSegment(slugify(id) || "state", 48);
|
|
42
|
+
const trimmedRunId = runId?.trim();
|
|
43
|
+
if (!trimmedRunId) {
|
|
44
|
+
return `spawnfile-${project}-${suffix}-${createShortHash(`${planRoot}:${id}`)}`;
|
|
45
|
+
}
|
|
46
|
+
const runSegment = truncateSegment(slugify(trimmedRunId) || "run", 24);
|
|
47
|
+
return `spawnfile-${project}-${suffix}-${runSegment}-${createShortHash(`${planRoot}:${id}:${trimmedRunId}`)}`;
|
|
48
|
+
};
|
|
49
|
+
export const toContainerRootfsPath = (rootfsPath) => `/${rootfsPath.replace(`${ROOTFS_PREFIX}/`, "")}`;
|
|
50
|
+
export const isNetworkHttpEnabled = (network) => network.server?.mode === "managed" && network.server.human_ingress === true;
|
|
51
|
+
export const resolveNetworkPort = (network, fallbackPort) => network.server?.mode === "managed" ? network.server.listen.port : fallbackPort;
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
federation?: "all" | "none" | string[];
|
|
15
|
+
id: string;
|
|
16
|
+
members: string[];
|
|
17
|
+
name?: string;
|
|
18
|
+
visibility?: "public" | "private";
|
|
19
|
+
write_policy?: "members" | "operators" | "registered_agents";
|
|
20
|
+
}>;
|
|
21
|
+
server: TeamNetworkServer;
|
|
22
|
+
secretPatches: MoltnetSecretPatch[];
|
|
23
|
+
teamSource: string;
|
|
24
|
+
}
|
|
25
|
+
export interface MoltnetNodePlan {
|
|
26
|
+
configPath: string;
|
|
27
|
+
credentialAgentId?: string;
|
|
28
|
+
credentialId?: string;
|
|
29
|
+
credentialSecret?: string;
|
|
30
|
+
memberId?: string;
|
|
31
|
+
networkId: string;
|
|
32
|
+
receiptStorePath?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface MoltnetPersistentMount {
|
|
35
|
+
/** The author's `store.persistence.name`, when declared. */
|
|
36
|
+
declaredVolumeName?: string;
|
|
37
|
+
id: string;
|
|
38
|
+
/**
|
|
39
|
+
* `exclusive-reattach` marks state that MUST survive container replacement
|
|
40
|
+
* and redeploy: its volume name is deployment-stable (never run-scoped) and
|
|
41
|
+
* only one live container may hold it at a time.
|
|
42
|
+
*/
|
|
43
|
+
lifecycle?: "exclusive-reattach";
|
|
44
|
+
mountPath: string;
|
|
45
|
+
reason: string;
|
|
46
|
+
volumeName: string;
|
|
47
|
+
}
|
|
48
|
+
export interface MoltnetArtifacts {
|
|
49
|
+
externalParticipantArtifacts?: MoltnetExternalParticipantArtifactV1[];
|
|
50
|
+
files: EmittedFile[];
|
|
51
|
+
nodePlans: MoltnetNodePlan[];
|
|
52
|
+
persistentMounts: MoltnetPersistentMount[];
|
|
53
|
+
ports: number[];
|
|
54
|
+
publishedPorts: number[];
|
|
55
|
+
serverPlans: MoltnetServerPlan[];
|
|
56
|
+
}
|
|
@@ -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
|
-
|
|
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
|
-
}
|
|
42
|
-
export declare const generateMoltnetArtifacts: (plan: CompilePlan) => Promise<MoltnetArtifacts | null>;
|
|
3
|
+
export type { MoltnetArtifacts, MoltnetNodePlan, MoltnetPersistentMount, MoltnetServerPlan } from "./moltnetArtifactTypes.js";
|
|
4
|
+
export declare const generateMoltnetArtifacts: (plan: CompilePlan, deploymentLineage?: string) => Promise<MoltnetArtifacts | null>;
|