spawnfile 0.1.14 → 0.1.18
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 +60 -159
- package/dist/audit/checksShared.d.ts +1 -1
- package/dist/auth/importers.d.ts +10 -0
- package/dist/auth/importers.js +46 -5
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.js +2 -0
- package/dist/auth/paths.d.ts +1 -1
- package/dist/auth/profileStore.js +13 -10
- package/dist/auth/targetSecretSourceFsIdentity.d.ts +40 -0
- package/dist/auth/targetSecretSourceFsIdentity.js +42 -0
- package/dist/auth/targetSecretSourceFsPublish.d.ts +2 -0
- package/dist/auth/targetSecretSourceFsPublish.js +3 -1
- package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +2 -1
- package/dist/auth/targetSecretSourceFsPublishImmutable.js +104 -71
- package/dist/auth/targetSecretSourceFsRead.js +5 -14
- package/dist/auth/trainingAuth.d.ts +21 -0
- package/dist/auth/trainingAuth.js +86 -0
- package/dist/auth/trainingGrokWriteback.d.ts +4 -0
- package/dist/auth/trainingGrokWriteback.js +119 -0
- package/dist/auth/trainingGrokWritebackLock.d.ts +5 -0
- package/dist/auth/trainingGrokWritebackLock.js +56 -0
- package/dist/auth/types.d.ts +1 -1
- package/dist/cli/authCommands.d.ts +1 -1
- package/dist/cli/authCommands.js +18 -5
- 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.js +17 -0
- package/dist/cli/composedLifecycleContractSet.d.ts +21 -0
- package/dist/cli/composedLifecycleContractSet.js +204 -0
- package/dist/cli/devCommands.js +6 -2
- package/dist/cli/downCommand.d.ts +2 -0
- package/dist/cli/downCommand.js +22 -8
- package/dist/cli/envFileOption.d.ts +18 -0
- package/dist/cli/envFileOption.js +20 -0
- package/dist/cli/evidenceExportHelperCommand.d.ts +13 -0
- package/dist/cli/evidenceExportHelperCommand.js +51 -0
- package/dist/cli/index.js +12 -3
- package/dist/cli/lifecycleCommands.d.ts +1 -1
- package/dist/cli/lifecycleCommands.js +3 -1
- package/dist/cli/lifecycleMachine.d.ts +7 -1
- package/dist/cli/lifecycleMachine.js +2 -2
- package/dist/cli/lifecyclePlan.d.ts +1 -0
- package/dist/cli/lifecyclePlan.js +2 -0
- package/dist/cli/paideiaDelegation.d.ts +18 -0
- package/dist/cli/paideiaDelegation.js +211 -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/recordCommands.d.ts +17 -0
- package/dist/cli/recordCommands.js +43 -0
- package/dist/cli/releaseCommand.d.ts +6 -0
- package/dist/cli/releaseCommand.js +91 -0
- package/dist/cli/runCli.d.ts +19 -3
- package/dist/cli/runCli.js +43 -10
- package/dist/cli/runPublishCommands.js +5 -3
- package/dist/cli/targetCommands.d.ts +4 -7
- package/dist/cli/targetCommands.js +16 -46
- 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/targetDefaultAuthorities.d.ts +2 -0
- package/dist/cli/targetDefaultAuthorities.js +3 -0
- package/dist/cli/targetDefaultConfig.d.ts +7 -0
- package/dist/cli/targetDefaultConfig.js +22 -5
- package/dist/cli/targetDefaultConfigStdin.js +7 -1
- package/dist/cli/targetDefaultHandlerFactory.js +23 -2
- package/dist/cli/targetDefaultHandlers.d.ts +2 -2
- package/dist/cli/targetProductionCommands.d.ts +5 -0
- package/dist/cli/targetProductionCommands.js +45 -0
- package/dist/cli/trainCommand.d.ts +3 -0
- package/dist/cli/trainCommand.js +114 -0
- package/dist/cli/upCommand.js +40 -7
- package/dist/cli/upLifecycleRecovery.d.ts +2 -2
- package/dist/cli/upLifecycleRecovery.js +188 -44
- 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/volumeCommands.d.ts +8 -0
- package/dist/cli/volumeCommands.js +53 -0
- package/dist/cli/workspaceResourceMigrationCommand.d.ts +8 -0
- package/dist/cli/workspaceResourceMigrationCommand.js +36 -0
- package/dist/compiler/agentNodeMerge.js +3 -2
- package/dist/compiler/buildCompilePlan.js +4 -0
- package/dist/compiler/buildCompilePlanAgent.js +3 -1
- package/dist/compiler/buildCompilePlanTeams.d.ts +1 -1
- package/dist/compiler/buildCompilePlanTeams.js +6 -1
- package/dist/compiler/buildCompilePlanTraversal.js +2 -0
- package/dist/compiler/buildCompilePlanTraversalHelpers.d.ts +2 -2
- package/dist/compiler/buildCompilePlanTraversalHelpers.js +4 -3
- package/dist/compiler/buildProject.d.ts +10 -0
- package/dist/compiler/buildProject.js +14 -2
- package/dist/compiler/cleanCompileOutput.d.ts +2 -0
- package/dist/compiler/cleanCompileOutput.js +14 -0
- package/dist/compiler/compilePlanHelpers.js +5 -0
- package/dist/compiler/compileProject.d.ts +12 -0
- package/dist/compiler/compileProject.js +33 -3
- package/dist/compiler/compileProjectSupport.js +9 -0
- package/dist/compiler/containerArtifactSummaries.js +1 -0
- package/dist/compiler/containerArtifacts.d.ts +7 -5
- package/dist/compiler/containerArtifacts.js +77 -41
- package/dist/compiler/containerArtifactsPlans.d.ts +1 -1
- package/dist/compiler/containerArtifactsPlans.js +31 -7
- package/dist/compiler/containerArtifactsRender.d.ts +2 -1
- package/dist/compiler/containerArtifactsRender.js +91 -58
- package/dist/compiler/containerArtifactsTypes.d.ts +15 -0
- package/dist/compiler/containerBackedMountRender.d.ts +56 -0
- package/dist/compiler/containerBackedMountRender.js +101 -0
- package/dist/compiler/containerDaimonBrokerRender.d.ts +114 -0
- package/dist/compiler/containerDaimonBrokerRender.js +194 -0
- package/dist/compiler/containerDaimonGrokTaskClock.d.ts +5 -0
- package/dist/compiler/containerDaimonGrokTaskClock.js +29 -0
- package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +38 -0
- package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +130 -0
- package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +197 -0
- package/dist/compiler/containerDaimonGrokWorkerRender.js +281 -0
- package/dist/compiler/containerDaimonOwnershipGuardRender.d.ts +25 -0
- package/dist/compiler/containerDaimonOwnershipGuardRender.js +204 -0
- package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +24 -0
- package/dist/compiler/containerDaimonUidEntrypointRender.js +291 -0
- package/dist/compiler/containerEntrypointRender.d.ts +7 -0
- package/dist/compiler/containerEntrypointRender.js +28 -22
- 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/containerTargetResources.d.ts +32 -1
- package/dist/compiler/containerTargetResources.js +115 -15
- package/dist/compiler/containerVolumeBootstrap.d.ts +3 -0
- package/dist/compiler/containerVolumeBootstrap.js +3 -0
- package/dist/compiler/containerWorkspaceResourceRender.js +52 -1
- package/dist/compiler/daimonTelemetryArtifacts.d.ts +2 -2
- package/dist/compiler/daimonTelemetryArtifacts.js +5 -10
- package/dist/compiler/deploymentLineage.d.ts +40 -0
- package/dist/compiler/deploymentLineage.js +50 -0
- package/dist/compiler/index.d.ts +5 -0
- package/dist/compiler/index.js +5 -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/mcpPlaceholders.d.ts +11 -0
- package/dist/compiler/mcpPlaceholders.js +58 -0
- package/dist/compiler/mcpServerInheritance.d.ts +18 -0
- package/dist/compiler/mcpServerInheritance.js +43 -0
- package/dist/compiler/memoryArtifacts.d.ts +1 -1
- package/dist/compiler/memoryArtifacts.js +108 -32
- package/dist/compiler/modelEnv.d.ts +5 -0
- package/dist/compiler/modelEnv.js +8 -2
- package/dist/compiler/moltnetArtifactPaths.d.ts +17 -12
- package/dist/compiler/moltnetArtifactPaths.js +17 -15
- package/dist/compiler/moltnetArtifactTypes.d.ts +11 -0
- package/dist/compiler/moltnetArtifacts.d.ts +1 -1
- package/dist/compiler/moltnetArtifacts.js +53 -12
- package/dist/compiler/moltnetBinaries.d.ts +16 -4
- package/dist/compiler/moltnetBinaries.js +46 -6
- package/dist/compiler/moltnetClientConfig.js +1 -1
- package/dist/compiler/moltnetConfigLowering.d.ts +3 -1
- package/dist/compiler/moltnetConfigLowering.js +30 -6
- package/dist/compiler/moltnetNodeConfig.js +1 -1
- package/dist/compiler/moltnetReleaseAuthority.d.ts +24 -1
- package/dist/compiler/moltnetReleaseAuthority.js +33 -4
- package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -1
- package/dist/compiler/moltnetRepresentativeResolution.js +2 -2
- package/dist/compiler/moltnetResolution.js +9 -15
- package/dist/compiler/moltnetRoomMemberships.js +20 -5
- 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.js +19 -0
- package/dist/compiler/organizationExternalParticipants.d.ts +3 -0
- package/dist/compiler/organizationExternalParticipants.js +176 -0
- package/dist/compiler/organizationIdentity.d.ts +3 -9
- package/dist/compiler/organizationIdentity.js +37 -270
- package/dist/compiler/organizationIdentityGraph.d.ts +15 -0
- package/dist/compiler/organizationIdentityGraph.js +115 -0
- package/dist/compiler/organizationReadyEvidence.d.ts +8 -0
- package/dist/compiler/organizationReadyEvidence.js +23 -3
- package/dist/compiler/preflightCompilePlan.d.ts +9 -0
- package/dist/compiler/preflightCompilePlan.js +38 -0
- package/dist/compiler/recordingAgentFacts.d.ts +4 -0
- package/dist/compiler/recordingAgentFacts.js +35 -0
- package/dist/compiler/recordingCapability.d.ts +4 -0
- package/dist/compiler/recordingCapability.js +22 -0
- package/dist/compiler/recordingReport.d.ts +4 -0
- package/dist/compiler/recordingReport.js +18 -0
- package/dist/compiler/runProject.d.ts +6 -3
- package/dist/compiler/runProject.js +34 -6
- package/dist/compiler/runProjectAuth.d.ts +3 -1
- package/dist/compiler/runProjectAuth.js +19 -3
- package/dist/compiler/runProjectDaimonCodexDocker.d.ts +3 -0
- package/dist/compiler/runProjectDaimonCodexDocker.js +36 -0
- package/dist/compiler/runProjectDocker.d.ts +8 -4
- package/dist/compiler/runProjectDocker.js +43 -18
- 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.js +1 -1
- package/dist/compiler/surfaces.d.ts +1 -2
- package/dist/compiler/surfaces.js +0 -1
- package/dist/compiler/syncProjectAuth.js +2 -1
- package/dist/compiler/training/broker/clockProbe.d.ts +6 -0
- package/dist/compiler/training/broker/clockProbe.js +27 -0
- package/dist/compiler/training/broker/declaration.d.ts +47 -0
- package/dist/compiler/training/broker/declaration.js +57 -0
- package/dist/compiler/training/broker/entrypoint.d.ts +39 -0
- package/dist/compiler/training/broker/entrypoint.js +126 -0
- package/dist/compiler/training/broker/evaluatorSecrets.d.ts +2 -0
- package/dist/compiler/training/broker/evaluatorSecrets.js +60 -0
- package/dist/compiler/training/broker/index.d.ts +11 -0
- package/dist/compiler/training/broker/index.js +11 -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 +236 -0
- package/dist/compiler/training/broker/paths.js +249 -0
- package/dist/compiler/training/broker/processes.d.ts +51 -0
- package/dist/compiler/training/broker/processes.js +102 -0
- package/dist/compiler/training/broker/projection.d.ts +52 -0
- package/dist/compiler/training/broker/projection.js +88 -0
- package/dist/compiler/training/broker/provisioning.d.ts +78 -0
- package/dist/compiler/training/broker/provisioning.js +231 -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 +43 -0
- package/dist/compiler/training/broker/registration.js +110 -0
- package/dist/compiler/training/broker/reset.d.ts +9 -0
- package/dist/compiler/training/broker/reset.js +71 -0
- package/dist/compiler/training/broker/runtime.d.ts +22 -0
- package/dist/compiler/training/broker/runtime.js +127 -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 +108 -0
- package/dist/compiler/training/broker/supervisor.js +172 -0
- package/dist/compiler/training/broker/taskClock.d.ts +5 -0
- package/dist/compiler/training/broker/taskClock.js +41 -0
- package/dist/compiler/training/compiledAgent.d.ts +21 -0
- package/dist/compiler/training/compiledAgent.js +62 -0
- package/dist/compiler/training/container/contract.d.ts +54 -0
- package/dist/compiler/training/container/contract.js +51 -0
- package/dist/compiler/training/container/evaluators.d.ts +48 -0
- package/dist/compiler/training/container/evaluators.js +50 -0
- package/dist/compiler/training/container/grokWriteback.d.ts +8 -0
- package/dist/compiler/training/container/grokWriteback.js +26 -0
- package/dist/compiler/training/container/index.d.ts +5 -0
- package/dist/compiler/training/container/index.js +3 -0
- package/dist/compiler/training/container/launch.d.ts +21 -0
- package/dist/compiler/training/container/launch.js +264 -0
- package/dist/compiler/training/container/nativeSlots.d.ts +14 -0
- package/dist/compiler/training/container/nativeSlots.js +13 -0
- package/dist/compiler/training/container/outputCopy.d.ts +2 -0
- package/dist/compiler/training/container/outputCopy.js +72 -0
- package/dist/compiler/training/container/outputVolume.d.ts +27 -0
- package/dist/compiler/training/container/outputVolume.js +161 -0
- package/dist/compiler/training/container/prepare.d.ts +10 -0
- package/dist/compiler/training/container/prepare.js +125 -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 +38 -0
- package/dist/compiler/training/container/security.js +68 -0
- package/dist/compiler/training/container/subjectIsolation.d.ts +5 -0
- package/dist/compiler/training/container/subjectIsolation.js +15 -0
- package/dist/compiler/training/context.d.ts +15 -0
- package/dist/compiler/training/context.js +93 -0
- package/dist/compiler/training/contract.d.ts +144 -0
- package/dist/compiler/training/contract.js +36 -0
- package/dist/compiler/training/execution.d.ts +417 -0
- package/dist/compiler/training/execution.js +160 -0
- package/dist/compiler/training/index.d.ts +12 -0
- package/dist/compiler/training/index.js +10 -0
- package/dist/compiler/training/moments.d.ts +80 -0
- package/dist/compiler/training/moments.js +118 -0
- package/dist/compiler/training/output.d.ts +2 -0
- package/dist/compiler/training/output.js +20 -0
- package/dist/compiler/training/plan/contract.d.ts +287 -0
- package/dist/compiler/training/plan/contract.js +49 -0
- package/dist/compiler/training/plan/index.d.ts +5 -0
- package/dist/compiler/training/plan/index.js +4 -0
- package/dist/compiler/training/plan/load.d.ts +9 -0
- package/dist/compiler/training/plan/load.js +153 -0
- package/dist/compiler/training/plan/references.d.ts +19 -0
- package/dist/compiler/training/plan/references.js +57 -0
- package/dist/compiler/training/plan/resolve.d.ts +4 -0
- package/dist/compiler/training/plan/resolve.js +73 -0
- package/dist/compiler/training/plan/targets.d.ts +11 -0
- package/dist/compiler/training/plan/targets.js +71 -0
- package/dist/compiler/training/plan/types.d.ts +36 -0
- package/dist/compiler/training/plan/types.js +1 -0
- package/dist/compiler/training/preparation/assets/Dockerfile +109 -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 +45 -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 +207 -0
- package/dist/compiler/training/preparation/contract.js +113 -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 +29 -0
- package/dist/compiler/training/preparation/files.js +146 -0
- package/dist/compiler/training/preparation/image.d.ts +28 -0
- package/dist/compiler/training/preparation/image.js +107 -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 +24 -0
- package/dist/compiler/training/preparation/inputs.js +101 -0
- package/dist/compiler/training/preparation/prepare.d.ts +38 -0
- package/dist/compiler/training/preparation/prepare.js +223 -0
- package/dist/compiler/training/preparation/scratch.d.ts +8 -0
- package/dist/compiler/training/preparation/scratch.js +114 -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 +840 -0
- package/dist/compiler/training/repair/contract.js +33 -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 +382 -0
- package/dist/compiler/training/repair/prepare.js +78 -0
- package/dist/compiler/training/repair/witness.d.ts +352 -0
- package/dist/compiler/training/repair/witness.js +48 -0
- package/dist/compiler/training/resolution.d.ts +25 -0
- package/dist/compiler/training/resolution.js +69 -0
- package/dist/compiler/training/rewind/contract.d.ts +321 -0
- package/dist/compiler/training/rewind/contract.js +39 -0
- package/dist/compiler/training/rewind/deployedResource.d.ts +22 -0
- package/dist/compiler/training/rewind/deployedResource.js +19 -0
- package/dist/compiler/training/rewind/feed.d.ts +12 -0
- package/dist/compiler/training/rewind/feed.js +182 -0
- package/dist/compiler/training/rewind/feedContent.d.ts +6 -0
- package/dist/compiler/training/rewind/feedContent.js +38 -0
- package/dist/compiler/training/rewind/git.d.ts +8 -0
- package/dist/compiler/training/rewind/git.js +159 -0
- package/dist/compiler/training/rewind/gitArchive.d.ts +2 -0
- package/dist/compiler/training/rewind/gitArchive.js +7 -0
- package/dist/compiler/training/rewind/gitHistory.d.ts +3 -0
- package/dist/compiler/training/rewind/gitHistory.js +55 -0
- package/dist/compiler/training/rewind/gitProcess.d.ts +19 -0
- package/dist/compiler/training/rewind/gitProcess.js +81 -0
- package/dist/compiler/training/rewind/gitTree.d.ts +14 -0
- package/dist/compiler/training/rewind/gitTree.js +90 -0
- package/dist/compiler/training/rewind/history.d.ts +28 -0
- package/dist/compiler/training/rewind/history.js +239 -0
- package/dist/compiler/training/rewind/index.d.ts +18 -0
- package/dist/compiler/training/rewind/index.js +15 -0
- package/dist/compiler/training/rewind/inputs.d.ts +9 -0
- package/dist/compiler/training/rewind/inputs.js +67 -0
- package/dist/compiler/training/rewind/instant.d.ts +4 -0
- package/dist/compiler/training/rewind/instant.js +24 -0
- package/dist/compiler/training/rewind/leakCheck.d.ts +10 -0
- package/dist/compiler/training/rewind/leakCheck.js +56 -0
- package/dist/compiler/training/rewind/leakFeed.d.ts +5 -0
- package/dist/compiler/training/rewind/leakFeed.js +25 -0
- package/dist/compiler/training/rewind/leakFiles.d.ts +10 -0
- package/dist/compiler/training/rewind/leakFiles.js +106 -0
- package/dist/compiler/training/rewind/leakGit.d.ts +3 -0
- package/dist/compiler/training/rewind/leakGit.js +78 -0
- package/dist/compiler/training/rewind/leakGitPayload.d.ts +4 -0
- package/dist/compiler/training/rewind/leakGitPayload.js +57 -0
- package/dist/compiler/training/rewind/leakInputs.d.ts +7 -0
- package/dist/compiler/training/rewind/leakInputs.js +135 -0
- package/dist/compiler/training/rewind/leakLayout.d.ts +2 -0
- package/dist/compiler/training/rewind/leakLayout.js +17 -0
- package/dist/compiler/training/rewind/leakProvenance.d.ts +3 -0
- package/dist/compiler/training/rewind/leakProvenance.js +88 -0
- package/dist/compiler/training/rewind/materialize.d.ts +136 -0
- package/dist/compiler/training/rewind/materialize.js +212 -0
- package/dist/compiler/training/rewind/memory.d.ts +10 -0
- package/dist/compiler/training/rewind/memory.js +84 -0
- package/dist/compiler/training/rewind/memorySchemas.d.ts +87 -0
- package/dist/compiler/training/rewind/memorySchemas.js +50 -0
- package/dist/compiler/training/rewind/moltnet.d.ts +2 -0
- package/dist/compiler/training/rewind/moltnet.js +54 -0
- package/dist/compiler/training/rewind/moltnetJson.d.ts +13 -0
- package/dist/compiler/training/rewind/moltnetJson.js +180 -0
- package/dist/compiler/training/rewind/moltnetSchemas.d.ts +1226 -0
- package/dist/compiler/training/rewind/moltnetSchemas.js +75 -0
- package/dist/compiler/training/rewind/moltnetSqlite.d.ts +31 -0
- package/dist/compiler/training/rewind/moltnetSqlite.js +192 -0
- package/dist/compiler/training/rewind/moltnetSqliteData.d.ts +10 -0
- package/dist/compiler/training/rewind/moltnetSqliteData.js +113 -0
- package/dist/compiler/training/rewind/recordInput.d.ts +40 -0
- package/dist/compiler/training/rewind/recordInput.js +49 -0
- package/dist/compiler/training/rewind/recordedBundle.d.ts +4 -0
- package/dist/compiler/training/rewind/recordedBundle.js +58 -0
- package/dist/compiler/training/rewind/recordedCommit.d.ts +2 -0
- package/dist/compiler/training/rewind/recordedCommit.js +10 -0
- package/dist/compiler/training/rewind/select.d.ts +18 -0
- package/dist/compiler/training/rewind/select.js +64 -0
- package/dist/compiler/training/rewind/snapshotManifest.d.ts +42 -0
- package/dist/compiler/training/rewind/snapshotManifest.js +134 -0
- package/dist/compiler/training/rewind/taskClock.d.ts +12 -0
- package/dist/compiler/training/rewind/taskClock.js +40 -0
- package/dist/compiler/training/rewind/timestamps.d.ts +4 -0
- package/dist/compiler/training/rewind/timestamps.js +26 -0
- package/dist/compiler/training/rewind/types.d.ts +43 -0
- package/dist/compiler/training/rewind/types.js +1 -0
- package/dist/compiler/training/rewind/volumes.d.ts +12 -0
- package/dist/compiler/training/rewind/volumes.js +58 -0
- package/dist/compiler/training/selection.d.ts +7 -0
- package/dist/compiler/training/selection.js +15 -0
- package/dist/compiler/types.d.ts +7 -2
- package/dist/compiler/upProject.d.ts +27 -1
- package/dist/compiler/upProject.js +135 -180
- package/dist/compiler/upProjectHandoff.d.ts +62 -0
- package/dist/compiler/upProjectHandoff.js +204 -0
- package/dist/compiler/upReceipt.js +49 -4
- package/dist/compiler/updateProjectModels.js +1 -0
- package/dist/compiler/view/types.d.ts +1 -1
- package/dist/compiler/workspaceBundleArtifacts.d.ts +18 -0
- package/dist/compiler/workspaceBundleArtifacts.js +155 -0
- package/dist/compiler/workspaceBundleCache.d.ts +23 -0
- package/dist/compiler/workspaceBundleCache.js +79 -0
- package/dist/compiler/workspaceBundleDependencies.d.ts +21 -0
- package/dist/compiler/workspaceBundleDependencies.js +122 -0
- package/dist/compiler/workspaceBundleFiles.d.ts +51 -0
- package/dist/compiler/workspaceBundleFiles.js +251 -0
- package/dist/compiler/workspaceBundleGenerated.d.ts +25 -0
- package/dist/compiler/workspaceBundleGenerated.js +103 -0
- package/dist/compiler/workspaceBundleGit.d.ts +64 -0
- package/dist/compiler/workspaceBundleGit.js +154 -0
- package/dist/compiler/workspaceBundleKey.d.ts +34 -0
- package/dist/compiler/workspaceBundleKey.js +17 -0
- package/dist/compiler/workspaceBundleResolve.d.ts +56 -0
- package/dist/compiler/workspaceBundleResolve.js +144 -0
- package/dist/compiler/workspaceBundleRun.d.ts +41 -0
- package/dist/compiler/workspaceBundleRun.js +79 -0
- package/dist/compiler/workspaceBundleTar.d.ts +47 -0
- package/dist/compiler/workspaceBundleTar.js +140 -0
- package/dist/compiler/workspaceBundleTree.d.ts +15 -0
- package/dist/compiler/workspaceBundleTree.js +58 -0
- package/dist/compiler/workspaceGitFetch.d.ts +41 -0
- package/dist/compiler/workspaceGitFetch.js +155 -0
- package/dist/compiler/workspaceGitPins.d.ts +33 -0
- package/dist/compiler/workspaceGitPins.js +127 -0
- package/dist/compiler/workspaceResources.d.ts +9 -2
- package/dist/compiler/workspaceResources.js +39 -7
- package/dist/deployment/activation.d.ts +3 -0
- package/dist/deployment/activation.js +12 -0
- package/dist/deployment/artifactsExportPlan.js +51 -1
- 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/candidateRecording.d.ts +8 -0
- package/dist/deployment/candidateRecording.js +22 -0
- package/dist/deployment/dockerLogs.js +4 -1
- package/dist/deployment/dockerManager.d.ts +5 -3
- package/dist/deployment/dockerManager.js +21 -5
- package/dist/deployment/dockerProbeGateway.d.ts +17 -0
- package/dist/deployment/dockerProbeGateway.js +17 -2
- package/dist/deployment/downDeployment.d.ts +7 -0
- package/dist/deployment/downDeployment.js +114 -9
- package/dist/deployment/downReceiptTypes.d.ts +17 -2
- package/dist/deployment/downReceiptTypes.js +17 -2
- package/dist/deployment/homeStore.d.ts +9 -1
- package/dist/deployment/homeStore.js +16 -53
- package/dist/deployment/index.d.ts +10 -0
- package/dist/deployment/index.js +10 -0
- package/dist/deployment/lifecycleCompletionContracts.d.ts +66 -0
- package/dist/deployment/lifecycleCompletionContracts.js +34 -0
- package/dist/deployment/lifecycleCompletionPaths.d.ts +4 -1
- package/dist/deployment/lifecycleCompletionPaths.js +3 -0
- package/dist/deployment/lifecycleCompletionPublication.d.ts +2 -0
- package/dist/deployment/lifecycleCompletionPublication.js +18 -4
- package/dist/deployment/lifecycleCompletionStore.d.ts +1 -1
- package/dist/deployment/lifecycleCompletionStore.js +7 -7
- 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.js +82 -27
- package/dist/deployment/organizationHandoffAuthorityFsElection.d.ts +21 -0
- package/dist/deployment/organizationHandoffAuthorityFsElection.js +57 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorker.js +254 -108
- package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.d.ts +1 -0
- package/dist/deployment/organizationHandoffAuthorityFsWorkerStall.fixture.js +16 -0
- package/dist/deployment/organizationHandoffAuthorityStore.js +14 -7
- package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +2 -2
- package/dist/deployment/organizationHandoffAuthorityTypes.js +2 -1
- package/dist/deployment/organizationReady.d.ts +2 -0
- package/dist/deployment/organizationReady.js +36 -4
- package/dist/deployment/pidLock.d.ts +25 -0
- package/dist/deployment/pidLock.js +81 -0
- package/dist/deployment/productStateClone.d.ts +43 -0
- package/dist/deployment/productStateClone.js +319 -0
- package/dist/deployment/record.d.ts +85 -1
- package/dist/deployment/record.js +11 -5
- package/dist/deployment/recordPublication.d.ts +15 -0
- package/dist/deployment/recordPublication.js +76 -0
- package/dist/deployment/recordedMemoryRetention.d.ts +18 -0
- package/dist/deployment/recordedMemoryRetention.js +27 -0
- package/dist/deployment/resourceLog.d.ts +140 -0
- package/dist/deployment/resourceLog.js +78 -0
- package/dist/deployment/upLifecycleRecoveryState.d.ts +23 -0
- package/dist/deployment/upLifecycleRecoveryState.js +12 -0
- package/dist/deployment/upReceiptTypes.d.ts +32 -6
- package/dist/deployment/upReceiptTypes.js +29 -2
- 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 +9 -0
- package/dist/distribution/buildDistributionReport.d.ts +3 -0
- package/dist/distribution/buildDistributionReport.js +5 -0
- package/dist/distribution/consumeImage.d.ts +5 -0
- package/dist/distribution/consumeImage.js +115 -98
- package/dist/distribution/consumeImageDaimonDocker.d.ts +3 -0
- package/dist/distribution/consumeImageDaimonDocker.js +45 -0
- package/dist/distribution/consumeImageLifecycle.d.ts +20 -0
- package/dist/distribution/consumeImageLifecycle.js +242 -0
- package/dist/distribution/consumeImageSupport.d.ts +19 -0
- package/dist/distribution/consumeImageSupport.js +40 -0
- package/dist/distribution/distributionReportSchema.d.ts +58 -1
- package/dist/distribution/distributionReportSchema.js +35 -2
- 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 +1 -1
- package/dist/distribution/index.js +1 -1
- package/dist/distribution/preflight.js +5 -1
- package/dist/distribution/renderImageInterface.js +1 -1
- package/dist/distribution/types.d.ts +29 -1
- package/dist/distribution/types.js +3 -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/durableWrite.d.ts +10 -0
- package/dist/filesystem/durableWrite.js +87 -0
- package/dist/filesystem/index.d.ts +2 -0
- package/dist/filesystem/index.js +2 -0
- package/dist/filesystem/io.d.ts +2 -0
- package/dist/filesystem/io.js +16 -1
- package/dist/filesystem/retainedJsonl.d.ts +23 -0
- package/dist/filesystem/retainedJsonl.js +123 -0
- package/dist/manifest/commandSchemas.d.ts +5 -0
- package/dist/manifest/commandSchemas.js +5 -0
- package/dist/manifest/executionSchemas.d.ts +47 -0
- package/dist/manifest/executionSchemas.js +31 -2
- package/dist/manifest/index.d.ts +2 -0
- package/dist/manifest/index.js +2 -0
- package/dist/manifest/loadManifest.js +3 -26
- package/dist/manifest/mcpSchemas.d.ts +62 -0
- package/dist/manifest/mcpSchemas.js +57 -8
- package/dist/manifest/memorySchemas.d.ts +1 -1
- package/dist/manifest/memorySchemas.js +1 -1
- package/dist/manifest/parseManifest.d.ts +7 -0
- package/dist/manifest/parseManifest.js +65 -0
- package/dist/manifest/renderSpawnfile.js +4 -1
- package/dist/manifest/renderSpawnfileNetworks.js +11 -0
- package/dist/manifest/renderSpawnfileWorkspace.js +10 -1
- package/dist/manifest/scheduleSchemas.d.ts +3 -1
- package/dist/manifest/scheduleSchemas.js +91 -5
- package/dist/manifest/schemas.d.ts +1419 -120
- package/dist/manifest/schemas.js +19 -6
- package/dist/manifest/teamNetworkAccessSchemas.d.ts +5 -1
- package/dist/manifest/teamNetworkAccessSchemas.js +11 -0
- package/dist/manifest/teamNetworkAuthSchemas.d.ts +1 -1
- package/dist/manifest/teamNetworkSchemas.d.ts +18 -4
- package/dist/manifest/teamNetworkSchemas.js +19 -1
- package/dist/manifest/teamNetworkServerSchemas.d.ts +8 -3
- package/dist/manifest/teamNetworkServerSchemas.js +18 -2
- package/dist/manifest/trainingDataSchemas.d.ts +357 -0
- package/dist/manifest/trainingDataSchemas.js +31 -0
- package/dist/manifest/trainingSchemas.d.ts +49 -0
- package/dist/manifest/trainingSchemas.js +44 -0
- package/dist/manifest/volumeFeedSchemas.d.ts +52 -0
- package/dist/manifest/volumeFeedSchemas.js +104 -0
- package/dist/manifest/workspaceSchemas.d.ts +194 -1
- package/dist/manifest/workspaceSchemas.js +117 -2
- package/dist/recording/compose.d.ts +3 -0
- package/dist/recording/compose.js +93 -0
- package/dist/recording/deployment.d.ts +15 -0
- package/dist/recording/deployment.js +38 -0
- package/dist/recording/history.d.ts +16 -0
- package/dist/recording/history.js +47 -0
- package/dist/recording/index.d.ts +9 -0
- package/dist/recording/index.js +9 -0
- package/dist/recording/moment.d.ts +61 -0
- package/dist/recording/moment.js +36 -0
- package/dist/recording/parse.d.ts +15 -0
- package/dist/recording/parse.js +74 -0
- package/dist/recording/read.d.ts +8 -0
- package/dist/recording/read.js +61 -0
- package/dist/recording/store.d.ts +10 -0
- package/dist/recording/store.js +94 -0
- package/dist/recording/sync.d.ts +24 -0
- package/dist/recording/sync.js +126 -0
- package/dist/recording/types.d.ts +45 -0
- package/dist/recording/types.js +2 -0
- package/dist/release/drainControl.d.ts +54 -0
- package/dist/release/drainControl.js +137 -0
- package/dist/release/drainPhase.d.ts +37 -0
- package/dist/release/drainPhase.js +161 -0
- package/dist/release/index.d.ts +11 -0
- package/dist/release/index.js +11 -0
- package/dist/release/ledger.d.ts +75 -0
- package/dist/release/ledger.js +111 -0
- package/dist/release/notify.d.ts +58 -0
- package/dist/release/notify.js +126 -0
- package/dist/release/pending.d.ts +35 -0
- package/dist/release/pending.js +60 -0
- package/dist/release/postDeploy.d.ts +32 -0
- package/dist/release/postDeploy.js +62 -0
- package/dist/release/releaseDefaults.d.ts +9 -0
- package/dist/release/releaseDefaults.js +115 -0
- package/dist/release/releaseDocker.d.ts +38 -0
- package/dist/release/releaseDocker.js +94 -0
- package/dist/release/releaseTypes.d.ts +94 -0
- package/dist/release/releaseTypes.js +1 -0
- package/dist/release/runRelease.d.ts +9 -0
- package/dist/release/runRelease.js +218 -0
- package/dist/release/swap.d.ts +23 -0
- package/dist/release/swap.js +55 -0
- package/dist/release/types.d.ts +50 -0
- package/dist/release/types.js +29 -0
- package/dist/report/index.d.ts +1 -0
- package/dist/report/index.js +1 -0
- package/dist/report/recording.d.ts +57 -0
- package/dist/report/recording.js +26 -0
- package/dist/report/types.d.ts +92 -4
- package/dist/runtime/common.d.ts +28 -1
- package/dist/runtime/common.js +33 -3
- package/dist/runtime/container.js +46 -35
- package/dist/runtime/daimon/adapter.d.ts +14 -0
- package/dist/runtime/daimon/adapter.js +254 -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 +29 -0
- package/dist/runtime/daimon/config.js +321 -0
- package/dist/runtime/daimon/contract-manifest.json +1 -0
- package/dist/runtime/daimon/contract-manifest.sha256 +1 -0
- package/dist/runtime/daimon/contractManifest.d.ts +346 -0
- package/dist/runtime/daimon/contractManifest.js +335 -0
- package/dist/runtime/daimon/grokModel.d.ts +19 -0
- package/dist/runtime/daimon/grokModel.js +33 -0
- package/dist/runtime/daimon/grokTurnLimits.d.ts +25 -0
- package/dist/runtime/daimon/grokTurnLimits.js +51 -0
- package/dist/runtime/daimon/grokWorkerConfigBytes.d.ts +43 -0
- package/dist/runtime/daimon/grokWorkerConfigBytes.js +53 -0
- package/dist/runtime/daimon/grokWorkerContract.d.ts +27 -0
- package/dist/runtime/daimon/grokWorkerContract.js +60 -0
- package/dist/runtime/daimon/memory.d.ts +57 -0
- package/dist/runtime/daimon/memory.js +125 -0
- package/dist/runtime/daimon/recording.d.ts +19 -0
- package/dist/runtime/daimon/recording.js +50 -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 +11 -0
- package/dist/runtime/daimon/scheduleAuthority.js +31 -0
- package/dist/runtime/daimon/wakeMoments.d.ts +15 -0
- package/dist/runtime/daimon/wakeMoments.js +17 -0
- package/dist/runtime/daimonInstall.d.ts +3 -0
- package/dist/runtime/daimonInstall.js +25 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.js +5 -0
- package/dist/runtime/install.d.ts +5 -0
- package/dist/runtime/install.js +4 -0
- package/dist/runtime/localDaimonAuthority.d.ts +11 -0
- package/dist/runtime/localDaimonAuthority.js +77 -0
- package/dist/runtime/mnemeMcp.d.ts +13 -0
- package/dist/runtime/mnemeMcp.js +26 -0
- package/dist/runtime/openclaw/adapter.js +5 -2
- package/dist/runtime/pi/adapter.d.ts +0 -1
- package/dist/runtime/pi/adapter.js +5 -6
- package/dist/runtime/pi/appCliSource.js +1 -1
- package/dist/runtime/pi/appScheduleSource.js +6 -2
- package/dist/runtime/pi/appTemplateTypes.d.ts +1 -1
- package/dist/runtime/pi/containerTargets.js +6 -0
- package/dist/runtime/picoclaw/adapter.js +5 -2
- package/dist/runtime/registry.d.ts +6 -0
- package/dist/runtime/registry.js +32 -3
- package/dist/runtime/scheduleUtils.d.ts +1 -0
- package/dist/runtime/scheduleUtils.js +5 -1
- package/dist/runtime/types.d.ts +40 -0
- package/dist/runtime/usageLedger.d.ts +158 -0
- package/dist/runtime/usageLedger.js +269 -0
- package/dist/runtime/usageLedgerRead.d.ts +54 -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/index.d.ts +3 -0
- package/dist/shared/index.js +3 -0
- package/dist/shared/recording.d.ts +8 -0
- package/dist/shared/recording.js +25 -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/target/dockerArtifactsProvider.js +34 -7
- package/dist/target/dockerBaseImage.d.ts +2 -0
- package/dist/target/dockerBaseImage.js +11 -0
- package/dist/target/dockerCommandExecutor.d.ts +11 -0
- package/dist/target/dockerCommandExecutor.js +53 -2
- package/dist/target/dockerCommandExecutorCore.d.ts +2 -1
- package/dist/target/dockerCommandExecutorCore.js +5 -3
- package/dist/target/dockerPublicArtifactSnapshot.d.ts +3 -3
- package/dist/target/dockerPublicArtifactSnapshot.js +17 -33
- package/dist/target/dockerTarget.d.ts +1 -0
- package/dist/target/dockerTargetBinding.d.ts +1 -2
- package/dist/target/dockerTargetBinding.js +4 -4
- package/dist/target/dockerTargetExecFile.d.ts +19 -0
- package/dist/target/dockerTargetExecFile.js +194 -0
- package/dist/target/dockerWorldServiceProvider.d.ts +4 -0
- package/dist/target/dockerWorldServiceProvider.js +13 -1
- package/dist/target/evidenceExport.d.ts +3 -1
- package/dist/target/evidenceExport.js +12 -3
- package/dist/target/evidenceExportOperationsTestKit.js +3 -3
- package/dist/target/evidenceExportProvider.d.ts +2 -0
- package/dist/target/evidenceExportProvider.js +15 -5
- package/dist/target/publicArtifactSnapshot.d.ts +31 -0
- package/dist/target/publicArtifactSnapshot.js +37 -3
- package/dist/volume/feedLand.d.ts +31 -0
- package/dist/volume/feedLand.js +174 -0
- package/dist/volume/feedLandings.d.ts +45 -0
- package/dist/volume/feedLandings.js +111 -0
- package/dist/volume/feedLayout.d.ts +61 -0
- package/dist/volume/feedLayout.js +234 -0
- package/dist/volume/feedLock.d.ts +7 -0
- package/dist/volume/feedLock.js +131 -0
- package/dist/volume/feedManifest.d.ts +27 -0
- package/dist/volume/feedManifest.js +123 -0
- package/dist/volume/feedPrepare.d.ts +16 -0
- package/dist/volume/feedPrepare.js +228 -0
- package/dist/volume/feedProject.d.ts +39 -0
- package/dist/volume/feedProject.js +92 -0
- package/dist/volume/feedRecord.d.ts +55 -0
- package/dist/volume/feedRecord.js +148 -0
- package/dist/volume/feedRef.d.ts +43 -0
- package/dist/volume/feedRef.js +117 -0
- package/dist/volume/feedRefresh.d.ts +15 -0
- package/dist/volume/feedRefresh.js +187 -0
- package/dist/volume/feedSource.d.ts +66 -0
- package/dist/volume/feedSource.js +104 -0
- package/dist/volume/feedTarget.d.ts +70 -0
- package/dist/volume/feedTarget.js +9 -0
- package/dist/volume/feedTestKit.d.ts +11 -0
- package/dist/volume/feedTestKit.js +45 -0
- package/dist/volume/feedVerify.d.ts +18 -0
- package/dist/volume/feedVerify.js +104 -0
- package/dist/volume/index.d.ts +13 -0
- package/dist/volume/index.js +13 -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 +5 -4
- package/package.json +36 -9
- package/runtimes.yaml +8 -3
- package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +0 -13
- package/dist/cli/targetWorldClockCrossProcess.test-helper.js +0 -109
- package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +0 -8
- package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +0 -60
- package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +0 -8
- package/dist/deployment/simfileFixtureBoundary.test-helper.js +0 -103
- package/dist/ownership/simfileRunOperatorInputs.d.ts +0 -103
- package/dist/ownership/simfileRunOperatorInputs.js +0 -139
- package/dist/target/cleanupRunDocker.test-helper.d.ts +0 -67
- package/dist/target/cleanupRunDocker.test-helper.js +0 -238
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
3
|
+
import { mkdir, mkdtemp, readFile, rm, stat, writeFile } from "node:fs/promises";
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { promisify } from "node:util";
|
|
7
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
8
|
+
const run = promisify(execFile);
|
|
9
|
+
const COMMIT = /^[a-f0-9]{40}$/u;
|
|
10
|
+
const fail = (message) => {
|
|
11
|
+
throw new SpawnfileError("validation_error", message);
|
|
12
|
+
};
|
|
13
|
+
const shellQuote = (value) => `'${value.replace(/'/g, `'"'"'`)}'`;
|
|
14
|
+
/** The remote ref to fetch, and the commit it must equal when the selector already names one. */
|
|
15
|
+
export const gitPinRefspec = (selector) => {
|
|
16
|
+
if (selector.kind === "branch")
|
|
17
|
+
return { source: `refs/heads/${selector.value}` };
|
|
18
|
+
if (selector.kind === "tag")
|
|
19
|
+
return { source: `refs/tags/${selector.value}` };
|
|
20
|
+
if (selector.kind === "ref")
|
|
21
|
+
return COMMIT.test(selector.value) ? { expected: selector.value, source: selector.value } : { source: selector.value };
|
|
22
|
+
return { source: "HEAD" };
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Runs `use` with the git environment for one fetch. A key held in an env var
|
|
26
|
+
* is copied to a private 0600 file in a fresh temporary directory that is
|
|
27
|
+
* removed afterwards; the key only ever reaches git through `GIT_SSH_COMMAND`.
|
|
28
|
+
*/
|
|
29
|
+
export const withGitPinEnvironment = async (auth, use, environment = process.env) => {
|
|
30
|
+
// Never prompt, never honour replacement refs: an object id must name its own bytes.
|
|
31
|
+
const base = { ...environment, GIT_NO_REPLACE_OBJECTS: "1", GIT_TERMINAL_PROMPT: "0" };
|
|
32
|
+
// The key reaches git and ssh only as a file path, never as an inherited variable.
|
|
33
|
+
if (auth?.sshKeyEnv !== undefined)
|
|
34
|
+
delete base[auth.sshKeyEnv];
|
|
35
|
+
if (auth === undefined)
|
|
36
|
+
return use(base);
|
|
37
|
+
let temporary;
|
|
38
|
+
try {
|
|
39
|
+
let keyPath;
|
|
40
|
+
if (auth.sshKeyEnv !== undefined) {
|
|
41
|
+
const material = environment[auth.sshKeyEnv];
|
|
42
|
+
if (!material?.trim())
|
|
43
|
+
fail(`git resource auth env ${auth.sshKeyEnv} is not set`);
|
|
44
|
+
temporary = await mkdtemp(path.join(os.tmpdir(), "spawnfile-git-key-"));
|
|
45
|
+
keyPath = path.join(temporary, "key");
|
|
46
|
+
await writeFile(keyPath, material.endsWith("\n") ? material : `${material}\n`, { mode: 0o600 });
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
keyPath = auth.sshKey;
|
|
50
|
+
const info = await stat(keyPath).catch(() => undefined);
|
|
51
|
+
if (!info?.isFile())
|
|
52
|
+
fail(`git resource ssh_key is not a readable file: ${keyPath}`);
|
|
53
|
+
}
|
|
54
|
+
const ssh = `ssh -i ${shellQuote(keyPath)} -o IdentitiesOnly=yes -o BatchMode=yes`;
|
|
55
|
+
return await use({ ...base, GIT_SSH_COMMAND: ssh });
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
if (temporary !== undefined)
|
|
59
|
+
await rm(temporary, { force: true, recursive: true });
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const git = async (repository, args, env) => {
|
|
63
|
+
const { stdout } = await run("git", ["-C", repository, ...args], { encoding: "utf8", env, maxBuffer: 16_777_216 });
|
|
64
|
+
return stdout.trim();
|
|
65
|
+
};
|
|
66
|
+
const LOCK_POLL_MS = 100;
|
|
67
|
+
const processAlive = (pid) => {
|
|
68
|
+
try {
|
|
69
|
+
process.kill(pid, 0);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
return error.code === "EPERM";
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Serializes work on one cache repository across processes on this host: git
|
|
78
|
+
* keeps one repository-wide `shallow` file, so two shallow fetches into the
|
|
79
|
+
* same repository can fail each other. A lock whose owner process is gone is
|
|
80
|
+
* taken over.
|
|
81
|
+
*/
|
|
82
|
+
export const withGitPinLock = async (repository, use) => {
|
|
83
|
+
const lock = `${repository}.lock`, owner = path.join(lock, "owner");
|
|
84
|
+
for (;;) {
|
|
85
|
+
try {
|
|
86
|
+
await mkdir(lock);
|
|
87
|
+
await writeFile(owner, `${process.pid}\n`);
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error.code !== "EEXIST")
|
|
92
|
+
throw error;
|
|
93
|
+
const pid = Number.parseInt(await readFile(owner, "utf8").catch(() => ""), 10);
|
|
94
|
+
const age = Date.now() - ((await stat(lock).catch(() => undefined))?.mtimeMs ?? Date.now());
|
|
95
|
+
// An owner-less lock older than a few polls belongs to a process that died between mkdir and write.
|
|
96
|
+
if (Number.isInteger(pid) ? !processAlive(pid) : age > LOCK_POLL_MS * 50)
|
|
97
|
+
await rm(lock, { force: true, recursive: true });
|
|
98
|
+
else
|
|
99
|
+
await new Promise((resolve) => setTimeout(resolve, LOCK_POLL_MS));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
return await use();
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
await rm(lock, { force: true, recursive: true });
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
/** One bare object cache per remote URL. Auto-gc is off: a concurrent compile may still be reading a commit. Call under the lock. */
|
|
110
|
+
const ensureGitPinRepository = async (repository) => {
|
|
111
|
+
if (await stat(path.join(repository, "HEAD")).catch(() => undefined))
|
|
112
|
+
return;
|
|
113
|
+
await rm(repository, { force: true, recursive: true });
|
|
114
|
+
await run("git", ["init", "--bare", "-q", repository]);
|
|
115
|
+
await run("git", ["-C", repository, "config", "gc.auto", "0"]);
|
|
116
|
+
};
|
|
117
|
+
const hasCommit = (repository, commit, env) => git(repository, ["cat-file", "-e", `${commit}^{commit}`], env).then(() => true, () => false);
|
|
118
|
+
/**
|
|
119
|
+
* Resolves `selector` on `url` to one commit and fetches its objects into the
|
|
120
|
+
* cache, shallowly, under the repository lock. A full commit id already in the
|
|
121
|
+
* cache is not fetched again, so a recorded pin rebuilds offline. Any failure
|
|
122
|
+
* to resolve refuses the compile: a pinned resource never falls back to stale
|
|
123
|
+
* or empty content.
|
|
124
|
+
*/
|
|
125
|
+
export const fetchGitPin = async (cacheDirectory, url, selector, env) => {
|
|
126
|
+
await mkdir(cacheDirectory, { mode: 0o700, recursive: true });
|
|
127
|
+
const repository = path.join(cacheDirectory, `${createHash("sha256").update(url).digest("hex")}.git`);
|
|
128
|
+
return withGitPinLock(repository, async () => {
|
|
129
|
+
await ensureGitPinRepository(repository);
|
|
130
|
+
const { expected, source } = gitPinRefspec(selector);
|
|
131
|
+
if (expected !== undefined && await hasCommit(repository, expected, env))
|
|
132
|
+
return { commit: expected, repository };
|
|
133
|
+
// A per-process ref, so a lock taken over from a dead owner never reads its half-written result.
|
|
134
|
+
const local = `refs/spawnfile/pins/${process.pid}-${randomBytes(6).toString("hex")}`;
|
|
135
|
+
try {
|
|
136
|
+
await git(repository, ["fetch", "--quiet", "--no-tags", "--depth=1", "--", url, `+${source}:${local}`], env);
|
|
137
|
+
const commit = await git(repository, ["rev-parse", "--verify", `${local}^{commit}`], env);
|
|
138
|
+
if (!COMMIT.test(commit))
|
|
139
|
+
fail(`git resource ${url} ${selector.kind} ${selector.value} did not resolve to a commit`);
|
|
140
|
+
if (expected !== undefined && commit !== expected)
|
|
141
|
+
fail(`git resource ${url} ref ${expected} resolved to ${commit}`);
|
|
142
|
+
return { commit, repository };
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
if (error instanceof SpawnfileError)
|
|
146
|
+
throw error;
|
|
147
|
+
const stderr = String(error.stderr ?? "").trim().split("\n").filter(Boolean).pop();
|
|
148
|
+
const what = selector.kind === "none" ? "default branch" : `${selector.kind} ${selector.value}`;
|
|
149
|
+
return fail(`git resource ${url} ${what} could not be resolved to a commit${stderr ? `: ${stderr}` : ""}`);
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
await git(repository, ["update-ref", "-d", local], env).catch(() => undefined);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { CompileReportWorkspaceGitResource } from "../report/index.js";
|
|
2
|
+
import { type BundleIdentityMode } from "./workspaceBundleFiles.js";
|
|
3
|
+
import type { MoltnetTargetArchitecture } from "./moltnetReleaseAuthority.js";
|
|
4
|
+
import type { CompilePlan } from "./types.js";
|
|
5
|
+
import type { ResolvedWorkspaceResource } from "./workspaceResources.js";
|
|
6
|
+
type GitResource = Extract<ResolvedWorkspaceResource, {
|
|
7
|
+
kind: "git";
|
|
8
|
+
}>;
|
|
9
|
+
export interface ResolveWorkspaceGitPinsOptions {
|
|
10
|
+
outputDirectory: string;
|
|
11
|
+
architecture?: MoltnetTargetArchitecture;
|
|
12
|
+
/** The workspace bundle cache directory; git objects and archives live beside it under `git-resources/`. */
|
|
13
|
+
bundleCacheDirectory?: string;
|
|
14
|
+
identity?: BundleIdentityMode;
|
|
15
|
+
environment?: NodeJS.ProcessEnv;
|
|
16
|
+
}
|
|
17
|
+
export interface ResolvedWorkspaceGitPins {
|
|
18
|
+
/** Digest → archive linked into the Docker context, for `stageWorkspaceBundles`. */
|
|
19
|
+
built: Map<string, string>;
|
|
20
|
+
report: CompileReportWorkspaceGitResource[];
|
|
21
|
+
}
|
|
22
|
+
export declare const isBuildPinnedGitResource: (resource: ResolvedWorkspaceResource) => resource is GitResource;
|
|
23
|
+
/**
|
|
24
|
+
* Lowers every `fetch: build` git resource into a pinned read-only bundle:
|
|
25
|
+
* the declared branch, tag or ref is resolved on the host to one commit, that
|
|
26
|
+
* commit's tree is archived deterministically (the same writer as built
|
|
27
|
+
* bundles), and the agent mounts the archive exactly as it mounts a bundle.
|
|
28
|
+
* No credential, clone or network access reaches the container. The commit
|
|
29
|
+
* and archive digest are recorded in the compile report; declaring
|
|
30
|
+
* `ref: <commit>` reproduces the identical archive.
|
|
31
|
+
*/
|
|
32
|
+
export declare const resolveWorkspaceGitPins: (plan: CompilePlan, options: ResolveWorkspaceGitPinsOptions) => Promise<ResolvedWorkspaceGitPins>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import os from "node:os";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
4
|
+
import { linkBuiltBundle } from "./workspaceBundleArtifacts.js";
|
|
5
|
+
import { lookupCachedBundle, pruneBundleCache, resolveWorkspaceBundleCacheDirectory, storeBuiltBundle } from "./workspaceBundleCache.js";
|
|
6
|
+
import { listCommittedTree } from "./workspaceBundleGit.js";
|
|
7
|
+
import { compileExcludePatterns, writeBundleFiles } from "./workspaceBundleFiles.js";
|
|
8
|
+
import { computeWorkspaceBundleKey, resolveBundleArchitecture } from "./workspaceBundleResolve.js";
|
|
9
|
+
import { normalizeBundleMode } from "./workspaceBundleTar.js";
|
|
10
|
+
import { fetchGitPin, withGitPinEnvironment } from "./workspaceGitFetch.js";
|
|
11
|
+
const SYMLINK = 0o120000, GITLINK = 0o160000;
|
|
12
|
+
const fail = (message) => {
|
|
13
|
+
throw new SpawnfileError("validation_error", message);
|
|
14
|
+
};
|
|
15
|
+
export const isBuildPinnedGitResource = (resource) => resource.kind === "git" && resource.fetch === "build";
|
|
16
|
+
const selectorOf = (resource) => resource.branch ? { kind: "branch", value: resource.branch.trim() }
|
|
17
|
+
: resource.tag ? { kind: "tag", value: resource.tag.trim() }
|
|
18
|
+
: resource.ref ? { kind: "ref", value: resource.ref.trim() }
|
|
19
|
+
: { kind: "none", value: "" };
|
|
20
|
+
const expandPath = (value, base) => value === "~" || value.startsWith("~/") ? path.join(os.homedir(), value.slice(1)) : path.resolve(base, value);
|
|
21
|
+
const authOf = (resource) => {
|
|
22
|
+
if (!resource.auth)
|
|
23
|
+
return undefined;
|
|
24
|
+
return resource.auth.ssh_key !== undefined
|
|
25
|
+
? { sshKey: expandPath(resource.auth.ssh_key, path.dirname(resource.scope.key)) }
|
|
26
|
+
: { sshKeyEnv: resource.auth.ssh_key_env };
|
|
27
|
+
};
|
|
28
|
+
const declarationKey = (resource) => JSON.stringify({
|
|
29
|
+
auth: authOf(resource) ?? null, exclude: resource.exclude ?? null, selector: selectorOf(resource), url: resource.url.trim()
|
|
30
|
+
});
|
|
31
|
+
/** The committed tree as bundle entries: blob ids and modes only, under the same safety rules as built bundles. */
|
|
32
|
+
const treeEntries = async (resource, repository, commit) => {
|
|
33
|
+
const excluded = compileExcludePatterns(resource.exclude);
|
|
34
|
+
const entries = [];
|
|
35
|
+
for (const entry of await listCommittedTree(repository, commit)) {
|
|
36
|
+
if (excluded(entry.path))
|
|
37
|
+
continue;
|
|
38
|
+
if (entry.mode === SYMLINK)
|
|
39
|
+
fail(`Workspace git resource ${resource.id} contains a symlink; exclude it: ${entry.path}`);
|
|
40
|
+
if (entry.mode === GITLINK)
|
|
41
|
+
fail(`Workspace git resource ${resource.id} contains a submodule; exclude it: ${entry.path}`);
|
|
42
|
+
if (entry.type !== "blob")
|
|
43
|
+
fail(`Workspace git resource ${resource.id} has unsupported git type ${entry.type}: ${entry.path}`);
|
|
44
|
+
if (!entry.path || entry.path.includes("\\") || entry.path.split("/").some((part) => !part || part === "." || part === "..")) {
|
|
45
|
+
fail(`Workspace git resource ${resource.id} path cannot be archived safely: ${entry.path}`);
|
|
46
|
+
}
|
|
47
|
+
entries.push({ identity: `git:${entry.objectId}`, mode: normalizeBundleMode(entry.mode), objectId: entry.objectId, path: entry.path });
|
|
48
|
+
}
|
|
49
|
+
if (entries.length === 0)
|
|
50
|
+
fail(`Workspace git resource ${resource.id} has no files at ${commit}`);
|
|
51
|
+
return entries.sort((left, right) => (left.path < right.path ? -1 : left.path > right.path ? 1 : 0));
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Lowers every `fetch: build` git resource into a pinned read-only bundle:
|
|
55
|
+
* the declared branch, tag or ref is resolved on the host to one commit, that
|
|
56
|
+
* commit's tree is archived deterministically (the same writer as built
|
|
57
|
+
* bundles), and the agent mounts the archive exactly as it mounts a bundle.
|
|
58
|
+
* No credential, clone or network access reaches the container. The commit
|
|
59
|
+
* and archive digest are recorded in the compile report; declaring
|
|
60
|
+
* `ref: <commit>` reproduces the identical archive.
|
|
61
|
+
*/
|
|
62
|
+
export const resolveWorkspaceGitPins = async (plan, options) => {
|
|
63
|
+
const result = { built: new Map(), report: [] };
|
|
64
|
+
const recording = plan.nodes.some((node) => node.kind === "agent" && node.value.training?.record !== undefined);
|
|
65
|
+
const pinned = plan.nodes.flatMap((node) => node.kind === "agent" ? (node.value.workspaceResources ?? []).filter(isBuildPinnedGitResource) : []);
|
|
66
|
+
if (pinned.length === 0)
|
|
67
|
+
return result;
|
|
68
|
+
const root = path.join(path.dirname(resolveWorkspaceBundleCacheDirectory(options.bundleCacheDirectory)), "git-resources");
|
|
69
|
+
const objects = path.join(root, "objects"), archives = path.join(root, "archives");
|
|
70
|
+
const platform = `linux/${resolveBundleArchitecture(options.architecture)}`, identity = options.identity ?? "dev";
|
|
71
|
+
const resolved = new Map(), usedKeys = new Set();
|
|
72
|
+
for (const resource of pinned) {
|
|
73
|
+
const memoKey = declarationKey(resource);
|
|
74
|
+
if (resolved.has(memoKey))
|
|
75
|
+
continue;
|
|
76
|
+
const selector = selectorOf(resource), auth = authOf(resource), url = resource.url.trim();
|
|
77
|
+
const { commit, repository } = await withGitPinEnvironment(auth, (env) => fetchGitPin(objects, url, selector, env), options.environment);
|
|
78
|
+
const entries = await treeEntries(resource, repository, commit);
|
|
79
|
+
const key = computeWorkspaceBundleKey({ entries }, platform);
|
|
80
|
+
usedKeys.add(key);
|
|
81
|
+
let cached = await lookupCachedBundle(archives, key), staged = cached && await linkBuiltBundle(cached.tarPath, options.outputDirectory, cached.sha256);
|
|
82
|
+
if (!cached || !staged) {
|
|
83
|
+
cached = await storeBuiltBundle(archives, key, (temporaryPath) => writeBundleFiles({ directory: repository, entries, mode: "release" }, temporaryPath));
|
|
84
|
+
staged = await linkBuiltBundle(cached.tarPath, options.outputDirectory, cached.sha256);
|
|
85
|
+
if (!staged)
|
|
86
|
+
throw new SpawnfileError("compile_error", `Workspace git resource archive vanished from the cache while it was staged: ${key}`);
|
|
87
|
+
}
|
|
88
|
+
result.built.set(cached.sha256, staged);
|
|
89
|
+
resolved.set(memoKey, {
|
|
90
|
+
commit,
|
|
91
|
+
facts: {
|
|
92
|
+
auth: auth === undefined ? "none" : auth.sshKey !== undefined ? "ssh_key" : "ssh_key_env",
|
|
93
|
+
cache_key: key, commit, content_bytes: cached.contentBytes, file_count: cached.fileCount, id: resource.id, identity,
|
|
94
|
+
platform, selector: selector.kind === "none" ? { kind: "default_branch" } : { kind: selector.kind, value: selector.value },
|
|
95
|
+
sha256: cached.sha256, url
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
for (const node of plan.nodes) {
|
|
100
|
+
if (node.kind !== "agent" || !node.value.workspaceResources?.some(isBuildPinnedGitResource))
|
|
101
|
+
continue;
|
|
102
|
+
node.value.workspaceResources = node.value.workspaceResources.map((resource) => {
|
|
103
|
+
if (!isBuildPinnedGitResource(resource))
|
|
104
|
+
return resource;
|
|
105
|
+
const { facts } = resolved.get(declarationKey(resource));
|
|
106
|
+
const same = (existing) => existing.id === resource.id && existing.url === facts.url && existing.commit === facts.commit && existing.sha256 === facts.sha256 && JSON.stringify(existing.selector) === JSON.stringify(facts.selector);
|
|
107
|
+
if (recording) {
|
|
108
|
+
const declared_by = plan.nodes.find((entry) => entry.value.source === resource.scope.key)?.id;
|
|
109
|
+
let pin = result.report.find((entry) => same(entry) && entry.declared_by === declared_by);
|
|
110
|
+
if (!pin) {
|
|
111
|
+
pin = { ...facts, id: resource.id, agent_node_ids: [], ...(declared_by ? { declared_by } : {}) };
|
|
112
|
+
result.report.push(pin);
|
|
113
|
+
}
|
|
114
|
+
if (!pin.agent_node_ids.includes(node.id))
|
|
115
|
+
pin.agent_node_ids.push(node.id);
|
|
116
|
+
pin.agent_node_ids.sort();
|
|
117
|
+
}
|
|
118
|
+
else if (!result.report.some(same))
|
|
119
|
+
result.report.push({ ...facts, id: resource.id });
|
|
120
|
+
// From here on it is a bundle: same staging, same identity-checked read-only mount, no auth fields.
|
|
121
|
+
return { id: resource.id, kind: "bundle", mode: "readonly", mount: resource.mount, scope: resource.scope, sha256: facts.sha256, sharing: "per_agent" };
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
await pruneBundleCache(archives, usedKeys);
|
|
125
|
+
result.report.sort((left, right) => left.id.localeCompare(right.id) || left.url.localeCompare(right.url) || left.commit.localeCompare(right.commit) || left.sha256.localeCompare(right.sha256));
|
|
126
|
+
return result;
|
|
127
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TeamWorkspaceResource } from "../manifest/index.js";
|
|
1
|
+
import type { TeamWorkspaceResource, WorkspaceBundleBuild } from "../manifest/index.js";
|
|
2
2
|
export type WorkspaceResourceSharing = "per_agent" | "team";
|
|
3
3
|
export interface WorkspaceResourceScope {
|
|
4
4
|
kind: "agent" | "team";
|
|
@@ -10,19 +10,26 @@ export type ResolvedWorkspaceResource = TeamWorkspaceResource & {
|
|
|
10
10
|
sharing: WorkspaceResourceSharing;
|
|
11
11
|
};
|
|
12
12
|
export interface WorkspaceResourcePlan {
|
|
13
|
+
archivePath?: string;
|
|
13
14
|
backingPath: string;
|
|
14
15
|
branch?: string;
|
|
15
16
|
id: string;
|
|
16
|
-
kind: "git" | "volume";
|
|
17
|
+
kind: "bundle" | "git" | "volume";
|
|
17
18
|
linkPath: string;
|
|
18
19
|
mode: "mutable" | "readonly";
|
|
19
20
|
mount: string;
|
|
20
21
|
name?: string;
|
|
21
22
|
ref?: string;
|
|
22
23
|
sharing: WorkspaceResourceSharing;
|
|
24
|
+
sha256?: string;
|
|
25
|
+
source?: string;
|
|
23
26
|
tag?: string;
|
|
24
27
|
url?: string;
|
|
25
28
|
}
|
|
29
|
+
/** Multi-agent runtime targets retain one resource identity per source agent. */
|
|
30
|
+
export declare const workspaceResourceTargetId: (targetId: string, sourceId: string, sourceCount: number) => string;
|
|
31
|
+
/** A bundle build declaration with every relative path resolved against the declaring manifest's directory. */
|
|
32
|
+
export declare const resolveBundleBuildPaths: (build: WorkspaceBundleBuild, base: string) => WorkspaceBundleBuild;
|
|
26
33
|
export declare const mergeWorkspaceResources: (inherited: ResolvedWorkspaceResource[] | undefined, local: TeamWorkspaceResource[] | undefined, ownerName: string, ownerScope: WorkspaceResourceScope) => ResolvedWorkspaceResource[];
|
|
27
34
|
export declare const toWorkspaceResourcePlan: (resource: ResolvedWorkspaceResource, context: {
|
|
28
35
|
targetId: string;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { SpawnfileError } from "../shared/index.js";
|
|
3
3
|
import { createShortHash, slugify } from "./helpers.js";
|
|
4
|
+
/** Multi-agent runtime targets retain one resource identity per source agent. */
|
|
5
|
+
export const workspaceResourceTargetId = (targetId, sourceId, sourceCount) => sourceCount > 1 ? `${targetId}:${sourceId}` : targetId;
|
|
4
6
|
const normalizeMount = (value) => {
|
|
5
7
|
const trimmed = value.trim();
|
|
6
8
|
const workspaceRelative = trimmed.startsWith("${workspace}/")
|
|
@@ -13,10 +15,29 @@ const normalizeMount = (value) => {
|
|
|
13
15
|
}
|
|
14
16
|
return collapsed.length > 1 ? collapsed.replace(/\/+$/u, "") : "/";
|
|
15
17
|
};
|
|
18
|
+
/** A bundle build declaration with every relative path resolved against the declaring manifest's directory. */
|
|
19
|
+
export const resolveBundleBuildPaths = (build, base) => {
|
|
20
|
+
const files = (input) => ({ ...input, root: path.resolve(base, input.root) });
|
|
21
|
+
if (build.files)
|
|
22
|
+
return { files: files(build.files) };
|
|
23
|
+
if (build.dependencies)
|
|
24
|
+
return { dependencies: { ...build.dependencies, directory: path.resolve(base, build.dependencies.directory) } };
|
|
25
|
+
const generated = build.generated;
|
|
26
|
+
return { generated: { ...generated, cwd: path.resolve(base, generated.cwd ?? "."), inputs: generated.inputs.map(files) } };
|
|
27
|
+
};
|
|
16
28
|
const normalizeResourceIdentity = (resource) => {
|
|
29
|
+
if (resource.kind === "bundle") {
|
|
30
|
+
// Relative paths compare as resolved against their declaring manifest: the same text in two directories is two inputs.
|
|
31
|
+
const base = path.dirname(resource.scope.key);
|
|
32
|
+
const build = resource.build && resolveBundleBuildPaths(resource.build, base);
|
|
33
|
+
return JSON.stringify({ build: build ?? null, kind: resource.kind, mode: resource.mode, mount: normalizeMount(resource.mount), sha256: resource.sha256 ?? null, source: resource.source === undefined ? null : path.resolve(base, resource.source), sharing: resource.sharing });
|
|
34
|
+
}
|
|
17
35
|
if (resource.kind === "git") {
|
|
18
36
|
return JSON.stringify({
|
|
37
|
+
auth: resource.auth ?? null,
|
|
19
38
|
branch: resource.branch?.trim() ?? "",
|
|
39
|
+
exclude: resource.exclude ?? null,
|
|
40
|
+
fetch: resource.fetch ?? "start",
|
|
20
41
|
kind: "git",
|
|
21
42
|
mode: resource.mode,
|
|
22
43
|
mount: normalizeMount(resource.mount),
|
|
@@ -27,6 +48,8 @@ const normalizeResourceIdentity = (resource) => {
|
|
|
27
48
|
});
|
|
28
49
|
}
|
|
29
50
|
return JSON.stringify({
|
|
51
|
+
// Feed paths resolve against the declaring manifest, like bundle inputs.
|
|
52
|
+
...(resource.feed ? { feed: { ...resource.feed, base: path.dirname(resource.scope.key) } } : {}),
|
|
30
53
|
kind: "volume",
|
|
31
54
|
mode: resource.mode,
|
|
32
55
|
mount: normalizeMount(resource.mount),
|
|
@@ -39,12 +62,9 @@ const mountsOverlap = (left, right) => left === right ||
|
|
|
39
62
|
left.startsWith(`${right}/`) ||
|
|
40
63
|
right.startsWith(`${left}/`);
|
|
41
64
|
const resolveSharing = (resource) => resource.sharing ?? "per_agent";
|
|
42
|
-
const toResolvedResource = (resource, scope) =>
|
|
43
|
-
...resource,
|
|
44
|
-
mount: normalizeMount(resource.mount),
|
|
45
|
-
scope,
|
|
46
|
-
sharing: resolveSharing(resource)
|
|
47
|
-
});
|
|
65
|
+
const toResolvedResource = (resource, scope) => resource.kind === "bundle"
|
|
66
|
+
? { ...resource, mount: normalizeMount(resource.mount), scope, sharing: "per_agent" }
|
|
67
|
+
: { ...resource, mount: normalizeMount(resource.mount), scope, sharing: resolveSharing(resource) };
|
|
48
68
|
const createPathSegment = (value) => {
|
|
49
69
|
const slug = slugify(value);
|
|
50
70
|
const hash = createShortHash(value);
|
|
@@ -89,6 +109,12 @@ export const mergeWorkspaceResources = (inherited = [], local = [], ownerName, o
|
|
|
89
109
|
}
|
|
90
110
|
return merged.sort((left, right) => left.id.localeCompare(right.id));
|
|
91
111
|
};
|
|
112
|
+
/** A bundle's digest exists only after `resolveWorkspaceBundles` built or hashed it. */
|
|
113
|
+
const resolvedBundleDigest = (resource) => {
|
|
114
|
+
if (resource.sha256 === undefined)
|
|
115
|
+
throw new SpawnfileError("compile_error", `Workspace bundle ${resource.id} has not been built`);
|
|
116
|
+
return resource.sha256;
|
|
117
|
+
};
|
|
92
118
|
export const toWorkspaceResourcePlan = (resource, context) => resource.kind === "git"
|
|
93
119
|
? {
|
|
94
120
|
backingPath: resolveBackingPath(resource, context.targetId),
|
|
@@ -103,7 +129,13 @@ export const toWorkspaceResourcePlan = (resource, context) => resource.kind ===
|
|
|
103
129
|
...(resource.tag ? { tag: resource.tag } : {}),
|
|
104
130
|
url: resource.url
|
|
105
131
|
}
|
|
106
|
-
: {
|
|
132
|
+
: resource.kind === "bundle" ? {
|
|
133
|
+
archivePath: `/opt/spawnfile/workspace-bundles/${resolvedBundleDigest(resource).slice(7)}.tar`,
|
|
134
|
+
backingPath: resolveBackingPath(resource, context.targetId), id: resource.id, kind: "bundle",
|
|
135
|
+
linkPath: resolveLinkPath(normalizeMount(resource.mount), context.workspacePath), mode: resource.mode,
|
|
136
|
+
mount: normalizeMount(resource.mount), sharing: resource.sharing, sha256: resolvedBundleDigest(resource),
|
|
137
|
+
...(resource.source !== undefined ? { source: path.resolve(path.dirname(resource.scope.key), resource.source) } : {})
|
|
138
|
+
} : {
|
|
107
139
|
backingPath: resolveBackingPath(resource, context.targetId),
|
|
108
140
|
id: resource.id,
|
|
109
141
|
kind: "volume",
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { DeploymentActivation } from "./resourceLog.js";
|
|
2
|
+
/** Strictly later than the stopped observation, even at millisecond clock resolution. */
|
|
3
|
+
export declare const activationBeforeStart: (stoppedAt: number | undefined, now?: () => Date) => Promise<DeploymentActivation>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { setTimeout } from "node:timers/promises";
|
|
2
|
+
/** Strictly later than the stopped observation, even at millisecond clock resolution. */
|
|
3
|
+
export const activationBeforeStart = async (stoppedAt, now = () => new Date()) => {
|
|
4
|
+
for (let attempt = 0; attempt < 1_000; attempt += 1) {
|
|
5
|
+
const instant = now();
|
|
6
|
+
if (stoppedAt === undefined || instant.getTime() > stoppedAt) {
|
|
7
|
+
return { activated_at: instant.toISOString(), activation_exact: true };
|
|
8
|
+
}
|
|
9
|
+
await setTimeout(1);
|
|
10
|
+
}
|
|
11
|
+
throw new Error("Host clock did not advance after the previous container stopped");
|
|
12
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import path from "node:path/posix";
|
|
2
|
+
import { DAIMON_GROK_TURN_USAGE_LEDGER } from "../runtime/daimon/contractManifest.js";
|
|
2
3
|
const AGENT_NODE_ID_PREFIX = "agent:";
|
|
3
4
|
const TEAM_NODE_ID_PREFIX = "team:";
|
|
4
5
|
/** Strips the compiler's `agent:` node-id prefix down to the generated runtime slug, the
|
|
@@ -122,6 +123,54 @@ const planDaimonFiles = (report, mounts) => (report.container?.runtime_instances
|
|
|
122
123
|
}
|
|
123
124
|
}];
|
|
124
125
|
}));
|
|
126
|
+
/** The persistent-mount id the Daimon adapter gives the per-turn engine usage ledger
|
|
127
|
+
* (`src/runtime/daimon/config.ts`). Deliberately still says `grok` now that AGY writes
|
|
128
|
+
* there too: the id is the volume's identity, and renaming it orphans every existing
|
|
129
|
+
* deployment's accumulated ledger. */
|
|
130
|
+
const DAIMON_USAGE_MOUNT_ID = "daimon-grok-usage-ledger";
|
|
131
|
+
/** Daimon usage: the organization-wide per-turn engine token ledger.
|
|
132
|
+
*
|
|
133
|
+
* Unlike the causal streams above this is NOT per agent -- one exclusive-reattach volume
|
|
134
|
+
* carries every metered turn for the whole Daimon host -- so it exports flat under
|
|
135
|
+
* `raw/daimon/`, the way a single managed Moltnet network exports flat under
|
|
136
|
+
* `raw/moltnet/`. Flat also keeps it clear of the `raw/daimon/<slug>/` directories the
|
|
137
|
+
* per-agent causal files use.
|
|
138
|
+
*
|
|
139
|
+
* BOTH generations ship. The broker rotates by size at
|
|
140
|
+
* `DAIMON_GROK_TURN_USAGE_LEDGER.rotateBytes`, so a long-lived deployment's earlier turns
|
|
141
|
+
* live in `usage.jsonl.1`; exporting only the live file would silently truncate history
|
|
142
|
+
* for exactly the runs expensive enough to care about. This is the same rotation the read
|
|
143
|
+
* path already handles (`src/runtime/usageLedgerRead.ts` reads both generations).
|
|
144
|
+
*
|
|
145
|
+
* The mount root IS the ledger directory (`mountPath` is
|
|
146
|
+
* `DAIMON_GROK_TURN_USAGE_LEDGER.directoryPath`), so both names are resolved as
|
|
147
|
+
* mount-relative paths off the pinned contract constants rather than written out here --
|
|
148
|
+
* if the contract ever moves the ledger, this follows it instead of silently exporting
|
|
149
|
+
* nothing.
|
|
150
|
+
*
|
|
151
|
+
* Optional, because absent must stay distinguishable from empty: a codex-only
|
|
152
|
+
* organization is never provisioned this volume and writes no ledger at all, which is
|
|
153
|
+
* legitimate, and the mount is absent from the report entirely in that case. Where the
|
|
154
|
+
* volume exists but a generation does not (no rotation yet, or no metered turn yet), the
|
|
155
|
+
* executor records it under `missingOptionalFiles` rather than as an exported empty file
|
|
156
|
+
* (`artifactsExport.ts`). */
|
|
157
|
+
const planDaimonUsageFiles = (mounts) => {
|
|
158
|
+
const mount = mounts.get(DAIMON_USAGE_MOUNT_ID);
|
|
159
|
+
if (!mount) {
|
|
160
|
+
return [];
|
|
161
|
+
}
|
|
162
|
+
return [
|
|
163
|
+
DAIMON_GROK_TURN_USAGE_LEDGER.filePath,
|
|
164
|
+
DAIMON_GROK_TURN_USAGE_LEDGER.rotatedFilePath
|
|
165
|
+
].map((absolutePath) => {
|
|
166
|
+
const volumePath = path.relative(DAIMON_GROK_TURN_USAGE_LEDGER.directoryPath, absolutePath);
|
|
167
|
+
return {
|
|
168
|
+
optional: true,
|
|
169
|
+
relativePath: `raw/daimon/${volumePath}`,
|
|
170
|
+
source: { kind: "volume", volumeName: mount.volume_name, volumePath }
|
|
171
|
+
};
|
|
172
|
+
});
|
|
173
|
+
};
|
|
125
174
|
/** Resolves every durable artifact file this run's compile report declares, and where each
|
|
126
175
|
* one is read from. Pure function of the compile report alone (no deployment record, no
|
|
127
176
|
* Docker) — `artifactsExport.ts` supplies the live container name at execution time. */
|
|
@@ -130,6 +179,7 @@ export const planArtifactExports = (report) => {
|
|
|
130
179
|
return [
|
|
131
180
|
...planMoltnetFiles(report, mounts),
|
|
132
181
|
...planMnemeFiles(report, mounts),
|
|
133
|
-
...planDaimonFiles(report, mounts)
|
|
182
|
+
...planDaimonFiles(report, mounts),
|
|
183
|
+
...planDaimonUsageFiles(mounts)
|
|
134
184
|
];
|
|
135
185
|
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const deploymentIdentitySchema: z.ZodObject<{
|
|
3
|
+
version: z.ZodLiteral<"spawnfile.deployment-identity.v1">;
|
|
4
|
+
run_id: z.ZodString;
|
|
5
|
+
fingerprint: z.ZodString;
|
|
6
|
+
deployment_name: z.ZodString;
|
|
7
|
+
deployment_mode: z.ZodEnum<{
|
|
8
|
+
image: "image";
|
|
9
|
+
project: "project";
|
|
10
|
+
}>;
|
|
11
|
+
image_id: z.ZodString;
|
|
12
|
+
organization_unit_id: z.ZodString;
|
|
13
|
+
organization_compile_fingerprint: z.ZodString;
|
|
14
|
+
organization_world_binding_digest: z.ZodNullable<z.ZodString>;
|
|
15
|
+
topology_sha256: z.ZodString;
|
|
16
|
+
}, z.core.$strict>;
|
|
17
|
+
type Execute = (command: string, args: string[]) => Promise<string | void>;
|
|
18
|
+
type Inspect = (command: string, args: string[]) => Promise<string>;
|
|
19
|
+
export declare const verifyCandidatePortIsolation: (liveReport: unknown, candidateReport: unknown) => number[];
|
|
20
|
+
export declare const issueDeploymentIdentity: (readinessPath: string, deploymentMode: "project" | "image", dockerCommand: string, imageInspect?: Inspect) => Promise<Record<string, unknown>>;
|
|
21
|
+
export declare const runCanaryCutover: (input: {
|
|
22
|
+
liveReportPath: string;
|
|
23
|
+
candidateReportPath: string;
|
|
24
|
+
readinessPath: string;
|
|
25
|
+
expectedIdentity: unknown;
|
|
26
|
+
dockerCommand: string;
|
|
27
|
+
nonce: string;
|
|
28
|
+
transactionPath: string;
|
|
29
|
+
ingressCommand: string;
|
|
30
|
+
ingressArgs: string[];
|
|
31
|
+
ingressReceiptPath: string;
|
|
32
|
+
teardownCommand: string;
|
|
33
|
+
teardownArgs: string[];
|
|
34
|
+
teardownPolicy: "export" | "force";
|
|
35
|
+
teardownProjectPath: string;
|
|
36
|
+
teardownCompiledPath: string;
|
|
37
|
+
decisionReceiptPath: string;
|
|
38
|
+
fromDeployment: string;
|
|
39
|
+
toDeployment: string;
|
|
40
|
+
}, runner?: Execute, imageInspect?: Inspect) => Promise<Record<string, unknown>>;
|
|
41
|
+
export declare const verifyEquivalentRollbackReadiness: (rollbackReadinessPath: string, expectedIdentity: unknown) => Promise<void>;
|
|
42
|
+
export {};
|