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,64 @@
|
|
|
1
|
+
import { compareInstants, normalizeInstant } from "./instant.js";
|
|
2
|
+
import { hasRecordPin, recordActivationErrors, recordForInput, recordPins } from "./recordInput.js";
|
|
3
|
+
/** Shared targets referencing the same role/dataset/example are one trial. */
|
|
4
|
+
export const selectTrainingExample = (plan, selector) => {
|
|
5
|
+
const match = /^(train|validation|test):(.*)$/u.exec(selector);
|
|
6
|
+
const role = match?.[1], id = match?.[2] ?? selector;
|
|
7
|
+
const candidates = new Map();
|
|
8
|
+
for (const target of plan.targets)
|
|
9
|
+
for (const candidateRole of ["train", "validation", "test"]) {
|
|
10
|
+
const dataset = target.datasets[candidateRole];
|
|
11
|
+
if (!dataset || (role && candidateRole !== role))
|
|
12
|
+
continue;
|
|
13
|
+
for (const example of dataset.examples) {
|
|
14
|
+
if (example.id !== id)
|
|
15
|
+
continue;
|
|
16
|
+
const candidate = { id, role: candidateRole, dataset: dataset.path, sourcePath: dataset.sourcePath, example };
|
|
17
|
+
candidates.set(JSON.stringify([candidateRole, dataset.sourcePath, id]), candidate);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const found = [...candidates.values()];
|
|
21
|
+
if (found.length !== 1)
|
|
22
|
+
throw new Error(found.length === 0
|
|
23
|
+
? `No training example matches ${selector}`
|
|
24
|
+
: `Ambiguous training example ${selector}; candidates: ${found.map((item) => `${item.role}:${id} (${item.dataset})`).sort().join(", ")}`);
|
|
25
|
+
return found[0];
|
|
26
|
+
};
|
|
27
|
+
const canonical = (value) => JSON.stringify(value, (_key, item) => item && typeof item === "object" && !Array.isArray(item)
|
|
28
|
+
? Object.fromEntries(Object.entries(item).sort(([a], [b]) => a.localeCompare(b))) : item);
|
|
29
|
+
export const matchingMomentRecords = (records, agent, at) => records.filter((record) => record.agent === agent && compareInstants(record.wake.at, at) === 0);
|
|
30
|
+
/** Replays can share executionId AND startedAt. Keep every earliest tie for per-input agreement. */
|
|
31
|
+
export const originalMomentRecords = (records) => {
|
|
32
|
+
const first = records.reduce((earliest, entry) => !earliest || compareInstants(entry.wake.startedAt, earliest.wake.startedAt) < 0 ? entry : earliest, null);
|
|
33
|
+
return first ? records.filter((entry) => compareInstants(entry.wake.startedAt, first.wake.startedAt) === 0) : [];
|
|
34
|
+
};
|
|
35
|
+
/** Capture time and wake payload are not used to materialize data. Normalize actual used instants. */
|
|
36
|
+
export const selectMomentRecord = (records, agent, at, inputs) => {
|
|
37
|
+
const matches = originalMomentRecords(matchingMomentRecords(records, agent, at));
|
|
38
|
+
if (!matches.length)
|
|
39
|
+
return null;
|
|
40
|
+
const identities = inputs ?? matches.flatMap((record) => [
|
|
41
|
+
...[...record.resources, ...record.feeds, ...record.volumes].map(({ id }) => ({ section: "resources", id, declaredBy: agent })),
|
|
42
|
+
...record.memory.map(({ id, declaredBy }) => ({ section: "memory", id, declaredBy })),
|
|
43
|
+
...record.moltnet.map(({ network }) => ({ section: "networks", id: network, declaredBy: agent }))
|
|
44
|
+
]);
|
|
45
|
+
for (const input of identities) {
|
|
46
|
+
if ("overridden" in input && input.overridden)
|
|
47
|
+
continue;
|
|
48
|
+
const declaredPin = "declaration" in input && input.section === "resources" && input.declaration.kind === "git"
|
|
49
|
+
&& /^(?:[a-fA-F0-9]{40}|[a-fA-F0-9]{64})$/u.test(input.declaration.ref ?? "");
|
|
50
|
+
const decision = (record) => {
|
|
51
|
+
const usable = recordForInput(record, input);
|
|
52
|
+
const pins = recordPins(usable, input).map((pin) => "landedAt" in pin ? { ...pin, landedAt: normalizeInstant(pin.landedAt) }
|
|
53
|
+
: "cursor" in pin ? { ...pin, cursor: normalizeInstant(pin.cursor) } : pin);
|
|
54
|
+
return canonical({ pin: declaredPin ? "declared-pin" : pins.sort((a, b) => canonical(a).localeCompare(canonical(b))),
|
|
55
|
+
approximateActivation: !declaredPin && pins.some((pin) => "kind" in pin && ["git", "bundle"].includes(pin.kind))
|
|
56
|
+
&& recordActivationErrors(usable).length > 0,
|
|
57
|
+
approximateFallback: !record.exact && !hasRecordPin(usable, input) });
|
|
58
|
+
};
|
|
59
|
+
if (matches.some((record) => decision(record) !== decision(matches[0]))) {
|
|
60
|
+
throw new Error(`Conflicting moment records for ${agent} at ${normalizeInstant(at)}: ${input.section} ${input.declaredBy}/${input.id} has different effective pin/fallback decisions`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return matches[0];
|
|
64
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type History } from "./history.js";
|
|
3
|
+
/** Daimon's manifest records source identity, not the identity of retained/copied inodes. */
|
|
4
|
+
export declare const snapshotManifestSchema: z.ZodObject<{
|
|
5
|
+
version: z.ZodLiteral<"noopolis.daimon.wake-moment.v1">;
|
|
6
|
+
id: z.ZodString;
|
|
7
|
+
snapshot: z.ZodString;
|
|
8
|
+
started_at: z.ZodISODateTime;
|
|
9
|
+
sourcePath: z.ZodString;
|
|
10
|
+
entries: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
11
|
+
type: z.ZodEnum<{
|
|
12
|
+
file: "file";
|
|
13
|
+
directory: "directory";
|
|
14
|
+
symlink: "symlink";
|
|
15
|
+
}>;
|
|
16
|
+
mode: z.ZodNumber;
|
|
17
|
+
size: z.ZodString;
|
|
18
|
+
source: z.ZodObject<{
|
|
19
|
+
dev: z.ZodString;
|
|
20
|
+
ino: z.ZodString;
|
|
21
|
+
size: z.ZodString;
|
|
22
|
+
mtimeNs: z.ZodString;
|
|
23
|
+
ctimeNs: z.ZodString;
|
|
24
|
+
mode: z.ZodNumber;
|
|
25
|
+
}, z.core.$strict>;
|
|
26
|
+
target: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, z.core.$strict>>;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
export type SnapshotManifest = z.infer<typeof snapshotManifestSchema>;
|
|
30
|
+
export declare const snapshotHistoryPath: (agentSlug: string, id: string, snapshot: string) => string;
|
|
31
|
+
export declare const readSnapshotManifest: (history: History, relative: string, id: string, snapshot: string) => Promise<SnapshotManifest | null>;
|
|
32
|
+
interface TreeInspection {
|
|
33
|
+
retained?: boolean;
|
|
34
|
+
readBytes?: (relative: string) => Promise<Buffer>;
|
|
35
|
+
expectedBytes?: (relative: string) => Promise<Buffer>;
|
|
36
|
+
}
|
|
37
|
+
/** No symlink traversal. A separate call inspects the copied tree, independently of the producer. */
|
|
38
|
+
export declare const snapshotTreeFindings: (root: string, manifest: SnapshotManifest, options?: TreeInspection) => Promise<string[]>;
|
|
39
|
+
export declare const snapshotBytes: (history: History, relative: string, name: string) => Promise<Buffer>;
|
|
40
|
+
/** Retained files may be hard-linked to each other; bundle files are always new copies. */
|
|
41
|
+
export declare const copySnapshotTree: (history: History, relative: string, destination: string, manifest: SnapshotManifest) => Promise<void>;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { chmod, lstat, mkdir, readFile, readdir, readlink, symlink, writeFile } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { trainingInstantSchema } from "../../../manifest/index.js";
|
|
6
|
+
import { inside, safeSegment } from "./history.js";
|
|
7
|
+
const unsigned = z.string().regex(/^(?:0|[1-9][0-9]*)$/u);
|
|
8
|
+
const nanos = z.string().regex(/^-?(?:0|[1-9][0-9]*)$/u);
|
|
9
|
+
const mode = z.number().int().min(0).max(0xffff);
|
|
10
|
+
const relativePath = z.string().min(1).refine((value) => !value.includes("\\") && !value.includes("\0")
|
|
11
|
+
&& !path.posix.isAbsolute(value) && !value.split("/").some((part) => !part || part === "." || part === ".."), "Snapshot paths must be normalized relative POSIX paths");
|
|
12
|
+
const sourceIdentity = z.object({ dev: unsigned, ino: unsigned, size: unsigned, mtimeNs: nanos, ctimeNs: nanos, mode }).strict();
|
|
13
|
+
const entrySchema = z.object({ type: z.enum(["file", "directory", "symlink"]), mode, size: unsigned,
|
|
14
|
+
source: sourceIdentity, target: z.string().refine((value) => !value.includes("\0")).optional() }).strict().superRefine((entry, ctx) => {
|
|
15
|
+
if ((entry.type === "symlink") !== (entry.target !== undefined))
|
|
16
|
+
ctx.addIssue({ code: "custom", message: "Only snapshot symlinks require a target" });
|
|
17
|
+
if (entry.mode !== entry.source.mode || entry.size !== entry.source.size)
|
|
18
|
+
ctx.addIssue({ code: "custom", message: "Snapshot source identity disagrees with entry metadata" });
|
|
19
|
+
const typeMode = { file: 0o100000, directory: 0o040000, symlink: 0o120000 }[entry.type];
|
|
20
|
+
if ((entry.mode & 0o170000) !== typeMode)
|
|
21
|
+
ctx.addIssue({ code: "custom", message: "Snapshot mode disagrees with entry type" });
|
|
22
|
+
});
|
|
23
|
+
/** Daimon's manifest records source identity, not the identity of retained/copied inodes. */
|
|
24
|
+
export const snapshotManifestSchema = z.object({ version: z.literal("noopolis.daimon.wake-moment.v1"), id: z.string().min(1),
|
|
25
|
+
snapshot: z.string().min(1), started_at: trainingInstantSchema,
|
|
26
|
+
sourcePath: z.string().refine((value) => path.posix.isAbsolute(value) && !value.includes("\0"), "Expected an absolute snapshot sourcePath"),
|
|
27
|
+
entries: z.record(relativePath, entrySchema) }).strict().superRefine((manifest, ctx) => {
|
|
28
|
+
for (const name of Object.keys(manifest.entries)) {
|
|
29
|
+
for (let parent = path.posix.dirname(name); parent !== "."; parent = path.posix.dirname(parent)) {
|
|
30
|
+
if (manifest.entries[parent]?.type !== "directory")
|
|
31
|
+
ctx.addIssue({ code: "custom", message: `Snapshot parent ${parent} must be a recorded directory` });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
export const snapshotHistoryPath = (agentSlug, id, snapshot) => `recording/${safeSegment(agentSlug)}/snapshots/${safeSegment(id === "." || id === ".." ? id.replaceAll(".", "%2E") : id)}/${safeSegment(snapshot)}`;
|
|
36
|
+
export const readSnapshotManifest = async (history, relative, id, snapshot) => {
|
|
37
|
+
// Daimon publishes this marker only after the tree and manifest are durable.
|
|
38
|
+
if (await history.bytes(`${relative}.complete`) === null)
|
|
39
|
+
return null;
|
|
40
|
+
const bytes = await history.text(`${relative}.manifest.json`);
|
|
41
|
+
if (bytes === null)
|
|
42
|
+
return null;
|
|
43
|
+
let manifest;
|
|
44
|
+
try {
|
|
45
|
+
manifest = snapshotManifestSchema.parse(JSON.parse(bytes));
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw new Error(`Invalid snapshot manifest ${relative}.manifest.json: ${error instanceof Error ? error.message : String(error)}`);
|
|
49
|
+
}
|
|
50
|
+
if (manifest.id !== id || manifest.snapshot !== snapshot)
|
|
51
|
+
throw new Error(`Snapshot manifest identity mismatch at ${relative}.manifest.json`);
|
|
52
|
+
return manifest;
|
|
53
|
+
};
|
|
54
|
+
/** No symlink traversal. A separate call inspects the copied tree, independently of the producer. */
|
|
55
|
+
export const snapshotTreeFindings = async (root, manifest, options = {}) => {
|
|
56
|
+
if (!(await lstat(root)).isDirectory())
|
|
57
|
+
throw new Error("Snapshot tree must be a real directory");
|
|
58
|
+
const findings = [], found = new Set();
|
|
59
|
+
const visit = async (relative) => {
|
|
60
|
+
for (const leaf of (await readdir(path.join(root, relative))).sort()) {
|
|
61
|
+
const name = relative ? `${relative}/${leaf}` : leaf, file = path.join(root, name);
|
|
62
|
+
const stat = await lstat(file, { bigint: true }), expected = manifest.entries[name];
|
|
63
|
+
found.add(name);
|
|
64
|
+
const type = stat.isFile() ? "file" : stat.isDirectory() ? "directory" : stat.isSymbolicLink() ? "symlink" : "special";
|
|
65
|
+
if (!expected)
|
|
66
|
+
findings.push(`Unexpected snapshot entry ${name}`);
|
|
67
|
+
else if (type !== expected.type)
|
|
68
|
+
findings.push(`Snapshot type mismatch for ${name}`);
|
|
69
|
+
else {
|
|
70
|
+
// Recorder directories are deliberately 0700. Restore source modes while copying.
|
|
71
|
+
const wantedMode = options.retained && type === "file" ? expected.mode & 0o777 : expected.mode & 0o7777;
|
|
72
|
+
if (!(options.retained && type === "directory") && (Number(stat.mode) & 0o7777) !== wantedMode)
|
|
73
|
+
findings.push(`Snapshot mode mismatch for ${name}`);
|
|
74
|
+
// Directory inode sizes describe source filesystem bookkeeping, not tree content.
|
|
75
|
+
if (type !== "directory" && stat.size.toString() !== expected.size)
|
|
76
|
+
findings.push(`Snapshot size mismatch for ${name}`);
|
|
77
|
+
if (type === "symlink" && await readlink(file) !== expected.target)
|
|
78
|
+
findings.push(`Snapshot symlink target mismatch for ${name}`);
|
|
79
|
+
if (type === "file" && options.expectedBytes) {
|
|
80
|
+
const actual = options.readBytes ? await options.readBytes(name) : await readFile(file);
|
|
81
|
+
const original = await options.expectedBytes(name);
|
|
82
|
+
const digest = (bytes) => createHash("sha256").update(bytes).digest("hex");
|
|
83
|
+
if (digest(actual) !== digest(original))
|
|
84
|
+
findings.push(`Snapshot digest mismatch for ${name}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (type === "directory")
|
|
88
|
+
await visit(name);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
await visit("");
|
|
92
|
+
for (const name of Object.keys(manifest.entries))
|
|
93
|
+
if (!found.has(name))
|
|
94
|
+
findings.push(`Missing snapshot entry ${name}`);
|
|
95
|
+
return findings;
|
|
96
|
+
};
|
|
97
|
+
export const snapshotBytes = async (history, relative, name) => {
|
|
98
|
+
const bytes = await history.bytes(`${relative}/${name}`);
|
|
99
|
+
if (bytes === null)
|
|
100
|
+
throw new Error(`Missing snapshot entry ${name}`);
|
|
101
|
+
return bytes;
|
|
102
|
+
};
|
|
103
|
+
/** Retained files may be hard-linked to each other; bundle files are always new copies. */
|
|
104
|
+
export const copySnapshotTree = async (history, relative, destination, manifest) => {
|
|
105
|
+
const source = await history.path(relative);
|
|
106
|
+
if (!source)
|
|
107
|
+
throw new Error(`Missing snapshot tree ${relative}`);
|
|
108
|
+
const findings = await snapshotTreeFindings(source, manifest, { retained: true });
|
|
109
|
+
if (findings.length)
|
|
110
|
+
throw new Error(findings.join("; "));
|
|
111
|
+
await mkdir(destination, { recursive: true, mode: 0o700 });
|
|
112
|
+
const entries = Object.entries(manifest.entries).sort(([a], [b]) => a.split("/").length - b.split("/").length || a.localeCompare(b));
|
|
113
|
+
for (const [name, entry] of entries) {
|
|
114
|
+
const target = path.join(destination, name);
|
|
115
|
+
if (entry.type === "directory")
|
|
116
|
+
await mkdir(target, { mode: 0o700 });
|
|
117
|
+
else if (entry.type === "symlink") {
|
|
118
|
+
if (path.isAbsolute(entry.target) || !inside(destination, path.resolve(path.dirname(target), entry.target))) {
|
|
119
|
+
throw new Error(`Snapshot symlink escapes root: ${name}`);
|
|
120
|
+
}
|
|
121
|
+
await symlink(entry.target, target);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
await writeFile(target, await snapshotBytes(history, relative, name), { flag: "wx" });
|
|
125
|
+
await chmod(target, entry.mode & 0o7777);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
for (const [name, entry] of entries.reverse())
|
|
129
|
+
if (entry.type === "directory")
|
|
130
|
+
await chmod(path.join(destination, name), entry.mode & 0o7777);
|
|
131
|
+
const copied = await snapshotTreeFindings(destination, manifest, { expectedBytes: (name) => snapshotBytes(history, relative, name) });
|
|
132
|
+
if (copied.length)
|
|
133
|
+
throw new Error(copied.join("; "));
|
|
134
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Shared ecosystem range applies to trial instants, not historical source timestamps. */
|
|
2
|
+
export declare const assertTaskClockInstant: (instant: string) => void;
|
|
3
|
+
export declare const createTaskClock: (origin: string) => {
|
|
4
|
+
version: "spawnfile.task-clock.v1";
|
|
5
|
+
origin: string;
|
|
6
|
+
};
|
|
7
|
+
/** Top-level Daimon only: its clock stays real and it derives each child's clock environment. */
|
|
8
|
+
export declare const harnessTaskClockEnvironment: (origin: string, anchorEpochMs: number) => Record<string, string>;
|
|
9
|
+
/** Child/tool wall clock. Trial preparation supplies libfaketime LD_PRELOAD and a dot-decimal locale. */
|
|
10
|
+
export declare const processClockEnvironment: (origin: string, anchorEpochMs: number) => Record<string, string>;
|
|
11
|
+
/** Clock-aware child (e.g. Mneme) without libfaketime: apply the offset inside the process exactly once. */
|
|
12
|
+
export declare const clockAwareEnvironment: (origin: string, anchorEpochMs: number) => Record<string, string>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { instantNanos, normalizeInstant } from "./instant.js";
|
|
2
|
+
import { taskClockSchema } from "./contract.js";
|
|
3
|
+
/** Shared ecosystem range applies to trial instants, not historical source timestamps. */
|
|
4
|
+
export const assertTaskClockInstant = (instant) => {
|
|
5
|
+
const nanos = instantNanos(instant);
|
|
6
|
+
if (nanos < 0n || nanos > 253402300799999000000n) {
|
|
7
|
+
throw new Error(`Trial instant ${instant} must be within 1970-01-01T00:00:00Z .. 9999-12-31T23:59:59.999Z`);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
const taskOrigin = (origin) => {
|
|
11
|
+
assertTaskClockInstant(origin);
|
|
12
|
+
return normalizeInstant(origin);
|
|
13
|
+
};
|
|
14
|
+
export const createTaskClock = (origin) => taskClockSchema.parse({
|
|
15
|
+
version: "spawnfile.task-clock.v1", origin: taskOrigin(origin)
|
|
16
|
+
});
|
|
17
|
+
const clockOrigin = (origin, anchorEpochMs) => {
|
|
18
|
+
if (!Number.isSafeInteger(anchorEpochMs))
|
|
19
|
+
throw new Error("Task clock anchorEpochMs must be a safe integer");
|
|
20
|
+
return taskOrigin(origin);
|
|
21
|
+
};
|
|
22
|
+
/** Top-level Daimon only: its clock stays real and it derives each child's clock environment. */
|
|
23
|
+
export const harnessTaskClockEnvironment = (origin, anchorEpochMs) => ({
|
|
24
|
+
NOOPOLIS_TASK_CLOCK: JSON.stringify({ version: "noopolis.task-clock.v1", origin: clockOrigin(origin, anchorEpochMs), anchorEpochMs })
|
|
25
|
+
});
|
|
26
|
+
/** Child/tool wall clock. Trial preparation supplies libfaketime LD_PRELOAD and a dot-decimal locale. */
|
|
27
|
+
export const processClockEnvironment = (origin, anchorEpochMs) => {
|
|
28
|
+
const normalized = clockOrigin(origin, anchorEpochMs);
|
|
29
|
+
const offsetMs = BigInt(Date.parse(normalized)) - BigInt(anchorEpochMs);
|
|
30
|
+
const magnitude = offsetMs < 0n ? -offsetMs : offsetMs;
|
|
31
|
+
const fraction = magnitude % 1000n;
|
|
32
|
+
return {
|
|
33
|
+
FAKETIME: `${offsetMs < 0n ? "-" : "+"}${magnitude / 1000n}${fraction ? `.${String(fraction).padStart(3, "0")}` : ""}`,
|
|
34
|
+
FAKETIME_DONT_FAKE_MONOTONIC: "1"
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
/** Clock-aware child (e.g. Mneme) without libfaketime: apply the offset inside the process exactly once. */
|
|
38
|
+
export const clockAwareEnvironment = (origin, anchorEpochMs) => ({
|
|
39
|
+
MNEME_CLOCK_ORIGIN: clockOrigin(origin, anchorEpochMs), MNEME_CLOCK_ANCHOR_MS: String(anchorEpochMs)
|
|
40
|
+
});
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Round down to milliseconds so filesystem precision cannot put a stamp after the instant. */
|
|
2
|
+
export declare const stampTree: (root: string, instant: string, at: string) => Promise<void>;
|
|
3
|
+
/** Disk verification reads may update atime. Restore access time without changing verified mtimes. */
|
|
4
|
+
export declare const restoreAccessTimes: (root: string, at: string) => Promise<void>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { lstat, lutimes, readdir, utimes } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { compareInstants } from "./instant.js";
|
|
4
|
+
/** Round down to milliseconds so filesystem precision cannot put a stamp after the instant. */
|
|
5
|
+
export const stampTree = async (root, instant, at) => {
|
|
6
|
+
const stamp = new Date(compareInstants(instant, at) > 0 ? at : instant);
|
|
7
|
+
const visit = async (file) => {
|
|
8
|
+
const stats = await lstat(file);
|
|
9
|
+
if (stats.isDirectory())
|
|
10
|
+
for (const name of await readdir(file))
|
|
11
|
+
await visit(path.join(file, name));
|
|
12
|
+
await (stats.isSymbolicLink() ? lutimes : utimes)(file, stamp, stamp);
|
|
13
|
+
};
|
|
14
|
+
await visit(root);
|
|
15
|
+
};
|
|
16
|
+
/** Disk verification reads may update atime. Restore access time without changing verified mtimes. */
|
|
17
|
+
export const restoreAccessTimes = async (root, at) => {
|
|
18
|
+
const visit = async (file) => {
|
|
19
|
+
const stats = await lstat(file);
|
|
20
|
+
if (stats.isDirectory())
|
|
21
|
+
for (const name of await readdir(file))
|
|
22
|
+
await visit(path.join(file, name));
|
|
23
|
+
await (stats.isSymbolicLink() ? lutimes : utimes)(file, new Date(Math.min(stats.mtimeMs, Date.parse(at))), new Date(stats.mtimeMs));
|
|
24
|
+
};
|
|
25
|
+
await visit(root);
|
|
26
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { MemoryBank, TeamNetwork, TeamWorkspaceResource } from "../../../manifest/index.js";
|
|
2
|
+
import type { ResolvedMemoryBank } from "../../types.js";
|
|
3
|
+
import type { MaterializedInput } from "./contract.js";
|
|
4
|
+
import type { MomentRecord } from "../../../recording/index.js";
|
|
5
|
+
import type { History } from "./history.js";
|
|
6
|
+
export interface InputIdentity {
|
|
7
|
+
section: "resources" | "memory" | "networks";
|
|
8
|
+
id: string;
|
|
9
|
+
declaredBy: string;
|
|
10
|
+
}
|
|
11
|
+
interface InputBase extends InputIdentity {
|
|
12
|
+
overridden: boolean;
|
|
13
|
+
declarationBase: string;
|
|
14
|
+
}
|
|
15
|
+
export type RewindInput = InputBase & ({
|
|
16
|
+
section: "resources";
|
|
17
|
+
declaration: TeamWorkspaceResource;
|
|
18
|
+
} | {
|
|
19
|
+
section: "memory";
|
|
20
|
+
declaration: MemoryBank | ResolvedMemoryBank;
|
|
21
|
+
} | {
|
|
22
|
+
section: "networks";
|
|
23
|
+
declaration: TeamNetwork;
|
|
24
|
+
});
|
|
25
|
+
export interface InputContext {
|
|
26
|
+
input: RewindInput;
|
|
27
|
+
at: string;
|
|
28
|
+
agentSlug?: string;
|
|
29
|
+
agentId?: string;
|
|
30
|
+
record: MomentRecord | null;
|
|
31
|
+
candidateRecords?: readonly MomentRecord[];
|
|
32
|
+
history: History | undefined;
|
|
33
|
+
destination: string;
|
|
34
|
+
}
|
|
35
|
+
export interface InputResult {
|
|
36
|
+
fidelity: "exact" | "approximate" | "overridden";
|
|
37
|
+
basis: string;
|
|
38
|
+
source: MaterializedInput["source"];
|
|
39
|
+
notes: string[];
|
|
40
|
+
instant: string;
|
|
41
|
+
build?: "deferred";
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type History } from "./history.js";
|
|
2
|
+
import { type SnapshotManifest } from "./snapshotManifest.js";
|
|
3
|
+
import type { InputContext, InputResult } from "./types.js";
|
|
4
|
+
export interface SelectedVolumeSnapshot {
|
|
5
|
+
snapshot: string;
|
|
6
|
+
startedAt: string;
|
|
7
|
+
manifest: SnapshotManifest;
|
|
8
|
+
relative: string;
|
|
9
|
+
}
|
|
10
|
+
/** A published row plus retained directory and manifest is complete; never infer time from its name. */
|
|
11
|
+
export declare const selectVolumeSnapshot: (history: History, agentSlug: string, agentId: string, id: string, at: string, recordId?: string) => Promise<SelectedVolumeSnapshot>;
|
|
12
|
+
export declare const materializeVolume: (context: InputContext) => Promise<InputResult>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { lstat, mkdir } from "node:fs/promises";
|
|
2
|
+
import { safeSegment } from "./history.js";
|
|
3
|
+
import { compareInstants } from "./instant.js";
|
|
4
|
+
import { copySnapshotTree, readSnapshotManifest, snapshotHistoryPath } from "./snapshotManifest.js";
|
|
5
|
+
/** A published row plus retained directory and manifest is complete; never infer time from its name. */
|
|
6
|
+
export const selectVolumeSnapshot = async (history, agentSlug, agentId, id, at, recordId) => {
|
|
7
|
+
const rowsPath = `recording/${safeSegment(agentSlug)}/wake-moments.jsonl`;
|
|
8
|
+
const rows = await history.wakeMoments(rowsPath);
|
|
9
|
+
if (!rows)
|
|
10
|
+
throw new Error(`Missing volume snapshot history ${rowsPath}`);
|
|
11
|
+
const candidates = rows.flatMap((row, index) => row.agent_id !== agentId ? [] : row.snapshots.filter((entry) => entry.id === id)
|
|
12
|
+
.map((entry) => ({ row, entry, index })))
|
|
13
|
+
.filter(({ row, entry }) => recordId === undefined ? compareInstants(row.started_at, at) <= 0 : entry.snapshot === recordId)
|
|
14
|
+
.sort((a, b) => compareInstants(b.row.started_at, a.row.started_at) || b.index - a.index);
|
|
15
|
+
for (const { row, entry } of candidates) {
|
|
16
|
+
if (entry.snapshot.endsWith(".partial")) {
|
|
17
|
+
if (recordId !== undefined)
|
|
18
|
+
throw new Error(`Recorded volume snapshot ${recordId} is partial`);
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (compareInstants(row.started_at, at) > 0)
|
|
22
|
+
throw new Error(`Recorded volume snapshot ${entry.snapshot} is later than the moment`);
|
|
23
|
+
const relative = snapshotHistoryPath(agentSlug, id, entry.snapshot), tree = await history.path(relative);
|
|
24
|
+
const manifest = await readSnapshotManifest(history, relative, id, entry.snapshot);
|
|
25
|
+
if (!tree || !manifest) {
|
|
26
|
+
if (recordId !== undefined)
|
|
27
|
+
throw new Error(`Recorded volume snapshot ${recordId} is incomplete`);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (!(await lstat(tree)).isDirectory())
|
|
31
|
+
throw new Error(`Snapshot tree must be a real directory: ${relative}`);
|
|
32
|
+
if (compareInstants(manifest.started_at, row.started_at) !== 0)
|
|
33
|
+
throw new Error(`Snapshot manifest started_at disagrees with its wake row: ${relative}`);
|
|
34
|
+
return { snapshot: entry.snapshot, startedAt: row.started_at, manifest, relative };
|
|
35
|
+
}
|
|
36
|
+
if (recordId !== undefined)
|
|
37
|
+
throw new Error(`Recorded volume snapshot ${recordId} is absent from ${rowsPath}`);
|
|
38
|
+
throw new Error("No complete volume snapshot was taken at or before the moment");
|
|
39
|
+
};
|
|
40
|
+
export const materializeVolume = async (context) => {
|
|
41
|
+
const { input, at, record, history, destination } = context;
|
|
42
|
+
if (input.section !== "resources" || input.declaration.kind !== "volume" || input.declaration.feed) {
|
|
43
|
+
throw new Error("Volume materialization requires an unfed volume input");
|
|
44
|
+
}
|
|
45
|
+
if (input.overridden) {
|
|
46
|
+
await mkdir(destination, { recursive: true });
|
|
47
|
+
return { fidelity: "overridden", basis: "override", source: {}, notes: [], instant: at };
|
|
48
|
+
}
|
|
49
|
+
if (!history)
|
|
50
|
+
throw new Error(`Volume ${input.id} requires --history or an override`);
|
|
51
|
+
if (!context.agentSlug || !context.agentId)
|
|
52
|
+
throw new Error("Volume snapshots require the compiled agent slug and identity");
|
|
53
|
+
const pin = record?.volumes.find((entry) => entry.id === input.id);
|
|
54
|
+
const selected = await selectVolumeSnapshot(history, context.agentSlug, context.agentId, input.id, at, pin?.snapshot);
|
|
55
|
+
await copySnapshotTree(history, selected.relative, destination, selected.manifest);
|
|
56
|
+
return { fidelity: pin ? "exact" : "approximate", basis: pin ? "record" : "snapshot-at",
|
|
57
|
+
source: { snapshot: selected.snapshot, agentSlug: context.agentSlug }, notes: [], instant: selected.startedAt };
|
|
58
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SpawnfileError } from "../../shared/index.js";
|
|
2
|
+
/** Exact IDs win; a short authored name must identify exactly one graph node. */
|
|
3
|
+
export const selectTrainingAgent = (agents, selector) => {
|
|
4
|
+
const exact = agents.find(agent => agent.id === selector);
|
|
5
|
+
if (exact)
|
|
6
|
+
return exact;
|
|
7
|
+
const matches = selector === undefined ? agents : selector.includes(":") ? []
|
|
8
|
+
: agents.filter(agent => agent.value.name === selector || agent.id.slice("agent:".length) === selector);
|
|
9
|
+
if (matches.length === 1)
|
|
10
|
+
return matches[0];
|
|
11
|
+
throw new SpawnfileError("validation_error", selector === undefined
|
|
12
|
+
? "Training requires --agent when the project does not contain exactly one agent"
|
|
13
|
+
: matches.length > 1 ? `Ambiguous training agent ${selector}; use an exact node id: ${matches.map(agent => agent.id).sort().join(", ")}`
|
|
14
|
+
: `No canonical agent matches ${selector}`);
|
|
15
|
+
};
|
package/dist/compiler/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { AgentSchedule, ExecutionBlock, McpServer, MemoryConsolidation, MemoryRetention, ModelEndpoint, Secret, TeamNetworkServer, type ExternalParticipantService } from "../manifest/index.js";
|
|
1
|
+
import { AgentSchedule, ExecutionBlock, McpServer, SharedMcpServer, MemoryConsolidation, MemoryRetention, ModelEndpoint, ModelTarget, Secret, TeamNetworkServer, type ExternalParticipantService } from "../manifest/index.js";
|
|
2
2
|
import { ModelAuthMethod, StringMap } from "../shared/index.js";
|
|
3
3
|
import type { ResolvedWorkspaceResource } from "./workspaceResources.js";
|
|
4
|
+
import type { ResolvedTraining } from "./training/resolution.js";
|
|
4
5
|
import type { ResolvedExternalParticipant, ResolvedOrganizationIdentity } from "./organizationIdentity.js";
|
|
5
6
|
export interface ResolvedDocument {
|
|
6
7
|
content: string;
|
|
@@ -114,6 +115,7 @@ export interface ResolvedAgentSurfaces {
|
|
|
114
115
|
whatsapp?: ResolvedWhatsAppSurface;
|
|
115
116
|
}
|
|
116
117
|
export interface ResolvedTeamNetworkRoom {
|
|
118
|
+
federation?: "all" | "none" | string[];
|
|
117
119
|
id: string;
|
|
118
120
|
members: string[];
|
|
119
121
|
name?: string;
|
|
@@ -197,6 +199,7 @@ export interface EffectiveModelTarget {
|
|
|
197
199
|
endpoint?: ModelEndpoint;
|
|
198
200
|
name: string;
|
|
199
201
|
provider: string;
|
|
202
|
+
reasoningEffort?: ModelTarget["reasoning_effort"];
|
|
200
203
|
}
|
|
201
204
|
export interface ResolvedSubagentRef {
|
|
202
205
|
id: string;
|
|
@@ -230,6 +233,7 @@ export interface ResolvedAgentNode {
|
|
|
230
233
|
subagents: ResolvedSubagentRef[];
|
|
231
234
|
memory?: ResolvedMemoryBank[];
|
|
232
235
|
memoryAccess?: ResolvedMemoryAccess[];
|
|
236
|
+
training?: ResolvedTraining;
|
|
233
237
|
workspaceResources?: ResolvedWorkspaceResource[];
|
|
234
238
|
}
|
|
235
239
|
export interface ResolvedTeamNode {
|
|
@@ -249,12 +253,13 @@ export interface ResolvedTeamNode {
|
|
|
249
253
|
workspaceResources?: ResolvedWorkspaceResource[];
|
|
250
254
|
shared: {
|
|
251
255
|
env: StringMap;
|
|
252
|
-
mcpServers:
|
|
256
|
+
mcpServers: SharedMcpServer[];
|
|
253
257
|
secrets: Secret[];
|
|
254
258
|
skills: ResolvedSkill[];
|
|
255
259
|
packages?: ResolvedPackage[];
|
|
256
260
|
};
|
|
257
261
|
memory?: ResolvedMemoryBank[];
|
|
262
|
+
training?: ResolvedTraining;
|
|
258
263
|
source: string;
|
|
259
264
|
}
|
|
260
265
|
export interface CompilePlanEdge {
|
|
@@ -1,19 +1,45 @@
|
|
|
1
1
|
import { type DockerTargetExecFile } from "../deployment/index.js";
|
|
2
|
+
import type { UpLifecycleRecovery } from "../deployment/upLifecycleRecoveryState.js";
|
|
2
3
|
import { type BuildProjectResult, type DockerBuildRunner } from "./buildProject.js";
|
|
3
|
-
import { type DockerRunRunner } from "./runProject.js";
|
|
4
|
+
import { type DockerRunResult, type DockerRunRunner } from "./runProject.js";
|
|
4
5
|
import { CompileProjectOptions } from "./compileProject.js";
|
|
5
6
|
export interface UpProjectOptions extends CompileProjectOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Opt out of the dev-mode refusal to attach author-declared volumes by name.
|
|
9
|
+
* Only meaningful together with `deploymentLineageNamespace`.
|
|
10
|
+
*/
|
|
11
|
+
allowDeclaredVolumeNames?: boolean;
|
|
6
12
|
authProfile?: string;
|
|
7
13
|
buildRunner?: DockerBuildRunner;
|
|
8
14
|
containerName?: string;
|
|
9
15
|
detach?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Namespaces the deployment LINEAGE (not the deployment name) so a class of
|
|
18
|
+
* deployment can never resolve to another class's derived volumes. Set to
|
|
19
|
+
* "dev" by `devUpProject`; see src/compiler/deploymentLineage.ts.
|
|
20
|
+
*/
|
|
21
|
+
deploymentLineageNamespace?: string;
|
|
10
22
|
deploymentName?: string;
|
|
11
23
|
dockerCommand?: string;
|
|
12
24
|
dockerContext?: string;
|
|
13
25
|
dockerHost?: string;
|
|
14
26
|
envFilePath?: string;
|
|
15
27
|
imageTag?: string;
|
|
28
|
+
lifecycleRecovery?: UpLifecycleRecovery;
|
|
16
29
|
runRunner?: DockerRunRunner;
|
|
30
|
+
now?: () => Date;
|
|
31
|
+
onDetachedReservation?: (authority: {
|
|
32
|
+
containerName: string;
|
|
33
|
+
deploymentLabels: Readonly<Record<string, string>>;
|
|
34
|
+
dockerCommand: string;
|
|
35
|
+
dockerContext: string | null;
|
|
36
|
+
}) => Promise<void>;
|
|
37
|
+
onDetachedStarted?: (result: DockerRunResult & {
|
|
38
|
+
containerId: string;
|
|
39
|
+
containerName: string;
|
|
40
|
+
imageId: string;
|
|
41
|
+
deploymentLabels: Readonly<Record<string, string>>;
|
|
42
|
+
}) => Promise<void>;
|
|
17
43
|
networkAttachmentHandle?: string;
|
|
18
44
|
organizationHandoffRunId?: string;
|
|
19
45
|
descriptorDigest?: string;
|