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,47 @@
|
|
|
1
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
2
|
+
import { parseContext, runtimeFailure } from "./targetConfigResolverValidation.js";
|
|
3
|
+
const MAX_DOCKER_OUTPUT_BYTES = 64 * 1_024;
|
|
4
|
+
export const exactJson = (source, keys, failureMessage) => {
|
|
5
|
+
if (Buffer.byteLength(source, "utf8") > MAX_DOCKER_OUTPUT_BYTES) {
|
|
6
|
+
return runtimeFailure(failureMessage);
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
const parsed = JSON.parse(source);
|
|
10
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)
|
|
11
|
+
|| Object.keys(parsed).sort().join("\0") !== [...keys].sort().join("\0")) {
|
|
12
|
+
return runtimeFailure(failureMessage);
|
|
13
|
+
}
|
|
14
|
+
return parsed;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return runtimeFailure(failureMessage);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export const executeDocker = async (execFile, command, context, args, timeout, signal, failureMessage) => {
|
|
21
|
+
try {
|
|
22
|
+
const result = await execFile(command, ["--context", context, ...args], { signal, timeout });
|
|
23
|
+
if (Buffer.byteLength(result.stdout, "utf8") > MAX_DOCKER_OUTPUT_BYTES) {
|
|
24
|
+
return runtimeFailure(failureMessage);
|
|
25
|
+
}
|
|
26
|
+
return result.stdout;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return runtimeFailure(failureMessage);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
export const resolveCurrentDockerContext = async (execFile, dockerCommand, timeoutMs, signal) => {
|
|
33
|
+
try {
|
|
34
|
+
const result = await execFile(dockerCommand, ["context", "show"], {
|
|
35
|
+
signal, timeout: timeoutMs,
|
|
36
|
+
});
|
|
37
|
+
if (Buffer.byteLength(result.stdout, "utf8") > 4_096) {
|
|
38
|
+
return runtimeFailure("Current Docker context is invalid");
|
|
39
|
+
}
|
|
40
|
+
return parseContext(result.stdout.trim());
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error instanceof SpawnfileError)
|
|
44
|
+
throw error;
|
|
45
|
+
return runtimeFailure("Unable to resolve the current Docker context");
|
|
46
|
+
}
|
|
47
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TargetConfigResolution } from "./targetConfigResolverContracts.js";
|
|
2
|
+
export declare const validationFailure: (message: string) => never;
|
|
3
|
+
export declare const runtimeFailure: (message: string) => never;
|
|
4
|
+
export declare const parseContext: (value: unknown) => string;
|
|
5
|
+
export declare const parseDockerCommand: (value: unknown) => string;
|
|
6
|
+
export declare const parseTimeout: (value: unknown) => number;
|
|
7
|
+
export declare const parseBaseImage: (value: unknown) => string;
|
|
8
|
+
export declare const validateEvidenceDestination: (value: unknown) => Promise<string>;
|
|
9
|
+
export declare const classifyEndpoint: (endpoint: string) => TargetConfigResolution["endpoint"];
|
|
10
|
+
export declare const normalizeArchitecture: (value: unknown) => "amd64" | "arm64";
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { lstat, realpath } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
4
|
+
import { parseDockerBaseImageReference } from "../target/dockerBaseImage.js";
|
|
5
|
+
const CONTEXT = /^[a-z][a-z0-9_-]{0,63}$/u;
|
|
6
|
+
const COMMAND_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
|
|
7
|
+
const MAX_PATH_BYTES = 4_096;
|
|
8
|
+
export const validationFailure = (message) => {
|
|
9
|
+
throw new SpawnfileError("validation_error", message);
|
|
10
|
+
};
|
|
11
|
+
export const runtimeFailure = (message) => {
|
|
12
|
+
throw new SpawnfileError("runtime_error", message);
|
|
13
|
+
};
|
|
14
|
+
export const parseContext = (value) => typeof value === "string" && CONTEXT.test(value)
|
|
15
|
+
? value
|
|
16
|
+
: validationFailure("Docker context must be an explicit bounded context name");
|
|
17
|
+
export const parseDockerCommand = (value) => {
|
|
18
|
+
if (typeof value !== "string" || value.includes("\0")
|
|
19
|
+
|| Buffer.byteLength(value, "utf8") > 1_024) {
|
|
20
|
+
return validationFailure("Docker command is invalid");
|
|
21
|
+
}
|
|
22
|
+
if (COMMAND_NAME.test(value))
|
|
23
|
+
return value;
|
|
24
|
+
if (path.isAbsolute(value) && path.normalize(value) === value)
|
|
25
|
+
return value;
|
|
26
|
+
return validationFailure("Docker command is invalid");
|
|
27
|
+
};
|
|
28
|
+
export const parseTimeout = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 1 && value <= 120_000
|
|
29
|
+
? value
|
|
30
|
+
: validationFailure("Target timeout must be an integer from 1 to 120000 milliseconds");
|
|
31
|
+
export const parseBaseImage = (value) => parseDockerBaseImageReference(value)
|
|
32
|
+
?? validationFailure("Base image must be an explicit portable image reference");
|
|
33
|
+
export const validateEvidenceDestination = async (value) => {
|
|
34
|
+
if (typeof value !== "string" || value.includes("\0")
|
|
35
|
+
|| Buffer.byteLength(value, "utf8") > MAX_PATH_BYTES
|
|
36
|
+
|| !path.isAbsolute(value) || path.normalize(value) !== value) {
|
|
37
|
+
return validationFailure("Evidence destination must be an absolute normalized path");
|
|
38
|
+
}
|
|
39
|
+
const parent = path.dirname(value);
|
|
40
|
+
const owner = process.getuid?.();
|
|
41
|
+
try {
|
|
42
|
+
const parentInfo = await lstat(parent);
|
|
43
|
+
if (!parentInfo.isDirectory() || parentInfo.isSymbolicLink()
|
|
44
|
+
|| (parentInfo.mode & 0o777) !== 0o700
|
|
45
|
+
|| owner !== undefined && parentInfo.uid !== owner
|
|
46
|
+
|| await realpath(parent) !== parent) {
|
|
47
|
+
return validationFailure("Evidence destination parent must be a private physical directory");
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const destinationInfo = await lstat(value);
|
|
51
|
+
if (!destinationInfo.isFile() || destinationInfo.isSymbolicLink()
|
|
52
|
+
|| (destinationInfo.mode & 0o777) !== 0o600
|
|
53
|
+
|| owner !== undefined && destinationInfo.uid !== owner) {
|
|
54
|
+
return validationFailure("Existing evidence destination must be a private regular file");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error.code !== "ENOENT")
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (error instanceof SpawnfileError)
|
|
64
|
+
throw error;
|
|
65
|
+
return validationFailure("Evidence destination parent is unavailable");
|
|
66
|
+
}
|
|
67
|
+
return value;
|
|
68
|
+
};
|
|
69
|
+
export const classifyEndpoint = (endpoint) => {
|
|
70
|
+
if (Buffer.byteLength(endpoint, "utf8") > 4_096 || /\s/u.test(endpoint)) {
|
|
71
|
+
return runtimeFailure("Docker context returned an invalid endpoint");
|
|
72
|
+
}
|
|
73
|
+
const match = /^(fd|http|https|npipe|ssh|tcp|unix):\/\/.+$/u.exec(endpoint);
|
|
74
|
+
if (!match)
|
|
75
|
+
return runtimeFailure("Docker context returned an unsupported endpoint transport");
|
|
76
|
+
const transport = match[1];
|
|
77
|
+
return Object.freeze({
|
|
78
|
+
class: transport === "fd" || transport === "npipe" || transport === "unix"
|
|
79
|
+
? "local" : "remote",
|
|
80
|
+
transport,
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
export const normalizeArchitecture = (value) => {
|
|
84
|
+
if (typeof value !== "string")
|
|
85
|
+
return runtimeFailure("Docker architecture is invalid");
|
|
86
|
+
switch (value.trim()) {
|
|
87
|
+
case "amd64":
|
|
88
|
+
case "x64":
|
|
89
|
+
case "x86_64": return "amd64";
|
|
90
|
+
case "aarch64":
|
|
91
|
+
case "arm64": return "arm64";
|
|
92
|
+
default: return runtimeFailure("Docker architecture is unsupported");
|
|
93
|
+
}
|
|
94
|
+
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type DockerArtifactIdentityBinding, type DockerArtifactIdentityStore, type DockerArtifactMapping } from "../target/dockerArtifactsProvider.js";
|
|
2
|
+
import type { DockerArtifactExecutor } from "../target/dockerArtifactsProvider.js";
|
|
2
3
|
import { type DockerTargetExecutors } from "../target/dockerCommandExecutor.js";
|
|
3
4
|
import { type TargetSecretVersionAuthorityStore } from "../target/dockerSecretsAuthority.js";
|
|
4
5
|
import { type WorldServiceResolver } from "../target/dockerWorldServiceAuthority.js";
|
|
@@ -32,6 +33,7 @@ export interface TargetDefaultAuthorities {
|
|
|
32
33
|
readonly evidenceExportAuthorityStore: EvidenceExportAuthorityStore;
|
|
33
34
|
readonly executors: DockerTargetExecutors;
|
|
34
35
|
readonly handoffResolver: OrganizationAttachmentResolver;
|
|
36
|
+
readonly helperExecutor: DockerArtifactExecutor;
|
|
35
37
|
/** Omitted when this invocation cannot export evidence. */
|
|
36
38
|
readonly helperArtifactResolver?: HelperArtifactResolver;
|
|
37
39
|
readonly journals: TargetJournalResolver;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { initializeDockerArtifactIdentityStore } from "../target/dockerArtifactsProvider.js";
|
|
2
|
+
import { createPreparedEvidenceHelperExecutor } from "../evidenceExportHelper/index.js";
|
|
2
3
|
import { createDockerTargetExecutors } from "../target/dockerCommandExecutor.js";
|
|
3
4
|
import { initializeTargetSecretVersionAuthorityStore } from "../target/dockerSecretsAuthority.js";
|
|
4
5
|
import { parseWorldServiceAuthorization, parseWorldServiceResolution } from "../target/dockerWorldServiceAuthority.js";
|
|
@@ -37,6 +38,7 @@ export const initializeTargetDefaultAuthoritySession = async (config) => {
|
|
|
37
38
|
handoffAuthority = await initializeOrganizationHandoffAuthorityStore();
|
|
38
39
|
const handoffResolver = handoffAuthority.resolver;
|
|
39
40
|
const executors = createDockerTargetExecutors({ dockerCommand: config.dockerCommand });
|
|
41
|
+
const helperExecutor = createPreparedEvidenceHelperExecutor(config.dockerCommand);
|
|
40
42
|
const preparedBuilder = createDockerTargetLocalBundleBuilder({ context: config.context,
|
|
41
43
|
executor: executors.artifact, timeoutMs: config.timeoutMs });
|
|
42
44
|
const preparedStore = await initializeFilesystemTargetLocalBundleStore(config.paths.containerBundles);
|
|
@@ -185,6 +187,7 @@ export const initializeTargetDefaultAuthoritySession = async (config) => {
|
|
|
185
187
|
evidenceExportAuthorityStore,
|
|
186
188
|
executors,
|
|
187
189
|
handoffResolver,
|
|
190
|
+
helperExecutor,
|
|
188
191
|
...(helperArtifactResolver ? { helperArtifactResolver } : {}),
|
|
189
192
|
journals,
|
|
190
193
|
secretAuthorityStore,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type PreparedEvidenceHelperReceipt } from "../evidenceExportHelper/index.js";
|
|
1
2
|
import { type DockerArtifactMapping } from "../target/dockerArtifactsProvider.js";
|
|
2
3
|
export { resolveTargetDefaultJournalRoot } from "../target/journalRoot.js";
|
|
3
4
|
export declare const TARGET_DEFAULT_CONFIG_ERROR = "Target configuration failed";
|
|
@@ -14,6 +15,8 @@ export interface TargetDefaultConfigInputs {
|
|
|
14
15
|
readonly containerBundleStoreRoot?: string;
|
|
15
16
|
readonly context: string;
|
|
16
17
|
readonly dockerCommand: string;
|
|
18
|
+
readonly evidenceHelperBaseImage?: string;
|
|
19
|
+
readonly preparedEvidenceHelper?: PreparedEvidenceHelperReceipt;
|
|
17
20
|
readonly evidenceDestination: string;
|
|
18
21
|
readonly helperArtifactManifestDigest?: string;
|
|
19
22
|
/** Local-Daemon prepared images, admitted only by manifest/bundle/policy. */
|
|
@@ -39,6 +42,8 @@ export interface TargetDefaultConfig {
|
|
|
39
42
|
readonly artifactMappings: readonly DockerArtifactMapping[];
|
|
40
43
|
readonly context: string;
|
|
41
44
|
readonly dockerCommand: string;
|
|
45
|
+
readonly evidenceHelperBaseImage?: string;
|
|
46
|
+
readonly preparedEvidenceHelper?: PreparedEvidenceHelperReceipt;
|
|
42
47
|
readonly evidenceDestination: string;
|
|
43
48
|
/** Present only when the private evidence-export helper was configured. */
|
|
44
49
|
readonly helperArtifact?: DockerArtifactMapping;
|
|
@@ -47,6 +52,7 @@ export interface TargetDefaultConfig {
|
|
|
47
52
|
readonly artifactIdentities: string;
|
|
48
53
|
readonly attachmentAuthority: string;
|
|
49
54
|
readonly evidenceExport: string;
|
|
55
|
+
readonly evidenceHelper: string;
|
|
50
56
|
readonly containerBundles: string;
|
|
51
57
|
readonly journals: string;
|
|
52
58
|
readonly root: string;
|
|
@@ -63,6 +69,7 @@ export interface TargetDefaultWorldReadinessConfig {
|
|
|
63
69
|
};
|
|
64
70
|
readonly timeoutMs: number;
|
|
65
71
|
}
|
|
72
|
+
export declare const parseTargetPreparedArtifactMappings: (raw: unknown) => readonly PreparedArtifactMapping[];
|
|
66
73
|
export declare const loadTargetDefaultConfig: (raw: TargetDefaultConfigInputs) => Promise<TargetDefaultConfig>;
|
|
67
74
|
/** Resolves only the paths required by a world-readiness query; performs no I/O. */
|
|
68
75
|
export declare const resolveTargetDefaultWorldReadinessConfig: (raw: TargetDefaultConfigInputs) => TargetDefaultWorldReadinessConfig;
|
|
@@ -3,6 +3,8 @@ import { lstat, mkdir, open, realpath } from "node:fs/promises";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { types as nodeTypes } from "node:util";
|
|
5
5
|
import { resolveSpawnfileHome } from "../auth/index.js";
|
|
6
|
+
import { parsePreparedEvidenceHelperReceipt, } from "../evidenceExportHelper/index.js";
|
|
7
|
+
import { parseDockerBaseImageReference } from "../target/dockerBaseImage.js";
|
|
6
8
|
import { parseDockerArtifactMappings } from "../target/dockerArtifactsProvider.js";
|
|
7
9
|
export { resolveTargetDefaultJournalRoot } from "../target/journalRoot.js";
|
|
8
10
|
export const TARGET_DEFAULT_CONFIG_ERROR = "Target configuration failed";
|
|
@@ -16,7 +18,8 @@ const CHILD_ROOTS = Object.freeze([
|
|
|
16
18
|
"secret-authority",
|
|
17
19
|
"attachment-authority",
|
|
18
20
|
"world-authority",
|
|
19
|
-
"evidence-export"
|
|
21
|
+
"evidence-export",
|
|
22
|
+
"evidence-helper"
|
|
20
23
|
]);
|
|
21
24
|
const fail = () => { throw new Error(TARGET_DEFAULT_CONFIG_ERROR); };
|
|
22
25
|
const byteLength = (value) => Buffer.byteLength(value, "utf8");
|
|
@@ -25,7 +28,7 @@ const descriptorValues = (raw) => {
|
|
|
25
28
|
|| Object.getPrototypeOf(raw) !== Object.prototype)
|
|
26
29
|
return fail();
|
|
27
30
|
const expected = [
|
|
28
|
-
"artifactMappings", "containerBundleStoreRoot", "context", "dockerCommand", "evidenceDestination",
|
|
31
|
+
"artifactMappings", "containerBundleStoreRoot", "context", "dockerCommand", "evidenceDestination", "evidenceHelperBaseImage", "preparedEvidenceHelper",
|
|
29
32
|
"helperArtifactManifestDigest", "preparedArtifactMappings", "timeoutMs"
|
|
30
33
|
];
|
|
31
34
|
const required = ["context", "dockerCommand", "evidenceDestination", "timeoutMs"];
|
|
@@ -38,7 +41,7 @@ const descriptorValues = (raw) => {
|
|
|
38
41
|
return fail();
|
|
39
42
|
return Object.fromEntries(expected.filter((key) => Object.hasOwn(descriptors, key)).map((key) => [key, descriptors[key].value]));
|
|
40
43
|
};
|
|
41
|
-
const
|
|
44
|
+
export const parseTargetPreparedArtifactMappings = (raw) => {
|
|
42
45
|
if (raw === undefined)
|
|
43
46
|
return Object.freeze([]);
|
|
44
47
|
if (!Array.isArray(raw) || raw.length > 32)
|
|
@@ -211,7 +214,7 @@ const prepareRoots = async (containerBundleStoreRoot) => {
|
|
|
211
214
|
: CHILD_ROOTS;
|
|
212
215
|
const created = await Promise.all(childRoots.map((name) => ensureOwnedRoot(path.join(root, name))));
|
|
213
216
|
const containerBundles = containerBundleStoreRoot === undefined
|
|
214
|
-
? created[
|
|
217
|
+
? created[7]
|
|
215
218
|
: await prepareExplicitContainerBundleRoot(containerBundleStoreRoot, root);
|
|
216
219
|
return Object.freeze({
|
|
217
220
|
root,
|
|
@@ -221,6 +224,7 @@ const prepareRoots = async (containerBundleStoreRoot) => {
|
|
|
221
224
|
attachmentAuthority: created[3],
|
|
222
225
|
worldAuthority: created[4],
|
|
223
226
|
evidenceExport: created[5],
|
|
227
|
+
evidenceHelper: created[6],
|
|
224
228
|
containerBundles
|
|
225
229
|
});
|
|
226
230
|
};
|
|
@@ -270,6 +274,17 @@ export const loadTargetDefaultConfig = async (raw) => {
|
|
|
270
274
|
|| !DIGEST.test(value.helperArtifactManifestDigest))))
|
|
271
275
|
return fail();
|
|
272
276
|
const dockerCommand = command(value.dockerCommand);
|
|
277
|
+
const evidenceHelperBaseImage = value.evidenceHelperBaseImage === undefined ? undefined
|
|
278
|
+
: parseDockerBaseImageReference(value.evidenceHelperBaseImage) ?? fail();
|
|
279
|
+
const preparedEvidenceHelper = value.preparedEvidenceHelper === undefined ? undefined
|
|
280
|
+
: (() => { try {
|
|
281
|
+
return parsePreparedEvidenceHelperReceipt(value.preparedEvidenceHelper);
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
return fail();
|
|
285
|
+
} })();
|
|
286
|
+
if ((evidenceHelperBaseImage === undefined) !== (preparedEvidenceHelper === undefined))
|
|
287
|
+
return fail();
|
|
273
288
|
let artifactMappings;
|
|
274
289
|
try {
|
|
275
290
|
artifactMappings = value.artifactMappings === undefined
|
|
@@ -278,7 +293,7 @@ export const loadTargetDefaultConfig = async (raw) => {
|
|
|
278
293
|
catch {
|
|
279
294
|
return fail();
|
|
280
295
|
}
|
|
281
|
-
const preparedArtifactMappings =
|
|
296
|
+
const preparedArtifactMappings = parseTargetPreparedArtifactMappings(value.preparedArtifactMappings);
|
|
282
297
|
if (preparedArtifactMappings.some((prepared) => artifactMappings.some((artifact) => artifact.artifact_manifest_digest === prepared.artifact_manifest_digest)))
|
|
283
298
|
return fail();
|
|
284
299
|
const evidenceDestination = await validateDestination(value.evidenceDestination);
|
|
@@ -290,6 +305,8 @@ export const loadTargetDefaultConfig = async (raw) => {
|
|
|
290
305
|
artifactMappings,
|
|
291
306
|
context: value.context,
|
|
292
307
|
dockerCommand,
|
|
308
|
+
...(evidenceHelperBaseImage === undefined ? {} : { evidenceHelperBaseImage }),
|
|
309
|
+
...(preparedEvidenceHelper === undefined ? {} : { preparedEvidenceHelper }),
|
|
293
310
|
evidenceDestination,
|
|
294
311
|
...(matches.length === 1 ? { helperArtifact: matches[0] } : {}),
|
|
295
312
|
preparedArtifactMappings,
|
|
@@ -92,7 +92,7 @@ const exactDefaultConfigObject = (raw) => {
|
|
|
92
92
|
|| Object.getPrototypeOf(raw) !== Object.prototype)
|
|
93
93
|
return fail();
|
|
94
94
|
const expected = [
|
|
95
|
-
"artifactMappings", "container_bundle_store_root", "context", "dockerCommand", "evidenceDestination",
|
|
95
|
+
"artifactMappings", "container_bundle_store_root", "context", "dockerCommand", "evidenceDestination", "evidenceHelperBaseImage", "preparedEvidenceHelper",
|
|
96
96
|
"helperArtifactManifestDigest", "preparedArtifactMappings", "timeoutMs", "version"
|
|
97
97
|
];
|
|
98
98
|
const required = ["context", "dockerCommand", "evidenceDestination", "timeoutMs", "version"];
|
|
@@ -193,6 +193,12 @@ const defaultConfigInputs = (raw) => ({
|
|
|
193
193
|
context: raw.context,
|
|
194
194
|
dockerCommand: raw.dockerCommand,
|
|
195
195
|
evidenceDestination: raw.evidenceDestination,
|
|
196
|
+
...(Object.hasOwn(raw, "evidenceHelperBaseImage") ? {
|
|
197
|
+
evidenceHelperBaseImage: raw.evidenceHelperBaseImage
|
|
198
|
+
} : {}),
|
|
199
|
+
...(Object.hasOwn(raw, "preparedEvidenceHelper") ? {
|
|
200
|
+
preparedEvidenceHelper: raw.preparedEvidenceHelper
|
|
201
|
+
} : {}),
|
|
196
202
|
...(Object.hasOwn(raw, "helperArtifactManifestDigest") ? {
|
|
197
203
|
helperArtifactManifestDigest: raw.helperArtifactManifestDigest
|
|
198
204
|
} : {}),
|
|
@@ -9,7 +9,8 @@ import { createDockerSecretOperations } from "../target/dockerSecrets.js";
|
|
|
9
9
|
import { selectTarget } from "../target/dockerTarget.js";
|
|
10
10
|
import { createDockerWorldServiceOperations } from "../target/dockerWorldService.js";
|
|
11
11
|
import { createEvidenceExportOperations } from "../target/evidenceExport.js";
|
|
12
|
-
import { EVIDENCE_EXPORT_HELPER_CONTRACT } from "../target/evidenceExportProvider.js";
|
|
12
|
+
import { createEvidenceExportHelper, EVIDENCE_EXPORT_HELPER_CONTRACT } from "../target/evidenceExportProvider.js";
|
|
13
|
+
import { resolvePreparedEvidenceHelperImage } from "../evidenceExportHelper/index.js";
|
|
13
14
|
import { createDockerOrganizationAttachmentOperations } from "../target/organizationAttachment.js";
|
|
14
15
|
import { createTargetEvidenceHelperResolutionRequest } from "./targetEvidenceHelperResolution.js";
|
|
15
16
|
export const targetDefaultHandlerFactories = Object.freeze({
|
|
@@ -69,7 +70,7 @@ const requireAuthorities = (raw) => {
|
|
|
69
70
|
const names = [
|
|
70
71
|
"artifactIdentityStore", "attachmentAuthorityStore",
|
|
71
72
|
"evidenceExportAuthorityStore", "executors", "handoffResolver",
|
|
72
|
-
"helperArtifactResolver", "journals", "secretAuthorityStore",
|
|
73
|
+
"helperArtifactResolver", "helperExecutor", "journals", "secretAuthorityStore",
|
|
73
74
|
"secretResolver", "topologyAttestor", "worldAuthorityStore", "worldResolver"
|
|
74
75
|
];
|
|
75
76
|
if (!raw || typeof raw !== "object" || Array.isArray(raw) || nodeTypes.isProxy(raw)
|
|
@@ -95,6 +96,9 @@ const requireAuthorities = (raw) => {
|
|
|
95
96
|
if (executorNames.some((name) => typeof executors[name] !== "function")) {
|
|
96
97
|
throw new Error("Target handler initialization failed");
|
|
97
98
|
}
|
|
99
|
+
if (typeof values.helperExecutor !== "function") {
|
|
100
|
+
throw new Error("Target handler initialization failed");
|
|
101
|
+
}
|
|
98
102
|
for (const name of [
|
|
99
103
|
"handoffResolver", "journals", "secretResolver", "worldResolver"
|
|
100
104
|
]) {
|
|
@@ -180,6 +184,23 @@ const execute = async (expected, factories, authorities, config, raw) => {
|
|
|
180
184
|
}).execute(request);
|
|
181
185
|
case "export_evidence_volume":
|
|
182
186
|
case "recover_operation": {
|
|
187
|
+
if (config.evidenceHelperBaseImage && config.preparedEvidenceHelper) {
|
|
188
|
+
const helperInput = { baseImage: config.evidenceHelperBaseImage, context: config.context,
|
|
189
|
+
executor: authorities.helperExecutor, privateRoot: config.paths.evidenceHelper,
|
|
190
|
+
timeoutMs: config.timeoutMs };
|
|
191
|
+
const image = await resolvePreparedEvidenceHelperImage(helperInput, config.preparedEvidenceHelper);
|
|
192
|
+
const localHelper = createEvidenceExportHelper({ artifactManifestDigest: config.preparedEvidenceHelper.digest,
|
|
193
|
+
imageDigest: image.configDigest, imageReference: image.imageReference, resultHandle: config.preparedEvidenceHelper.handle });
|
|
194
|
+
const operations = factories.evidence({
|
|
195
|
+
...common, artifactIdentityStore: authorities.artifactIdentityStore,
|
|
196
|
+
authorityStore: authorities.evidenceExportAuthorityStore, executor: authorities.executors.resource,
|
|
197
|
+
exportExecutor: authorities.executors.evidenceExport, helperArtifactContract: EVIDENCE_EXPORT_HELPER_CONTRACT,
|
|
198
|
+
helperArtifactManifestDigest: config.preparedEvidenceHelper.digest, localHelper
|
|
199
|
+
});
|
|
200
|
+
return request.operation === "recover_operation"
|
|
201
|
+
? operations.recover(request, config.evidenceDestination)
|
|
202
|
+
: operations.execute(request, config.evidenceDestination);
|
|
203
|
+
}
|
|
183
204
|
if (!config.helperArtifact || !authorities.helperArtifactResolver) {
|
|
184
205
|
throw new Error("Target evidence helper is not configured");
|
|
185
206
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TargetTopologyAttestationRequest } from "../target/contracts.js";
|
|
2
2
|
import type { TargetTopologyAttestationResult } from "../target/topologyAttestation.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { TargetPublicArtifactSnapshotRequest, TargetPublicArtifactSnapshotResult } from "../target/publicArtifactSnapshot.js";
|
|
4
4
|
import type { TargetTopologyActivationResult } from "../target/topologyActivation.js";
|
|
5
5
|
import type { TargetDefaultConfig } from "./targetDefaultConfig.js";
|
|
6
6
|
import type { TargetCommandHandlers } from "./targetCommands.js";
|
|
@@ -15,7 +15,7 @@ export declare const withTargetDefaultHandlerSession: <Result>(config: TargetDef
|
|
|
15
15
|
/** The read-only attestor owns the same private authority graph as mutations. */
|
|
16
16
|
export declare const attestTargetDefaultTopology: (config: TargetDefaultConfig, request: TargetTopologyAttestationRequest) => Promise<TargetTopologyAttestationResult>;
|
|
17
17
|
/** Read one exact, bounded public projection from an attested world service. */
|
|
18
|
-
export declare const snapshotTargetDefaultPublicArtifact: (config: TargetDefaultConfig, request: TargetPublicArtifactSnapshotRequest) => Promise<
|
|
18
|
+
export declare const snapshotTargetDefaultPublicArtifact: (config: TargetDefaultConfig, request: TargetPublicArtifactSnapshotRequest) => Promise<TargetPublicArtifactSnapshotResult>;
|
|
19
19
|
export declare const activateTargetDefaultTopology: (config: TargetDefaultConfig, request: TargetTopologyAttestationRequest) => Promise<TargetTopologyActivationResult>;
|
|
20
20
|
/** Internal lifecycle primitive; not re-exported from the package surface. */
|
|
21
21
|
export declare const runTargetDefaultHandlerSession: <Result>(session: TargetDefaultHandlerSession, invoke: (handlers: TargetCommandHandlers) => Promise<Result>, signal?: AbortSignal) => Promise<Result>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { TargetDefaultConfig } from "./targetDefaultConfig.js";
|
|
3
|
+
import { type SetTargetCommandExitCode, type TargetCommandHandlerSession, type TargetCommandStreams } from "./targetCommands.js";
|
|
4
|
+
export declare const createProductionTargetCommandSession: (config: TargetDefaultConfig) => TargetCommandHandlerSession;
|
|
5
|
+
export declare const registerProductionTargetCommands: (program: Command, streams: TargetCommandStreams, stdin: AsyncIterable<unknown>, setExitCode: SetTargetCommandExitCode) => void;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { registerContainerBundleCommand } from "./containerBundleCommand.js";
|
|
2
|
+
import { readTargetDefaultConfigStdin, readTargetWorldReadinessConfigStdin, } from "./targetDefaultConfigStdin.js";
|
|
3
|
+
import { createProductionTargetWorldQuerySession } from "./targetDefaultWorldQueries.js";
|
|
4
|
+
import { registerTargetConfigResolverCommand, TARGET_CONFIG_RESOLVER_COMMAND, } from "./targetConfigResolverCommand.js";
|
|
5
|
+
import { createProductionTargetLookupLoader } from "./targetLookupCommands.js";
|
|
6
|
+
import { registerTargetCommands, } from "./targetCommands.js";
|
|
7
|
+
export const createProductionTargetCommandSession = (config) => Object.freeze({
|
|
8
|
+
activateTopology: async (request) => {
|
|
9
|
+
const { activateTargetDefaultTopology } = await import("./targetDefaultHandlers.js");
|
|
10
|
+
return activateTargetDefaultTopology(config, request);
|
|
11
|
+
},
|
|
12
|
+
run: async (invokeHandlers) => {
|
|
13
|
+
const { withTargetDefaultHandlerSession } = await import("./targetDefaultHandlers.js");
|
|
14
|
+
return withTargetDefaultHandlerSession(config, invokeHandlers);
|
|
15
|
+
},
|
|
16
|
+
attestTopology: async (request) => {
|
|
17
|
+
const { attestTargetDefaultTopology } = await import("./targetDefaultHandlers.js");
|
|
18
|
+
return attestTargetDefaultTopology(config, request);
|
|
19
|
+
},
|
|
20
|
+
queryWorldReadiness: async (request) => {
|
|
21
|
+
const { queryTargetDefaultWorldReadiness } = await import("./targetDefaultWorldReadiness.js");
|
|
22
|
+
return queryTargetDefaultWorldReadiness(config, request);
|
|
23
|
+
},
|
|
24
|
+
queryWorldClock: async (request) => {
|
|
25
|
+
const { queryTargetDefaultWorldClock } = await import("./targetDefaultWorldClock.js");
|
|
26
|
+
return queryTargetDefaultWorldClock(config, request);
|
|
27
|
+
},
|
|
28
|
+
snapshotPublicArtifact: async (request) => {
|
|
29
|
+
const { snapshotTargetDefaultPublicArtifact } = await import("./targetDefaultHandlers.js");
|
|
30
|
+
return snapshotTargetDefaultPublicArtifact(config, request);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
export const registerProductionTargetCommands = (program, streams, stdin, setExitCode) => {
|
|
34
|
+
const target = registerTargetCommands(program, async (configInput) => {
|
|
35
|
+
if (configInput !== "-")
|
|
36
|
+
throw new TypeError("Invalid target configuration");
|
|
37
|
+
return createProductionTargetCommandSession(await readTargetDefaultConfigStdin(stdin));
|
|
38
|
+
}, streams, setExitCode, createProductionTargetLookupLoader(stdin), async (configInput) => {
|
|
39
|
+
if (configInput !== "-")
|
|
40
|
+
throw new TypeError("Invalid target configuration");
|
|
41
|
+
return createProductionTargetWorldQuerySession(await readTargetWorldReadinessConfigStdin(stdin));
|
|
42
|
+
}, [TARGET_CONFIG_RESOLVER_COMMAND]);
|
|
43
|
+
registerContainerBundleCommand(target, stdin, streams, setExitCode);
|
|
44
|
+
registerTargetConfigResolverCommand(target, streams, setExitCode);
|
|
45
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { CliHandlers, CliStreams } from "./runCli.js";
|
|
3
|
+
export declare const registerTrainCommand: (program: Command, handlers: CliHandlers, streams: CliStreams, packageVersion: string, setExitCode: (code: number) => void, signal?: AbortSignal) => void;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { SpawnfileError } from "../shared/index.js";
|
|
2
|
+
const forwarded = ["train", "validation", "test", "editable", "resource", "judge", "judge-citation-repairs", "validation-group", "optimizer-model",
|
|
3
|
+
"bridge-command", "out", "max-trials", "max-proposals", "seed", "timeout-ms", "experiment-timeout-ms", "trial-timeout-ms", "view", "cost-config", "concurrency"];
|
|
4
|
+
const repeated = new Set(["editable", "resource", "judge", "judge-citation-repairs", "validation-group"]);
|
|
5
|
+
const key = (name) => name.replace(/-([a-z])/gu, (_, letter) => letter.toUpperCase());
|
|
6
|
+
export const registerTrainCommand = (program, handlers, streams, packageVersion, setExitCode, signal) => {
|
|
7
|
+
const command = program.command("train")
|
|
8
|
+
.description("Plan, rewind, or train one canonical agent through its declared training inputs")
|
|
9
|
+
.argument("[path]", "Canonical project directory or Spawnfile path", process.cwd())
|
|
10
|
+
.option("--agent <id>", "Canonical agent id or unambiguous short name (inferred for one agent)")
|
|
11
|
+
.option("--paideia-command <executable>", "Installed Paideia executable; no shell or automatic install", "paideia")
|
|
12
|
+
.option("--training-image <immutable-image>", "Pinned image containing the complete training environment")
|
|
13
|
+
.option("--training-config <json>", "V2 image recipe and declared inputs, or advanced v1 local bindings")
|
|
14
|
+
.option("--plan", "Print the resolved training authoring plan without executing training")
|
|
15
|
+
.option("--materialize <example>", "Rewind an authored example into --out without running training")
|
|
16
|
+
.option("--history <directory>", "Local recorded history for --materialize")
|
|
17
|
+
.option("--dry-run", "Validate and estimate without compiling, authenticating or starting models")
|
|
18
|
+
.option("--repair-measurements <parent-out>", "Fork captured work into a fresh output for authorized measurement repair")
|
|
19
|
+
.option("--repair-witness <manifest>", "Explicit verified image witness for a legacy parent")
|
|
20
|
+
.option("--resume", "Resume the exact persisted training experiment in --out");
|
|
21
|
+
for (const name of forwarded) {
|
|
22
|
+
const flag = `--${name} <value>`;
|
|
23
|
+
if (repeated.has(name))
|
|
24
|
+
command.option(flag, `Paideia ${name}; repeatable`, (value, previous) => [...previous, value], []);
|
|
25
|
+
else
|
|
26
|
+
command.option(flag, name === "out" ? "Output directory for training or moment materialization" : `Paideia ${name}`);
|
|
27
|
+
}
|
|
28
|
+
command.action(async (inputPath, options) => {
|
|
29
|
+
if (typeof options.materialize === "string") {
|
|
30
|
+
if (options.plan === true) {
|
|
31
|
+
throw new SpawnfileError("validation_error", "--materialize and --plan are mutually exclusive");
|
|
32
|
+
}
|
|
33
|
+
if (typeof options.out !== "string") {
|
|
34
|
+
throw new SpawnfileError("validation_error", "--materialize requires --out");
|
|
35
|
+
}
|
|
36
|
+
const project = await handlers.loadTrainingProject(inputPath);
|
|
37
|
+
const plan = handlers.resolveTrainingPlan(project, options.agent, packageVersion);
|
|
38
|
+
const moment = await handlers.materializeTrainingMoment({ plan, project, example: options.materialize,
|
|
39
|
+
historyDir: options.history, out: options.out });
|
|
40
|
+
if (moment.status === "refused") {
|
|
41
|
+
streams.stderr(`error: Moment refused: ${moment.inputs.filter((input) => input.refusal !== null).length} input refusal(s), ${moment.leakCheck.findings} leak finding(s); see moment.json in --out`);
|
|
42
|
+
setExitCode(1);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
streams.stdout(JSON.stringify(moment, null, 2));
|
|
46
|
+
setExitCode(0);
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (options.history !== undefined) {
|
|
51
|
+
throw new SpawnfileError("validation_error", "--history requires --materialize");
|
|
52
|
+
}
|
|
53
|
+
if (options.plan === true) {
|
|
54
|
+
const plan = await handlers.createTrainingPlan(inputPath, {
|
|
55
|
+
agent: options.agent, packageVersion
|
|
56
|
+
});
|
|
57
|
+
streams.stdout(JSON.stringify(plan, null, 2));
|
|
58
|
+
setExitCode(0);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
for (const name of ["timeout-ms", "experiment-timeout-ms", "trial-timeout-ms"]) {
|
|
62
|
+
const value = options[key(name)], maximum = name === "trial-timeout-ms" ? 86_400_000 : 604_800_000;
|
|
63
|
+
if (value !== undefined && (!/^\d+$/u.test(String(value)) || !Number.isSafeInteger(Number(value)) || Number(value) < 1 || Number(value) > maximum)) {
|
|
64
|
+
throw new SpawnfileError("validation_error", `--${name} must be an integer from 1 to ${maximum}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const args = [];
|
|
68
|
+
for (const name of forwarded) {
|
|
69
|
+
const value = options[key(name)];
|
|
70
|
+
if (typeof value === "string")
|
|
71
|
+
args.push(`--${name}`, value);
|
|
72
|
+
else if (Array.isArray(value))
|
|
73
|
+
for (const item of value)
|
|
74
|
+
args.push(`--${name}`, item);
|
|
75
|
+
}
|
|
76
|
+
if (options.dryRun === true)
|
|
77
|
+
args.push("--dry-run");
|
|
78
|
+
if (options.resume === true)
|
|
79
|
+
args.push("--resume");
|
|
80
|
+
const project = await handlers.loadTrainingProject(inputPath);
|
|
81
|
+
const plan = handlers.resolveTrainingPlan(project, options.agent, packageVersion);
|
|
82
|
+
const timeout = Number(options.experimentTimeoutMs ?? options.timeoutMs ?? plan.deadlines?.experiment_ms ?? 43_200_000);
|
|
83
|
+
if (options.experimentTimeoutMs === undefined && options.timeoutMs === undefined)
|
|
84
|
+
args.push("--experiment-timeout-ms", String(timeout));
|
|
85
|
+
if (options.trialTimeoutMs === undefined && plan.deadlines?.trial_ms !== undefined)
|
|
86
|
+
args.push("--trial-timeout-ms", String(plan.deadlines.trial_ms));
|
|
87
|
+
const lowered = plan.targets.length > 0 ? await handlers.lowerTrainingExecution({ project, plan, args,
|
|
88
|
+
trainingConfig: options.trainingConfig, trainingImage: options.trainingImage }) : undefined;
|
|
89
|
+
if (lowered && options.dryRun === true) {
|
|
90
|
+
streams.stdout(JSON.stringify({ ...lowered.execution, container: { configPath: lowered.trainingConfig,
|
|
91
|
+
declaration: lowered.declaration, ...(lowered.trainingImage ? { imageOverride: lowered.trainingImage } : {}) } }, null, 2));
|
|
92
|
+
setExitCode(0);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (!lowered && typeof options.train !== "string") {
|
|
96
|
+
throw new SpawnfileError("validation_error", `Agent ${plan.agent.id} has no executable training targets; supply --train`);
|
|
97
|
+
}
|
|
98
|
+
if (!lowered && options.dryRun !== true && typeof options.out !== "string") {
|
|
99
|
+
throw new SpawnfileError("validation_error", "Actual training requires --out when no training targets are declared");
|
|
100
|
+
}
|
|
101
|
+
if (!lowered && options.dryRun !== true && typeof options.trainingConfig !== "string") {
|
|
102
|
+
throw new SpawnfileError("validation_error", "Actual training requires --training-config when no training targets are declared; host execution is disabled");
|
|
103
|
+
}
|
|
104
|
+
const context = await handlers.createTrainingContext(inputPath, { agent: plan.agent.id, packageVersion });
|
|
105
|
+
if (lowered)
|
|
106
|
+
await handlers.allocateTrainingOutputParent(lowered.execution.output);
|
|
107
|
+
setExitCode(await handlers.delegatePaideiaTraining({ context, args: lowered?.execution.args ?? args, execution: lowered?.execution,
|
|
108
|
+
repairMeasurements: options.repairMeasurements, repairWitness: options.repairWitness,
|
|
109
|
+
trainingImage: lowered?.trainingImage ?? options.trainingImage,
|
|
110
|
+
trainingConfig: lowered?.trainingConfig ?? options.trainingConfig,
|
|
111
|
+
command: options.paideiaCommand, dryRun: options.dryRun === true,
|
|
112
|
+
timeoutMs: timeout + 5000, streams, signal }));
|
|
113
|
+
});
|
|
114
|
+
};
|