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,30 +0,0 @@
|
|
|
1
|
-
import { type DaimonAgentSkill } from "../../../runtime/daimon/grokWorkerSkills.js";
|
|
2
|
-
import type { TrainingContext } from "../contract.js";
|
|
3
|
-
import type { TrainingPreparationConfig } from "./contract.js";
|
|
4
|
-
export interface PreparedTrainingBroker {
|
|
5
|
-
declarationPath: string;
|
|
6
|
-
launch: {
|
|
7
|
-
engine: "grok";
|
|
8
|
-
realmVolume: string;
|
|
9
|
-
bootstrap: string;
|
|
10
|
-
declaration: string;
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Lowers `spawnfile.training-container.v4`'s broker block into the read-only
|
|
15
|
-
* `spawnfile.training-broker.v2` declaration the container's own root
|
|
16
|
-
* entrypoint reads, plus the launch bindings that carry the realm volume and
|
|
17
|
-
* bootstrap leaf.
|
|
18
|
-
*
|
|
19
|
-
* The bootstrap is checked here as well as at launch: a run that never reaches
|
|
20
|
-
* `docker create` — a dry run, a failed build — must still refuse the
|
|
21
|
-
* developer's desktop Grok login rather than report it later.
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* The subject's declared skills, read from the context's pinned sources and
|
|
25
|
-
* refused if any byte changed since capture: exactly the `SKILL.md` files the
|
|
26
|
-
* compiler emits into its `.agents/skills`, in Daimon's engine-neutral form.
|
|
27
|
-
* `undefined` for none keeps a skill-less declaration byte-identical.
|
|
28
|
-
*/
|
|
29
|
-
export declare const trainingBrokerSkills: (context: Pick<TrainingContext, "skills">) => Promise<DaimonAgentSkill[] | undefined>;
|
|
30
|
-
export declare const prepareTrainingBroker: (broker: NonNullable<TrainingPreparationConfig["broker"]>, root: string, staging: string, write: boolean, slots?: number, skills?: readonly DaimonAgentSkill[]) => Promise<PreparedTrainingBroker>;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { DAIMON_BROKER_ENGINE_ID } from "../../../runtime/daimon/index.js";
|
|
2
|
-
import { createHash } from "node:crypto";
|
|
3
|
-
import { lstat, readFile, writeFile } from "node:fs/promises";
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
import { daimonAgentSkillsFromResolved, parseDaimonAgentSkills } from "../../../runtime/daimon/grokWorkerSkills.js";
|
|
6
|
-
import { SpawnfileError } from "../../../shared/index.js";
|
|
7
|
-
import { DAIMON_GROK_SECCOMP_PROFILE_SHA256 } from "../../../shared/daimonGrokSeccompProfile.js";
|
|
8
|
-
import { assertNotDesktopGrokAuth } from "../broker/entrypoint.js";
|
|
9
|
-
import { parseTrainingBrokerDeclaration } from "../broker/declaration.js";
|
|
10
|
-
import { TRAINING_BOOTSTRAP_MOUNT } from "../broker/paths.js";
|
|
11
|
-
import { DAIMON_ORGANIZATION_UID } from "../../../runtime/daimon/runtimeIdentity.js";
|
|
12
|
-
/**
|
|
13
|
-
* Lowers `spawnfile.training-container.v4`'s broker block into the read-only
|
|
14
|
-
* `spawnfile.training-broker.v2` declaration the container's own root
|
|
15
|
-
* entrypoint reads, plus the launch bindings that carry the realm volume and
|
|
16
|
-
* bootstrap leaf.
|
|
17
|
-
*
|
|
18
|
-
* The bootstrap is checked here as well as at launch: a run that never reaches
|
|
19
|
-
* `docker create` — a dry run, a failed build — must still refuse the
|
|
20
|
-
* developer's desktop Grok login rather than report it later.
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* The subject's declared skills, read from the context's pinned sources and
|
|
24
|
-
* refused if any byte changed since capture: exactly the `SKILL.md` files the
|
|
25
|
-
* compiler emits into its `.agents/skills`, in Daimon's engine-neutral form.
|
|
26
|
-
* `undefined` for none keeps a skill-less declaration byte-identical.
|
|
27
|
-
*/
|
|
28
|
-
export const trainingBrokerSkills = async (context) => {
|
|
29
|
-
if (context.skills.length === 0)
|
|
30
|
-
return undefined;
|
|
31
|
-
const skills = await Promise.all(context.skills.map(async (skill) => {
|
|
32
|
-
const bytes = await readFile(skill.sourcePath);
|
|
33
|
-
if (`sha256:${createHash("sha256").update(bytes).digest("hex")}` !== skill.sha256) {
|
|
34
|
-
throw new SpawnfileError("validation_error", `Training skill ${skill.name} changed since its context was captured`);
|
|
35
|
-
}
|
|
36
|
-
return { name: skill.name, content: bytes.toString("utf8") };
|
|
37
|
-
}));
|
|
38
|
-
return parseDaimonAgentSkills(daimonAgentSkillsFromResolved(skills));
|
|
39
|
-
};
|
|
40
|
-
export const prepareTrainingBroker = async (broker, root, staging, write, slots = 4, skills) => {
|
|
41
|
-
const bootstrap = path.resolve(root, broker.bootstrap);
|
|
42
|
-
assertNotDesktopGrokAuth(bootstrap);
|
|
43
|
-
const info = await lstat(bootstrap).catch(() => undefined);
|
|
44
|
-
if (!info?.isFile() || info.isSymbolicLink())
|
|
45
|
-
throw Error("The training Grok bootstrap must be an existing regular credential leaf");
|
|
46
|
-
if ((info.mode & 0o077) !== 0)
|
|
47
|
-
throw Error("The training Grok bootstrap must not be group- or world-accessible");
|
|
48
|
-
const declaration = parseTrainingBrokerDeclaration({
|
|
49
|
-
version: "spawnfile.training-broker.v2",
|
|
50
|
-
slots,
|
|
51
|
-
maxRunRequests: broker.maxRunRequests,
|
|
52
|
-
engine: broker.engine,
|
|
53
|
-
agentId: broker.agentId,
|
|
54
|
-
model: broker.model,
|
|
55
|
-
reasoningEffort: broker.reasoningEffort,
|
|
56
|
-
architecture: broker.architecture,
|
|
57
|
-
limits: broker.limits,
|
|
58
|
-
bootstrap: TRAINING_BOOTSTRAP_MOUNT,
|
|
59
|
-
organizationUid: DAIMON_ORGANIZATION_UID,
|
|
60
|
-
seccompProfileSha256: DAIMON_GROK_SECCOMP_PROFILE_SHA256,
|
|
61
|
-
...(broker.unenforcedBindPolicy === undefined ? {} : { unenforcedBindPolicy: broker.unenforcedBindPolicy }),
|
|
62
|
-
...(skills?.length ? { skills } : {})
|
|
63
|
-
});
|
|
64
|
-
const declarationPath = path.join(staging, "training-broker.json");
|
|
65
|
-
if (write)
|
|
66
|
-
await writeFile(declarationPath, `${JSON.stringify(declaration)}\n`, { mode: 0o444, flag: "wx" });
|
|
67
|
-
return { declarationPath, launch: { engine: DAIMON_BROKER_ENGINE_ID, realmVolume: broker.realmVolume, bootstrap, declaration: declarationPath } };
|
|
68
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/** Fixed staged timestamp: deterministic context bytes, and still valid in ZIP-based Python builds. */
|
|
2
|
-
export declare const TRAINING_CONTEXT_MTIME: Date;
|
|
3
|
-
/**
|
|
4
|
-
* `chmod a+rX` closure: every directory gains 0555; every other entry gains 0444,
|
|
5
|
-
* plus 0111 when any execute bit is already present. Symlinks are never staged.
|
|
6
|
-
*/
|
|
7
|
-
export declare const readableClosure: (mode: number, directory: boolean) => number;
|
|
8
|
-
/**
|
|
9
|
-
* Fix staged build-context modes and times so COPY produces exactly the modes the
|
|
10
|
-
* former in-image `chmod 0555 grok train && chmod -R a+rX /opt/training` produced.
|
|
11
|
-
*/
|
|
12
|
-
export declare function normalizeTrainingContext(staging: string): Promise<void>;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { chmod, lstat, readdir, utimes } from "node:fs/promises";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
/** Fixed staged timestamp: deterministic context bytes, and still valid in ZIP-based Python builds. */
|
|
4
|
-
export const TRAINING_CONTEXT_MTIME = new Date("2000-01-01T00:00:00Z");
|
|
5
|
-
/**
|
|
6
|
-
* Executables the recipe previously forced to 0555 before its recursive closure.
|
|
7
|
-
* `spawnfile.training-container.v3` stages no Grok binary — judges use the native
|
|
8
|
-
* parent's pinned `/usr/local/bin/grok` — and adds the root broker entrypoint.
|
|
9
|
-
*/
|
|
10
|
-
const EXACT_MODES = { train: 0o555, "train-broker": 0o555 };
|
|
11
|
-
/**
|
|
12
|
-
* `chmod a+rX` closure: every directory gains 0555; every other entry gains 0444,
|
|
13
|
-
* plus 0111 when any execute bit is already present. Symlinks are never staged.
|
|
14
|
-
*/
|
|
15
|
-
export const readableClosure = (mode, directory) => directory ? (mode & 0o7777) | 0o555 : (mode & 0o7777) | 0o444 | ((mode & 0o111) !== 0 ? 0o111 : 0);
|
|
16
|
-
/**
|
|
17
|
-
* Fix staged build-context modes and times so COPY produces exactly the modes the
|
|
18
|
-
* former in-image `chmod 0555 grok train && chmod -R a+rX /opt/training` produced.
|
|
19
|
-
*/
|
|
20
|
-
export async function normalizeTrainingContext(staging) {
|
|
21
|
-
const visit = async (entry, relative) => {
|
|
22
|
-
const stat = await lstat(entry);
|
|
23
|
-
if (stat.isSymbolicLink())
|
|
24
|
-
throw Error("Training build context must not contain symlinks");
|
|
25
|
-
if (stat.isDirectory()) {
|
|
26
|
-
for (const name of (await readdir(entry)).sort())
|
|
27
|
-
await visit(path.join(entry, name), path.posix.join(relative, name));
|
|
28
|
-
if (relative)
|
|
29
|
-
await chmod(entry, readableClosure(stat.mode, true));
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
await chmod(entry, EXACT_MODES[relative] ?? readableClosure(stat.mode, false));
|
|
33
|
-
}
|
|
34
|
-
if (relative)
|
|
35
|
-
await utimes(entry, TRAINING_CONTEXT_MTIME, TRAINING_CONTEXT_MTIME);
|
|
36
|
-
};
|
|
37
|
-
await visit(staging, "");
|
|
38
|
-
}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const trainingBuildSchema: z.ZodObject<{
|
|
3
|
-
recipe: z.ZodLiteral<"daimon-dspy.v1">;
|
|
4
|
-
nativeImage: z.ZodString;
|
|
5
|
-
pythonImage: z.ZodString;
|
|
6
|
-
platform: z.ZodEnum<{
|
|
7
|
-
"linux/amd64": "linux/amd64";
|
|
8
|
-
"linux/arm64": "linux/arm64";
|
|
9
|
-
}>;
|
|
10
|
-
claude: z.ZodString;
|
|
11
|
-
compiler: z.ZodOptional<z.ZodString>;
|
|
12
|
-
grok: z.ZodOptional<z.ZodObject<{
|
|
13
|
-
source: z.ZodString;
|
|
14
|
-
sha256: z.ZodString;
|
|
15
|
-
}, z.core.$strict>>;
|
|
16
|
-
integration: z.ZodObject<{
|
|
17
|
-
source: z.ZodString;
|
|
18
|
-
entry: z.ZodString;
|
|
19
|
-
execution: z.ZodOptional<z.ZodLiteral<"spawnfile.training-execution.v1">>;
|
|
20
|
-
}, z.core.$strict>;
|
|
21
|
-
bootstrap: z.ZodOptional<z.ZodString>;
|
|
22
|
-
}, z.core.$strict>;
|
|
23
|
-
/**
|
|
24
|
-
* `spawnfile.training-container.v3`'s brokered Grok slot.
|
|
25
|
-
*
|
|
26
|
-
* It is the whole difference from v2: the container starts as root with the
|
|
27
|
-
* production capability set, runs one broker slot for the subject, holds the
|
|
28
|
-
* dedicated training Grok login in a named realm volume seeded from
|
|
29
|
-
* `bootstrap`, and serves judge inference grants out of the same credential.
|
|
30
|
-
* No Grok binary and no Grok auth staging enter the image.
|
|
31
|
-
*/
|
|
32
|
-
export declare const trainingBrokerSchema: z.ZodObject<{
|
|
33
|
-
maxRunRequests: z.ZodDefault<z.ZodNumber>;
|
|
34
|
-
engine: z.ZodLiteral<"grok">;
|
|
35
|
-
agentId: z.ZodString;
|
|
36
|
-
model: z.ZodEnum<{
|
|
37
|
-
"grok-4.6": "grok-4.6";
|
|
38
|
-
"grok-4.5": "grok-4.5";
|
|
39
|
-
"grok-build": "grok-build";
|
|
40
|
-
}>;
|
|
41
|
-
reasoningEffort: z.ZodEnum<{
|
|
42
|
-
low: "low";
|
|
43
|
-
medium: "medium";
|
|
44
|
-
high: "high";
|
|
45
|
-
}>;
|
|
46
|
-
architecture: z.ZodEnum<{
|
|
47
|
-
arm64: "arm64";
|
|
48
|
-
x64: "x64";
|
|
49
|
-
}>;
|
|
50
|
-
limits: z.ZodObject<{
|
|
51
|
-
maxRequests: z.ZodNumber;
|
|
52
|
-
maxTokens: z.ZodNumber;
|
|
53
|
-
timeoutMs: z.ZodNumber;
|
|
54
|
-
}, z.core.$strict>;
|
|
55
|
-
realmVolume: z.ZodString;
|
|
56
|
-
bootstrap: z.ZodString;
|
|
57
|
-
unenforcedBindPolicy: z.ZodOptional<z.ZodEnum<{
|
|
58
|
-
refuse: "refuse";
|
|
59
|
-
"profile-only": "profile-only";
|
|
60
|
-
}>>;
|
|
61
|
-
}, z.core.$strict>;
|
|
62
|
-
export declare const trainingPreparationSchema: z.ZodObject<{
|
|
63
|
-
version: z.ZodEnum<{
|
|
64
|
-
"spawnfile.training-container.v3": "spawnfile.training-container.v3";
|
|
65
|
-
"spawnfile.training-container.v4": "spawnfile.training-container.v4";
|
|
66
|
-
"spawnfile.training-container.v2": "spawnfile.training-container.v2";
|
|
67
|
-
}>;
|
|
68
|
-
slots: z.ZodDefault<z.ZodNumber>;
|
|
69
|
-
dockerContext: z.ZodString;
|
|
70
|
-
image: z.ZodUnion<readonly [z.ZodObject<{
|
|
71
|
-
ref: z.ZodString;
|
|
72
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
73
|
-
build: z.ZodObject<{
|
|
74
|
-
recipe: z.ZodLiteral<"daimon-dspy.v1">;
|
|
75
|
-
nativeImage: z.ZodString;
|
|
76
|
-
pythonImage: z.ZodString;
|
|
77
|
-
platform: z.ZodEnum<{
|
|
78
|
-
"linux/amd64": "linux/amd64";
|
|
79
|
-
"linux/arm64": "linux/arm64";
|
|
80
|
-
}>;
|
|
81
|
-
claude: z.ZodString;
|
|
82
|
-
compiler: z.ZodOptional<z.ZodString>;
|
|
83
|
-
grok: z.ZodOptional<z.ZodObject<{
|
|
84
|
-
source: z.ZodString;
|
|
85
|
-
sha256: z.ZodString;
|
|
86
|
-
}, z.core.$strict>>;
|
|
87
|
-
integration: z.ZodObject<{
|
|
88
|
-
source: z.ZodString;
|
|
89
|
-
entry: z.ZodString;
|
|
90
|
-
execution: z.ZodOptional<z.ZodLiteral<"spawnfile.training-execution.v1">>;
|
|
91
|
-
}, z.core.$strict>;
|
|
92
|
-
bootstrap: z.ZodOptional<z.ZodString>;
|
|
93
|
-
}, z.core.$strict>;
|
|
94
|
-
}, z.core.$strict>]>;
|
|
95
|
-
integration: z.ZodObject<{
|
|
96
|
-
settings: z.ZodObject<{
|
|
97
|
-
input: z.ZodString;
|
|
98
|
-
path: z.ZodUnion<readonly [z.ZodLiteral<".">, z.ZodString]>;
|
|
99
|
-
}, z.core.$strict>;
|
|
100
|
-
}, z.core.$strict>;
|
|
101
|
-
inputs: z.ZodArray<z.ZodObject<{
|
|
102
|
-
id: z.ZodString;
|
|
103
|
-
source: z.ZodString;
|
|
104
|
-
destination: z.ZodString;
|
|
105
|
-
include: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
106
|
-
git: z.ZodOptional<z.ZodObject<{
|
|
107
|
-
revision: z.ZodString;
|
|
108
|
-
overlays: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
109
|
-
source: z.ZodString;
|
|
110
|
-
path: z.ZodString;
|
|
111
|
-
sha256: z.ZodString;
|
|
112
|
-
}, z.core.$strict>>>;
|
|
113
|
-
}, z.core.$strict>>;
|
|
114
|
-
}, z.core.$strict>>;
|
|
115
|
-
output: z.ZodObject<{
|
|
116
|
-
source: z.ZodString;
|
|
117
|
-
destination: z.ZodLiteral<"/run/training/output">;
|
|
118
|
-
}, z.core.$strict>;
|
|
119
|
-
auth: z.ZodArray<z.ZodObject<{
|
|
120
|
-
source: z.ZodString;
|
|
121
|
-
provider: z.ZodEnum<{
|
|
122
|
-
codex: "codex";
|
|
123
|
-
claude: "claude";
|
|
124
|
-
}>;
|
|
125
|
-
}, z.core.$strict>>;
|
|
126
|
-
evaluatorRoutes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
127
|
-
purpose: z.ZodEnum<{
|
|
128
|
-
decisions: "decisions";
|
|
129
|
-
extraction: "extraction";
|
|
130
|
-
proposals: "proposals";
|
|
131
|
-
}>;
|
|
132
|
-
provider: z.ZodEnum<{
|
|
133
|
-
"codex-subscription": "codex-subscription";
|
|
134
|
-
typesafe: "typesafe";
|
|
135
|
-
}>;
|
|
136
|
-
model: z.ZodString;
|
|
137
|
-
maxRequests: z.ZodNumber;
|
|
138
|
-
maxSpendUsd: z.ZodOptional<z.ZodNumber>;
|
|
139
|
-
}, z.core.$strict>>>;
|
|
140
|
-
evaluatorSecrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
141
|
-
provider: z.ZodLiteral<"typesafe">;
|
|
142
|
-
source: z.ZodString;
|
|
143
|
-
}, z.core.$strict>>>;
|
|
144
|
-
subjectIsolation: z.ZodOptional<z.ZodLiteral<"codex-native-sandbox">>;
|
|
145
|
-
broker: z.ZodOptional<z.ZodObject<{
|
|
146
|
-
maxRunRequests: z.ZodDefault<z.ZodNumber>;
|
|
147
|
-
engine: z.ZodLiteral<"grok">;
|
|
148
|
-
agentId: z.ZodString;
|
|
149
|
-
model: z.ZodEnum<{
|
|
150
|
-
"grok-4.6": "grok-4.6";
|
|
151
|
-
"grok-4.5": "grok-4.5";
|
|
152
|
-
"grok-build": "grok-build";
|
|
153
|
-
}>;
|
|
154
|
-
reasoningEffort: z.ZodEnum<{
|
|
155
|
-
low: "low";
|
|
156
|
-
medium: "medium";
|
|
157
|
-
high: "high";
|
|
158
|
-
}>;
|
|
159
|
-
architecture: z.ZodEnum<{
|
|
160
|
-
arm64: "arm64";
|
|
161
|
-
x64: "x64";
|
|
162
|
-
}>;
|
|
163
|
-
limits: z.ZodObject<{
|
|
164
|
-
maxRequests: z.ZodNumber;
|
|
165
|
-
maxTokens: z.ZodNumber;
|
|
166
|
-
timeoutMs: z.ZodNumber;
|
|
167
|
-
}, z.core.$strict>;
|
|
168
|
-
realmVolume: z.ZodString;
|
|
169
|
-
bootstrap: z.ZodString;
|
|
170
|
-
unenforcedBindPolicy: z.ZodOptional<z.ZodEnum<{
|
|
171
|
-
refuse: "refuse";
|
|
172
|
-
"profile-only": "profile-only";
|
|
173
|
-
}>>;
|
|
174
|
-
}, z.core.$strict>>;
|
|
175
|
-
}, z.core.$strict>;
|
|
176
|
-
export type TrainingPreparationConfig = z.infer<typeof trainingPreparationSchema>;
|
|
177
|
-
export type TrainingImageBuild = z.infer<typeof trainingBuildSchema>;
|
|
178
|
-
/** Image integration reads this protected, container-addressed receipt, never host paths. */
|
|
179
|
-
export interface TrainingMappedPreparation {
|
|
180
|
-
version: "spawnfile.training-preparation.v1";
|
|
181
|
-
preparationDigest: string;
|
|
182
|
-
imageId: string;
|
|
183
|
-
bindings: {
|
|
184
|
-
inputId: string;
|
|
185
|
-
destination: string;
|
|
186
|
-
}[];
|
|
187
|
-
outputRoot: "/run/training/output";
|
|
188
|
-
packagePaths: {
|
|
189
|
-
spawnfile: string;
|
|
190
|
-
training: string;
|
|
191
|
-
bridge: string;
|
|
192
|
-
nativeWorker: string;
|
|
193
|
-
integration: string;
|
|
194
|
-
bootstrap: string;
|
|
195
|
-
};
|
|
196
|
-
integration: {
|
|
197
|
-
settings: {
|
|
198
|
-
input: string;
|
|
199
|
-
path: string;
|
|
200
|
-
};
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
export declare const parseTrainingMappedPreparation: (value: unknown) => TrainingMappedPreparation;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { DAIMON_BROKER_ENGINE_ID } from "../../../runtime/daimon/index.js";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { trainingEvaluatorRoutesSchema, trainingEvaluatorSecretsSchema } from "../container/evaluators.js";
|
|
5
|
-
import { trainingImageSchema } from "../container/contract.js";
|
|
6
|
-
import { TRAINING_EXECUTION_VERSION } from "../contract.js";
|
|
7
|
-
import { DAIMON_GROK_BROKER_MODELS, DAIMON_GROK_BROKER_REASONING_EFFORTS, DAIMON_GROK_ENGINE_BROKER } from "../../../runtime/daimon/contractManifest.js";
|
|
8
|
-
const local = z.string().min(1).refine(value => !/[,\r\n\0]/u.test(value));
|
|
9
|
-
const relative = local.refine(value => !path.isAbsolute(value) && !value.includes("\\") && value.split("/").every(part => part !== "" && part !== "." && part !== ".." && part !== ".git"));
|
|
10
|
-
const reference = z.object({ input: z.string().min(1), path: z.union([z.literal("."), relative]) }).strict();
|
|
11
|
-
const sha = z.string().regex(/^sha256:[a-f0-9]{64}$/u);
|
|
12
|
-
const destination = z.string().regex(/^\/run\/training\/inputs\/[A-Za-z0-9._/-]+$/u).refine(value => path.posix.normalize(value) === value && !value.endsWith("/"));
|
|
13
|
-
export const trainingBuildSchema = z.object({
|
|
14
|
-
recipe: z.literal("daimon-dspy.v1"), nativeImage: trainingImageSchema, pythonImage: trainingImageSchema,
|
|
15
|
-
platform: z.enum(["linux/arm64", "linux/amd64"]),
|
|
16
|
-
claude: local, compiler: local.optional(),
|
|
17
|
-
/**
|
|
18
|
-
* Deprecated with `spawnfile.training-container.v3`: the image no longer
|
|
19
|
-
* copies a Grok binary at all. Judges run the native parent's pinned
|
|
20
|
-
* `/usr/local/bin/grok` through a broker inference grant, so a second copy
|
|
21
|
-
* could only ever be a different, unattested build.
|
|
22
|
-
*/
|
|
23
|
-
grok: z.object({ source: local, sha256: sha }).strict().optional(),
|
|
24
|
-
integration: z.object({ source: local, entry: relative.refine(value => /^[A-Za-z0-9._/-]+$/u.test(value)),
|
|
25
|
-
execution: z.literal(TRAINING_EXECUTION_VERSION).optional() }).strict(), bootstrap: local.optional()
|
|
26
|
-
}).strict();
|
|
27
|
-
const bounds = DAIMON_GROK_ENGINE_BROKER.turnLimits.bounds;
|
|
28
|
-
/**
|
|
29
|
-
* `spawnfile.training-container.v3`'s brokered Grok slot.
|
|
30
|
-
*
|
|
31
|
-
* It is the whole difference from v2: the container starts as root with the
|
|
32
|
-
* production capability set, runs one broker slot for the subject, holds the
|
|
33
|
-
* dedicated training Grok login in a named realm volume seeded from
|
|
34
|
-
* `bootstrap`, and serves judge inference grants out of the same credential.
|
|
35
|
-
* No Grok binary and no Grok auth staging enter the image.
|
|
36
|
-
*/
|
|
37
|
-
export const trainingBrokerSchema = z.object({
|
|
38
|
-
maxRunRequests: z.number().int().positive().max(Number.MAX_SAFE_INTEGER).default(1000),
|
|
39
|
-
engine: z.literal(DAIMON_BROKER_ENGINE_ID),
|
|
40
|
-
agentId: z.string().min(1).max(128).regex(/^[A-Za-z0-9][A-Za-z0-9._:-]*$/u),
|
|
41
|
-
model: z.enum(DAIMON_GROK_BROKER_MODELS),
|
|
42
|
-
reasoningEffort: z.enum(DAIMON_GROK_BROKER_REASONING_EFFORTS),
|
|
43
|
-
architecture: z.enum(["arm64", "x64"]),
|
|
44
|
-
limits: z.object({
|
|
45
|
-
maxRequests: z.number().int().min(bounds.maxRequests[0]).max(bounds.maxRequests[1]),
|
|
46
|
-
maxTokens: z.number().int().min(bounds.maxTokens[0]).max(bounds.maxTokens[1]),
|
|
47
|
-
timeoutMs: z.number().int().min(bounds.timeoutMs[0]).max(bounds.timeoutMs[1])
|
|
48
|
-
}).strict(),
|
|
49
|
-
/** Named Docker volume for the rotating training credential and its journal; never a host bind. */
|
|
50
|
-
realmVolume: z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/u),
|
|
51
|
-
/** The dedicated training Grok login leaf, relative to the declaration. Never the desktop `~/.grok/auth.json`. */
|
|
52
|
-
bootstrap: local,
|
|
53
|
-
unenforcedBindPolicy: z.enum(["refuse", "profile-only"]).optional()
|
|
54
|
-
}).strict();
|
|
55
|
-
export const trainingPreparationSchema = z.object({
|
|
56
|
-
version: z.enum(["spawnfile.training-container.v2", "spawnfile.training-container.v3", "spawnfile.training-container.v4"]),
|
|
57
|
-
slots: z.number().int().min(1).max(8).default(4),
|
|
58
|
-
dockerContext: z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/u),
|
|
59
|
-
image: z.union([z.object({ ref: trainingImageSchema }).strict(), z.object({ build: trainingBuildSchema }).strict()]),
|
|
60
|
-
integration: z.object({ settings: reference }).strict(),
|
|
61
|
-
inputs: z.array(z.object({
|
|
62
|
-
id: z.string().regex(/^[A-Za-z][A-Za-z0-9_-]{0,63}$/u), source: local, destination,
|
|
63
|
-
include: z.array(relative).min(1).max(256).optional(),
|
|
64
|
-
git: z.object({ revision: z.string().regex(/^[a-f0-9]{40}$/u),
|
|
65
|
-
overlays: z.array(z.object({ source: local, path: relative, sha256: sha }).strict()).max(256).default([])
|
|
66
|
-
}).strict().optional()
|
|
67
|
-
}).strict()).min(1).max(64),
|
|
68
|
-
output: z.object({ source: local, destination: z.literal("/run/training/output") }).strict(),
|
|
69
|
-
auth: z.array(z.object({ source: local, provider: z.enum(["codex", "claude"]) }).strict()).max(2),
|
|
70
|
-
evaluatorRoutes: trainingEvaluatorRoutesSchema.optional(),
|
|
71
|
-
evaluatorSecrets: trainingEvaluatorSecretsSchema(local).optional(),
|
|
72
|
-
subjectIsolation: z.literal("codex-native-sandbox").optional(),
|
|
73
|
-
broker: trainingBrokerSchema.optional()
|
|
74
|
-
}).strict().superRefine((value, context) => {
|
|
75
|
-
if (value.evaluatorSecrets && !value.broker && !value.subjectIsolation)
|
|
76
|
-
context.addIssue({ code: "custom", message: "Evaluator secrets require brokered v4 isolation or explicit codex-native-sandbox subject isolation" });
|
|
77
|
-
if (value.subjectIsolation && value.version !== "spawnfile.training-container.v2")
|
|
78
|
-
context.addIssue({ code: "custom", message: "Codex native subject isolation requires a non-brokered v2 preparation" });
|
|
79
|
-
if (value.subjectIsolation && !value.evaluatorRoutes?.some(route => route.provider === "typesafe"))
|
|
80
|
-
context.addIssue({ code: "custom", message: "Codex native subject isolation requires a TypeSafe evaluator route" });
|
|
81
|
-
if (value.evaluatorSecrets && !value.evaluatorRoutes?.some(route => route.provider === "typesafe")) {
|
|
82
|
-
context.addIssue({ code: "custom", message: "TypeSafe secret requires a declared evaluator route" });
|
|
83
|
-
}
|
|
84
|
-
if (value.version === "spawnfile.training-container.v3")
|
|
85
|
-
context.addIssue({ code: "custom", message: "Training-container v3 is unsupported; migrate to v4 with slots: 1" });
|
|
86
|
-
if ((value.version === "spawnfile.training-container.v4") !== (value.broker !== undefined)) {
|
|
87
|
-
context.addIssue({ code: "custom", message: "Only spawnfile.training-container.v4 declares broker slots; migrate v3 by setting version to v4 and slots to 1" });
|
|
88
|
-
}
|
|
89
|
-
if (value.broker && "build" in value.image && value.image.build.grok) {
|
|
90
|
-
context.addIssue({ code: "custom", message: "A v3 training image never copies a Grok binary; judges use the native parent's pinned /usr/local/bin/grok" });
|
|
91
|
-
}
|
|
92
|
-
if (new Set(value.inputs.map(input => input.id)).size !== value.inputs.length)
|
|
93
|
-
context.addIssue({ code: "custom", message: "Input IDs must be unique" });
|
|
94
|
-
if (new Set(value.auth.map(auth => auth.provider)).size !== value.auth.length)
|
|
95
|
-
context.addIssue({ code: "custom", message: "Auth providers must be unique" });
|
|
96
|
-
if (!value.inputs.some(input => input.id === value.integration.settings.input))
|
|
97
|
-
context.addIssue({ code: "custom", message: "Integration settings require a declared input" });
|
|
98
|
-
if (value.inputs.some(input => input.git && input.include))
|
|
99
|
-
context.addIssue({ code: "custom", message: "Git snapshots and selective local inputs are separate modes" });
|
|
100
|
-
});
|
|
101
|
-
const containerPath = z.string().regex(/^\/(?:run|opt)\/[A-Za-z0-9._/-]+$/u).refine(value => path.posix.normalize(value) === value);
|
|
102
|
-
const mappedSchema = z.object({
|
|
103
|
-
version: z.literal("spawnfile.training-preparation.v1"), preparationDigest: sha, imageId: trainingImageSchema,
|
|
104
|
-
bindings: z.array(z.object({ inputId: z.string().min(1), destination }).strict()).min(1).max(64),
|
|
105
|
-
outputRoot: z.literal("/run/training/output"),
|
|
106
|
-
packagePaths: z.object({ spawnfile: containerPath, training: containerPath, bridge: containerPath,
|
|
107
|
-
nativeWorker: containerPath, integration: containerPath, bootstrap: containerPath }).strict(),
|
|
108
|
-
integration: z.object({ settings: reference }).strict()
|
|
109
|
-
}).strict().superRefine((value, context) => {
|
|
110
|
-
if (new Set(value.bindings.map(binding => binding.inputId)).size !== value.bindings.length ||
|
|
111
|
-
!value.bindings.some(binding => binding.inputId === value.integration.settings.input))
|
|
112
|
-
context.addIssue({ code: "custom", message: "Invalid preparation binding IDs" });
|
|
113
|
-
});
|
|
114
|
-
export const parseTrainingMappedPreparation = (value) => mappedSchema.parse(value);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { cp, mkdir } from "node:fs/promises";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
const root = fileURLToPath(new URL("../../../../", import.meta.url));
|
|
5
|
-
const target = path.join(root, "dist/compiler/training/preparation/assets");
|
|
6
|
-
await mkdir(target, { recursive: true });
|
|
7
|
-
await cp(path.join(root, "runtime-images/training/Dockerfile"), path.join(target, "Dockerfile"));
|
|
8
|
-
await cp(path.join(root, "package-lock.json"), path.join(target, "package-lock.json"));
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { type LocalDaimonRuntimeIdentity } from "../../../runtime/index.js";
|
|
2
|
-
import type { TrainingImageBuild } from "./contract.js";
|
|
3
|
-
/**
|
|
4
|
-
* The declared native parent (`image.build.nativeImage`) and the attested local
|
|
5
|
-
* Daimon runtime identity (`SPAWNFILE_DAIMON_LOCAL_RUNTIME_IDENTITY`) are two
|
|
6
|
-
* independent pointers at one composed run, and they are never the same digest:
|
|
7
|
-
* `runtime-images/daimon/Dockerfile` ends in `FROM scratch`, so the identity can
|
|
8
|
-
* only ever attest a *scratch* image that a runnable native parent copies
|
|
9
|
-
* `/opt/spawnfile/runtime-installs/daimon` out of. Nothing host-side can compare
|
|
10
|
-
* the two digests, so the binding is by content: the capability receipt and
|
|
11
|
-
* contract-manifest digest the identity attests must be the ones actually baked
|
|
12
|
-
* into the declared parent. `src/runtime/container.ts` verifies exactly this for
|
|
13
|
-
* a compiled organization image; this is the same check for a training image.
|
|
14
|
-
*/
|
|
15
|
-
export declare const DAIMON_RUNTIME_INSTALL_ROOT = "/opt/spawnfile/runtime-installs/daimon";
|
|
16
|
-
export interface TrainingDaimonParent {
|
|
17
|
-
declarationPath: string;
|
|
18
|
-
identity: LocalDaimonRuntimeIdentity;
|
|
19
|
-
identityPath: string;
|
|
20
|
-
nativeImage: string;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Resolves the identity that must match the declared native parent. Runs before
|
|
24
|
-
* any Docker call, so an absent, stale-pinned or architecture-drifted identity
|
|
25
|
-
* refuses the run — including `--dry-run` — before a container or a token is spent.
|
|
26
|
-
*/
|
|
27
|
-
export declare const resolveTrainingDaimonParent: (build: TrainingImageBuild, declarationPath: string, env?: NodeJS.ProcessEnv) => Promise<TrainingDaimonParent | undefined>;
|
|
28
|
-
/**
|
|
29
|
-
* One `sh` command, executed as the first instruction of the `${NATIVE_IMAGE}`
|
|
30
|
-
* stage, that refuses the build when the declared parent does not carry the exact
|
|
31
|
-
* Daimon install the identity attests. This is the only place both values exist
|
|
32
|
-
* in one process: the receipt lives inside the image, so no host-side read can
|
|
33
|
-
* reach it without starting something.
|
|
34
|
-
*/
|
|
35
|
-
export declare const daimonParentVerificationScript: (parent: TrainingDaimonParent) => string;
|
|
36
|
-
/**
|
|
37
|
-
* Injects the verification as the first instruction of the native stage, so a
|
|
38
|
-
* mismatched pair fails in seconds instead of after the whole distribution copy.
|
|
39
|
-
* The recipe text is part of the image plan digest, so the identity is bound into
|
|
40
|
-
* the training image's identity too — a rotated identity can never be cached over.
|
|
41
|
-
*/
|
|
42
|
-
export declare const bindDaimonParentVerification: (dockerfile: string, parent: TrainingDaimonParent) => string;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { SpawnfileError } from "../../../shared/index.js";
|
|
2
|
-
import { DAIMON_LOCAL_RUNTIME_IDENTITY_ENV, loadLocalDaimonRuntimeIdentity } from "../../../runtime/index.js";
|
|
3
|
-
/**
|
|
4
|
-
* The declared native parent (`image.build.nativeImage`) and the attested local
|
|
5
|
-
* Daimon runtime identity (`SPAWNFILE_DAIMON_LOCAL_RUNTIME_IDENTITY`) are two
|
|
6
|
-
* independent pointers at one composed run, and they are never the same digest:
|
|
7
|
-
* `runtime-images/daimon/Dockerfile` ends in `FROM scratch`, so the identity can
|
|
8
|
-
* only ever attest a *scratch* image that a runnable native parent copies
|
|
9
|
-
* `/opt/spawnfile/runtime-installs/daimon` out of. Nothing host-side can compare
|
|
10
|
-
* the two digests, so the binding is by content: the capability receipt and
|
|
11
|
-
* contract-manifest digest the identity attests must be the ones actually baked
|
|
12
|
-
* into the declared parent. `src/runtime/container.ts` verifies exactly this for
|
|
13
|
-
* a compiled organization image; this is the same check for a training image.
|
|
14
|
-
*/
|
|
15
|
-
export const DAIMON_RUNTIME_INSTALL_ROOT = "/opt/spawnfile/runtime-installs/daimon";
|
|
16
|
-
/** A native parent served by the attested loopback development registry is always a local build. */
|
|
17
|
-
const LOOPBACK_NATIVE_PARENT = /^127\.0\.0\.1:(?:[1-9]\d{0,4})\//u;
|
|
18
|
-
const FROM_NATIVE_IMAGE = /^FROM \$\{NATIVE_IMAGE\}.*$/mu;
|
|
19
|
-
/** Everything embedded in the single-quoted shell literals below must be inert. */
|
|
20
|
-
const SHELL_SAFE = /^[A-Za-z0-9 ._:@/=+,()~-]+$/u;
|
|
21
|
-
const refuse = (lines) => {
|
|
22
|
-
throw new SpawnfileError("validation_error", lines.join("\n"));
|
|
23
|
-
};
|
|
24
|
-
const safe = (label, value) => {
|
|
25
|
-
if (!SHELL_SAFE.test(value)) {
|
|
26
|
-
refuse([
|
|
27
|
-
`Training cannot bind its native parent to a local Daimon runtime identity: ${label} contains characters that cannot be embedded in the image recipe.`,
|
|
28
|
-
` ${label} = ${JSON.stringify(value)}`
|
|
29
|
-
]);
|
|
30
|
-
}
|
|
31
|
-
return value;
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Resolves the identity that must match the declared native parent. Runs before
|
|
35
|
-
* any Docker call, so an absent, stale-pinned or architecture-drifted identity
|
|
36
|
-
* refuses the run — including `--dry-run` — before a container or a token is spent.
|
|
37
|
-
*/
|
|
38
|
-
export const resolveTrainingDaimonParent = async (build, declarationPath, env = process.env) => {
|
|
39
|
-
const identityPath = env[DAIMON_LOCAL_RUNTIME_IDENTITY_ENV]?.trim();
|
|
40
|
-
if (!identityPath) {
|
|
41
|
-
if (LOOPBACK_NATIVE_PARENT.test(build.nativeImage)) {
|
|
42
|
-
refuse([
|
|
43
|
-
"Training refuses a locally built native parent with no attested Daimon runtime identity.",
|
|
44
|
-
` ${declarationPath} image.build.nativeImage = ${build.nativeImage}`,
|
|
45
|
-
` ${DAIMON_LOCAL_RUNTIME_IDENTITY_ENV} = (unset)`,
|
|
46
|
-
`Point ${DAIMON_LOCAL_RUNTIME_IDENTITY_ENV} at the runtime identity written by the same rebuild that baked ${DAIMON_RUNTIME_INSTALL_ROOT} into that image.`
|
|
47
|
-
]);
|
|
48
|
-
}
|
|
49
|
-
return undefined;
|
|
50
|
-
}
|
|
51
|
-
// Keeps the existing contract-pin refusal: this is the first time a training
|
|
52
|
-
// run applies it at all, and it stays exactly as strict as it already was.
|
|
53
|
-
const identity = await loadLocalDaimonRuntimeIdentity(identityPath);
|
|
54
|
-
const expected = build.platform === "linux/amd64" ? "amd64" : "arm64";
|
|
55
|
-
if (identity.imageArchitecture !== expected) {
|
|
56
|
-
refuse([
|
|
57
|
-
"Training native parent and local Daimon runtime identity disagree on architecture.",
|
|
58
|
-
` ${declarationPath} image.build.platform = ${build.platform}`,
|
|
59
|
-
` ${identityPath} image_architecture = ${identity.imageArchitecture}`,
|
|
60
|
-
"Rebuild both from one architecture, or repoint both at one rebuild."
|
|
61
|
-
]);
|
|
62
|
-
}
|
|
63
|
-
return {
|
|
64
|
-
declarationPath: safe("the training declaration path", declarationPath),
|
|
65
|
-
identity,
|
|
66
|
-
identityPath: safe(DAIMON_LOCAL_RUNTIME_IDENTITY_ENV, identityPath),
|
|
67
|
-
nativeImage: safe("image.build.nativeImage", build.nativeImage)
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* One `sh` command, executed as the first instruction of the `${NATIVE_IMAGE}`
|
|
72
|
-
* stage, that refuses the build when the declared parent does not carry the exact
|
|
73
|
-
* Daimon install the identity attests. This is the only place both values exist
|
|
74
|
-
* in one process: the receipt lives inside the image, so no host-side read can
|
|
75
|
-
* reach it without starting something.
|
|
76
|
-
*/
|
|
77
|
-
export const daimonParentVerificationScript = (parent) => {
|
|
78
|
-
const receipt = `${DAIMON_RUNTIME_INSTALL_ROOT}/capability-receipt.json`;
|
|
79
|
-
const manifest = `${DAIMON_RUNTIME_INSTALL_ROOT}/contract-manifest.sha256`;
|
|
80
|
-
const report = [
|
|
81
|
-
`printf '%s\\n'`,
|
|
82
|
-
`'REFUSED: the declared training native parent does not carry the Daimon install its runtime identity attests.'`,
|
|
83
|
-
`" ${parent.declarationPath} image.build.nativeImage = ${parent.nativeImage}"`,
|
|
84
|
-
`" ${parent.identityPath} capability_receipt_sha256 = ${parent.identity.capabilityReceipt}"`,
|
|
85
|
-
`" ${parent.identityPath} manifest_sha256 = ${parent.identity.manifestSha256}"`,
|
|
86
|
-
`" native parent ${receipt} = $found_receipt"`,
|
|
87
|
-
`" native parent ${manifest} = $found_manifest"`,
|
|
88
|
-
`'Repoint image.build.nativeImage and ${DAIMON_LOCAL_RUNTIME_IDENTITY_ENV} at the same rebuild.'`,
|
|
89
|
-
`>&2`
|
|
90
|
-
].join(" ");
|
|
91
|
-
return [
|
|
92
|
-
"set -u",
|
|
93
|
-
`test -f '${receipt}' || { echo "REFUSED: ${parent.nativeImage} has no ${receipt}; it is not a Daimon native parent." >&2; exit 1; }`,
|
|
94
|
-
`test -f '${manifest}' || { echo "REFUSED: ${parent.nativeImage} has no ${manifest}; it is not a Daimon native parent." >&2; exit 1; }`,
|
|
95
|
-
`found_receipt="sha256:$(sha256sum '${receipt}' | cut -d' ' -f1)"`,
|
|
96
|
-
`found_manifest="$(cat '${manifest}')"`,
|
|
97
|
-
`if [ "$found_receipt" != '${parent.identity.capabilityReceipt}' ] || [ "$found_manifest" != '${parent.identity.manifestSha256}' ]; then ${report}; exit 1; fi`
|
|
98
|
-
].join("; ");
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Injects the verification as the first instruction of the native stage, so a
|
|
102
|
-
* mismatched pair fails in seconds instead of after the whole distribution copy.
|
|
103
|
-
* The recipe text is part of the image plan digest, so the identity is bound into
|
|
104
|
-
* the training image's identity too — a rotated identity can never be cached over.
|
|
105
|
-
*/
|
|
106
|
-
export const bindDaimonParentVerification = (dockerfile, parent) => {
|
|
107
|
-
if (!FROM_NATIVE_IMAGE.test(dockerfile)) {
|
|
108
|
-
refuse([
|
|
109
|
-
"Training recipe declares no ${NATIVE_IMAGE} stage, so its native parent cannot be bound to the Daimon runtime identity.",
|
|
110
|
-
` ${parent.identityPath} image_reference = ${parent.identity.imageReference}`
|
|
111
|
-
]);
|
|
112
|
-
}
|
|
113
|
-
return dockerfile.replace(FROM_NATIVE_IMAGE, (line) => `${line}\nRUN ${daimonParentVerificationScript(parent)}`);
|
|
114
|
-
};
|