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,124 +0,0 @@
|
|
|
1
|
-
import { normalizedTrainingEnvironment } from "../../../shared/index.js";
|
|
2
|
-
import { spawn } from "node:child_process";
|
|
3
|
-
import { randomBytes } from "node:crypto";
|
|
4
|
-
import { lstat, readFile } from "node:fs/promises";
|
|
5
|
-
import os from "node:os";
|
|
6
|
-
import { renderTrainingBrokerProvisioning } from "./provisioning.js";
|
|
7
|
-
import { runTrainingRootScript } from "./rootScript.js";
|
|
8
|
-
import { stageTrainingEvaluatorSecret } from "./evaluatorSecrets.js";
|
|
9
|
-
import { startBrokerProcesses, stopBrokerProcesses } from "./processes.js";
|
|
10
|
-
import { resetTrainingBrokerSlotAsOrganization } from "./reset.js";
|
|
11
|
-
import path from "node:path";
|
|
12
|
-
import { SpawnfileError } from "../../../shared/index.js";
|
|
13
|
-
import { DAIMON_GROK_ENGINE_BROKER } from "../../../runtime/daimon/contractManifest.js";
|
|
14
|
-
import { parseTrainingBrokerDeclaration } from "./declaration.js";
|
|
15
|
-
import { loadDaimonProjectionModule, resolveTrainingSlotProjection } from "./projection.js";
|
|
16
|
-
import { createTrainingSlotRuntime } from "./runtime.js";
|
|
17
|
-
import { createTrainingSlotSupervisor, serveTrainingSlotSupervisor, startTrainingSlot } from "./supervisor.js";
|
|
18
|
-
import { trainingSlotDescriptors, assertTrainingSlotsDocument, TRAINING_SLOTS_FILE, DAIMON_ORGANIZATION_UID, TRAINING_BOOTSTRAP_MOUNT, TRAINING_BROKER_DECLARATION_FILE, TRAINING_GRANT_HOME_ROOT, TRAINING_SUPERVISOR_SOCKET } from "./paths.js";
|
|
19
|
-
export const TRAINING_GROK_BROKER_CONTROL_SOCKET_ENV = "SPAWNFILE_TRAINING_GROK_BROKER_CONTROL_SOCKET";
|
|
20
|
-
export const TRAINING_GROK_GRANT_HOME_ROOT_ENV = "SPAWNFILE_TRAINING_GROK_GRANT_HOME_ROOT";
|
|
21
|
-
export const TRAINING_ENTRYPOINT_COMMAND = "/opt/training/bin/train";
|
|
22
|
-
/**
|
|
23
|
-
* The desktop Grok login, in every spelling a caller might reach it by.
|
|
24
|
-
*
|
|
25
|
-
* D2 is explicit: training uses one dedicated Grok login and never the
|
|
26
|
-
* developer's own. An in-container refresh rotates the credential, so mounting
|
|
27
|
-
* the desktop leaf would invalidate the developer's desktop session as a side
|
|
28
|
-
* effect of a training run — and the refreshed token would live on tmpfs, so
|
|
29
|
-
* the desktop login would be gone rather than moved.
|
|
30
|
-
*/
|
|
31
|
-
export const desktopGrokAuthPaths = (home = os.homedir()) => [path.resolve(home, ".grok/auth.json"), path.resolve(home, ".grok", "auth.json")];
|
|
32
|
-
export const assertNotDesktopGrokAuth = (source, home = os.homedir()) => {
|
|
33
|
-
if (desktopGrokAuthPaths(home).includes(path.resolve(source))) {
|
|
34
|
-
throw new SpawnfileError("validation_error", "Training refuses the desktop ~/.grok/auth.json as its Grok bootstrap; import a dedicated login with `spawnfile auth import grok --profile spawnfile-training --from <dir>`");
|
|
35
|
-
}
|
|
36
|
-
return source;
|
|
37
|
-
};
|
|
38
|
-
/** The bootstrap leaf inside the container: the fixed read-only mount, a bounded regular file, never a symlink. */
|
|
39
|
-
const assertBootstrap = async (declaration) => {
|
|
40
|
-
if (declaration.bootstrap !== TRAINING_BOOTSTRAP_MOUNT) {
|
|
41
|
-
throw new SpawnfileError("validation_error", `The training Grok bootstrap must be mounted at ${TRAINING_BOOTSTRAP_MOUNT}`);
|
|
42
|
-
}
|
|
43
|
-
const info = await lstat(declaration.bootstrap);
|
|
44
|
-
if (!info.isFile() || info.isSymbolicLink() || info.size < 2 || info.size > DAIMON_GROK_SUBSCRIPTION_MAX_BYTES) {
|
|
45
|
-
throw new SpawnfileError("validation_error", "The training Grok bootstrap must be a bounded regular credential leaf");
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
const DAIMON_GROK_SUBSCRIPTION_MAX_BYTES = 64 * 1024;
|
|
49
|
-
/**
|
|
50
|
-
* The broker-capable training container's root entrypoint.
|
|
51
|
-
*
|
|
52
|
-
* Order matters and is the whole privilege model: provision as root with the
|
|
53
|
-
* production capability set, start the launcher (root) and the broker and
|
|
54
|
-
* relay (2100) and prove each one's post-drop identity, publish the slot
|
|
55
|
-
* supervisor socket, and only then drop to uid 2000 with an empty capability
|
|
56
|
-
* bounding set to run `train`. The training core, DSPy and the judges are that uid; the
|
|
57
|
-
* model's own tools are the worker uid the launcher alone can reach.
|
|
58
|
-
*/
|
|
59
|
-
export const runTrainingBrokerEntrypoint = async (options) => {
|
|
60
|
-
const log = options.log ?? ((line) => process.stderr.write(`[training-entrypoint] ${line}\n`));
|
|
61
|
-
if (process.getuid?.() !== 0)
|
|
62
|
-
throw new SpawnfileError("runtime_error", "The broker-capable training container must start as root");
|
|
63
|
-
const declaration = parseTrainingBrokerDeclaration(JSON.parse(await readFile(options.declarationPath ?? TRAINING_BROKER_DECLARATION_FILE, "utf8")));
|
|
64
|
-
await assertBootstrap(declaration);
|
|
65
|
-
const descriptors = trainingSlotDescriptors(declaration.slots);
|
|
66
|
-
const document = JSON.parse(await readFile(TRAINING_SLOTS_FILE, "utf8"));
|
|
67
|
-
assertTrainingSlotsDocument(document, declaration.slots);
|
|
68
|
-
const daimon = await (options.loadDaimon ?? loadDaimonProjectionModule)();
|
|
69
|
-
const reset = resetTrainingBrokerSlotAsOrganization;
|
|
70
|
-
const slots = await Promise.all(descriptors.map(p => resolveTrainingSlotProjection(declaration, p.slot, daimon)));
|
|
71
|
-
const registrations = slots.map(slot => slot.registration);
|
|
72
|
-
const runtimes = slots.map(({ registration, projectionSha256 }) => createTrainingSlotRuntime({ declaration, registration, projectionSha256, reset }));
|
|
73
|
-
await stageTrainingEvaluatorSecret();
|
|
74
|
-
await runTrainingRootScript(renderTrainingBrokerProvisioning(registrations, declaration.maxRunRequests).join("\n"), { maxBuffer: 8 * 1024 * 1024 });
|
|
75
|
-
const children = await startBrokerProcesses({ log });
|
|
76
|
-
let server;
|
|
77
|
-
try {
|
|
78
|
-
for (const runtime of runtimes)
|
|
79
|
-
await startTrainingSlot(runtime, randomBytes(32).toString("hex"));
|
|
80
|
-
const supervisor = createTrainingSlotSupervisor({ runtimes, organizationUid: declaration.organizationUid });
|
|
81
|
-
server = serveTrainingSlotSupervisor(supervisor, TRAINING_SUPERVISOR_SOCKET, log, declaration.organizationUid);
|
|
82
|
-
log(`provisioned ${registrations.length} training slots with one broker process set`);
|
|
83
|
-
return await runTrainingChild(options.argv, declaration, log);
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
server?.close();
|
|
87
|
-
await stopBrokerProcesses(children, log);
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
/**
|
|
91
|
-
* `train` as uid 2000 with an empty bounding set, proven inside the child
|
|
92
|
-
* before it execs: `setpriv --bounding-set=-all` silently does nothing without
|
|
93
|
-
* `CAP_SETPCAP`, so the guard has to read `/proc/self/status` rather than
|
|
94
|
-
* trust the flag.
|
|
95
|
-
*/
|
|
96
|
-
export const trainingChildArgv = (argv, uid = DAIMON_ORGANIZATION_UID) => [
|
|
97
|
-
"setpriv", "--clear-groups", `--reuid=${uid}`, `--regid=${uid}`, "--inh-caps=-all", "--ambient-caps=-all", "--bounding-set=-all",
|
|
98
|
-
"--", "/bin/bash", "-ceu",
|
|
99
|
-
'if [ "$EUID" -eq 0 ]; then echo "training must not run as root" >&2; exit 1; fi\n'
|
|
100
|
-
+ 'test "$(sed -n "s/^CapBnd:[[:space:]]*//p" /proc/self/status)" = 0000000000000000\n'
|
|
101
|
-
+ 'test "$(sed -n "s/^CapEff:[[:space:]]*//p" /proc/self/status)" = 0000000000000000\n'
|
|
102
|
-
+ 'exec "$@"',
|
|
103
|
-
"bash", TRAINING_ENTRYPOINT_COMMAND, ...argv
|
|
104
|
-
];
|
|
105
|
-
const runTrainingChild = (argv, declaration, log) => new Promise((resolve) => {
|
|
106
|
-
const command = trainingChildArgv(argv, declaration.organizationUid);
|
|
107
|
-
const child = spawn(command[0], command.slice(1), {
|
|
108
|
-
stdio: ["ignore", "inherit", "inherit"],
|
|
109
|
-
env: {
|
|
110
|
-
...normalizedTrainingEnvironment(),
|
|
111
|
-
[TRAINING_GROK_BROKER_CONTROL_SOCKET_ENV]: DAIMON_GROK_ENGINE_BROKER.controlSocketPath,
|
|
112
|
-
[TRAINING_GROK_GRANT_HOME_ROOT_ENV]: TRAINING_GRANT_HOME_ROOT,
|
|
113
|
-
SPAWNFILE_TRAINING_SLOTS_FILE: TRAINING_SLOTS_FILE,
|
|
114
|
-
HOME: "/home/training"
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
const forward = (signal) => () => child.kill(signal);
|
|
118
|
-
for (const signal of ["SIGTERM", "SIGINT", "SIGHUP"])
|
|
119
|
-
process.on(signal, forward(signal));
|
|
120
|
-
child.once("exit", (code, signal) => {
|
|
121
|
-
log(`training exited code=${code ?? "null"} signal=${signal ?? "none"}`);
|
|
122
|
-
resolve(signal ? (signal === "SIGINT" ? 130 : 143) : code ?? 1);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { trainingEnvironment } from "../../../shared/index.js";
|
|
2
|
-
import { constants } from "node:fs";
|
|
3
|
-
import { chmod, chown, lstat, mkdir, open } from "node:fs/promises";
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
import { TRAINING_TYPESAFE_SECRET_FILE, TRAINING_TYPESAFE_SECRET_INGRESS } from "../container/evaluators.js";
|
|
6
|
-
import { DAIMON_ORGANIZATION_UID } from "./paths.js";
|
|
7
|
-
/** Root stages into tmpfs before provisioning drops directory ownership and evaluator capabilities. */
|
|
8
|
-
export const stageTrainingEvaluatorSecret = async (env = process.env) => {
|
|
9
|
-
const secretFile = trainingEnvironment("SPAWNFILE_TRAINING_TYPESAFE_SECRET_FILE", env);
|
|
10
|
-
if (secretFile === undefined)
|
|
11
|
-
return;
|
|
12
|
-
if (process.getuid?.() !== 0 || secretFile !== TRAINING_TYPESAFE_SECRET_FILE) {
|
|
13
|
-
throw Error("Invalid evaluator secret staging declaration");
|
|
14
|
-
}
|
|
15
|
-
try {
|
|
16
|
-
const ingress = path.posix.dirname(TRAINING_TYPESAFE_SECRET_INGRESS);
|
|
17
|
-
const parent = await lstat(ingress);
|
|
18
|
-
if (!parent.isDirectory() || parent.isSymbolicLink() || parent.uid !== 0)
|
|
19
|
-
throw Error("Invalid ingress directory");
|
|
20
|
-
// This directory is tmpfs, never the mounted credential inode.
|
|
21
|
-
await chmod(ingress, 0o700);
|
|
22
|
-
const source = await open(TRAINING_TYPESAFE_SECRET_INGRESS, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
23
|
-
let bytes;
|
|
24
|
-
try {
|
|
25
|
-
const info = await source.stat();
|
|
26
|
-
if (!info.isFile() || info.nlink !== 1 || info.size < 1 || info.size > 64 * 1024)
|
|
27
|
-
throw Error("Invalid ingress leaf");
|
|
28
|
-
const buffer = Buffer.alloc(64 * 1024 + 1);
|
|
29
|
-
const { bytesRead } = await source.read(buffer, 0, buffer.length, 0);
|
|
30
|
-
const after = await source.stat();
|
|
31
|
-
if (bytesRead !== info.size || after.size !== info.size || after.mtimeMs !== info.mtimeMs || after.ctimeMs !== info.ctimeMs) {
|
|
32
|
-
throw Error("Secret changed while staging");
|
|
33
|
-
}
|
|
34
|
-
bytes = buffer.subarray(0, bytesRead);
|
|
35
|
-
}
|
|
36
|
-
finally {
|
|
37
|
-
await source.close();
|
|
38
|
-
}
|
|
39
|
-
const destination = path.posix.dirname(TRAINING_TYPESAFE_SECRET_FILE);
|
|
40
|
-
await mkdir(destination, { mode: 0o700 });
|
|
41
|
-
const target = await open(TRAINING_TYPESAFE_SECRET_FILE, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | constants.O_NOFOLLOW, 0o600);
|
|
42
|
-
try {
|
|
43
|
-
await target.writeFile(bytes);
|
|
44
|
-
await target.sync();
|
|
45
|
-
await target.chown(DAIMON_ORGANIZATION_UID, DAIMON_ORGANIZATION_UID);
|
|
46
|
-
}
|
|
47
|
-
finally {
|
|
48
|
-
bytes.fill(0);
|
|
49
|
-
await target.close();
|
|
50
|
-
}
|
|
51
|
-
await chown(destination, DAIMON_ORGANIZATION_UID, DAIMON_ORGANIZATION_UID);
|
|
52
|
-
const info = await lstat(TRAINING_TYPESAFE_SECRET_FILE), directory = await lstat(destination);
|
|
53
|
-
if (info.uid !== DAIMON_ORGANIZATION_UID || info.gid !== DAIMON_ORGANIZATION_UID || (info.mode & 0o777) !== 0o600 ||
|
|
54
|
-
directory.uid !== DAIMON_ORGANIZATION_UID || directory.gid !== DAIMON_ORGANIZATION_UID || (directory.mode & 0o777) !== 0o700) {
|
|
55
|
-
throw Error("Invalid evaluator secret ownership");
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
// Filesystem errors may contain credential bytes supplied by a transport; emit only a fixed diagnostic.
|
|
60
|
-
throw Error("Evaluator secret staging failed");
|
|
61
|
-
}
|
|
62
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export { parseTrainingBrokerDeclaration, trainingBrokerDeclarationSchema, type TrainingBrokerDeclaration } from "./declaration.js";
|
|
2
|
-
export { assertNotDesktopGrokAuth, desktopGrokAuthPaths, runTrainingBrokerEntrypoint, trainingChildArgv, TRAINING_GROK_BROKER_CONTROL_SOCKET_ENV, TRAINING_GROK_GRANT_HOME_ROOT_ENV } from "./entrypoint.js";
|
|
3
|
-
export { brokerProcessPlan, startBrokerProcesses, stopBrokerProcesses } from "./processes.js";
|
|
4
|
-
export { loadDaimonProjectionModule, resolveTrainingGrokProjection, resolveTrainingSlotProjection, trainingOrganizationRuntimeConfig } from "./projection.js";
|
|
5
|
-
export { recycleTrainingSlot, TRAINING_RECYCLE_DEFAULT_TIMEOUT_MS, TRAINING_RECYCLE_MAX_REPLY_BYTES, type RecycleTrainingSlotOptions, type TrainingSlotRecycleReceipt } from "./recycleClient.js";
|
|
6
|
-
export { renderTrainingBrokerProvisioning, renderTrainingIdentities, renderTrainingSlotProvisioning, trainingSlotDirectories } from "./provisioning.js";
|
|
7
|
-
export { buildTrainingSlotReceipt, readGrokExecutableSha256, resolveBackingFilesystem, resolveTrainingCanaries } from "./receipt.js";
|
|
8
|
-
export { resolveTrainingGrokDenyPaths, resolveTrainingGrokRegistration } from "./registration.js";
|
|
9
|
-
export { resetTrainingBrokerSlot, resetTrainingBrokerSlotAsOrganization } from "./reset.js";
|
|
10
|
-
export { createTrainingSlotRuntime, renderTrainingSlotWipe } from "./runtime.js";
|
|
11
|
-
export { assertTrainingSupervisorSocketIdentity, createTrainingSlotSupervisor, serveTrainingSlotSupervisor, TRAINING_SUPERVISOR_PROTOCOL, type TrainingSlotRuntime } from "./supervisor.js";
|
|
12
|
-
export * from "./paths.js";
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export { parseTrainingBrokerDeclaration, trainingBrokerDeclarationSchema } from "./declaration.js";
|
|
2
|
-
export { assertNotDesktopGrokAuth, desktopGrokAuthPaths, runTrainingBrokerEntrypoint, trainingChildArgv, TRAINING_GROK_BROKER_CONTROL_SOCKET_ENV, TRAINING_GROK_GRANT_HOME_ROOT_ENV } from "./entrypoint.js";
|
|
3
|
-
export { brokerProcessPlan, startBrokerProcesses, stopBrokerProcesses } from "./processes.js";
|
|
4
|
-
export { loadDaimonProjectionModule, resolveTrainingGrokProjection, resolveTrainingSlotProjection, trainingOrganizationRuntimeConfig } from "./projection.js";
|
|
5
|
-
export { recycleTrainingSlot, TRAINING_RECYCLE_DEFAULT_TIMEOUT_MS, TRAINING_RECYCLE_MAX_REPLY_BYTES } from "./recycleClient.js";
|
|
6
|
-
export { renderTrainingBrokerProvisioning, renderTrainingIdentities, renderTrainingSlotProvisioning, trainingSlotDirectories } from "./provisioning.js";
|
|
7
|
-
export { buildTrainingSlotReceipt, readGrokExecutableSha256, resolveBackingFilesystem, resolveTrainingCanaries } from "./receipt.js";
|
|
8
|
-
export { resolveTrainingGrokDenyPaths, resolveTrainingGrokRegistration } from "./registration.js";
|
|
9
|
-
export { resetTrainingBrokerSlot, resetTrainingBrokerSlotAsOrganization } from "./reset.js";
|
|
10
|
-
export { createTrainingSlotRuntime, renderTrainingSlotWipe } from "./runtime.js";
|
|
11
|
-
export { assertTrainingSupervisorSocketIdentity, createTrainingSlotSupervisor, serveTrainingSlotSupervisor, TRAINING_SUPERVISOR_PROTOCOL } from "./supervisor.js";
|
|
12
|
-
export * from "./paths.js";
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { runTrainingBrokerEntrypoint } from "./entrypoint.js";
|
|
3
|
-
/**
|
|
4
|
-
* The broker-capable training image's root entrypoint process. The image ships
|
|
5
|
-
* it; the host supplies only the read-only `spawnfile.training-broker.v2`
|
|
6
|
-
* declaration and never a script, so no host executable enters the container.
|
|
7
|
-
*/
|
|
8
|
-
const main = async () => {
|
|
9
|
-
process.exitCode = await runTrainingBrokerEntrypoint({ argv: process.argv.slice(2) });
|
|
10
|
-
};
|
|
11
|
-
main().catch((error) => {
|
|
12
|
-
process.stderr.write(`[training-entrypoint] ${error instanceof Error ? error.message : String(error)}\n`);
|
|
13
|
-
process.exitCode = 1;
|
|
14
|
-
});
|
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
import { DAIMON_BROKER_UID, DAIMON_ORGANIZATION_UID } from "../../../runtime/daimon/runtimeIdentity.js";
|
|
2
|
-
/**
|
|
3
|
-
* Every container path the broker-capable training container fixes.
|
|
4
|
-
*
|
|
5
|
-
* They are deterministic because three parties must agree on them
|
|
6
|
-
* without talking to each other: the root entrypoint that provisions them, the
|
|
7
|
-
* root slot supervisor that wipes and re-provisions them on recycle, and
|
|
8
|
-
* Spawnfile's native training adapter, which writes them into `spawnfile.training.daimon-native.launch.v2`
|
|
9
|
-
* and has no way to ask the container what it chose. Daimon's projection never
|
|
10
|
-
* resolves a path, so each one must also be canonical and never a symlink; the
|
|
11
|
-
* provisioning program asserts that before a slot is used.
|
|
12
|
-
*
|
|
13
|
-
* Everything under `/run/training/slots/<i>` is per-trial state on tmpfs — never the
|
|
14
|
-
* Grok realm volume (R2). The realm volume holds only `auth.json` and the
|
|
15
|
-
* broker credential journal, so a recycle can wipe the slot without touching
|
|
16
|
-
* the one durable rotating credential.
|
|
17
|
-
*/
|
|
18
|
-
export declare const TRAINING_RUN_ROOT = "/run/training/output";
|
|
19
|
-
export declare const TRAINING_SEALED_INPUTS_ROOT = "/run/training/inputs";
|
|
20
|
-
export declare const TRAINING_ROOT = "/run/spawnfile-training";
|
|
21
|
-
export declare const TRAINING_CONTEXT_FILE = "/run/spawnfile-training/context.json";
|
|
22
|
-
/** Host-written, read-only `spawnfile.training-broker.v2` declaration the root entrypoint reads. */
|
|
23
|
-
export declare const TRAINING_BROKER_DECLARATION_FILE = "/run/spawnfile-training/training-broker.json";
|
|
24
|
-
export declare const TRAINING_INFERENCE_DIRECTORY = "/run/training/inference";
|
|
25
|
-
export declare const TRAINING_INFERENCE_LEDGER = "/run/training/inference/inference.jsonl";
|
|
26
|
-
/** Judge grant homes: `2000:2000 0700`, denied to every worker uid. Training reads it as `SPAWNFILE_TRAINING_GROK_GRANT_HOME_ROOT`. */
|
|
27
|
-
export declare const TRAINING_GRANT_HOME_ROOT = "/run/training/grants";
|
|
28
|
-
/**
|
|
29
|
-
* Private temp for the broker and its relay (uid 2100, outside the organization
|
|
30
|
-
* group), deliberately **outside** `/run/daimon-engine-broker`.
|
|
31
|
-
*
|
|
32
|
-
* Production puts it at `<control root>/tmp`, which is fine there: that root is
|
|
33
|
-
* removed and recreated exactly once, at container start. Training
|
|
34
|
-
* re-provisions the same root on every recycle, and the launch mounts this
|
|
35
|
-
* directory as its own tmpfs — so a `tmp/` inside the cleared root is a *mount
|
|
36
|
-
* point*, and clearing a mount point fails `EBUSY`. A live P8 launch died
|
|
37
|
-
* exactly there. Its own tmpfs under `/run/training` is never a wipe target and
|
|
38
|
-
* is denied to every worker uid.
|
|
39
|
-
*/
|
|
40
|
-
export declare const TRAINING_BROKER_TMPDIR = "/run/training/broker-tmp";
|
|
41
|
-
export declare const TRAINING_SUPERVISOR_DIRECTORY = "/run/training/supervisor";
|
|
42
|
-
export declare const TRAINING_SUPERVISOR_SOCKET = "/run/training/supervisor/control.sock";
|
|
43
|
-
export declare const TRAINING_SUPERVISOR_LOG = "/run/training/supervisor/supervisor.log";
|
|
44
|
-
export declare const TRAINING_WORKER_ROOT = "/var/lib/daimon-workers";
|
|
45
|
-
/**
|
|
46
|
-
* Training's own fixed container paths (`containerPaths` in its native launch
|
|
47
|
-
* schema). They are *not* individual deny entries: Grok 1.0.34 materializes
|
|
48
|
-
* every `deny` target inside bubblewrap as the worker uid, and it cannot
|
|
49
|
-
* create a file inside `/run/spawnfile-training`, which belongs to uid 2000 alone. The
|
|
50
|
-
* single `/run/spawnfile-training` mask below covers all of them, which is also stronger
|
|
51
|
-
* — a file Training adds later is covered without re-provisioning the slot.
|
|
52
|
-
*/
|
|
53
|
-
export declare const TRAINING_CALLER_PROTECTED_PATHS: readonly ["/run/spawnfile-training/config.json", "/run/spawnfile-training/control", "/run/spawnfile-training/launch.json", "/run/spawnfile-training/token", "/run/spawnfile-training/env", "/run/spawnfile-training/preparation.json", "/run/spawnfile-training/repair.json"];
|
|
54
|
-
/**
|
|
55
|
-
* `spawnfile.training.daimon-native.launch.v2`'s `broker.evaluatorPaths`, in full.
|
|
56
|
-
*
|
|
57
|
-
* This is not a summary of the five roles — it is the **whole** set of deny
|
|
58
|
-
* entries this container adds beyond Daimon's own protected paths, because
|
|
59
|
-
* Training's worker resolves the projection from exactly
|
|
60
|
-
* `[...new Set(broker.evaluatorPaths.map(row => row.path))].sort()`. A launch
|
|
61
|
-
* that carried only the five roles made Daimon hash a different deny list than
|
|
62
|
-
* the one provisioning wrote, and a live run died on
|
|
63
|
-
* `Grok broker projection digest differs from the launch receipt`.
|
|
64
|
-
*
|
|
65
|
-
* `role` is Training's closed five-value enum and may repeat; only `path` is
|
|
66
|
-
* unique. The four roles with a dedicated path keep it, and everything else is
|
|
67
|
-
* tagged `context` — the caller-state role — since there is no other way to
|
|
68
|
-
* carry a path through that contract.
|
|
69
|
-
*/
|
|
70
|
-
export declare const TRAINING_SLOTS_FILE = "/run/spawnfile-training/slots.json";
|
|
71
|
-
export declare const TRAINING_SLOTS_VERSION: "spawnfile.training-slots.v1";
|
|
72
|
-
export declare const TRAINING_DEFAULT_SLOTS = 4;
|
|
73
|
-
export declare const TRAINING_MAX_SLOTS = 8;
|
|
74
|
-
/** 100 ports per slot: offsets 0=Moltnet, 1=worker control, 2=bridge; 3..99 reserved. */
|
|
75
|
-
export declare const TRAINING_PORT_BASE = 20000;
|
|
76
|
-
export declare const TRAINING_PORT_STRIDE = 100;
|
|
77
|
-
export declare const TRAINING_BROKER_SOCKET_PATHS: readonly ["/run/daimon-engine-broker/control.sock", "/run/daimon-engine-broker/backend.sock", "/run/daimon-engine-broker/launcher.sock"];
|
|
78
|
-
export declare const TRAINING_TURN_STORE_ROOT = "/run/training/turns";
|
|
79
|
-
/** Persistent, broker-only run counter; never part of a slot recycle. */
|
|
80
|
-
export declare const TRAINING_RUN_REQUEST_STORE = "/run/training/request-budget";
|
|
81
|
-
export declare const assertTrainingSlotCount: (slots: number) => number;
|
|
82
|
-
export declare const trainingSlotPaths: (slot: number) => {
|
|
83
|
-
slot: number;
|
|
84
|
-
workerUid: number;
|
|
85
|
-
root: string;
|
|
86
|
-
workerHome: string;
|
|
87
|
-
workspace: string;
|
|
88
|
-
runtimeHome: string;
|
|
89
|
-
state: string;
|
|
90
|
-
acceptanceStore: string;
|
|
91
|
-
turns: string;
|
|
92
|
-
usageDirectory: string;
|
|
93
|
-
usageLedger: string;
|
|
94
|
-
preflightReceipt: string;
|
|
95
|
-
generationFile: string;
|
|
96
|
-
sealedInputsAttestation: string;
|
|
97
|
-
privateTmp: string;
|
|
98
|
-
clockDirectory: string;
|
|
99
|
-
clockFile: string;
|
|
100
|
-
ports: {
|
|
101
|
-
base: number;
|
|
102
|
-
stride: number;
|
|
103
|
-
moltnet: number;
|
|
104
|
-
workerControl: number;
|
|
105
|
-
bridge: number;
|
|
106
|
-
};
|
|
107
|
-
};
|
|
108
|
-
export type TrainingSlotPaths = ReturnType<typeof trainingSlotPaths>;
|
|
109
|
-
export type TrainingEvaluatorPath = {
|
|
110
|
-
role: "run-root" | "context" | "sealed-inputs" | "judge-home" | "slot-ledger";
|
|
111
|
-
path: string;
|
|
112
|
-
};
|
|
113
|
-
/** The complete additional projection deny set. Sibling roots and homes never nest with own masks. */
|
|
114
|
-
export declare const trainingEvaluatorPaths: (slot: number, slots: number) => TrainingEvaluatorPath[];
|
|
115
|
-
export declare const trainingSlotDescriptors: (slots?: number) => {
|
|
116
|
-
evaluatorPaths: TrainingEvaluatorPath[];
|
|
117
|
-
containerPaths: {
|
|
118
|
-
path: "/run/spawnfile-training/config.json" | "/run/spawnfile-training/control" | "/run/spawnfile-training/launch.json" | "/run/spawnfile-training/token" | "/run/spawnfile-training/env" | "/run/spawnfile-training/preparation.json" | "/run/spawnfile-training/repair.json";
|
|
119
|
-
}[];
|
|
120
|
-
controlRoot: string;
|
|
121
|
-
slot: number;
|
|
122
|
-
workerUid: number;
|
|
123
|
-
root: string;
|
|
124
|
-
workerHome: string;
|
|
125
|
-
workspace: string;
|
|
126
|
-
runtimeHome: string;
|
|
127
|
-
state: string;
|
|
128
|
-
acceptanceStore: string;
|
|
129
|
-
turns: string;
|
|
130
|
-
usageDirectory: string;
|
|
131
|
-
usageLedger: string;
|
|
132
|
-
preflightReceipt: string;
|
|
133
|
-
generationFile: string;
|
|
134
|
-
sealedInputsAttestation: string;
|
|
135
|
-
privateTmp: string;
|
|
136
|
-
clockDirectory: string;
|
|
137
|
-
clockFile: string;
|
|
138
|
-
ports: {
|
|
139
|
-
base: number;
|
|
140
|
-
stride: number;
|
|
141
|
-
moltnet: number;
|
|
142
|
-
workerControl: number;
|
|
143
|
-
bridge: number;
|
|
144
|
-
};
|
|
145
|
-
}[];
|
|
146
|
-
export type TrainingSlotDescriptor = ReturnType<typeof trainingSlotDescriptors>[number];
|
|
147
|
-
export interface TrainingSlotsDocument {
|
|
148
|
-
schema: typeof TRAINING_SLOTS_VERSION;
|
|
149
|
-
slots: {
|
|
150
|
-
index: number;
|
|
151
|
-
workerUid: number;
|
|
152
|
-
roots: Record<string, string>;
|
|
153
|
-
ports: {
|
|
154
|
-
base: number;
|
|
155
|
-
count: number;
|
|
156
|
-
};
|
|
157
|
-
}[];
|
|
158
|
-
}
|
|
159
|
-
export declare const trainingSlotsDocument: (slots?: number) => TrainingSlotsDocument;
|
|
160
|
-
/** Both sides derive the descriptor bytes; a stale or edited bind must never certify a different pool. */
|
|
161
|
-
export declare const assertTrainingSlotsDocument: (value: unknown, slots: number) => void;
|
|
162
|
-
/** Shared deny targets exist before worker attestation; no per-slot subtree is touched here. */
|
|
163
|
-
export declare const TRAINING_OPTIONAL_DENY_DIRECTORIES: readonly string[];
|
|
164
|
-
/**
|
|
165
|
-
* Deny entries a launch may legitimately not have mounted. Everything else must
|
|
166
|
-
* exist before a worker turn: Grok 1.0.34 creates an absent `deny` target as
|
|
167
|
-
* the worker uid inside bubblewrap and refuses the whole profile when it
|
|
168
|
-
* cannot, so provisioning materializes every other entry itself.
|
|
169
|
-
*/
|
|
170
|
-
export declare const TRAINING_DEFERRED_DENY_PATHS: readonly string[];
|
|
171
|
-
/**
|
|
172
|
-
* Deny entries the launch binds from the host, named so a refusal can say why.
|
|
173
|
-
*
|
|
174
|
-
* Only the run root is one. The sealed inputs root is **not**: the launch binds
|
|
175
|
-
* each declared input at `/run/training/inputs/<id>`, so `/run/training/inputs`
|
|
176
|
-
* itself is the binds' *parent*, a directory on the read-only image root — and
|
|
177
|
-
* that is exactly what makes it sealable (see `TRAINING_SEALED_DENY_PATHS`).
|
|
178
|
-
*
|
|
179
|
-
* Being a host bind is no longer a waiver on its own. On Docker Desktop and
|
|
180
|
-
* Colima a bind lands on virtiofs/grpcfuse, which ignores `chown`, and there a
|
|
181
|
-
* worker-uid probe carries no information; on a Linux daemon over ext4, xfs,
|
|
182
|
-
* btrfs or overlay the same bind enforces ownership and the probe is real. The
|
|
183
|
-
* canary resolver asks the backing filesystem rather than this list, which is
|
|
184
|
-
* why the documented `refuse` default is reachable at all.
|
|
185
|
-
*/
|
|
186
|
-
export declare const TRAINING_HOST_BIND_DENY_PATHS: readonly string[];
|
|
187
|
-
/**
|
|
188
|
-
* Deny entries whose denial must be proven by the kernel under **every**
|
|
189
|
-
* policy, because the experiment's central claim depends on them.
|
|
190
|
-
*
|
|
191
|
-
* `/run/training/inputs` holds the sealed train and test datasets. A bubblewrap
|
|
192
|
-
* `deny` mask is not a boundary the subject cannot lift: the pinned seccomp
|
|
193
|
-
* profile must allow `clone/unshare/mount/umount2/pivot_root/setns` for
|
|
194
|
-
* bubblewrap itself, and the container runs `apparmor=unconfined`, so a
|
|
195
|
-
* worker-uid process can open a user + mount namespace of its own and either
|
|
196
|
-
* detach the mask or bind the mask's parent somewhere fresh.
|
|
197
|
-
*
|
|
198
|
-
* What survives that is DAC on the datasets' ancestor. The image bakes this
|
|
199
|
-
* directory `0:<organization gid> 0750` on the read-only root, so:
|
|
200
|
-
*
|
|
201
|
-
* - the worker uid is in neither the owner nor the group class and loses
|
|
202
|
-
* search permission on the one directory every dataset read must traverse;
|
|
203
|
-
* - the inode is owned by real uid 0, which a `unshare --map-root-user`
|
|
204
|
-
* namespace does not map, so `CAP_DAC_OVERRIDE` there cannot override it;
|
|
205
|
-
* - the root filesystem is read-only, so nothing in the container — root
|
|
206
|
-
* included — can loosen the mode after the image is built.
|
|
207
|
-
*
|
|
208
|
-
* Provisioning asserts the mode and then attacks it as the worker uid, and the
|
|
209
|
-
* canary resolver refuses the slot rather than certifying one of these on the
|
|
210
|
-
* sandbox profile alone.
|
|
211
|
-
*/
|
|
212
|
-
export declare const TRAINING_SEALED_DENY_PATHS: readonly string[];
|
|
213
|
-
/** Spawnfile-owned per-route seal attestation, written by provisioning beside the slot preflight receipt. */
|
|
214
|
-
/** The image-baked identity of the sealed inputs root, asserted before every slot and never writable at runtime. */
|
|
215
|
-
export declare const TRAINING_SEALED_INPUTS_IDENTITY: {
|
|
216
|
-
readonly uid: 0;
|
|
217
|
-
readonly gid: 2000;
|
|
218
|
-
readonly mode: "750";
|
|
219
|
-
};
|
|
220
|
-
/**
|
|
221
|
-
* What a recycle removes outright, and what it only empties.
|
|
222
|
-
*
|
|
223
|
-
* Nothing the launch mounts may be at or below any of these. A mount point
|
|
224
|
-
* cannot be unlinked while it is mounted, so a wipe target holding one aborts
|
|
225
|
-
* the recycle — which is how the broker/relay `TMPDIR` took down a live launch
|
|
226
|
-
* when it still lived at `<control root>/tmp`. `paths.test.ts` enforces that
|
|
227
|
-
* against the launch's own mount list; the rendered shell skips mount points
|
|
228
|
-
* anyway, so an undeclared one degrades to "left in place and reported" rather
|
|
229
|
-
* than a failed provision.
|
|
230
|
-
*/
|
|
231
|
-
export declare const trainingWipeTargets: (slot: number) => readonly string[];
|
|
232
|
-
/** Broker-owned turns and clocks are reset through its control seam, never by filesystem deletion. */
|
|
233
|
-
export declare const trainingClearTargets: (slot: number) => readonly string[];
|
|
234
|
-
export declare const TRAINING_REALM_MOUNT: "/var/lib/spawnfile/daimon/grok-subscription-realm";
|
|
235
|
-
export declare const TRAINING_BOOTSTRAP_MOUNT: "/var/lib/spawnfile/daimon/grok-bootstrap-auth";
|
|
236
|
-
export { DAIMON_BROKER_UID, DAIMON_ORGANIZATION_UID };
|