spawnfile 0.1.33 → 0.1.35
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 +1 -1
- package/dist/audit/readAudit.d.ts +3 -3
- package/dist/auth/profileStore.d.ts +3 -1
- package/dist/auth/profileStore.js +31 -30
- package/dist/auth/trainingAuth.d.ts +2 -5
- package/dist/auth/types.d.ts +16 -0
- package/dist/cli/authCommands.d.ts +1 -1
- package/dist/cli/authCommands.js +21 -1
- package/dist/cli/devCommands.d.ts +1 -1
- package/dist/cli/devCommands.js +0 -66
- package/dist/cli/runCli.d.ts +3 -4
- package/dist/cli/runCli.js +4 -3
- package/dist/cli/trainCommand.js +9 -15
- package/dist/cli/trainingBooted.d.ts +9 -0
- package/dist/cli/trainingBooted.js +45 -0
- package/dist/cli/trainingExecution.d.ts +4 -7
- package/dist/cli/trainingExecution.js +4 -32
- package/dist/compiler/containerArtifacts.js +0 -5
- package/dist/compiler/containerBackedMountRender.js +5 -1
- package/dist/compiler/containerDaimonBrokerRender.d.ts +5 -50
- package/dist/compiler/containerDaimonBrokerRender.js +19 -90
- package/dist/compiler/containerDaimonGatewayRender.d.ts +50 -0
- package/dist/compiler/containerDaimonGatewayRender.js +161 -0
- package/dist/compiler/containerDaimonGrokWorkerProvisioning.d.ts +2 -10
- package/dist/compiler/containerDaimonGrokWorkerProvisioning.js +13 -25
- package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +11 -49
- package/dist/compiler/containerDaimonGrokWorkerRender.js +15 -39
- package/dist/compiler/containerDaimonStartupSupervision.d.ts +8 -0
- package/dist/compiler/containerDaimonStartupSupervision.js +39 -0
- package/dist/compiler/containerDaimonUidEntrypointRender.d.ts +1 -2
- package/dist/compiler/containerDaimonUidEntrypointRender.js +29 -47
- package/dist/compiler/containerRuntimeReadinessRender.js +1 -1
- package/dist/compiler/memoryArtifacts.js +0 -1
- package/dist/compiler/moltnetArtifacts.js +1 -17
- package/dist/compiler/moltnetClientConfig.js +1 -1
- package/dist/compiler/moltnetRuntimeConfig.js +0 -10
- package/dist/compiler/runProject.d.ts +3 -0
- package/dist/compiler/runProject.js +12 -5
- package/dist/compiler/runProjectAuth.js +6 -18
- package/dist/compiler/training/contract.d.ts +0 -2
- package/dist/compiler/training/contract.js +0 -2
- package/dist/compiler/training/execution.d.ts +1 -128
- package/dist/compiler/training/execution.js +7 -68
- package/dist/compiler/training/index.d.ts +0 -8
- package/dist/compiler/training/index.js +0 -7
- package/dist/compiler/training/output.d.ts +1 -0
- package/dist/compiler/training/output.js +1 -1
- package/dist/compiler/training/rewind/contract.d.ts +6 -6
- package/dist/compiler/training/trial/boot.d.ts +72 -0
- package/dist/compiler/training/trial/boot.js +225 -0
- package/dist/compiler/training/trial/docker.d.ts +10 -0
- package/dist/compiler/training/trial/docker.js +22 -0
- package/dist/compiler/training/trial/gateway.d.ts +47 -0
- package/dist/compiler/training/trial/gateway.js +113 -0
- package/dist/compiler/training/trial/homeLogin.d.ts +31 -0
- package/dist/compiler/training/trial/homeLogin.js +69 -0
- package/dist/compiler/training/trial/index.d.ts +8 -0
- package/dist/compiler/training/trial/index.js +8 -0
- package/dist/compiler/training/trial/judge.d.ts +15 -0
- package/dist/compiler/training/trial/judge.js +42 -0
- package/dist/compiler/training/trial/launcher.d.ts +47 -0
- package/dist/compiler/training/trial/launcher.js +193 -0
- package/dist/compiler/training/trial/login.d.ts +35 -0
- package/dist/compiler/training/trial/login.js +85 -0
- package/dist/compiler/training/trial/project.d.ts +11 -0
- package/dist/compiler/training/trial/project.js +31 -0
- package/dist/compiler/training/trial/realmTurns.d.ts +20 -0
- package/dist/compiler/training/trial/realmTurns.js +69 -0
- package/dist/compiler/upReceipt.d.ts +2 -17
- package/dist/compiler/upReceipt.js +2 -17
- package/dist/deployment/artifactsExportPlan.js +2 -18
- package/dist/deployment/privateArtifactsExport.js +1 -1
- package/dist/dev/docker.d.ts +0 -5
- package/dist/dev/docker.js +0 -46
- package/dist/dev/index.d.ts +0 -1
- package/dist/dev/index.js +0 -1
- package/dist/dev/project.d.ts +0 -16
- package/dist/dev/project.js +1 -128
- package/dist/distribution/distributionReportSchema.js +1 -1
- package/dist/distribution/imageRuntimeAuth.js +3 -2
- package/dist/manifest/renderSpawnfile.js +2 -1
- package/dist/release/drainControl.d.ts +5 -19
- package/dist/release/drainControl.js +12 -67
- package/dist/report/types.d.ts +3 -6
- package/dist/runtime/common.d.ts +1 -1
- package/dist/runtime/common.js +1 -1
- package/dist/runtime/container.d.ts +2 -2
- package/dist/runtime/container.js +1 -39
- package/dist/runtime/daimon/config.js +8 -14
- package/dist/runtime/daimon/contractManifest.js +0 -1
- package/dist/runtime/daimon/contractManifestSchema.js +0 -1
- package/dist/runtime/daimon/control.d.ts +31 -0
- package/dist/runtime/daimon/control.js +83 -0
- package/dist/runtime/daimon/engineDescriptorSchema.js +0 -1
- package/dist/runtime/daimon/engineDescriptors.generated.d.ts +1 -1
- package/dist/runtime/daimon/engineDescriptors.generated.js +1 -2
- package/dist/runtime/daimon/engines.js +0 -1
- package/dist/runtime/daimon/gateway.d.ts +62 -0
- package/dist/runtime/daimon/gateway.js +77 -0
- package/dist/runtime/daimon/grokWorkerContract.d.ts +0 -5
- package/dist/runtime/daimon/grokWorkerContract.js +1 -13
- package/dist/runtime/daimon/index.d.ts +2 -0
- package/dist/runtime/daimon/index.js +2 -1
- package/dist/runtime/daimon/memory.js +1 -1
- package/dist/runtime/daimon/packageName.js +0 -1
- package/dist/runtime/daimon/runAuth.js +15 -4
- package/dist/runtime/daimon/runtimeIdentity.d.ts +2 -0
- package/dist/runtime/daimon/runtimeIdentity.js +2 -0
- package/dist/runtime/daimon/subscriptionRealms.d.ts +27 -3
- package/dist/runtime/daimon/subscriptionRealms.js +35 -13
- package/dist/runtime/daimon/testHelpers.d.ts +2 -0
- package/dist/runtime/{pi → daimon}/testHelpers.js +3 -3
- package/dist/runtime/daimon/training/booted/adapter.d.ts +50 -0
- package/dist/runtime/daimon/training/booted/adapter.js +60 -0
- package/dist/runtime/daimon/training/booted/adapter.js.map +1 -0
- package/dist/runtime/daimon/training/booted/index.d.ts +4 -0
- package/dist/runtime/daimon/training/booted/index.js +3 -0
- package/dist/runtime/daimon/training/booted/index.js.map +1 -0
- package/dist/runtime/daimon/training/booted/judge.d.ts +39 -0
- package/dist/runtime/daimon/training/booted/judge.js +122 -0
- package/dist/runtime/daimon/training/booted/judge.js.map +1 -0
- package/dist/runtime/daimon/training/index.d.ts +5 -0
- package/dist/runtime/daimon/training/index.js +8 -4
- package/dist/runtime/daimon/training/index.js.map +1 -1
- package/dist/runtime/daimon/wakeMoments.js +0 -1
- package/dist/runtime/install.js +0 -21
- package/dist/runtime/registry.js +0 -2
- package/dist/runtime/trainingGraderProviders.js +10 -4
- package/dist/runtime/trainingProviders.d.ts +5 -3
- package/dist/runtime/trainingProviders.js +21 -24
- package/dist/runtime/trainingSubjects.d.ts +0 -121
- package/dist/runtime/trainingSubjects.js +2 -13
- package/dist/runtime/types.d.ts +1 -8
- package/dist/runtime/usageRequestLedger.d.ts +2 -0
- package/dist/runtime/usageRequestLedger.js +3 -1
- package/dist/shared/errors.js +0 -1
- package/dist/shared/trainingLegacy/trainingLegacyHashDomains.d.ts +1 -0
- package/dist/shared/trainingLegacy/trainingLegacyHashDomains.js +1 -0
- package/dist/shared/trainingLegacy/trainingLegacyHashDomains.js.map +1 -1
- package/dist/status/lifecycleProbes.js +3 -6
- package/dist/status/moltnetWiringProbes.js +1 -17
- package/dist/training/subjects/index.d.ts +0 -1
- package/dist/training/subjects/index.js +0 -1
- package/dist/training/subjects/index.js.map +1 -1
- package/examples/README.md +0 -1
- package/examples/daimon-org/agents/mapper/Spawnfile +4 -1
- package/examples/daimon-org/teams/review/agents/reviewer/Spawnfile +4 -1
- package/examples/jungian-daimon-org/teams/luna/agents/animus/Spawnfile +5 -8
- package/examples/jungian-daimon-org/teams/luna/agents/representative/Spawnfile +1 -1
- package/examples/jungian-daimon-org/teams/luna/agents/shadow/Spawnfile +5 -8
- package/examples/jungian-daimon-org/teams/selene/agents/animus/Spawnfile +5 -8
- package/examples/jungian-daimon-org/teams/selene/agents/representative/Spawnfile +5 -8
- package/examples/jungian-daimon-org/teams/selene/agents/shadow/Spawnfile +1 -1
- package/examples/mixed-runtime-org/agents/localist/Spawnfile +7 -7
- package/package.json +4 -13
- package/runtimes.yaml +5 -15
- package/dist/compiler/containerDaimonGrokTaskClock.d.ts +0 -5
- package/dist/compiler/containerDaimonGrokTaskClock.js +0 -29
- package/dist/compiler/daimonTelemetryArtifacts.d.ts +0 -22
- package/dist/compiler/daimonTelemetryArtifacts.js +0 -56
- package/dist/compiler/training/broker/clockProbe.d.ts +0 -6
- package/dist/compiler/training/broker/clockProbe.js +0 -27
- package/dist/compiler/training/broker/declaration.d.ts +0 -54
- package/dist/compiler/training/broker/declaration.js +0 -70
- package/dist/compiler/training/broker/entrypoint.d.ts +0 -39
- package/dist/compiler/training/broker/entrypoint.js +0 -124
- package/dist/compiler/training/broker/evaluatorSecrets.d.ts +0 -2
- package/dist/compiler/training/broker/evaluatorSecrets.js +0 -62
- package/dist/compiler/training/broker/index.d.ts +0 -12
- package/dist/compiler/training/broker/index.js +0 -12
- package/dist/compiler/training/broker/main.d.ts +0 -2
- package/dist/compiler/training/broker/main.js +0 -14
- package/dist/compiler/training/broker/paths.d.ts +0 -236
- package/dist/compiler/training/broker/paths.js +0 -249
- package/dist/compiler/training/broker/processes.d.ts +0 -51
- package/dist/compiler/training/broker/processes.js +0 -102
- package/dist/compiler/training/broker/projection.d.ts +0 -61
- package/dist/compiler/training/broker/projection.js +0 -109
- package/dist/compiler/training/broker/provisioning.d.ts +0 -78
- package/dist/compiler/training/broker/provisioning.js +0 -231
- package/dist/compiler/training/broker/receipt.d.ts +0 -77
- package/dist/compiler/training/broker/receipt.js +0 -110
- package/dist/compiler/training/broker/recycleClient.d.ts +0 -33
- package/dist/compiler/training/broker/recycleClient.js +0 -112
- package/dist/compiler/training/broker/registration.d.ts +0 -46
- package/dist/compiler/training/broker/registration.js +0 -113
- package/dist/compiler/training/broker/reset.d.ts +0 -9
- package/dist/compiler/training/broker/reset.js +0 -71
- package/dist/compiler/training/broker/rootScript.d.ts +0 -32
- package/dist/compiler/training/broker/rootScript.js +0 -33
- package/dist/compiler/training/broker/runtime.d.ts +0 -22
- package/dist/compiler/training/broker/runtime.js +0 -128
- package/dist/compiler/training/broker/seccompRoutes.d.ts +0 -31
- package/dist/compiler/training/broker/seccompRoutes.js +0 -36
- package/dist/compiler/training/broker/supervisor.d.ts +0 -108
- package/dist/compiler/training/broker/supervisor.js +0 -172
- package/dist/compiler/training/broker/taskClock.d.ts +0 -5
- package/dist/compiler/training/broker/taskClock.js +0 -41
- package/dist/compiler/training/container/contract.d.ts +0 -54
- package/dist/compiler/training/container/contract.js +0 -52
- package/dist/compiler/training/container/evaluators.d.ts +0 -48
- package/dist/compiler/training/container/evaluators.js +0 -50
- package/dist/compiler/training/container/grokWriteback.d.ts +0 -8
- package/dist/compiler/training/container/grokWriteback.js +0 -26
- package/dist/compiler/training/container/index.d.ts +0 -5
- package/dist/compiler/training/container/index.js +0 -3
- package/dist/compiler/training/container/launch.d.ts +0 -21
- package/dist/compiler/training/container/launch.js +0 -280
- package/dist/compiler/training/container/nativeSlots.d.ts +0 -14
- package/dist/compiler/training/container/nativeSlots.js +0 -13
- package/dist/compiler/training/container/outputCopy.d.ts +0 -2
- package/dist/compiler/training/container/outputCopy.js +0 -72
- package/dist/compiler/training/container/outputVolume.d.ts +0 -28
- package/dist/compiler/training/container/outputVolume.js +0 -185
- package/dist/compiler/training/container/prepare.d.ts +0 -10
- package/dist/compiler/training/container/prepare.js +0 -125
- package/dist/compiler/training/container/process.d.ts +0 -14
- package/dist/compiler/training/container/process.js +0 -70
- package/dist/compiler/training/container/security.d.ts +0 -38
- package/dist/compiler/training/container/security.js +0 -68
- package/dist/compiler/training/container/subjectIsolation.d.ts +0 -5
- package/dist/compiler/training/container/subjectIsolation.js +0 -16
- package/dist/compiler/training/preparation/assets/Dockerfile +0 -100
- package/dist/compiler/training/preparation/assets/package-lock.json +0 -5483
- package/dist/compiler/training/preparation/broker.d.ts +0 -30
- package/dist/compiler/training/preparation/broker.js +0 -68
- package/dist/compiler/training/preparation/contextModes.d.ts +0 -12
- package/dist/compiler/training/preparation/contextModes.js +0 -38
- package/dist/compiler/training/preparation/contract.d.ts +0 -203
- package/dist/compiler/training/preparation/contract.js +0 -114
- package/dist/compiler/training/preparation/copyAssets.d.ts +0 -1
- package/dist/compiler/training/preparation/copyAssets.js +0 -8
- package/dist/compiler/training/preparation/daimonParent.d.ts +0 -42
- package/dist/compiler/training/preparation/daimonParent.js +0 -114
- package/dist/compiler/training/preparation/files.d.ts +0 -29
- package/dist/compiler/training/preparation/files.js +0 -146
- package/dist/compiler/training/preparation/image.d.ts +0 -28
- package/dist/compiler/training/preparation/image.js +0 -105
- package/dist/compiler/training/preparation/index.d.ts +0 -3
- package/dist/compiler/training/preparation/index.js +0 -2
- package/dist/compiler/training/preparation/inputs.d.ts +0 -24
- package/dist/compiler/training/preparation/inputs.js +0 -101
- package/dist/compiler/training/preparation/prepare.d.ts +0 -38
- package/dist/compiler/training/preparation/prepare.js +0 -224
- package/dist/compiler/training/preparation/scratch.d.ts +0 -8
- package/dist/compiler/training/preparation/scratch.js +0 -114
- package/dist/compiler/training/repair/compatibility.d.ts +0 -11
- package/dist/compiler/training/repair/compatibility.js +0 -45
- package/dist/compiler/training/repair/contract.d.ts +0 -832
- package/dist/compiler/training/repair/contract.js +0 -34
- package/dist/compiler/training/repair/index.d.ts +0 -3
- package/dist/compiler/training/repair/index.js +0 -3
- package/dist/compiler/training/repair/prepare.d.ts +0 -378
- package/dist/compiler/training/repair/prepare.js +0 -84
- package/dist/compiler/training/repair/witness.d.ts +0 -348
- package/dist/compiler/training/repair/witness.js +0 -62
- package/dist/compiler/training/subjectDeclaration.d.ts +0 -26
- package/dist/compiler/training/subjectDeclaration.js +0 -54
- package/dist/compiler/training/subjectLease.d.ts +0 -115
- package/dist/compiler/training/subjectLease.js +0 -179
- package/dist/dev/activity.d.ts +0 -14
- package/dist/dev/activity.js +0 -48
- package/dist/runtime/codex-exec/training/adapter.d.ts +0 -13
- package/dist/runtime/codex-exec/training/adapter.js +0 -101
- package/dist/runtime/codex-exec/training/adapter.js.map +0 -1
- package/dist/runtime/codex-exec/training/environment.d.ts +0 -3
- package/dist/runtime/codex-exec/training/environment.js +0 -26
- package/dist/runtime/codex-exec/training/environment.js.map +0 -1
- package/dist/runtime/codex-exec/training/index.d.ts +0 -2
- package/dist/runtime/codex-exec/training/index.js +0 -3
- package/dist/runtime/codex-exec/training/index.js.map +0 -1
- package/dist/runtime/codex-exec/training/protocol.d.ts +0 -15
- package/dist/runtime/codex-exec/training/protocol.js +0 -102
- package/dist/runtime/codex-exec/training/protocol.js.map +0 -1
- package/dist/runtime/codex-exec/training/providers/codex-subscription/index.d.ts +0 -1
- package/dist/runtime/codex-exec/training/providers/codex-subscription/index.js +0 -2
- package/dist/runtime/codex-exec/training/providers/codex-subscription/index.js.map +0 -1
- package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.d.ts +0 -17
- package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.js +0 -80
- package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.js.map +0 -1
- package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.d.ts +0 -12
- package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.js +0 -125
- package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.js.map +0 -1
- package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.d.ts +0 -6
- package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.js +0 -219
- package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.js.map +0 -1
- package/dist/runtime/daimon/contractManifest.js.map +0 -1
- package/dist/runtime/daimon/contractManifestSchema.js.map +0 -1
- package/dist/runtime/daimon/engineDescriptorSchema.js.map +0 -1
- package/dist/runtime/daimon/engineDescriptors.generated.js.map +0 -1
- package/dist/runtime/daimon/engines.js.map +0 -1
- package/dist/runtime/daimon/index.js.map +0 -1
- package/dist/runtime/daimon/packageName.js.map +0 -1
- package/dist/runtime/daimon/training/legacy/adapter.d.ts +0 -11
- package/dist/runtime/daimon/training/legacy/adapter.js +0 -175
- package/dist/runtime/daimon/training/legacy/adapter.js.map +0 -1
- package/dist/runtime/daimon/training/legacy/index.d.ts +0 -2
- package/dist/runtime/daimon/training/legacy/index.js +0 -3
- package/dist/runtime/daimon/training/legacy/index.js.map +0 -1
- package/dist/runtime/daimon/training/legacy/public.d.ts +0 -49
- package/dist/runtime/daimon/training/legacy/public.js +0 -16
- package/dist/runtime/daimon/training/legacy/public.js.map +0 -1
- package/dist/runtime/daimon/training/native/adapter.d.ts +0 -18
- package/dist/runtime/daimon/training/native/adapter.js +0 -252
- package/dist/runtime/daimon/training/native/adapter.js.map +0 -1
- package/dist/runtime/daimon/training/native/admission.d.ts +0 -7
- package/dist/runtime/daimon/training/native/admission.js +0 -52
- package/dist/runtime/daimon/training/native/admission.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/arguments.d.ts +0 -16
- package/dist/runtime/daimon/training/native/child/arguments.js +0 -70
- package/dist/runtime/daimon/training/native/child/arguments.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/deferred-trial.d.ts +0 -24
- package/dist/runtime/daimon/training/native/child/deferred-trial.js +0 -63
- package/dist/runtime/daimon/training/native/child/deferred-trial.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/diagnostics.d.ts +0 -58
- package/dist/runtime/daimon/training/native/child/diagnostics.js +0 -215
- package/dist/runtime/daimon/training/native/child/diagnostics.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/fixture.d.ts +0 -16
- package/dist/runtime/daimon/training/native/child/fixture.js +0 -159
- package/dist/runtime/daimon/training/native/child/fixture.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/grok.d.ts +0 -14
- package/dist/runtime/daimon/training/native/child/grok.js +0 -47
- package/dist/runtime/daimon/training/native/child/grok.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/index.d.ts +0 -7
- package/dist/runtime/daimon/training/native/child/index.js +0 -5
- package/dist/runtime/daimon/training/native/child/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/lifecycle.d.ts +0 -40
- package/dist/runtime/daimon/training/native/child/lifecycle.js +0 -400
- package/dist/runtime/daimon/training/native/child/lifecycle.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/probe.d.ts +0 -2
- package/dist/runtime/daimon/training/native/child/probe.js +0 -11
- package/dist/runtime/daimon/training/native/child/probe.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/sandbox.d.ts +0 -4
- package/dist/runtime/daimon/training/native/child/sandbox.js +0 -76
- package/dist/runtime/daimon/training/native/child/sandbox.js.map +0 -1
- package/dist/runtime/daimon/training/native/child/types.d.ts +0 -15
- package/dist/runtime/daimon/training/native/child/types.js +0 -2
- package/dist/runtime/daimon/training/native/child/types.js.map +0 -1
- package/dist/runtime/daimon/training/native/container/docker.d.ts +0 -29
- package/dist/runtime/daimon/training/native/container/docker.js +0 -105
- package/dist/runtime/daimon/training/native/container/docker.js.map +0 -1
- package/dist/runtime/daimon/training/native/container/grok-slot.d.ts +0 -22
- package/dist/runtime/daimon/training/native/container/grok-slot.js +0 -38
- package/dist/runtime/daimon/training/native/container/grok-slot.js.map +0 -1
- package/dist/runtime/daimon/training/native/container/index.d.ts +0 -6
- package/dist/runtime/daimon/training/native/container/index.js +0 -6
- package/dist/runtime/daimon/training/native/container/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/container/lifecycle.d.ts +0 -8
- package/dist/runtime/daimon/training/native/container/lifecycle.js +0 -111
- package/dist/runtime/daimon/training/native/container/lifecycle.js.map +0 -1
- package/dist/runtime/daimon/training/native/container/manifest.d.ts +0 -17
- package/dist/runtime/daimon/training/native/container/manifest.js +0 -164
- package/dist/runtime/daimon/training/native/container/manifest.js.map +0 -1
- package/dist/runtime/daimon/training/native/container/native-preflight.d.ts +0 -8
- package/dist/runtime/daimon/training/native/container/native-preflight.js +0 -40
- package/dist/runtime/daimon/training/native/container/native-preflight.js.map +0 -1
- package/dist/runtime/daimon/training/native/container/preflight.d.ts +0 -15
- package/dist/runtime/daimon/training/native/container/preflight.js +0 -79
- package/dist/runtime/daimon/training/native/container/preflight.js.map +0 -1
- package/dist/runtime/daimon/training/native/container/slot.d.ts +0 -4
- package/dist/runtime/daimon/training/native/container/slot.js +0 -58
- package/dist/runtime/daimon/training/native/container/slot.js.map +0 -1
- package/dist/runtime/daimon/training/native/external.d.ts +0 -37
- package/dist/runtime/daimon/training/native/external.js +0 -75
- package/dist/runtime/daimon/training/native/external.js.map +0 -1
- package/dist/runtime/daimon/training/native/grants/authority.d.ts +0 -36
- package/dist/runtime/daimon/training/native/grants/authority.js +0 -49
- package/dist/runtime/daimon/training/native/grants/authority.js.map +0 -1
- package/dist/runtime/daimon/training/native/grants/index.d.ts +0 -2
- package/dist/runtime/daimon/training/native/grants/index.js +0 -3
- package/dist/runtime/daimon/training/native/grants/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/grants/pins.d.ts +0 -30
- package/dist/runtime/daimon/training/native/grants/pins.js +0 -20
- package/dist/runtime/daimon/training/native/grants/pins.js.map +0 -1
- package/dist/runtime/daimon/training/native/grants/test-socket.d.ts +0 -6
- package/dist/runtime/daimon/training/native/grants/test-socket.js +0 -35
- package/dist/runtime/daimon/training/native/grants/test-socket.js.map +0 -1
- package/dist/runtime/daimon/training/native/grok-fixtures.d.ts +0 -34
- package/dist/runtime/daimon/training/native/grok-fixtures.js +0 -179
- package/dist/runtime/daimon/training/native/grok-fixtures.js.map +0 -1
- package/dist/runtime/daimon/training/native/index.d.ts +0 -38
- package/dist/runtime/daimon/training/native/index.js +0 -27
- package/dist/runtime/daimon/training/native/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/live-checkout.d.ts +0 -2
- package/dist/runtime/daimon/training/native/live-checkout.js +0 -15
- package/dist/runtime/daimon/training/native/live-checkout.js.map +0 -1
- package/dist/runtime/daimon/training/native/observations.d.ts +0 -51
- package/dist/runtime/daimon/training/native/observations.js +0 -217
- package/dist/runtime/daimon/training/native/observations.js.map +0 -1
- package/dist/runtime/daimon/training/native/outcome.d.ts +0 -13
- package/dist/runtime/daimon/training/native/outcome.js +0 -37
- package/dist/runtime/daimon/training/native/outcome.js.map +0 -1
- package/dist/runtime/daimon/training/native/preparation/engine-config.d.ts +0 -21
- package/dist/runtime/daimon/training/native/preparation/engine-config.js +0 -30
- package/dist/runtime/daimon/training/native/preparation/engine-config.js.map +0 -1
- package/dist/runtime/daimon/training/native/preparation/fixtures.d.ts +0 -17
- package/dist/runtime/daimon/training/native/preparation/fixtures.js +0 -52
- package/dist/runtime/daimon/training/native/preparation/fixtures.js.map +0 -1
- package/dist/runtime/daimon/training/native/preparation/index.d.ts +0 -7
- package/dist/runtime/daimon/training/native/preparation/index.js +0 -5
- package/dist/runtime/daimon/training/native/preparation/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/preparation/layout.d.ts +0 -66
- package/dist/runtime/daimon/training/native/preparation/layout.js +0 -87
- package/dist/runtime/daimon/training/native/preparation/layout.js.map +0 -1
- package/dist/runtime/daimon/training/native/preparation/subject.d.ts +0 -14
- package/dist/runtime/daimon/training/native/preparation/subject.js +0 -67
- package/dist/runtime/daimon/training/native/preparation/subject.js.map +0 -1
- package/dist/runtime/daimon/training/native/preparation/types.d.ts +0 -69
- package/dist/runtime/daimon/training/native/preparation/types.js +0 -2
- package/dist/runtime/daimon/training/native/preparation/types.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/artifacts.d.ts +0 -25
- package/dist/runtime/daimon/training/native/receipt/artifacts.js +0 -32
- package/dist/runtime/daimon/training/native/receipt/artifacts.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.d.ts +0 -129
- package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.js +0 -45
- package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/grok.d.ts +0 -246
- package/dist/runtime/daimon/training/native/receipt/grok.js +0 -195
- package/dist/runtime/daimon/training/native/receipt/grok.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/index.d.ts +0 -11
- package/dist/runtime/daimon/training/native/receipt/index.js +0 -8
- package/dist/runtime/daimon/training/native/receipt/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/paths.d.ts +0 -3
- package/dist/runtime/daimon/training/native/receipt/paths.js +0 -18
- package/dist/runtime/daimon/training/native/receipt/paths.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/sandbox.d.ts +0 -42
- package/dist/runtime/daimon/training/native/receipt/sandbox.js +0 -35
- package/dist/runtime/daimon/training/native/receipt/sandbox.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/schema.d.ts +0 -490
- package/dist/runtime/daimon/training/native/receipt/schema.js +0 -138
- package/dist/runtime/daimon/training/native/receipt/schema.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/subscription.d.ts +0 -13
- package/dist/runtime/daimon/training/native/receipt/subscription.js +0 -13
- package/dist/runtime/daimon/training/native/receipt/subscription.js.map +0 -1
- package/dist/runtime/daimon/training/native/receipt/task-clock.d.ts +0 -19
- package/dist/runtime/daimon/training/native/receipt/task-clock.js +0 -49
- package/dist/runtime/daimon/training/native/receipt/task-clock.js.map +0 -1
- package/dist/runtime/daimon/training/native/sealed-usage.d.ts +0 -218
- package/dist/runtime/daimon/training/native/sealed-usage.js +0 -261
- package/dist/runtime/daimon/training/native/sealed-usage.js.map +0 -1
- package/dist/runtime/daimon/training/native/test-fixtures.d.ts +0 -27
- package/dist/runtime/daimon/training/native/test-fixtures.js +0 -162
- package/dist/runtime/daimon/training/native/test-fixtures.js.map +0 -1
- package/dist/runtime/daimon/training/native/transcript.d.ts +0 -96
- package/dist/runtime/daimon/training/native/transcript.js +0 -239
- package/dist/runtime/daimon/training/native/transcript.js.map +0 -1
- package/dist/runtime/daimon/training/native/transport/delivery.d.ts +0 -27
- package/dist/runtime/daimon/training/native/transport/delivery.js +0 -98
- package/dist/runtime/daimon/training/native/transport/delivery.js.map +0 -1
- package/dist/runtime/daimon/training/native/transport/http.d.ts +0 -3
- package/dist/runtime/daimon/training/native/transport/http.js +0 -81
- package/dist/runtime/daimon/training/native/transport/http.js.map +0 -1
- package/dist/runtime/daimon/training/native/transport/index.d.ts +0 -4
- package/dist/runtime/daimon/training/native/transport/index.js +0 -3
- package/dist/runtime/daimon/training/native/transport/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/transport/types.d.ts +0 -15
- package/dist/runtime/daimon/training/native/transport/types.js +0 -2
- package/dist/runtime/daimon/training/native/transport/types.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/cli.d.ts +0 -1
- package/dist/runtime/daimon/training/native/worker/cli.js +0 -17
- package/dist/runtime/daimon/training/native/worker/cli.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/control.d.ts +0 -20
- package/dist/runtime/daimon/training/native/worker/control.js +0 -266
- package/dist/runtime/daimon/training/native/worker/control.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/deliveries.d.ts +0 -38
- package/dist/runtime/daimon/training/native/worker/deliveries.js +0 -91
- package/dist/runtime/daimon/training/native/worker/deliveries.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/evidence/collect.d.ts +0 -54
- package/dist/runtime/daimon/training/native/worker/evidence/collect.js +0 -278
- package/dist/runtime/daimon/training/native/worker/evidence/collect.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/evidence/execution.d.ts +0 -102
- package/dist/runtime/daimon/training/native/worker/evidence/execution.js +0 -191
- package/dist/runtime/daimon/training/native/worker/evidence/execution.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/evidence/index.d.ts +0 -3
- package/dist/runtime/daimon/training/native/worker/evidence/index.js +0 -4
- package/dist/runtime/daimon/training/native/worker/evidence/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/evidence/io.d.ts +0 -20
- package/dist/runtime/daimon/training/native/worker/evidence/io.js +0 -130
- package/dist/runtime/daimon/training/native/worker/evidence/io.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/evidence/seal.d.ts +0 -3
- package/dist/runtime/daimon/training/native/worker/evidence/seal.js +0 -67
- package/dist/runtime/daimon/training/native/worker/evidence/seal.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/index.d.ts +0 -11
- package/dist/runtime/daimon/training/native/worker/index.js +0 -8
- package/dist/runtime/daimon/training/native/worker/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/profile.d.ts +0 -23
- package/dist/runtime/daimon/training/native/worker/profile.js +0 -149
- package/dist/runtime/daimon/training/native/worker/profile.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/public.d.ts +0 -53
- package/dist/runtime/daimon/training/native/worker/public.js +0 -22
- package/dist/runtime/daimon/training/native/worker/public.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/sandbox.d.ts +0 -4
- package/dist/runtime/daimon/training/native/worker/sandbox.js +0 -54
- package/dist/runtime/daimon/training/native/worker/sandbox.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/server.d.ts +0 -4
- package/dist/runtime/daimon/training/native/worker/server.js +0 -102
- package/dist/runtime/daimon/training/native/worker/server.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/types.d.ts +0 -318
- package/dist/runtime/daimon/training/native/worker/types.js +0 -2
- package/dist/runtime/daimon/training/native/worker/types.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/wake-delivery/index.d.ts +0 -4
- package/dist/runtime/daimon/training/native/worker/wake-delivery/index.js +0 -4
- package/dist/runtime/daimon/training/native/worker/wake-delivery/index.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/wake-delivery/source.d.ts +0 -3
- package/dist/runtime/daimon/training/native/worker/wake-delivery/source.js +0 -16
- package/dist/runtime/daimon/training/native/worker/wake-delivery/source.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.d.ts +0 -4
- package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.js +0 -52
- package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.d.ts +0 -21
- package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.js +0 -198
- package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/wake-delivery/types.d.ts +0 -91
- package/dist/runtime/daimon/training/native/worker/wake-delivery/types.js +0 -2
- package/dist/runtime/daimon/training/native/worker/wake-delivery/types.js.map +0 -1
- package/dist/runtime/daimon/training/native/worker/worker.d.ts +0 -1
- package/dist/runtime/daimon/training/native/worker/worker.js +0 -105
- package/dist/runtime/daimon/training/native/worker/worker.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-broker/broker.d.ts +0 -20
- package/dist/runtime/daimon/training/providers/grok-broker/broker.js +0 -55
- package/dist/runtime/daimon/training/providers/grok-broker/broker.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.d.ts +0 -15
- package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.js +0 -29
- package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-broker/grant-home.d.ts +0 -16
- package/dist/runtime/daimon/training/providers/grok-broker/grant-home.js +0 -60
- package/dist/runtime/daimon/training/providers/grok-broker/grant-home.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.d.ts +0 -81
- package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.js +0 -221
- package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.d.ts +0 -31
- package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.js +0 -78
- package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-broker/grants.d.ts +0 -63
- package/dist/runtime/daimon/training/providers/grok-broker/grants.js +0 -20
- package/dist/runtime/daimon/training/providers/grok-broker/grants.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-broker/index.d.ts +0 -3
- package/dist/runtime/daimon/training/providers/grok-broker/index.js +0 -4
- package/dist/runtime/daimon/training/providers/grok-broker/index.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.d.ts +0 -21
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.js +0 -81
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-subscription/index.d.ts +0 -4
- package/dist/runtime/daimon/training/providers/grok-subscription/index.js +0 -5
- package/dist/runtime/daimon/training/providers/grok-subscription/index.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.d.ts +0 -26
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.js +0 -102
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.js.map +0 -1
- package/dist/runtime/daimon/training/providers/grok-subscription/provider.d.ts +0 -9
- package/dist/runtime/daimon/training/providers/grok-subscription/provider.js +0 -38
- package/dist/runtime/daimon/training/providers/grok-subscription/provider.js.map +0 -1
- package/dist/runtime/daimon/training/public.d.ts +0 -6
- package/dist/runtime/daimon/training/public.js +0 -5
- package/dist/runtime/daimon/training/public.js.map +0 -1
- package/dist/runtime/daimon/training/services/account-lease.d.ts +0 -7
- package/dist/runtime/daimon/training/services/account-lease.js +0 -76
- package/dist/runtime/daimon/training/services/account-lease.js.map +0 -1
- package/dist/runtime/daimon/training/services/freshness.d.ts +0 -15
- package/dist/runtime/daimon/training/services/freshness.js +0 -19
- package/dist/runtime/daimon/training/services/freshness.js.map +0 -1
- package/dist/runtime/daimon/training/services/index.d.ts +0 -4
- package/dist/runtime/daimon/training/services/index.js +0 -4
- package/dist/runtime/daimon/training/services/index.js.map +0 -1
- package/dist/runtime/daimon/training/services/slot-freshness.d.ts +0 -34
- package/dist/runtime/daimon/training/services/slot-freshness.js +0 -178
- package/dist/runtime/daimon/training/services/slot-freshness.js.map +0 -1
- package/dist/runtime/daimon/wakeMoments.js.map +0 -1
- package/dist/runtime/pi/adapter.d.ts +0 -3
- package/dist/runtime/pi/adapter.js +0 -230
- package/dist/runtime/pi/appActivitySource.d.ts +0 -1
- package/dist/runtime/pi/appActivitySource.js +0 -199
- package/dist/runtime/pi/appAgentConfig.d.ts +0 -11
- package/dist/runtime/pi/appAgentConfig.js +0 -264
- package/dist/runtime/pi/appCliEnginesSource.d.ts +0 -1
- package/dist/runtime/pi/appCliEnginesSource.js +0 -183
- package/dist/runtime/pi/appCliSource.d.ts +0 -1
- package/dist/runtime/pi/appCliSource.js +0 -353
- package/dist/runtime/pi/appControlSource.d.ts +0 -1
- package/dist/runtime/pi/appControlSource.js +0 -390
- package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +0 -1
- package/dist/runtime/pi/appControlWakeIdentitySource.js +0 -19
- package/dist/runtime/pi/appCoreSource.d.ts +0 -4
- package/dist/runtime/pi/appCoreSource.js +0 -244
- package/dist/runtime/pi/appPreludeSource.d.ts +0 -1
- package/dist/runtime/pi/appPreludeSource.js +0 -192
- package/dist/runtime/pi/appScheduleSource.d.ts +0 -1
- package/dist/runtime/pi/appScheduleSource.js +0 -84
- package/dist/runtime/pi/appScriptedEngine.d.ts +0 -31
- package/dist/runtime/pi/appScriptedEngine.js +0 -42
- package/dist/runtime/pi/appSource.d.ts +0 -4
- package/dist/runtime/pi/appSource.js +0 -12
- package/dist/runtime/pi/appTemplate.d.ts +0 -14
- package/dist/runtime/pi/appTemplate.js +0 -28
- package/dist/runtime/pi/appTemplateTypes.d.ts +0 -64
- package/dist/runtime/pi/appTemplateTypes.js +0 -18
- package/dist/runtime/pi/appWakeContextSource.d.ts +0 -1
- package/dist/runtime/pi/appWakeContextSource.js +0 -398
- package/dist/runtime/pi/containerTargets.d.ts +0 -4
- package/dist/runtime/pi/containerTargets.js +0 -63
- package/dist/runtime/pi/runAuth.d.ts +0 -2
- package/dist/runtime/pi/runAuth.js +0 -185
- package/dist/runtime/pi/testHelpers.d.ts +0 -2
- package/dist/shared/errors.js.map +0 -1
- package/dist/training/subjects/environment.d.ts +0 -2
- package/dist/training/subjects/environment.js +0 -14
- package/dist/training/subjects/environment.js.map +0 -1
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { lstat, mkdir, realpath } from "node:fs/promises";
|
|
2
|
-
import os from "node:os";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { trainingContextSchema } from "../contract.js";
|
|
5
|
-
import { trainingContainerConfigSchema } from "./contract.js";
|
|
6
|
-
import { allocateTrainingOutputParent } from "../execution.js";
|
|
7
|
-
import { assertTrainingSubjectIsolation } from "./subjectIsolation.js";
|
|
8
|
-
const inside = (root, value) => value === root || value.startsWith(`${root}/`);
|
|
9
|
-
export const prepareTrainingContainer = async (raw, context, args, options = {}) => {
|
|
10
|
-
const config = trainingContainerConfigSchema.parse(raw);
|
|
11
|
-
await assertTrainingSubjectIsolation(config, context);
|
|
12
|
-
const entries = [...config.inputs, config.output];
|
|
13
|
-
const protectedLeaves = [...config.auth, ...config.evaluatorSecrets ?? []];
|
|
14
|
-
const home = path.resolve(os.homedir());
|
|
15
|
-
const globalConfigRoots = [".codex", ".claude", ".grok", ".ssh", ".config"].map((name) => path.join(home, name));
|
|
16
|
-
let missingOutput = false;
|
|
17
|
-
for (const entry of [...entries, ...protectedLeaves]) {
|
|
18
|
-
let canonical;
|
|
19
|
-
try {
|
|
20
|
-
canonical = await realpath(entry.source);
|
|
21
|
-
}
|
|
22
|
-
catch (error) {
|
|
23
|
-
if (entry !== config.output || !options.createOutput || error.code !== "ENOENT")
|
|
24
|
-
throw error;
|
|
25
|
-
canonical = path.resolve(entry.source);
|
|
26
|
-
missingOutput = true;
|
|
27
|
-
}
|
|
28
|
-
if (canonical !== entry.source)
|
|
29
|
-
throw Error("Training bind sources must be canonical, without symlink aliases");
|
|
30
|
-
if (entry !== config.output || !missingOutput) {
|
|
31
|
-
const stat = await lstat(canonical);
|
|
32
|
-
if (stat.isSymbolicLink() || (!stat.isFile() && !stat.isDirectory()))
|
|
33
|
-
throw Error("Training binds require regular files or directories");
|
|
34
|
-
if (config.evaluatorSecrets?.includes(entry) && stat.nlink !== 1)
|
|
35
|
-
throw Error("Evaluator secrets must not have hardlink aliases");
|
|
36
|
-
if (protectedLeaves.includes(entry) && !stat.isFile())
|
|
37
|
-
throw Error("Auth must be a single regular leaf file");
|
|
38
|
-
}
|
|
39
|
-
if (entries.includes(entry)) {
|
|
40
|
-
if (["/", "/etc", "/var", "/run", "/tmp", "/opt", "/usr", "/Users", "/home", home].includes(canonical) || globalConfigRoots.some((root) => inside(root, canonical)))
|
|
41
|
-
throw Error("Host homes, configuration and system roots cannot be training inputs");
|
|
42
|
-
if (protectedLeaves.some((auth) => inside(canonical, auth.source)))
|
|
43
|
-
throw Error("Auth must not be exposed through input or output mounts");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (config.inputs.some((entry, index) => config.inputs.some((other, otherIndex) => index !== otherIndex && inside(entry.source, other.source))))
|
|
47
|
-
throw Error("Training input source roots must not overlap");
|
|
48
|
-
if (!missingOutput && !(await lstat(config.output.source)).isDirectory())
|
|
49
|
-
throw Error("Training output must be an existing directory");
|
|
50
|
-
if (config.inputs.some((entry) => inside(entry.source, config.output.source) || inside(config.output.source, entry.source)))
|
|
51
|
-
throw Error("Training output and inputs must not overlap");
|
|
52
|
-
const map = (value) => {
|
|
53
|
-
const absolute = path.resolve(value);
|
|
54
|
-
const entry = entries.find((item) => inside(item.source, absolute));
|
|
55
|
-
if (!entry)
|
|
56
|
-
throw Error(`Training path is not covered by a declared mount: ${value}`);
|
|
57
|
-
return path.posix.join(entry.destination, path.relative(entry.source, absolute).split(path.sep).join("/"));
|
|
58
|
-
};
|
|
59
|
-
const source = (entry) => ({ ...entry, sourcePath: map(entry.sourcePath) });
|
|
60
|
-
const mapped = trainingContextSchema.parse({ ...context,
|
|
61
|
-
project: { ...context.project, root: map(context.project.root), manifest: map(context.project.manifest) },
|
|
62
|
-
agent: { ...context.agent, source: map(context.agent.source) },
|
|
63
|
-
sources: context.sources.map(source), documents: context.documents.map(source), skills: context.skills.map(source)
|
|
64
|
-
});
|
|
65
|
-
const mappedArgs = [...args];
|
|
66
|
-
let viewerPort;
|
|
67
|
-
for (let index = 0; index < mappedArgs.length; index++) {
|
|
68
|
-
const flag = mappedArgs[index];
|
|
69
|
-
if (["--train", "--validation", "--test", "--out", "--cost-config"].includes(flag)) {
|
|
70
|
-
const value = mappedArgs[++index];
|
|
71
|
-
if (!value)
|
|
72
|
-
throw Error(`Missing ${flag} path`);
|
|
73
|
-
mappedArgs[index] = map(value);
|
|
74
|
-
if (flag === "--out" && !inside("/run/training/output", mappedArgs[index]))
|
|
75
|
-
throw Error("Training --out must use the writable output mount");
|
|
76
|
-
}
|
|
77
|
-
else if (flag === "--resource") {
|
|
78
|
-
const value = mappedArgs[++index] ?? "", equals = value.indexOf("=");
|
|
79
|
-
if (equals < 1)
|
|
80
|
-
throw Error("Expected resource=id path mapping");
|
|
81
|
-
mappedArgs[index] = `${value.slice(0, equals)}=${map(value.slice(equals + 1))}`;
|
|
82
|
-
}
|
|
83
|
-
else if (flag === "--bridge-command") {
|
|
84
|
-
const value = mappedArgs[++index] ?? "";
|
|
85
|
-
if (!/^\/opt\/training\/[A-Za-z0-9._/-]+$/u.test(value) || path.posix.normalize(value) !== value)
|
|
86
|
-
throw Error("Bridge must be an installed executable under /opt/training");
|
|
87
|
-
}
|
|
88
|
-
else if (flag === "--view") {
|
|
89
|
-
const value = mappedArgs[++index] ?? "";
|
|
90
|
-
const port = Number(value);
|
|
91
|
-
if (viewerPort !== undefined || !/^\d+$/u.test(value) || !Number.isSafeInteger(port) || port < 1 || port > 65535)
|
|
92
|
-
throw Error("Container --view requires one explicit port from 1 to 65535");
|
|
93
|
-
viewerPort = port;
|
|
94
|
-
mappedArgs[index] = String(port);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
{
|
|
98
|
-
const flags = mappedArgs.filter(arg => arg === "--concurrency" || arg.startsWith("--concurrency="));
|
|
99
|
-
if (flags.length > 1)
|
|
100
|
-
throw Error("Training accepts one --concurrency value");
|
|
101
|
-
const flag = flags[0];
|
|
102
|
-
if (flag !== undefined) {
|
|
103
|
-
const value = flag === "--concurrency" ? mappedArgs[mappedArgs.indexOf(flag) + 1] : flag.slice("--concurrency=".length);
|
|
104
|
-
if (!value || !/^[1-8]$/u.test(value) || Number(value) > config.slots) {
|
|
105
|
-
throw Error("Training concurrency must fit the provisioned slots");
|
|
106
|
-
}
|
|
107
|
-
if (flag !== "--concurrency")
|
|
108
|
-
mappedArgs.splice(mappedArgs.indexOf(flag), 1, "--concurrency", value);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (missingOutput) {
|
|
112
|
-
await allocateTrainingOutputParent(config.output.source);
|
|
113
|
-
try {
|
|
114
|
-
await mkdir(config.output.source, { mode: 0o700 });
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
if (error.code !== "EEXIST")
|
|
118
|
-
throw error;
|
|
119
|
-
}
|
|
120
|
-
if (await realpath(config.output.source) !== config.output.source || !(await lstat(config.output.source)).isDirectory()) {
|
|
121
|
-
throw Error("Training output must be a canonical directory");
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return { config, context: mapped, args: mappedArgs, ...(viewerPort === undefined ? {} : { viewerPort }) };
|
|
125
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export interface TrainingDockerProcess {
|
|
2
|
-
(args: readonly string[], options: {
|
|
3
|
-
timeoutMs: number;
|
|
4
|
-
signal?: AbortSignal;
|
|
5
|
-
stdout?: (line: string) => void;
|
|
6
|
-
stderr?: (line: string) => void;
|
|
7
|
-
}): Promise<{
|
|
8
|
-
code: number;
|
|
9
|
-
stdout: string;
|
|
10
|
-
stderr: string;
|
|
11
|
-
}>;
|
|
12
|
-
}
|
|
13
|
-
/** Docker client only; no model executable runs on the host. */
|
|
14
|
-
export declare const runTrainingDocker: TrainingDockerProcess;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
/** Docker client only; no model executable runs on the host. */
|
|
3
|
-
export const runTrainingDocker = (args, options) => new Promise((resolve, reject) => {
|
|
4
|
-
if (options.signal?.aborted) {
|
|
5
|
-
reject(Error("Training Docker operation cancelled"));
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
const child = spawn("docker", [...args], { shell: false, stdio: ["ignore", "pipe", "pipe"] });
|
|
9
|
-
let stdout = "", stderr = "", failure;
|
|
10
|
-
let forceClose;
|
|
11
|
-
let settled = false;
|
|
12
|
-
const pending = { stdout: "", stderr: "" };
|
|
13
|
-
const stop = (message) => {
|
|
14
|
-
failure ??= Error(message);
|
|
15
|
-
child.kill("SIGKILL");
|
|
16
|
-
forceClose ??= setTimeout(() => {
|
|
17
|
-
// Releasing a stuck client lets the owner independently stop/verify the container.
|
|
18
|
-
child.stdout.destroy();
|
|
19
|
-
child.stderr.destroy();
|
|
20
|
-
finish(null);
|
|
21
|
-
}, 1000);
|
|
22
|
-
};
|
|
23
|
-
const abort = () => stop("Training Docker operation cancelled");
|
|
24
|
-
const timer = setTimeout(() => stop("Training Docker operation exceeded deadline"), options.timeoutMs);
|
|
25
|
-
options.signal?.addEventListener("abort", abort, { once: true });
|
|
26
|
-
if (options.signal?.aborted)
|
|
27
|
-
abort();
|
|
28
|
-
const consume = (channel, chunk) => {
|
|
29
|
-
pending[channel] += chunk;
|
|
30
|
-
if (Buffer.byteLength(pending[channel]) > 1024 * 1024) {
|
|
31
|
-
stop("Docker output exceeded bounded line size");
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const lines = pending[channel].split("\n");
|
|
35
|
-
pending[channel] = lines.pop();
|
|
36
|
-
for (const line of lines) {
|
|
37
|
-
options[channel]?.(line);
|
|
38
|
-
if (channel === "stdout")
|
|
39
|
-
stdout = options.stdout ? line : stdout + line + "\n";
|
|
40
|
-
else
|
|
41
|
-
stderr = options.stderr ? line : stderr + line + "\n";
|
|
42
|
-
if (stdout.length + stderr.length > 2 * 1024 * 1024)
|
|
43
|
-
stop("Docker output exceeded bounded capture size");
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
child.stdout.setEncoding("utf8").on("data", (chunk) => consume("stdout", chunk));
|
|
47
|
-
child.stderr.setEncoding("utf8").on("data", (chunk) => consume("stderr", chunk));
|
|
48
|
-
child.once("error", (error) => { failure = error; });
|
|
49
|
-
const finish = (code) => {
|
|
50
|
-
if (settled)
|
|
51
|
-
return;
|
|
52
|
-
settled = true;
|
|
53
|
-
clearTimeout(forceClose);
|
|
54
|
-
clearTimeout(timer);
|
|
55
|
-
options.signal?.removeEventListener("abort", abort);
|
|
56
|
-
for (const channel of ["stdout", "stderr"])
|
|
57
|
-
if (pending[channel]) {
|
|
58
|
-
options[channel]?.(pending[channel]);
|
|
59
|
-
if (channel === "stdout")
|
|
60
|
-
stdout = options.stdout ? pending[channel] : stdout + pending[channel];
|
|
61
|
-
else
|
|
62
|
-
stderr = options.stderr ? pending[channel] : stderr + pending[channel];
|
|
63
|
-
}
|
|
64
|
-
if (failure)
|
|
65
|
-
reject(failure);
|
|
66
|
-
else
|
|
67
|
-
resolve({ code: code ?? 1, stdout, stderr });
|
|
68
|
-
};
|
|
69
|
-
child.once("close", finish);
|
|
70
|
-
});
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export declare const TRAINING_BROKER_ENTRYPOINT = "/opt/training/bin/train-broker";
|
|
2
|
-
/** Same output directory is the same resumable run; different outputs never share a counter. */
|
|
3
|
-
export declare const trainingRunRequestMount: (outputSource: string, args: readonly string[]) => string;
|
|
4
|
-
/**
|
|
5
|
-
* Disposable state of a broker-capable training container, all on tmpfs.
|
|
6
|
-
*
|
|
7
|
-
* The image root stays read-only and nothing here is a host bind, so a trial's
|
|
8
|
-
* worker home, workspace, turn store, wake-acceptance store and ledgers are
|
|
9
|
-
* on a filesystem that enforces unix ownership — which is what lets the slot
|
|
10
|
-
* supervisor's worker-uid canaries mean anything (P0 §5: a host bind under
|
|
11
|
-
* Docker Desktop or Colima silently ignores `chown`). The Grok realm is the
|
|
12
|
-
* credential mount. The run request counter has its own persistent named volume.
|
|
13
|
-
*/
|
|
14
|
-
export declare const trainingBrokerTmpfsTargets: (slots?: number) => readonly {
|
|
15
|
-
path: string;
|
|
16
|
-
size: string;
|
|
17
|
-
mode: string;
|
|
18
|
-
}[];
|
|
19
|
-
/**
|
|
20
|
-
* `docker create` arguments for the broker-capable training container.
|
|
21
|
-
*
|
|
22
|
-
* It starts as root with the *production* Daimon capability set rather than
|
|
23
|
-
* the v1 path's `--cap-drop ALL` as the host user: the root entrypoint has to
|
|
24
|
-
* provision uid-owned directories (`CAP_CHOWN`), let the native launcher
|
|
25
|
-
* `setuid` to a worker (`CAP_SETUID`/`SETGID`), drop bounding sets
|
|
26
|
-
* (`CAP_SETPCAP`), supervise dropped children (`CAP_KILL`) and read the
|
|
27
|
-
* attested layout it does not own (`CAP_DAC_READ_SEARCH`). `CAP_FOWNER` is
|
|
28
|
-
* deliberately absent, which is why every provisioning chmod reclaims the
|
|
29
|
-
* inode first. Grok 1.0.34 runs every sandbox profile inside bubblewrap, so
|
|
30
|
-
* the container also needs the pinned default-plus-userns seccomp profile and
|
|
31
|
-
* AppArmor unconfined — the narrowest combination P0 found.
|
|
32
|
-
*/
|
|
33
|
-
export declare const trainingBrokerSecurityArgs: (seccompProfileDirectory: string) => Promise<string[]>;
|
|
34
|
-
export declare const trainingBrokerMounts: (broker: {
|
|
35
|
-
realmVolume: string;
|
|
36
|
-
bootstrap: string;
|
|
37
|
-
declaration: string;
|
|
38
|
-
}) => string[];
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
2
|
-
import { DAIMON_DOCKER_RUNTIME_SECURITY_ARGS, materializeDaimonGrokSeccompProfile } from "../../../shared/index.js";
|
|
3
|
-
import { DAIMON_GROK_ENGINE_BROKER } from "../../../runtime/daimon/contractManifest.js";
|
|
4
|
-
import { DAIMON_GROK_TURN_USAGE_LEDGER } from "../../../runtime/daimon/contractManifest.js";
|
|
5
|
-
import { DAIMON_WAKE_FUSE_DIRECTORY } from "../../../runtime/daimon/config.js";
|
|
6
|
-
import { TRAINING_BROKER_TMPDIR, TRAINING_GRANT_HOME_ROOT, TRAINING_INFERENCE_DIRECTORY, TRAINING_ROOT, trainingSlotDescriptors, TRAINING_TURN_STORE_ROOT, TRAINING_RUN_REQUEST_STORE, TRAINING_SUPERVISOR_DIRECTORY, TRAINING_WORKER_ROOT } from "../broker/paths.js";
|
|
7
|
-
export const TRAINING_BROKER_ENTRYPOINT = "/opt/training/bin/train-broker";
|
|
8
|
-
/** Same output directory is the same resumable run; different outputs never share a counter. */
|
|
9
|
-
export const trainingRunRequestMount = (outputSource, args) => {
|
|
10
|
-
const index = args.indexOf("--out"), output = args[index + 1];
|
|
11
|
-
if (index < 0 || !output || args.lastIndexOf("--out") !== index)
|
|
12
|
-
throw Error("Brokered training requires one --out directory");
|
|
13
|
-
const identity = createHash("sha256").update(JSON.stringify([outputSource, output])).digest("hex");
|
|
14
|
-
return `type=volume,src=spawnfile-training-budget-${identity},dst=${TRAINING_RUN_REQUEST_STORE}`;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Disposable state of a broker-capable training container, all on tmpfs.
|
|
18
|
-
*
|
|
19
|
-
* The image root stays read-only and nothing here is a host bind, so a trial's
|
|
20
|
-
* worker home, workspace, turn store, wake-acceptance store and ledgers are
|
|
21
|
-
* on a filesystem that enforces unix ownership — which is what lets the slot
|
|
22
|
-
* supervisor's worker-uid canaries mean anything (P0 §5: a host bind under
|
|
23
|
-
* Docker Desktop or Colima silently ignores `chown`). The Grok realm is the
|
|
24
|
-
* credential mount. The run request counter has its own persistent named volume.
|
|
25
|
-
*/
|
|
26
|
-
export const trainingBrokerTmpfsTargets = (slots = 4) => [
|
|
27
|
-
{ path: "/tmp", size: "1g", mode: "1777" },
|
|
28
|
-
{ path: "/var/tmp", size: "256m", mode: "1777" },
|
|
29
|
-
{ path: "/work", size: "4g", mode: "0755" },
|
|
30
|
-
{ path: "/home/training", size: "1g", mode: "0755" },
|
|
31
|
-
{ path: TRAINING_ROOT, size: "64m", mode: "0755" },
|
|
32
|
-
...trainingSlotDescriptors(slots).map(p => ({ path: p.root, size: "4g", mode: "0711" })),
|
|
33
|
-
{ path: TRAINING_TURN_STORE_ROOT, size: "256m", mode: "0700" },
|
|
34
|
-
{ path: TRAINING_GRANT_HOME_ROOT, size: "64m", mode: "0755" },
|
|
35
|
-
{ path: TRAINING_INFERENCE_DIRECTORY, size: "64m", mode: "0755" },
|
|
36
|
-
{ path: TRAINING_SUPERVISOR_DIRECTORY, size: "16m", mode: "0755" },
|
|
37
|
-
{ path: TRAINING_WORKER_ROOT, size: "1g", mode: "0755" },
|
|
38
|
-
{ path: "/etc/daimon-engine-broker", size: "16m", mode: "0755" },
|
|
39
|
-
{ path: "/run/daimon-engine-broker", size: "64m", mode: "0755" },
|
|
40
|
-
{ path: TRAINING_BROKER_TMPDIR, size: "64m", mode: "0755" },
|
|
41
|
-
{ path: DAIMON_GROK_TURN_USAGE_LEDGER.directoryPath, size: "64m", mode: "0755" },
|
|
42
|
-
{ path: DAIMON_WAKE_FUSE_DIRECTORY, size: "16m", mode: "0755" }
|
|
43
|
-
];
|
|
44
|
-
/**
|
|
45
|
-
* `docker create` arguments for the broker-capable training container.
|
|
46
|
-
*
|
|
47
|
-
* It starts as root with the *production* Daimon capability set rather than
|
|
48
|
-
* the v1 path's `--cap-drop ALL` as the host user: the root entrypoint has to
|
|
49
|
-
* provision uid-owned directories (`CAP_CHOWN`), let the native launcher
|
|
50
|
-
* `setuid` to a worker (`CAP_SETUID`/`SETGID`), drop bounding sets
|
|
51
|
-
* (`CAP_SETPCAP`), supervise dropped children (`CAP_KILL`) and read the
|
|
52
|
-
* attested layout it does not own (`CAP_DAC_READ_SEARCH`). `CAP_FOWNER` is
|
|
53
|
-
* deliberately absent, which is why every provisioning chmod reclaims the
|
|
54
|
-
* inode first. Grok 1.0.34 runs every sandbox profile inside bubblewrap, so
|
|
55
|
-
* the container also needs the pinned default-plus-userns seccomp profile and
|
|
56
|
-
* AppArmor unconfined — the narrowest combination P0 found.
|
|
57
|
-
*/
|
|
58
|
-
export const trainingBrokerSecurityArgs = async (seccompProfileDirectory) => [
|
|
59
|
-
"--user", "0:0",
|
|
60
|
-
...DAIMON_DOCKER_RUNTIME_SECURITY_ARGS,
|
|
61
|
-
`--security-opt=seccomp=${await materializeDaimonGrokSeccompProfile(seccompProfileDirectory)}`,
|
|
62
|
-
"--security-opt=apparmor=unconfined"
|
|
63
|
-
];
|
|
64
|
-
export const trainingBrokerMounts = (broker) => [
|
|
65
|
-
`type=volume,src=${broker.realmVolume},dst=${DAIMON_GROK_ENGINE_BROKER.credentialHomePath}`,
|
|
66
|
-
`type=bind,src=${broker.bootstrap},dst=/var/lib/spawnfile/daimon/grok-bootstrap-auth,readonly`,
|
|
67
|
-
`type=bind,src=${broker.declaration},dst=${TRAINING_ROOT}/training-broker.json,readonly`
|
|
68
|
-
];
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type TrainingContext } from "../contract.js";
|
|
2
|
-
/** Resolve host-side subject policy; the public v1 context carries no sandbox authority. */
|
|
3
|
-
export declare const assertTrainingSubjectIsolation: (config: {
|
|
4
|
-
subjectIsolation?: "codex-native-sandbox";
|
|
5
|
-
}, context: TrainingContext) => Promise<void>;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { getDaimonEngineDescriptor } from "../../../runtime/daimon/index.js";
|
|
2
|
-
import { resolveDaimonEngine } from "../../../runtime/daimon/config.js";
|
|
3
|
-
import { resolveTrainingContextGraph } from "../context.js";
|
|
4
|
-
import { trainingContextSchema } from "../contract.js";
|
|
5
|
-
/** Resolve host-side subject policy; the public v1 context carries no sandbox authority. */
|
|
6
|
-
export const assertTrainingSubjectIsolation = async (config, context) => {
|
|
7
|
-
if (config.subjectIsolation !== "codex-native-sandbox")
|
|
8
|
-
return;
|
|
9
|
-
const parsed = trainingContextSchema.parse(context);
|
|
10
|
-
const { selected } = await resolveTrainingContextGraph(parsed.project.manifest, parsed.agent.id);
|
|
11
|
-
const agent = selected.value;
|
|
12
|
-
if (agent.runtime.name !== "daimon" || getDaimonEngineDescriptor(resolveDaimonEngine(agent))?.training.subject.isolation !== "native-sandbox" ||
|
|
13
|
-
agent.runtime.options.codex_policy !== "workspace-no-network" || agent.execution?.sandbox?.mode !== "workspace") {
|
|
14
|
-
throw Error("codex-native-sandbox subject isolation requires the selected training agent to use runtime daimon, engine codex, and strict codex_policy: workspace-no-network (execution.sandbox.mode: workspace)");
|
|
15
|
-
}
|
|
16
|
-
};
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
ARG NATIVE_IMAGE
|
|
2
|
-
ARG PYTHON_IMAGE
|
|
3
|
-
FROM ${PYTHON_IMAGE} AS python
|
|
4
|
-
FROM ${NATIVE_IMAGE} AS training
|
|
5
|
-
|
|
6
|
-
# Both parents must use the same architecture and Debian release.
|
|
7
|
-
COPY --from=python /usr/local /opt/python
|
|
8
|
-
COPY --from=python /usr/lib/*-linux-gnu/libsqlite3.so.0* /opt/python/lib/
|
|
9
|
-
# The bridge intentionally clears ambient environment variables. Register native
|
|
10
|
-
# libraries in the image so Python extensions also load in that clean process.
|
|
11
|
-
RUN echo /opt/python/lib > /etc/ld.so.conf.d/training-python.conf && ldconfig
|
|
12
|
-
|
|
13
|
-
# Bookworm's distro library, shared by broker shell tools and direct clocked
|
|
14
|
-
# Daimon children. Resolve the multiarch path at build time; never preload the image.
|
|
15
|
-
RUN . /etc/os-release && test "$VERSION_CODENAME" = bookworm \
|
|
16
|
-
&& apt-get update && apt-get install --yes --no-install-recommends libfaketime=0.9.10-2.1 \
|
|
17
|
-
&& library="$(dpkg-query -L libfaketime | sed -n '\|/faketime/libfaketime\.so\.1$|p')" \
|
|
18
|
-
&& test -f "$library" \
|
|
19
|
-
&& install -d -o root -g root -m 0755 /usr/local/lib/daimon \
|
|
20
|
-
&& ln -s "$library" /usr/local/lib/daimon/libfaketime.so.1 \
|
|
21
|
-
&& chown -h root:root /usr/local/lib/daimon/libfaketime.so.1 \
|
|
22
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
23
|
-
|
|
24
|
-
# The broker-capable container runs on a read-only root, so the fixed Daimon
|
|
25
|
-
# identities are baked here instead of being created by the entrypoint the way
|
|
26
|
-
# the production organization image creates them. It depends on nothing from the
|
|
27
|
-
# build context, so it sits first: it is the least frequently changing layer.
|
|
28
|
-
RUN for fixed_uid in 2000 2100 2200 2201 2202 2203 2204 2205 2206 2207; do \
|
|
29
|
-
groupadd -K GID_MIN=1 --gid "$fixed_uid" "daimon-$fixed_uid" \
|
|
30
|
-
&& useradd -K UID_MIN=1 --no-create-home --no-log-init --uid "$fixed_uid" --gid "$fixed_uid" \
|
|
31
|
-
--home-dir /nonexistent --shell /usr/sbin/nologin "daimon-$fixed_uid"; \
|
|
32
|
-
done
|
|
33
|
-
|
|
34
|
-
# The sealed train and test datasets are bind-mounted UNDER /run/training/inputs, so this directory is
|
|
35
|
-
# the ancestor every read of them must traverse, and it is the only inode in that chain the image owns.
|
|
36
|
-
# Root-owned with no world bits, on the read-only root: uid 2200 is in neither the owner nor the group
|
|
37
|
-
# class, so it loses search permission; a `unshare --map-root-user` namespace maps only uid 2200, so
|
|
38
|
-
# CAP_DAC_OVERRIDE there cannot override an inode owned by real uid 0; and a fresh bind of the parent
|
|
39
|
-
# re-exposes this same directory rather than the bytes under it. Nothing at runtime can widen it,
|
|
40
|
-
# because the container root is read-only — the slot provisioning asserts the mode and refuses otherwise.
|
|
41
|
-
RUN mkdir -p /run/training/inputs /run/training/output /run/training/slots \
|
|
42
|
-
&& chown 0:0 /run/training /run/training/output && chmod 0755 /run/training /run/training/output \
|
|
43
|
-
&& chown 0:2000 /run/training/inputs && chmod 0750 /run/training/inputs
|
|
44
|
-
|
|
45
|
-
# Layers run from least to most frequently changing: locked dependencies, the
|
|
46
|
-
# DSPy venv, bridge source, pinned executables, then distributions. Staged context
|
|
47
|
-
# modes are already `a+rX`-closed (train/train-broker 0555), so late COPY layers need no RUN.
|
|
48
|
-
COPY claude/package.json claude/package-lock.json /opt/training/claude/
|
|
49
|
-
RUN cd /opt/training/claude && npm ci --omit=dev
|
|
50
|
-
|
|
51
|
-
WORKDIR /opt/training/spawnfile
|
|
52
|
-
COPY spawnfile/package.json spawnfile/package-lock.json ./
|
|
53
|
-
RUN npm ci --omit=dev --ignore-scripts
|
|
54
|
-
|
|
55
|
-
WORKDIR /opt/training/compiler
|
|
56
|
-
COPY compiler/package.json compiler/package-lock.json ./
|
|
57
|
-
RUN npm ci --omit=dev --ignore-scripts
|
|
58
|
-
|
|
59
|
-
COPY spawnfile/dist/training/dspy/requirements.lock /opt/training/spawnfile/dist/training/dspy/requirements.lock
|
|
60
|
-
RUN /opt/python/bin/python3 -m venv /opt/training/spawnfile/dist/training/dspy/.venv \
|
|
61
|
-
&& /opt/training/spawnfile/dist/training/dspy/.venv/bin/pip install --no-cache-dir -r /opt/training/spawnfile/dist/training/dspy/requirements.lock \
|
|
62
|
-
&& /opt/training/spawnfile/dist/training/dspy/.venv/bin/pip install --no-cache-dir setuptools==80.9.0
|
|
63
|
-
|
|
64
|
-
# Exactly `chmod -R a+rX /opt/training`, but only entries that need a change are
|
|
65
|
-
# touched, so unchanged lower-layer files are never copied up into a new layer.
|
|
66
|
-
# This layer also puts the native parent's own pinned Grok and engine broker at the two fixed paths
|
|
67
|
-
# `GROK_ENGINE_BROKER` names, exactly as a generated organization image does (`src/runtime/container.ts`).
|
|
68
|
-
# No second build is introduced: both are installed from the parent's runtime install, and the slot
|
|
69
|
-
# provisioning and the slot supervisor both refuse an executable that is not a manifest-pinned one.
|
|
70
|
-
RUN find /opt/training \( \( -type d ! -perm -0555 \) -o \( ! -type d ! -type l \( ! -perm -0444 -o \( \( -perm -0100 -o -perm -0010 -o -perm -0001 \) ! -perm -0111 \) \) \) \) -exec chmod a+rX {} + \
|
|
71
|
-
&& mkdir -m 0755 /opt/training/bin /opt/training/integration \
|
|
72
|
-
&& mkdir -p /opt/daimon/bin \
|
|
73
|
-
&& install -o root -g root -m 0555 /opt/spawnfile/runtime-installs/daimon/bin/grok /usr/local/bin/grok \
|
|
74
|
-
&& install -o root -g root -m 0555 /opt/spawnfile/runtime-installs/daimon/bin/daimon-engine-broker /opt/daimon/bin/daimon-engine-broker \
|
|
75
|
-
&& ln -s /opt/training/claude/node_modules/.bin/claude /opt/training/bin/claude \
|
|
76
|
-
&& ln -s /opt/training/spawnfile/dist/cli/index.js /opt/training/bin/spawnfile \
|
|
77
|
-
&& mkdir -p /opt/training/integration/node_modules/@noopolis \
|
|
78
|
-
&& ln -s /opt/training/spawnfile /opt/training/integration/node_modules/spawnfile \
|
|
79
|
-
&& ln -s /opt/spawnfile/runtime-installs/daimon/node_modules/@noopolis/daimon /opt/training/integration/node_modules/@noopolis/daimon \
|
|
80
|
-
&& mkdir -p /opt/training/spawnfile/node_modules/@noopolis \
|
|
81
|
-
&& ln -s /opt/spawnfile/runtime-installs/daimon/node_modules/@noopolis/daimon /opt/training/spawnfile/node_modules/@noopolis/daimon
|
|
82
|
-
|
|
83
|
-
COPY spawnfile/dist/training/dspy /opt/training/spawnfile/dist/training/dspy
|
|
84
|
-
RUN /opt/training/spawnfile/dist/training/dspy/.venv/bin/pip install --no-deps --no-build-isolation -e /opt/training/spawnfile/dist/training/dspy \
|
|
85
|
-
&& find /opt/training/spawnfile/dist/training/dspy \( \( -type d ! -perm -0555 \) -o \( ! -type d ! -type l \( ! -perm -0444 -o \( \( -perm -0100 -o -perm -0010 -o -perm -0001 \) ! -perm -0111 \) \) \) \) -exec chmod a+rX {} +
|
|
86
|
-
|
|
87
|
-
# No Grok binary: `spawnfile.training-container.v3` runs the native parent's pinned
|
|
88
|
-
# /usr/local/bin/grok through the broker, so a second copy could only be an unattested build.
|
|
89
|
-
COPY train /opt/training/bin/train
|
|
90
|
-
COPY train-broker /opt/training/bin/train-broker
|
|
91
|
-
COPY compiler/runtimes.yaml compiler/moltnet-releases.json /opt/training/compiler/
|
|
92
|
-
COPY spawnfile/runtimes.yaml spawnfile/moltnet-releases.json /opt/training/spawnfile/
|
|
93
|
-
COPY compiler/dist /opt/training/compiler/dist
|
|
94
|
-
COPY integration /opt/training/integration
|
|
95
|
-
COPY bootstrap /opt/training/bootstrap
|
|
96
|
-
COPY spawnfile/dist /opt/training/spawnfile/dist
|
|
97
|
-
ENV PATH=/opt/training/bin:/opt/training/spawnfile/dist/training/dspy/.venv/bin:/opt/spawnfile/runtime-installs/daimon/bin:/usr/local/bin:/usr/bin:/bin
|
|
98
|
-
ENV HOME=/home/training
|
|
99
|
-
WORKDIR /work
|
|
100
|
-
ENTRYPOINT ["/opt/training/bin/train"]
|