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,20 @@
|
|
|
1
|
+
import type { ModelAuthMethod } from "../shared/index.js";
|
|
2
|
+
import type { ContainerTarget, ContainerTargetInput, EmittedFile, RuntimeContainerMeta } from "../runtime/index.js";
|
|
3
|
+
import type { ResolvedPackage } from "./types.js";
|
|
4
|
+
export declare const createDefaultTargets: (inputs: ContainerTargetInput[]) => ContainerTarget[];
|
|
5
|
+
export declare const resolveTargetEnvFiles: (configPath: string, target: ContainerTarget) => Array<{
|
|
6
|
+
envName: string;
|
|
7
|
+
filePath: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const resolveTargetConfigEnvBindings: (meta: RuntimeContainerMeta, target: ContainerTarget) => RuntimeContainerMeta["configEnvBindings"];
|
|
10
|
+
export declare const assertTargetHasConfig: (runtimeName: string, targetId: string, meta: RuntimeContainerMeta, files: EmittedFile[]) => void;
|
|
11
|
+
export declare const resolveTargetPackages: (target: ContainerTarget, inputs: ContainerTargetInput[]) => ResolvedPackage[];
|
|
12
|
+
export declare const resolveInstancePaths: (runtimeName: string, targetId: string, meta: RuntimeContainerMeta) => {
|
|
13
|
+
configPath: string;
|
|
14
|
+
homePath?: string;
|
|
15
|
+
instanceRoot: string;
|
|
16
|
+
workspacePath: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const resolveTargetModelSecrets: (target: ContainerTarget, inputs: ContainerTargetInput[]) => string[];
|
|
19
|
+
export declare const resolveTargetModelAuthMethods: (target: ContainerTarget, inputs: ContainerTargetInput[]) => Record<string, ModelAuthMethod>;
|
|
20
|
+
export declare const resolveTargetExposure: (target: ContainerTarget, inputs: ContainerTargetInput[]) => boolean;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
3
|
+
import { listExecutionModelSecretNames, resolveExecutionModelAuthMethods } from "./modelEnv.js";
|
|
4
|
+
const CONFIG_FILE_PLACEHOLDER = "<config-file>";
|
|
5
|
+
const INSTANCE_ROOT_PLACEHOLDER = "<instance-root>";
|
|
6
|
+
export const createDefaultTargets = (inputs) => inputs.map((input) => ({
|
|
7
|
+
files: input.emittedFiles,
|
|
8
|
+
id: `${input.kind}-${input.slug}`,
|
|
9
|
+
sourceIds: [input.id]
|
|
10
|
+
}));
|
|
11
|
+
export const resolveTargetEnvFiles = (configPath, target) => (target.envFiles ?? []).map((binding) => ({
|
|
12
|
+
envName: binding.envName,
|
|
13
|
+
filePath: path.posix.join(path.posix.dirname(configPath), binding.relativePath)
|
|
14
|
+
}));
|
|
15
|
+
export const resolveTargetConfigEnvBindings = (meta, target) => [...(meta.configEnvBindings ?? []), ...(target.configEnvBindings ?? [])];
|
|
16
|
+
export const assertTargetHasConfig = (runtimeName, targetId, meta, files) => {
|
|
17
|
+
if (!files.some((file) => file.path === meta.configFileName)) {
|
|
18
|
+
throw new SpawnfileError("runtime_error", `Container target ${targetId} for ${runtimeName} is missing ${meta.configFileName}`);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const createPackageIdentity = (pkg) => `${pkg.manager}\u0000${pkg.name}\u0000${pkg.version ?? ""}\u0000${pkg.scope ?? ""}`;
|
|
22
|
+
const createPackageConflictIdentity = (pkg) => `${pkg.manager}\u0000${pkg.name}`;
|
|
23
|
+
const createPackageLabel = (pkg) => `${pkg.manager} package ${pkg.name}`;
|
|
24
|
+
export const resolveTargetPackages = (target, inputs) => {
|
|
25
|
+
const sourceIds = new Set(target.sourceIds ?? []);
|
|
26
|
+
if (sourceIds.size === 0)
|
|
27
|
+
return [];
|
|
28
|
+
const byIdentity = new Map();
|
|
29
|
+
for (const input of inputs) {
|
|
30
|
+
if (!sourceIds.has(input.id) || input.value.kind !== "agent")
|
|
31
|
+
continue;
|
|
32
|
+
for (const currentPackage of input.value.packages ?? []) {
|
|
33
|
+
const conflictIdentity = createPackageConflictIdentity(currentPackage);
|
|
34
|
+
const existingPackage = byIdentity.get(conflictIdentity);
|
|
35
|
+
if (!existingPackage) {
|
|
36
|
+
byIdentity.set(conflictIdentity, currentPackage);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (createPackageIdentity(existingPackage) !== createPackageIdentity(currentPackage)) {
|
|
40
|
+
throw new SpawnfileError("validation_error", `Container target ${target.id} declares conflicting package definitions for ${createPackageLabel(currentPackage)}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return [...byIdentity.values()].sort((left, right) => createPackageIdentity(left).localeCompare(createPackageIdentity(right)));
|
|
45
|
+
};
|
|
46
|
+
const replaceContainerPathTemplate = (template, instanceRoot, configFileName) => template
|
|
47
|
+
.replaceAll(INSTANCE_ROOT_PLACEHOLDER, instanceRoot)
|
|
48
|
+
.replaceAll(CONFIG_FILE_PLACEHOLDER, configFileName);
|
|
49
|
+
export const resolveInstancePaths = (runtimeName, targetId, meta) => {
|
|
50
|
+
const instanceRoot = `/var/lib/spawnfile/instances/${runtimeName}/${targetId}`;
|
|
51
|
+
return {
|
|
52
|
+
configPath: replaceContainerPathTemplate(meta.instancePaths.configPathTemplate, instanceRoot, meta.configFileName),
|
|
53
|
+
homePath: meta.instancePaths.homePathTemplate
|
|
54
|
+
? replaceContainerPathTemplate(meta.instancePaths.homePathTemplate, instanceRoot, meta.configFileName)
|
|
55
|
+
: undefined,
|
|
56
|
+
instanceRoot,
|
|
57
|
+
workspacePath: replaceContainerPathTemplate(meta.instancePaths.workspacePathTemplate, instanceRoot, meta.configFileName)
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
export const resolveTargetModelSecrets = (target, inputs) => {
|
|
61
|
+
const sourceIds = new Set(target.sourceIds ?? []);
|
|
62
|
+
if (sourceIds.size === 0)
|
|
63
|
+
return [];
|
|
64
|
+
const secretNames = new Set();
|
|
65
|
+
for (const input of inputs) {
|
|
66
|
+
if (!sourceIds.has(input.id) || input.value.kind !== "agent")
|
|
67
|
+
continue;
|
|
68
|
+
for (const secretName of listExecutionModelSecretNames(input.value.execution)) {
|
|
69
|
+
secretNames.add(secretName);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return [...secretNames].sort();
|
|
73
|
+
};
|
|
74
|
+
export const resolveTargetModelAuthMethods = (target, inputs) => {
|
|
75
|
+
const sourceIds = new Set(target.sourceIds ?? []);
|
|
76
|
+
if (sourceIds.size === 0)
|
|
77
|
+
return {};
|
|
78
|
+
const methods = new Map();
|
|
79
|
+
for (const input of inputs) {
|
|
80
|
+
if (!sourceIds.has(input.id) || input.value.kind !== "agent")
|
|
81
|
+
continue;
|
|
82
|
+
for (const [provider, method] of Object.entries(resolveExecutionModelAuthMethods(input.value.execution))) {
|
|
83
|
+
const existingMethod = methods.get(provider);
|
|
84
|
+
if (existingMethod && existingMethod !== method) {
|
|
85
|
+
throw new SpawnfileError("validation_error", `Container target ${target.id} declares conflicting auth methods for provider ${provider}`);
|
|
86
|
+
}
|
|
87
|
+
methods.set(provider, method);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return Object.fromEntries([...methods.entries()].sort(([left], [right]) => left.localeCompare(right)));
|
|
91
|
+
};
|
|
92
|
+
export const resolveTargetExposure = (target, inputs) => {
|
|
93
|
+
const sourceIds = new Set(target.sourceIds ?? []);
|
|
94
|
+
if (sourceIds.size === 0)
|
|
95
|
+
return false;
|
|
96
|
+
return inputs.some((input) => sourceIds.has(input.id) && input.value.kind === "agent" && input.value.expose === true);
|
|
97
|
+
};
|
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
import type { ContainerTarget, ContainerTargetInput, RuntimeContainerMeta } from "../runtime/index.js";
|
|
2
2
|
import type { RuntimeTargetPlan } from "./containerArtifactsTypes.js";
|
|
3
3
|
import { type WorkspaceResourcePlan } from "./workspaceResources.js";
|
|
4
|
-
export
|
|
4
|
+
export interface ResolvedTargetResourcePlan extends WorkspaceResourcePlan {
|
|
5
|
+
canonicalBackingPath: string;
|
|
6
|
+
ownerId: string;
|
|
7
|
+
persistentMountId?: string;
|
|
8
|
+
replacementSentinel?: string;
|
|
9
|
+
resolvedIdentity: string;
|
|
10
|
+
volumeName?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface WorkspaceResourcePersistentMount {
|
|
13
|
+
/** The author's `name`, when declared on the resource. */
|
|
14
|
+
declared_volume_name?: string;
|
|
15
|
+
id: string;
|
|
16
|
+
lifecycle: "exclusive-reattach";
|
|
17
|
+
mount_path: string;
|
|
18
|
+
reason: string;
|
|
19
|
+
volume_name: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const resolveWorkspaceResourceVolumes: (runtimePlans: readonly RuntimeTargetPlan[]) => {
|
|
22
|
+
resources: ResolvedTargetResourcePlan[];
|
|
23
|
+
mounts: WorkspaceResourcePersistentMount[];
|
|
24
|
+
};
|
|
25
|
+
export declare const resolveTargetResources: (target: ContainerTarget, inputs: ContainerTargetInput[], instancePaths: RuntimeTargetPlan["instancePaths"], meta: RuntimeContainerMeta, planRoot: string, deploymentLineage?: string) => ResolvedTargetResourcePlan[];
|
|
@@ -1,10 +1,48 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
2
3
|
import { SpawnfileError } from "../shared/index.js";
|
|
4
|
+
import { createExclusiveReattachVolumeName } from "../shared/index.js";
|
|
3
5
|
import { mergeWorkspaceResourcePlans } from "./workspaceResources.js";
|
|
4
6
|
const CONFIG_FILE_PLACEHOLDER = "<config-file>";
|
|
5
7
|
const INSTANCE_ROOT_PLACEHOLDER = "<instance-root>";
|
|
6
8
|
const SOURCE_AGENT_PLACEHOLDER = "<agent-name>";
|
|
7
9
|
const SOURCE_SLUG_PLACEHOLDER = "<source-slug>";
|
|
10
|
+
const digest = (value) => createHash("sha256").update(value).digest("hex");
|
|
11
|
+
export const resolveWorkspaceResourceVolumes = (runtimePlans) => {
|
|
12
|
+
const resources = runtimePlans.flatMap((runtimePlan) => (runtimePlan.resources ?? []));
|
|
13
|
+
const byBackingPath = new Map();
|
|
14
|
+
const backingPathByVolumeName = new Map();
|
|
15
|
+
for (const resource of resources.filter((candidate) => candidate.kind === "volume")) {
|
|
16
|
+
const existing = byBackingPath.get(resource.canonicalBackingPath);
|
|
17
|
+
// Two DIFFERENT declared resources landing on one backing path is always a
|
|
18
|
+
// mistake: the path segment derives from an explicit `name` when one is
|
|
19
|
+
// given, so `id: a`/`id: b` both declaring `name: X` in one scope used to
|
|
20
|
+
// collapse into a single directory and volume, silently, with both
|
|
21
|
+
// workspace symlinks pointing at it. The same id across runtime plans is
|
|
22
|
+
// the legitimate `sharing: team` case and still merges.
|
|
23
|
+
if (existing && existing.id !== resource.id) {
|
|
24
|
+
throw new SpawnfileError("validation_error", `Workspace resources ${existing.id} and ${resource.id} resolve to the same backing volume ${resource.canonicalBackingPath}; a declared volume name must be unique within its scope`);
|
|
25
|
+
}
|
|
26
|
+
if (existing && (existing.mode !== resource.mode || existing.sharing !== resource.sharing || existing.volumeName !== resource.volumeName || (resource.sharing === "per_agent" && existing.ownerId !== resource.ownerId))) {
|
|
27
|
+
throw new SpawnfileError("validation_error", `Workspace volume ${resource.canonicalBackingPath} has incompatible mode, sharing, or owner declarations`);
|
|
28
|
+
}
|
|
29
|
+
const conflictingPath = backingPathByVolumeName.get(resource.volumeName);
|
|
30
|
+
if (conflictingPath && conflictingPath !== resource.canonicalBackingPath)
|
|
31
|
+
throw new SpawnfileError("validation_error", "Workspace volume name collision");
|
|
32
|
+
byBackingPath.set(resource.canonicalBackingPath, resource);
|
|
33
|
+
backingPathByVolumeName.set(resource.volumeName, resource.canonicalBackingPath);
|
|
34
|
+
}
|
|
35
|
+
// Workspace `kind: volume` resources are durable product state: an author
|
|
36
|
+
// declares one precisely so it outlives the container. They are therefore
|
|
37
|
+
// `exclusive-reattach` — deployment-stable name, reattached rather than
|
|
38
|
+
// recreated, one live holder at a time.
|
|
39
|
+
return { resources, mounts: [...byBackingPath.values()].map((resource) => ({
|
|
40
|
+
...(resource.name?.trim() ? { declared_volume_name: resource.name.trim() } : {}),
|
|
41
|
+
id: resource.persistentMountId, lifecycle: "exclusive-reattach",
|
|
42
|
+
mount_path: resource.canonicalBackingPath,
|
|
43
|
+
reason: `Workspace ${resource.sharing} resource ${resource.id}`, volume_name: resource.volumeName
|
|
44
|
+
})) };
|
|
45
|
+
};
|
|
8
46
|
const replaceSourceWorkspacePathTemplate = (template, input, instancePaths, meta) => {
|
|
9
47
|
const agentName = input.value.kind === "agent" ? input.value.name : input.slug;
|
|
10
48
|
const instanceRoot = instancePaths.instanceRoot ?? path.posix.dirname(instancePaths.workspacePath);
|
|
@@ -21,10 +59,12 @@ const sourceTargetId = (target, input, isMergedTarget) => isMergedTarget ? `${ta
|
|
|
21
59
|
const pathsOverlap = (left, right) => left === right || left.startsWith(`${right}/`) || right.startsWith(`${left}/`);
|
|
22
60
|
const dedupeAndAssertResourcePlans = (target, resources) => {
|
|
23
61
|
const byLinkPath = new Map();
|
|
62
|
+
const volumesByBackingPath = new Map();
|
|
63
|
+
const backingPathByVolumeName = new Map();
|
|
24
64
|
for (const resource of resources) {
|
|
25
65
|
const existing = byLinkPath.get(resource.linkPath);
|
|
26
66
|
if (existing) {
|
|
27
|
-
if (existing.
|
|
67
|
+
if (existing.resolvedIdentity !== resource.resolvedIdentity) {
|
|
28
68
|
throw new SpawnfileError("validation_error", `Container target ${target.id} declares conflicting workspace resources at ${resource.linkPath}`);
|
|
29
69
|
}
|
|
30
70
|
continue;
|
|
@@ -34,10 +74,33 @@ const dedupeAndAssertResourcePlans = (target, resources) => {
|
|
|
34
74
|
throw new SpawnfileError("validation_error", `Container target ${target.id} declares overlapping workspace resource links ${overlapping.linkPath} and ${resource.linkPath}`);
|
|
35
75
|
}
|
|
36
76
|
byLinkPath.set(resource.linkPath, resource);
|
|
77
|
+
if (resource.kind !== "volume")
|
|
78
|
+
continue;
|
|
79
|
+
const existingVolume = volumesByBackingPath.get(resource.canonicalBackingPath);
|
|
80
|
+
if (existingVolume && existingVolume.id !== resource.id) {
|
|
81
|
+
throw new SpawnfileError("validation_error", `Container target ${target.id} declares workspace resources ${existingVolume.id} and ${resource.id} that resolve to the same backing volume ${resource.canonicalBackingPath}; a declared volume name must be unique within its scope`);
|
|
82
|
+
}
|
|
83
|
+
if (existingVolume) {
|
|
84
|
+
const incompatible = existingVolume.mode !== resource.mode ||
|
|
85
|
+
existingVolume.sharing !== resource.sharing ||
|
|
86
|
+
existingVolume.volumeName !== resource.volumeName ||
|
|
87
|
+
(resource.sharing === "per_agent" && existingVolume.ownerId !== resource.ownerId);
|
|
88
|
+
if (incompatible) {
|
|
89
|
+
throw new SpawnfileError("validation_error", `Container target ${target.id} declares incompatible workspace volume owners or modes at ${resource.canonicalBackingPath}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
volumesByBackingPath.set(resource.canonicalBackingPath, resource);
|
|
94
|
+
}
|
|
95
|
+
const conflictingBackingPath = backingPathByVolumeName.get(resource.volumeName);
|
|
96
|
+
if (conflictingBackingPath && conflictingBackingPath !== resource.canonicalBackingPath) {
|
|
97
|
+
throw new SpawnfileError("validation_error", `Container target ${target.id} workspace volume identity collision`);
|
|
98
|
+
}
|
|
99
|
+
backingPathByVolumeName.set(resource.volumeName, resource.canonicalBackingPath);
|
|
37
100
|
}
|
|
38
101
|
return [...byLinkPath.values()].sort((left, right) => left.linkPath.localeCompare(right.linkPath) || left.id.localeCompare(right.id));
|
|
39
102
|
};
|
|
40
|
-
export const resolveTargetResources = (target, inputs, instancePaths, meta) => {
|
|
103
|
+
export const resolveTargetResources = (target, inputs, instancePaths, meta, planRoot, deploymentLineage = "compile") => {
|
|
41
104
|
const sourceIds = new Set(target.sourceIds ?? []);
|
|
42
105
|
if (sourceIds.size === 0) {
|
|
43
106
|
return [];
|
|
@@ -50,6 +113,35 @@ export const resolveTargetResources = (target, inputs, instancePaths, meta) => {
|
|
|
50
113
|
return mergeWorkspaceResourcePlans(input.value.workspaceResources ?? [], `${target.id}/${input.id}`, {
|
|
51
114
|
targetId: sourceTargetId(target, input, isMergedTarget),
|
|
52
115
|
workspacePath: resolveSourceWorkspacePath(input, instancePaths, meta)
|
|
116
|
+
}).map((resource) => {
|
|
117
|
+
const canonicalBackingPath = path.posix.normalize(resource.backingPath);
|
|
118
|
+
const ownerId = resource.sharing === "per_agent" ? input.id : canonicalBackingPath;
|
|
119
|
+
const resolvedIdentity = `sha256:${digest(JSON.stringify({
|
|
120
|
+
backingPath: canonicalBackingPath,
|
|
121
|
+
kind: resource.kind,
|
|
122
|
+
mode: resource.mode,
|
|
123
|
+
ownerId,
|
|
124
|
+
...(resource.kind === "bundle" ? { archivePath: resource.archivePath, sha256: resource.sha256 } : {}),
|
|
125
|
+
sharing: resource.sharing
|
|
126
|
+
}))}`;
|
|
127
|
+
if (resource.kind !== "volume")
|
|
128
|
+
return { ...resource, backingPath: canonicalBackingPath, canonicalBackingPath, ownerId, resolvedIdentity };
|
|
129
|
+
const pathDigest = digest(canonicalBackingPath);
|
|
130
|
+
return {
|
|
131
|
+
...resource,
|
|
132
|
+
backingPath: canonicalBackingPath,
|
|
133
|
+
canonicalBackingPath,
|
|
134
|
+
ownerId,
|
|
135
|
+
persistentMountId: `workspace-resource-${pathDigest.slice(0, 24)}`,
|
|
136
|
+
replacementSentinel: path.posix.join(canonicalBackingPath, ".spawnfile-resource-identity"),
|
|
137
|
+
resolvedIdentity,
|
|
138
|
+
// Author-declared `name` verbatim (an operator can pre-create or
|
|
139
|
+
// migrate the host volume under exactly that name); otherwise a
|
|
140
|
+
// deployment-stable derived name. Never run-scoped: a fresh
|
|
141
|
+
// NOOPOLIS_RUN_ID must not strand the previous run's state.
|
|
142
|
+
volumeName: resource.name?.trim()
|
|
143
|
+
|| createExclusiveReattachVolumeName(`${planRoot}\0${deploymentLineage}`, `workspace-resource-${pathDigest.slice(0, 24)}`)
|
|
144
|
+
};
|
|
53
145
|
});
|
|
54
146
|
});
|
|
55
147
|
return dedupeAndAssertResourcePlans(target, resources);
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
+
import { VOLUME_BOOTSTRAP_MARKER, VOLUME_BOOTSTRAP_MARKER_CONTENT } from "./containerVolumeBootstrap.js";
|
|
1
2
|
const shellQuote = (value) => `'${value.replace(/'/g, `'\"'\"'`)}'`;
|
|
2
3
|
export const createWorkspaceResourceCommands = (plan) => (plan.resources ?? []).flatMap((resource) => {
|
|
3
4
|
const readonlyFlag = resource.mode === "readonly" ? "readonly" : "mutable";
|
|
4
5
|
if (resource.kind === "volume") {
|
|
6
|
+
const resolved = resource;
|
|
5
7
|
return [
|
|
6
|
-
`prepare_volume_resource ${shellQuote(resource.id)} ${shellQuote(resource.linkPath)} ${shellQuote(resource.backingPath)} ${shellQuote(readonlyFlag)}`
|
|
8
|
+
`prepare_volume_resource ${shellQuote(resource.id)} ${shellQuote(resource.linkPath)} ${shellQuote(resource.backingPath)} ${shellQuote(readonlyFlag)} ${shellQuote(resolved.resolvedIdentity ?? "")}`
|
|
7
9
|
];
|
|
8
10
|
}
|
|
11
|
+
if (resource.kind === "bundle")
|
|
12
|
+
return [
|
|
13
|
+
`prepare_bundle_resource ${shellQuote(resource.id)} ${shellQuote(resource.linkPath)} ${shellQuote(resource.backingPath)} ${shellQuote(resource.archivePath ?? "")} ${shellQuote(resource.sha256 ?? "")}`
|
|
14
|
+
];
|
|
9
15
|
const selectorKind = resource.branch
|
|
10
16
|
? "branch"
|
|
11
17
|
: resource.tag
|
|
@@ -58,15 +64,57 @@ export const createWorkspaceResourceShellFunctions = () => [
|
|
|
58
64
|
' local link_path="$2"',
|
|
59
65
|
' local backing_path="$3"',
|
|
60
66
|
' local mode="$4"',
|
|
67
|
+
' local identity="$5"',
|
|
61
68
|
' mkdir -p "$backing_path"',
|
|
62
69
|
' if [ ! -d "$backing_path" ]; then',
|
|
63
70
|
' echo "Workspace volume resource $id backing path is not a directory: $backing_path" >&2',
|
|
64
71
|
" exit 1",
|
|
65
72
|
" fi",
|
|
73
|
+
' local sentinel="$backing_path/.spawnfile-resource-identity"',
|
|
74
|
+
' if [ -f "$sentinel" ]; then',
|
|
75
|
+
' if [ "$(cat "$sentinel")" != "$identity" ]; then',
|
|
76
|
+
' echo "Workspace volume resource $id replacement sentinel mismatch" >&2',
|
|
77
|
+
" exit 1",
|
|
78
|
+
" fi",
|
|
79
|
+
" else",
|
|
80
|
+
` local bootstrap="$backing_path/${VOLUME_BOOTSTRAP_MARKER}"`,
|
|
81
|
+
` local bootstrap_claim="$backing_path/${VOLUME_BOOTSTRAP_MARKER}.claim"`,
|
|
82
|
+
' local first_entry',
|
|
83
|
+
' first_entry="$(find "$backing_path" -mindepth 1 -maxdepth 1 -print -quit)"',
|
|
84
|
+
' if [ -n "$first_entry" ]; then',
|
|
85
|
+
' if [ "$first_entry" = "$bootstrap" ]; then',
|
|
86
|
+
' mv -T --no-clobber -- "$bootstrap" "$bootstrap_claim"',
|
|
87
|
+
' elif [ "$first_entry" != "$bootstrap_claim" ]; then',
|
|
88
|
+
' echo "Workspace volume resource $id is nonempty without an authenticated replacement sentinel" >&2',
|
|
89
|
+
" exit 1",
|
|
90
|
+
" fi",
|
|
91
|
+
' if [ "$(find "$backing_path" -mindepth 1 -maxdepth 1 ! -name ' + `'${VOLUME_BOOTSTRAP_MARKER}.claim'` + ' -print -quit)" != "" ] || [ -L "$bootstrap_claim" ] || [ ! -f "$bootstrap_claim" ] || [ "$(stat -c "%u:%g:%a:%h" "$bootstrap_claim")" != "${volume_bootstrap_uid}:${volume_bootstrap_gid}:600:1" ] || [ "$(cat "$bootstrap_claim")" != "' + VOLUME_BOOTSTRAP_MARKER_CONTENT + '" ]; then',
|
|
92
|
+
' echo "Workspace volume resource $id bootstrap marker mismatch" >&2',
|
|
93
|
+
" exit 1",
|
|
94
|
+
" fi",
|
|
95
|
+
' rm -- "$bootstrap_claim"',
|
|
96
|
+
" fi",
|
|
97
|
+
' printf "%s\\n" "$identity" > "$sentinel"',
|
|
98
|
+
" fi",
|
|
66
99
|
' mark_readonly_resource "$backing_path" "$mode"',
|
|
67
100
|
' prepare_resource_link "$id" "$link_path" "$backing_path"',
|
|
68
101
|
"}",
|
|
69
102
|
"",
|
|
103
|
+
"prepare_bundle_resource() {",
|
|
104
|
+
' local id="$1" link_path="$2" backing_path="$3" archive="$4" identity="$5"',
|
|
105
|
+
' [ -f "$archive" ] || { echo "Workspace bundle $id archive missing" >&2; exit 1; }',
|
|
106
|
+
' local sentinel="$backing_path/.spawnfile-bundle-identity"',
|
|
107
|
+
' if [ -e "$backing_path" ]; then',
|
|
108
|
+
' [ -f "$sentinel" ] && [ "$(cat "$sentinel")" = "$identity" ] || { echo "Workspace bundle $id identity mismatch" >&2; exit 1; }',
|
|
109
|
+
" else",
|
|
110
|
+
' mkdir -p "$backing_path"',
|
|
111
|
+
' tar --no-same-owner --no-same-permissions -xf "$archive" -C "$backing_path"',
|
|
112
|
+
' printf %s "$identity" > "$sentinel"',
|
|
113
|
+
" fi",
|
|
114
|
+
' mark_readonly_resource "$backing_path" readonly',
|
|
115
|
+
' prepare_resource_link "$id" "$link_path" "$backing_path"',
|
|
116
|
+
"}",
|
|
117
|
+
"",
|
|
70
118
|
"prepare_git_resource() {",
|
|
71
119
|
' local id="$1"',
|
|
72
120
|
' local link_path="$2"',
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ContainerPersistentMountReport } from "../report/index.js";
|
|
2
|
+
import type { CompiledNodeArtifact, RuntimeTargetPlan } from "./containerArtifactsTypes.js";
|
|
3
|
+
import type { CompilePlan } from "./types.js";
|
|
4
|
+
export interface DaimonTelemetryArtifactBundle {
|
|
5
|
+
/** One durable volume per legacy Pi agent, mounted onto its telemetry directory. */
|
|
6
|
+
mounts: ContainerPersistentMountReport[];
|
|
7
|
+
/** Runtime target plan id (e.g. "pi-app") -> { node id -> telemetry persistent mount id
|
|
8
|
+
* }, so `containerArtifacts.ts` can stamp `runtime_instances[].telemetry_mount_ids` and
|
|
9
|
+
* `artifactsExportPlan.ts`'s `planDaimonFiles` can resolve each agent's telemetry volume
|
|
10
|
+
* without re-deriving container paths of its own. */
|
|
11
|
+
telemetryMountIdsByInstance: Map<string, Record<string, string>>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Registers one run-scoped durable volume per legacy Pi agent for its daimon turn/wake
|
|
15
|
+
* causal telemetry directory (`<instanceRoot>/runtime/agents/<slug>/telemetry` — the parent
|
|
16
|
+
* of `causal.jsonl`, see `appCoreSource.ts`'s `runtimeHomePath`/`instanceRoot`), mirroring
|
|
17
|
+
* exactly how `moltnetArtifacts.ts` mounts the Moltnet causal directory (Piece 4b,
|
|
18
|
+
* Decision 21: daimon inner-truth telemetry was container-local — `docker cp` only — until
|
|
19
|
+
* now). Daimon's own write path is untouched: this only makes the HOST side of that same
|
|
20
|
+
* directory a named volume, so `docker rm` no longer discards it.
|
|
21
|
+
*/
|
|
22
|
+
export declare const createDaimonTelemetryArtifacts: (plan: CompilePlan, runtimePlans: RuntimeTargetPlan[], compiledNodes: CompiledNodeArtifact[]) => DaimonTelemetryArtifactBundle;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import path from "node:path/posix";
|
|
2
|
+
import { resolveNoopolisRunId } from "../runtime/index.js";
|
|
3
|
+
import { createPersistentVolumeName } from "./moltnetArtifactPaths.js";
|
|
4
|
+
/** Only the legacy generated Pi application writes this telemetry layout. */
|
|
5
|
+
const PI_TELEMETRY_RUNTIME_NAMES = new Set(["pi"]);
|
|
6
|
+
const createTelemetryMountId = (agentSlug) => `agent-${agentSlug}-daimon-telemetry`;
|
|
7
|
+
/**
|
|
8
|
+
* Registers one run-scoped durable volume per legacy Pi agent for its daimon turn/wake
|
|
9
|
+
* causal telemetry directory (`<instanceRoot>/runtime/agents/<slug>/telemetry` — the parent
|
|
10
|
+
* of `causal.jsonl`, see `appCoreSource.ts`'s `runtimeHomePath`/`instanceRoot`), mirroring
|
|
11
|
+
* exactly how `moltnetArtifacts.ts` mounts the Moltnet causal directory (Piece 4b,
|
|
12
|
+
* Decision 21: daimon inner-truth telemetry was container-local — `docker cp` only — until
|
|
13
|
+
* now). Daimon's own write path is untouched: this only makes the HOST side of that same
|
|
14
|
+
* directory a named volume, so `docker rm` no longer discards it.
|
|
15
|
+
*/
|
|
16
|
+
export const createDaimonTelemetryArtifacts = (plan, runtimePlans, compiledNodes) => {
|
|
17
|
+
// Same run-scoping key as every other durable mount (see
|
|
18
|
+
// moltnetArtifactPaths.ts's createPersistentVolumeName doc comment): present for
|
|
19
|
+
// `spawnfile run`/`up` (which always call ensureNoopolisRunId() first), absent for a
|
|
20
|
+
// bare `spawnfile compile`/`build`, keeping those byte-identical to before this module
|
|
21
|
+
// existed.
|
|
22
|
+
const runId = resolveNoopolisRunId(process.env);
|
|
23
|
+
const agentSlugByNodeId = new Map(compiledNodes
|
|
24
|
+
.filter((node) => node.kind === "agent" && Boolean(node.id))
|
|
25
|
+
.map((node) => [node.id, node.slug]));
|
|
26
|
+
const mounts = [];
|
|
27
|
+
const telemetryMountIdsByInstance = new Map();
|
|
28
|
+
for (const runtimePlan of runtimePlans) {
|
|
29
|
+
if (!PI_TELEMETRY_RUNTIME_NAMES.has(runtimePlan.runtimeName) || !runtimePlan.instancePaths.homePath) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const instanceRoot = runtimePlan.instancePaths.instanceRoot ?? path.dirname(runtimePlan.instancePaths.homePath);
|
|
33
|
+
const mountIdsByNodeId = {};
|
|
34
|
+
for (const nodeId of runtimePlan.sourceIds ?? []) {
|
|
35
|
+
const agentSlug = agentSlugByNodeId.get(nodeId);
|
|
36
|
+
if (!agentSlug) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const mountId = createTelemetryMountId(agentSlug);
|
|
40
|
+
mounts.push({
|
|
41
|
+
id: mountId,
|
|
42
|
+
mount_path: path.join(instanceRoot, "runtime", "agents", agentSlug, "telemetry"),
|
|
43
|
+
reason: `daimon turn/wake causal telemetry for ${agentSlug}`,
|
|
44
|
+
volume_name: createPersistentVolumeName(plan.root, mountId, runId)
|
|
45
|
+
});
|
|
46
|
+
mountIdsByNodeId[nodeId] = mountId;
|
|
47
|
+
}
|
|
48
|
+
if (Object.keys(mountIdsByNodeId).length > 0) {
|
|
49
|
+
telemetryMountIdsByInstance.set(runtimePlan.id, mountIdsByNodeId);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
mounts: mounts.sort((left, right) => left.id.localeCompare(right.id)),
|
|
54
|
+
telemetryMountIdsByInstance
|
|
55
|
+
};
|
|
56
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ContainerPersistentMountReport } from "../report/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Lineage namespace for `spawnfile dev up`.
|
|
4
|
+
*
|
|
5
|
+
* A derived `exclusive-reattach` volume name folds in the deployment lineage,
|
|
6
|
+
* and `dev up` used to delegate straight to `up` with no distinguishing
|
|
7
|
+
* identity — so both defaulted to the lineage `default` and resolved to the
|
|
8
|
+
* SAME host volumes. A dev deployment started while production was stopped
|
|
9
|
+
* therefore attached production's volumes and wrote into live state. That is
|
|
10
|
+
* strictly worse than the loss this branch set out to fix: loss is recoverable
|
|
11
|
+
* from a backup, a dev agent editing production's message store is not.
|
|
12
|
+
*
|
|
13
|
+
* The namespace applies to the lineage only, never to the deployment name, so
|
|
14
|
+
* deployment records, labels, and `spawnfile dev stop --deployment <name>` are
|
|
15
|
+
* unchanged. It also applies regardless of `--deployment`, so `dev up
|
|
16
|
+
* --deployment blue` and `up --deployment blue` still cannot collide.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEV_DEPLOYMENT_LINEAGE_NAMESPACE = "dev";
|
|
19
|
+
/**
|
|
20
|
+
* Combines a lineage namespace with a deployment name. The result is only ever
|
|
21
|
+
* a hash input (`createExclusiveReattachVolumeName`), so any injective
|
|
22
|
+
* encoding works; `\0` cannot occur in a deployment name and therefore cannot
|
|
23
|
+
* be used to forge a collision with a production lineage.
|
|
24
|
+
*/
|
|
25
|
+
export declare const resolveDeploymentLineage: (deploymentName: string, namespace?: string) => string;
|
|
26
|
+
/**
|
|
27
|
+
* An author-declared volume name carries no lineage — that is the point of
|
|
28
|
+
* declaring it, and it is what lets an operator pre-create or migrate the
|
|
29
|
+
* volume. It also means the namespace above cannot protect a declared volume:
|
|
30
|
+
* `dev up` would attach production's `clank-newsroom-store` by that exact name.
|
|
31
|
+
*
|
|
32
|
+
* "I declared a stable host volume name" and "this is a throwaway dev
|
|
33
|
+
* deployment" are contradictory intentions, and the branch's established
|
|
34
|
+
* posture for that situation is to fail closed with a named, explicit
|
|
35
|
+
* override rather than to warn into a scrolling log. So `dev up` refuses,
|
|
36
|
+
* listing the exact volumes it would have attached, and `--allow-declared-volumes`
|
|
37
|
+
* is how an operator says they meant it (a scratch clone of the project, or a
|
|
38
|
+
* deliberate read of real state).
|
|
39
|
+
*/
|
|
40
|
+
export declare const assertNoDeclaredVolumeNames: (mounts: readonly ContainerPersistentMountReport[]) => void;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Lineage namespace for `spawnfile dev up`.
|
|
4
|
+
*
|
|
5
|
+
* A derived `exclusive-reattach` volume name folds in the deployment lineage,
|
|
6
|
+
* and `dev up` used to delegate straight to `up` with no distinguishing
|
|
7
|
+
* identity — so both defaulted to the lineage `default` and resolved to the
|
|
8
|
+
* SAME host volumes. A dev deployment started while production was stopped
|
|
9
|
+
* therefore attached production's volumes and wrote into live state. That is
|
|
10
|
+
* strictly worse than the loss this branch set out to fix: loss is recoverable
|
|
11
|
+
* from a backup, a dev agent editing production's message store is not.
|
|
12
|
+
*
|
|
13
|
+
* The namespace applies to the lineage only, never to the deployment name, so
|
|
14
|
+
* deployment records, labels, and `spawnfile dev stop --deployment <name>` are
|
|
15
|
+
* unchanged. It also applies regardless of `--deployment`, so `dev up
|
|
16
|
+
* --deployment blue` and `up --deployment blue` still cannot collide.
|
|
17
|
+
*/
|
|
18
|
+
export const DEV_DEPLOYMENT_LINEAGE_NAMESPACE = "dev";
|
|
19
|
+
/**
|
|
20
|
+
* Combines a lineage namespace with a deployment name. The result is only ever
|
|
21
|
+
* a hash input (`createExclusiveReattachVolumeName`), so any injective
|
|
22
|
+
* encoding works; `\0` cannot occur in a deployment name and therefore cannot
|
|
23
|
+
* be used to forge a collision with a production lineage.
|
|
24
|
+
*/
|
|
25
|
+
export const resolveDeploymentLineage = (deploymentName, namespace) => namespace ? `${namespace}\0${deploymentName}` : deploymentName;
|
|
26
|
+
/**
|
|
27
|
+
* An author-declared volume name carries no lineage — that is the point of
|
|
28
|
+
* declaring it, and it is what lets an operator pre-create or migrate the
|
|
29
|
+
* volume. It also means the namespace above cannot protect a declared volume:
|
|
30
|
+
* `dev up` would attach production's `clank-newsroom-store` by that exact name.
|
|
31
|
+
*
|
|
32
|
+
* "I declared a stable host volume name" and "this is a throwaway dev
|
|
33
|
+
* deployment" are contradictory intentions, and the branch's established
|
|
34
|
+
* posture for that situation is to fail closed with a named, explicit
|
|
35
|
+
* override rather than to warn into a scrolling log. So `dev up` refuses,
|
|
36
|
+
* listing the exact volumes it would have attached, and `--allow-declared-volumes`
|
|
37
|
+
* is how an operator says they meant it (a scratch clone of the project, or a
|
|
38
|
+
* deliberate read of real state).
|
|
39
|
+
*/
|
|
40
|
+
export const assertNoDeclaredVolumeNames = (mounts) => {
|
|
41
|
+
const declared = [...new Set(mounts.flatMap((mount) => mount.declared_volume_name ? [mount.declared_volume_name] : []))].sort();
|
|
42
|
+
if (declared.length === 0)
|
|
43
|
+
return;
|
|
44
|
+
throw new SpawnfileError("validation_error", `This dev deployment would attach ${declared.length} author-declared volume`
|
|
45
|
+
+ `${declared.length === 1 ? "" : "s"} by name, which a production deployment of `
|
|
46
|
+
+ `this project uses too: ${declared.join(", ")}. A declared name carries no `
|
|
47
|
+
+ "deployment identity, so dev would write into that live state. Remove the "
|
|
48
|
+
+ "declared name, run dev against a copy of the project, or pass "
|
|
49
|
+
+ "--allow-declared-volumes to attach them deliberately.");
|
|
50
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const DOCKER_BUILD_CONTEXT_IGNORE_PATTERNS: readonly ["runtimes/", "spawnfile-report.json", "deployments/"];
|
|
2
|
+
export interface DockerBuildContextFile {
|
|
3
|
+
mode: number;
|
|
4
|
+
path: string;
|
|
5
|
+
size: number;
|
|
6
|
+
}
|
|
7
|
+
export interface DockerBuildContextIgnoreViolation {
|
|
8
|
+
pattern: string;
|
|
9
|
+
source: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const matchesDockerBuildIgnorePattern: (relativePath: string, pattern: string) => boolean;
|
|
12
|
+
export declare const createDockerIgnoreContent: () => string;
|
|
13
|
+
export declare const listDockerBuildContextFiles: (directory: string) => Promise<DockerBuildContextFile[]>;
|
|
14
|
+
export declare const createDockerBuildContextDigest: (directory: string) => Promise<string>;
|
|
15
|
+
export declare const extractDockerBuildContextSources: (dockerfile: string) => string[];
|
|
16
|
+
export declare const findIgnoredDockerBuildSources: (dockerfile: string, patterns?: readonly string[]) => DockerBuildContextIgnoreViolation[];
|