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
|
@@ -49,8 +49,6 @@ export interface DaimonGrokRegistration {
|
|
|
49
49
|
agentId: string;
|
|
50
50
|
config: string;
|
|
51
51
|
configSha256: string;
|
|
52
|
-
/** Selects trusted config bytes; production retains the unclocked default. */
|
|
53
|
-
configVariant?: "unclocked" | "clocked";
|
|
54
52
|
denyPaths: string[];
|
|
55
53
|
/** Deny entries the main entrypoint materializes after root provisioning (workspace resource backings); absent is allowed there, a symlink never. */
|
|
56
54
|
deferredDenyPaths: string[];
|
|
@@ -138,26 +136,20 @@ export declare const DAIMON_GROK_DENIED_STATE_ROOTS: readonly ["/var/lib/spawnfi
|
|
|
138
136
|
*/
|
|
139
137
|
export declare const resolveDaimonGrokWorkerDenyPaths: (plans: readonly RuntimeTargetPlan[], plan: RuntimeTargetPlan, agentId: string, workerHomes: readonly string[], ownHome: string) => string[];
|
|
140
138
|
export declare const resolveDaimonGrokRegistrations: (plans: RuntimeTargetPlan[]) => DaimonGrokRegistration[];
|
|
141
|
-
export interface DaimonGrokServiceConfigOptions {
|
|
142
|
-
/** Repeated agent IDs use v3 slot policies; production retains v2 by default. */
|
|
143
|
-
version?: "v3";
|
|
144
|
-
maxRunRequests?: number;
|
|
145
|
-
runRequestStore?: string;
|
|
146
|
-
/**
|
|
147
|
-
* Where the broker keeps its durable turn registry. Production keeps it on
|
|
148
|
-
* the realm volume beside the credential; training overrides it to per-slot
|
|
149
|
-
* tmpfs so a recycled slot can never replay trial N's sealed turn in trial
|
|
150
|
-
* N+1 (R2), and refuses any path on the realm volume for that reason.
|
|
151
|
-
*/
|
|
152
|
-
turnStore?: string;
|
|
153
|
-
/** `service.json` v2's optional evaluator inference ledger. Without it the broker refuses every grant. */
|
|
154
|
-
inferenceLedgerPath?: string;
|
|
155
|
-
}
|
|
156
139
|
/** `service.json` v2, exactly the shape Daimon's strict `parseEngineBrokerServiceConfig` accepts. */
|
|
157
|
-
export declare const renderDaimonGrokServiceConfig: (registrations: readonly DaimonGrokRegistration[]
|
|
158
|
-
|
|
140
|
+
export declare const renderDaimonGrokServiceConfig: (registrations: readonly DaimonGrokRegistration[]) => {
|
|
141
|
+
version: "noopolis.daimon.engine-broker-service.v2";
|
|
142
|
+
credentialHome: "/var/lib/spawnfile/daimon/grok-subscription-realm";
|
|
143
|
+
turnStore: "/var/lib/spawnfile/daimon/grok-subscription-realm/turns";
|
|
144
|
+
registrations: {
|
|
159
145
|
skillsSha256?: string | undefined;
|
|
146
|
+
agentId: string;
|
|
160
147
|
slot: number;
|
|
148
|
+
workerUid: number;
|
|
149
|
+
workspace: string;
|
|
150
|
+
profilePath: string;
|
|
151
|
+
eventsPath: string;
|
|
152
|
+
profileSha256: string;
|
|
161
153
|
usageLedgerPath: string;
|
|
162
154
|
limits: {
|
|
163
155
|
maxRequests: 32;
|
|
@@ -172,35 +164,5 @@ export declare const renderDaimonGrokServiceConfig: (registrations: readonly Dai
|
|
|
172
164
|
id: "grok-4.6" | "grok-4.5" | "grok-build";
|
|
173
165
|
reasoningEffort: "low" | "medium" | "high";
|
|
174
166
|
};
|
|
175
|
-
}[] | undefined;
|
|
176
|
-
registrations: {
|
|
177
|
-
skillsSha256?: string | undefined;
|
|
178
|
-
usageLedgerPath?: string | undefined;
|
|
179
|
-
limits?: {
|
|
180
|
-
maxRequests: 32;
|
|
181
|
-
maxTokens: 300000;
|
|
182
|
-
timeoutMs: 240000;
|
|
183
|
-
} | {
|
|
184
|
-
maxRequests: number;
|
|
185
|
-
maxTokens: number;
|
|
186
|
-
timeoutMs: number;
|
|
187
|
-
} | undefined;
|
|
188
|
-
model?: {
|
|
189
|
-
id: "grok-4.6" | "grok-4.5" | "grok-build";
|
|
190
|
-
reasoningEffort: "low" | "medium" | "high";
|
|
191
|
-
} | undefined;
|
|
192
|
-
agentId: string;
|
|
193
|
-
slot: number;
|
|
194
|
-
workerUid: number;
|
|
195
|
-
workspace: string;
|
|
196
|
-
profilePath: string;
|
|
197
|
-
eventsPath: string;
|
|
198
|
-
profileSha256: string;
|
|
199
167
|
}[];
|
|
200
|
-
inferenceLedgerPath?: string | undefined;
|
|
201
|
-
runRequestStore?: string | undefined;
|
|
202
|
-
maxRunRequests?: number | undefined;
|
|
203
|
-
version: "noopolis.daimon.engine-broker-service.v2" | "noopolis.daimon.engine-broker-service.v3";
|
|
204
|
-
credentialHome: "/var/lib/spawnfile/daimon/grok-subscription-realm";
|
|
205
|
-
turnStore: string;
|
|
206
168
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DAIMON_GATEWAY_BOOTSTRAP_ROOT, DAIMON_GATEWAY_ETC, DAIMON_GATEWAY_RUN, daimonGatewayRealmPath, isDaimonGatewayedEngine } from "../runtime/daimon/gateway.js";
|
|
1
2
|
import { daimonEngineHasBroker, getDaimonEngineDescriptor } from "../runtime/daimon/index.js";
|
|
2
3
|
import path from "node:path";
|
|
3
4
|
import { SpawnfileError } from "../shared/index.js";
|
|
@@ -125,10 +126,13 @@ export const resolveDaimonGrokWorkerDenyPaths = (plans, plan, agentId, workerHom
|
|
|
125
126
|
const peers = agents.filter(([id]) => id !== agentId).map(([id]) => nodeSlug(id));
|
|
126
127
|
const daimonOwn = [
|
|
127
128
|
...[...new Set(agents.map(([, engine]) => engine))].flatMap((engine) => {
|
|
128
|
-
const
|
|
129
|
-
|
|
129
|
+
const descriptor = getDaimonEngineDescriptor(engine);
|
|
130
|
+
// A gatewayed bootstrap leaf sits under the root-only gateway root; mask that root, the realm and the gateway's state.
|
|
131
|
+
return isDaimonGatewayedEngine(descriptor)
|
|
132
|
+
? [DAIMON_GATEWAY_BOOTSTRAP_ROOT, daimonGatewayRealmPath(descriptor), DAIMON_GATEWAY_ETC, DAIMON_GATEWAY_RUN]
|
|
133
|
+
: [];
|
|
130
134
|
}),
|
|
131
|
-
|
|
135
|
+
// The broker's local turn-state home (it holds no credential in gateway mode).
|
|
132
136
|
DAIMON_GROK_SUBSCRIPTION_REALM.durableMountPath,
|
|
133
137
|
...(agents.some(([, engine]) => getDaimonEngineDescriptor(engine)?.auth.staging === "secret-service") ? [DAIMON_AGY_SUBSCRIPTION_REALM.unlockMountPath, DAIMON_AGY_SUBSCRIPTION_REALM.durableMountPath] : []),
|
|
134
138
|
daimonGrokAcceptanceStoreDenyPath(instanceRoot),
|
|
@@ -242,33 +246,11 @@ export const resolveDaimonGrokRegistrations = (plans) => {
|
|
|
242
246
|
};
|
|
243
247
|
});
|
|
244
248
|
};
|
|
245
|
-
const resolveDaimonGrokTurnStore = (turnStore) => {
|
|
246
|
-
if (turnStore === undefined)
|
|
247
|
-
return DAIMON_GROK_ENGINE_BROKER.turnStorePath;
|
|
248
|
-
assertCanonicalRegisteredPath("turn store", turnStore);
|
|
249
|
-
if (turnStore === DAIMON_GROK_SUBSCRIPTION_REALM.durableMountPath || turnStore.startsWith(`${DAIMON_GROK_SUBSCRIPTION_REALM.durableMountPath}/`)) {
|
|
250
|
-
fail(`Grok broker turn store ${turnStore} is on the durable credential realm; a recycled slot would replay the previous trial's sealed turns`);
|
|
251
|
-
}
|
|
252
|
-
return turnStore;
|
|
253
|
-
};
|
|
254
|
-
const resolveDaimonGrokInferenceLedger = (inferenceLedgerPath, registrations) => {
|
|
255
|
-
assertCanonicalRegisteredPath("inference ledger", inferenceLedgerPath);
|
|
256
|
-
if (!inferenceLedgerPath.endsWith(".jsonl"))
|
|
257
|
-
fail(`Grok inference ledger must be a .jsonl path: ${inferenceLedgerPath}`);
|
|
258
|
-
const subject = new Set([DAIMON_GROK_TURN_USAGE_LEDGER.filePath, path.posix.join(DAIMON_GROK_TURN_USAGE_LEDGER.directoryPath, "requests.jsonl"),
|
|
259
|
-
...registrations.flatMap((entry) => [entry.usageLedgerPath, path.posix.join(path.posix.dirname(entry.usageLedgerPath), "requests.jsonl")])]);
|
|
260
|
-
if (subject.has(inferenceLedgerPath))
|
|
261
|
-
fail(`Grok inference ledger ${inferenceLedgerPath} is a subject usage ledger; judge spend must never reach the wake fuse`);
|
|
262
|
-
return inferenceLedgerPath;
|
|
263
|
-
};
|
|
264
249
|
/** `service.json` v2, exactly the shape Daimon's strict `parseEngineBrokerServiceConfig` accepts. */
|
|
265
|
-
export const renderDaimonGrokServiceConfig = (registrations
|
|
266
|
-
version: DAIMON_GROK_ENGINE_BROKER.serviceConfigVersions[
|
|
250
|
+
export const renderDaimonGrokServiceConfig = (registrations) => ({
|
|
251
|
+
version: DAIMON_GROK_ENGINE_BROKER.serviceConfigVersions[1],
|
|
267
252
|
credentialHome: DAIMON_GROK_ENGINE_BROKER.credentialHomePath,
|
|
268
|
-
turnStore:
|
|
269
|
-
...(options.maxRunRequests === undefined ? {} : { maxRunRequests: options.maxRunRequests }),
|
|
270
|
-
...(options.runRequestStore === undefined ? {} : { runRequestStore: assertCanonicalRegisteredPath("run request store", options.runRequestStore) }),
|
|
271
|
-
...(options.inferenceLedgerPath === undefined ? {} : { inferenceLedgerPath: resolveDaimonGrokInferenceLedger(options.inferenceLedgerPath, registrations) }),
|
|
253
|
+
turnStore: DAIMON_GROK_ENGINE_BROKER.turnStorePath,
|
|
272
254
|
registrations: registrations.map((entry) => ({
|
|
273
255
|
agentId: entry.agentId,
|
|
274
256
|
slot: entry.slot,
|
|
@@ -277,15 +259,9 @@ export const renderDaimonGrokServiceConfig = (registrations, options = {}) => ({
|
|
|
277
259
|
profilePath: entry.profilePath,
|
|
278
260
|
eventsPath: entry.eventsPath,
|
|
279
261
|
profileSha256: entry.profileSha256,
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}))
|
|
285
|
-
...(options.version === "v3" ? { slotPolicies: registrations.map(entry => ({
|
|
286
|
-
slot: entry.slot, usageLedgerPath: entry.usageLedgerPath,
|
|
287
|
-
limits: { ...(entry.limits ?? DAIMON_GROK_ENGINE_BROKER.turnLimits.v1Defaults) },
|
|
288
|
-
model: { id: entry.model, reasoningEffort: entry.reasoningEffort },
|
|
289
|
-
...(entry.skills ? { skillsSha256: entry.skills.sha256 } : {})
|
|
290
|
-
})) } : {})
|
|
262
|
+
usageLedgerPath: entry.usageLedgerPath,
|
|
263
|
+
limits: { ...(entry.limits ?? DAIMON_GROK_ENGINE_BROKER.turnLimits.v1Defaults) },
|
|
264
|
+
model: { id: entry.model, reasoningEffort: entry.reasoningEffort },
|
|
265
|
+
...(entry.skills ? { skillsSha256: entry.skills.sha256 } : {})
|
|
266
|
+
}))
|
|
291
267
|
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root-side supervision for the privileged startup children (engine broker,
|
|
3
|
+
* relay, launcher and auth gateway): bounded readiness waits plus one EXIT
|
|
4
|
+
* trap that terminates every started child if startup fails.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DAIMON_BROKER_STARTUP_TIMEOUT_SECONDS = 60;
|
|
7
|
+
export declare const renderDaimonBrokerSocketWait: (timeoutSeconds?: number, pollSeconds?: number) => string[];
|
|
8
|
+
export declare const renderDaimonStartupSupervision: () => string[];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root-side supervision for the privileged startup children (engine broker,
|
|
3
|
+
* relay, launcher and auth gateway): bounded readiness waits plus one EXIT
|
|
4
|
+
* trap that terminates every started child if startup fails.
|
|
5
|
+
*/
|
|
6
|
+
export const DAIMON_BROKER_STARTUP_TIMEOUT_SECONDS = 60;
|
|
7
|
+
export const renderDaimonBrokerSocketWait = (timeoutSeconds = DAIMON_BROKER_STARTUP_TIMEOUT_SECONDS, pollSeconds = 0.1) => [
|
|
8
|
+
`broker_startup_timeout_seconds=${timeoutSeconds}`,
|
|
9
|
+
`broker_startup_poll_seconds=${pollSeconds}`,
|
|
10
|
+
"broker_startup_started=$SECONDS",
|
|
11
|
+
"broker_process_status_root=/proc",
|
|
12
|
+
"wait_for_broker_socket() {",
|
|
13
|
+
" socket=$1; child=$2; label=$3",
|
|
14
|
+
" while [ ! -S \"$socket\" ]; do",
|
|
15
|
+
" if ! kill -0 \"$child\" 2>/dev/null; then set +e; wait \"$child\"; child_status=$?; set -e; echo \"$label exited before readiness (status $child_status)\" >&2; return 1; fi",
|
|
16
|
+
" if [ $((SECONDS - broker_startup_started)) -ge \"$broker_startup_timeout_seconds\" ]; then echo \"$label readiness timed out after ${broker_startup_timeout_seconds}s\" >&2; return 1; fi",
|
|
17
|
+
" sleep \"$broker_startup_poll_seconds\"",
|
|
18
|
+
" done",
|
|
19
|
+
"}",
|
|
20
|
+
"wait_for_broker_identity() {",
|
|
21
|
+
" child=$1; expected_uid=$2; expected_caps=$3; label=$4",
|
|
22
|
+
" while kill -0 \"$child\" 2>/dev/null; do",
|
|
23
|
+
" status_path=$broker_process_status_root/$child/status",
|
|
24
|
+
" observed_uid=$(awk '/^Uid:/{print $2}' \"$status_path\" 2>/dev/null || true)",
|
|
25
|
+
" observed_caps=$(awk '/^CapBnd:/{print $2}' \"$status_path\" 2>/dev/null || true)",
|
|
26
|
+
" if [ \"$observed_uid\" = \"$expected_uid\" ] && [ \"$observed_caps\" = \"$expected_caps\" ]; then return 0; fi",
|
|
27
|
+
" if [ $((SECONDS - broker_startup_started)) -ge \"$broker_startup_timeout_seconds\" ]; then echo \"$label identity readiness timed out after ${broker_startup_timeout_seconds}s\" >&2; return 1; fi",
|
|
28
|
+
" sleep \"$broker_startup_poll_seconds\"",
|
|
29
|
+
" done",
|
|
30
|
+
" set +e; wait \"$child\"; child_status=$?; set -e; echo \"$label exited before identity readiness (status $child_status)\" >&2; return 1",
|
|
31
|
+
"}"
|
|
32
|
+
];
|
|
33
|
+
export const renderDaimonStartupSupervision = () => [
|
|
34
|
+
...renderDaimonBrokerSocketWait(),
|
|
35
|
+
"startup_children=()",
|
|
36
|
+
"cleanup_broker_startup() { status=$?; trap - EXIT; for child in \"${startup_children[@]}\"; do kill -TERM \"$child\" 2>/dev/null || true; wait \"$child\" 2>/dev/null || true; done; return \"$status\"; }",
|
|
37
|
+
"trap cleanup_broker_startup EXIT",
|
|
38
|
+
"trap 'exit 143' TERM INT HUP"
|
|
39
|
+
];
|
|
@@ -2,12 +2,11 @@ import type { RuntimeTargetPlan } from "./containerArtifactsTypes.js";
|
|
|
2
2
|
import type { EntrypointOptions } from "./containerEntrypointRender.js";
|
|
3
3
|
import { type BackedMountRequirement } from "./containerBackedMountRender.js";
|
|
4
4
|
export { resolveDaimonVolumeIdentityFiles } from "./containerDaimonOwnershipGuardRender.js";
|
|
5
|
+
export { DAIMON_BROKER_STARTUP_TIMEOUT_SECONDS, renderDaimonBrokerSocketWait } from "./containerDaimonStartupSupervision.js";
|
|
5
6
|
export declare const DAIMON_AUTHORIZED_UID_ENV = "SPAWNFILE_DAIMON_AUTHORIZED_UID";
|
|
6
7
|
export declare const DAIMON_RUNTIME_UID = 2000;
|
|
7
8
|
export declare const DAIMON_UID_ENTRYPOINT_PATH = "/opt/spawnfile/daimon-uid-entrypoint.sh";
|
|
8
9
|
export declare const DAIMON_RUNTIME_HOMES_DIRECTORY = "runtime-homes";
|
|
9
|
-
export declare const DAIMON_BROKER_STARTUP_TIMEOUT_SECONDS = 60;
|
|
10
|
-
export declare const renderDaimonBrokerSocketWait: (timeoutSeconds?: number, pollSeconds?: number) => string[];
|
|
11
10
|
export declare const resolveDaimonUidEntrypointStateRoots: (runtimePlans: RuntimeTargetPlan[]) => string[];
|
|
12
11
|
export interface DaimonUidEntrypointOwnershipPlan {
|
|
13
12
|
creatablePrivateDirectories: Array<{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DAIMON_SECRET_SERVICE_ENGINE_ID, getDaimonEngineDescriptor } from "../runtime/daimon/index.js";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { DAIMON_RUNTIME_ACCEPTANCE_STORE_MOUNT_ID, DAIMON_WAKE_FUSE_DIRECTORY } from "../runtime/daimon/config.js";
|
|
4
4
|
import { DAIMON_GROK_TURN_USAGE_LEDGER } from "../runtime/daimon/contractManifest.js";
|
|
@@ -9,37 +9,13 @@ import { renderDaimonOwnershipProgram, resolveDaimonVolumeIdentityFiles } from "
|
|
|
9
9
|
export { resolveDaimonVolumeIdentityFiles } from "./containerDaimonOwnershipGuardRender.js";
|
|
10
10
|
import { renderDaimonGrokHostPreflight } from "./containerDaimonGrokWorkerProvisioning.js";
|
|
11
11
|
import { DAIMON_BROKER_EXECUTABLE, DAIMON_BROKER_BACKEND_SOCKET, DAIMON_BROKER_LAUNCHER_SOCKET, DAIMON_BROKER_REALM, DAIMON_BROKER_SOCKET, DAIMON_BROKER_TMPDIR, DAIMON_BROKER_UID, DAIMON_ORGANIZATION_UID, renderDaimonBrokerProvisioning, renderDaimonUsageLedgerProvisioning, resolveDaimonGrokRegistrations } from "./containerDaimonBrokerRender.js";
|
|
12
|
+
import { renderDaimonStartupSupervision } from "./containerDaimonStartupSupervision.js";
|
|
13
|
+
import { DAIMON_GATEWAY_UID, renderDaimonGatewayLaunch, renderDaimonGatewayProvisioning, renderDaimonGatewayRuntimeEnv, resolveDaimonGatewayRealmPaths } from "./containerDaimonGatewayRender.js";
|
|
14
|
+
export { DAIMON_BROKER_STARTUP_TIMEOUT_SECONDS, renderDaimonBrokerSocketWait } from "./containerDaimonStartupSupervision.js";
|
|
12
15
|
export const DAIMON_AUTHORIZED_UID_ENV = "SPAWNFILE_DAIMON_AUTHORIZED_UID";
|
|
13
16
|
export const DAIMON_RUNTIME_UID = DAIMON_ORGANIZATION_UID;
|
|
14
17
|
export const DAIMON_UID_ENTRYPOINT_PATH = "/opt/spawnfile/daimon-uid-entrypoint.sh";
|
|
15
18
|
export const DAIMON_RUNTIME_HOMES_DIRECTORY = "runtime-homes";
|
|
16
|
-
export const DAIMON_BROKER_STARTUP_TIMEOUT_SECONDS = 60;
|
|
17
|
-
export const renderDaimonBrokerSocketWait = (timeoutSeconds = DAIMON_BROKER_STARTUP_TIMEOUT_SECONDS, pollSeconds = 0.1) => [
|
|
18
|
-
`broker_startup_timeout_seconds=${timeoutSeconds}`,
|
|
19
|
-
`broker_startup_poll_seconds=${pollSeconds}`,
|
|
20
|
-
"broker_startup_started=$SECONDS",
|
|
21
|
-
"broker_process_status_root=/proc",
|
|
22
|
-
"wait_for_broker_socket() {",
|
|
23
|
-
" socket=$1; child=$2; label=$3",
|
|
24
|
-
" while [ ! -S \"$socket\" ]; do",
|
|
25
|
-
" if ! kill -0 \"$child\" 2>/dev/null; then set +e; wait \"$child\"; child_status=$?; set -e; echo \"$label exited before readiness (status $child_status)\" >&2; return 1; fi",
|
|
26
|
-
" if [ $((SECONDS - broker_startup_started)) -ge \"$broker_startup_timeout_seconds\" ]; then echo \"$label readiness timed out after ${broker_startup_timeout_seconds}s\" >&2; return 1; fi",
|
|
27
|
-
" sleep \"$broker_startup_poll_seconds\"",
|
|
28
|
-
" done",
|
|
29
|
-
"}",
|
|
30
|
-
"wait_for_broker_identity() {",
|
|
31
|
-
" child=$1; expected_uid=$2; expected_caps=$3; label=$4",
|
|
32
|
-
" while kill -0 \"$child\" 2>/dev/null; do",
|
|
33
|
-
" status_path=$broker_process_status_root/$child/status",
|
|
34
|
-
" observed_uid=$(awk '/^Uid:/{print $2}' \"$status_path\" 2>/dev/null || true)",
|
|
35
|
-
" observed_caps=$(awk '/^CapBnd:/{print $2}' \"$status_path\" 2>/dev/null || true)",
|
|
36
|
-
" if [ \"$observed_uid\" = \"$expected_uid\" ] && [ \"$observed_caps\" = \"$expected_caps\" ]; then return 0; fi",
|
|
37
|
-
" if [ $((SECONDS - broker_startup_started)) -ge \"$broker_startup_timeout_seconds\" ]; then echo \"$label identity readiness timed out after ${broker_startup_timeout_seconds}s\" >&2; return 1; fi",
|
|
38
|
-
" sleep \"$broker_startup_poll_seconds\"",
|
|
39
|
-
" done",
|
|
40
|
-
" set +e; wait \"$child\"; child_status=$?; set -e; echo \"$label exited before identity readiness (status $child_status)\" >&2; return 1",
|
|
41
|
-
"}"
|
|
42
|
-
];
|
|
43
19
|
const SPAWNFILE_PRIVATE_STATE_ROOT = "/var/lib/spawnfile";
|
|
44
20
|
/**
|
|
45
21
|
* `/var/lib/spawnfile/daimon` hosts several independently-owned children —
|
|
@@ -96,7 +72,8 @@ const writableStateRoots = (runtimePlans, persistentMountPaths) => [
|
|
|
96
72
|
].filter((root) => root.startsWith("/")
|
|
97
73
|
&& root !== DAIMON_BROKER_REALM
|
|
98
74
|
&& root !== DAIMON_GROK_TURN_USAGE_LEDGER.directoryPath
|
|
99
|
-
&& root !== DAIMON_WAKE_FUSE_DIRECTORY
|
|
75
|
+
&& root !== DAIMON_WAKE_FUSE_DIRECTORY
|
|
76
|
+
&& !resolveDaimonGatewayRealmPaths(runtimePlans).includes(root)).sort();
|
|
100
77
|
const privateDirectoriesThrough = (target) => {
|
|
101
78
|
if (target !== SPAWNFILE_PRIVATE_STATE_ROOT &&
|
|
102
79
|
!target.startsWith(`${SPAWNFILE_PRIVATE_STATE_ROOT}/`))
|
|
@@ -114,8 +91,6 @@ const privateModeDirectories = (runtimePlans, moltnet) => [
|
|
|
114
91
|
.flatMap((plan) => plan.persistentMounts ?? [])
|
|
115
92
|
.filter((mount) => mount.id === DAIMON_RUNTIME_ACCEPTANCE_STORE_MOUNT_ID
|
|
116
93
|
|| mount.id === DAIMON_AGY_SUBSCRIPTION_REALM_MOUNT_ID
|
|
117
|
-
|| Object.values(DAIMON_ENGINE_DESCRIPTORS).some(({ id, auth }) => auth.staging === "portable-realm"
|
|
118
|
-
&& mount.id === `daimon-${id}-subscription-realm` && mount.mount_path === auth.realm.durableMountPath)
|
|
119
94
|
|| mount.id.startsWith(DAIMON_AGY_RUNTIME_HOME_MOUNT_ID_PREFIX)
|
|
120
95
|
|| mount.id.startsWith(DAIMON_RECORDING_MOUNT_ID_PREFIX)
|
|
121
96
|
|| mount.id.startsWith(DAIMON_PORTABLE_ENGINE_HOME_MOUNT_ID_PREFIX))
|
|
@@ -206,6 +181,9 @@ export const renderDaimonUidEntrypoint = (runtimePlans, persistentMountPaths = [
|
|
|
206
181
|
.filter((runtimeRoot) => runtimeRoot.startsWith("/opt/spawnfile/runtime-installs/")))
|
|
207
182
|
].sort();
|
|
208
183
|
const volumeIdentityFiles = resolveDaimonVolumeIdentityFiles(runtimePlans);
|
|
184
|
+
const grokRegistrations = resolveDaimonGrokRegistrations(runtimePlans);
|
|
185
|
+
const gateway = resolveDaimonGatewayRealmPaths(runtimePlans).length > 0;
|
|
186
|
+
const gatewayPid = gateway ? '"${gateway_pid:-}" ' : "";
|
|
209
187
|
return [
|
|
210
188
|
"#!/usr/bin/env bash",
|
|
211
189
|
"set -euo pipefail",
|
|
@@ -222,13 +200,15 @@ export const renderDaimonUidEntrypoint = (runtimePlans, persistentMountPaths = [
|
|
|
222
200
|
...createBackedMountGuard(persistentMounts),
|
|
223
201
|
`state_roots=(${ownershipPlan.stateRoots.map(quote).join(" ")})`,
|
|
224
202
|
"node - \"$uid\" \"${state_roots[@]}\" <<'SPAWNFILE_DAIMON_OWNERSHIP'",
|
|
225
|
-
renderDaimonOwnershipProgram(opaqueTargets, ownershipPlan.opaqueDescendantRoots, immutableRuntimeRoots, volumeIdentityFiles, ownershipPlan.privateDirectories, ownershipPlan.privateFiles, ownershipPlan.privateModeDirectories, ownershipPlan.creatablePrivateDirectories,
|
|
203
|
+
renderDaimonOwnershipProgram(opaqueTargets, ownershipPlan.opaqueDescendantRoots, immutableRuntimeRoots, volumeIdentityFiles, ownershipPlan.privateDirectories, ownershipPlan.privateFiles, ownershipPlan.privateModeDirectories, ownershipPlan.creatablePrivateDirectories, grokRegistrations.length > 0),
|
|
226
204
|
"SPAWNFILE_DAIMON_OWNERSHIP",
|
|
227
|
-
`for fixed_uid in ${DAIMON_ORGANIZATION_UID} ${DAIMON_BROKER_UID} ${
|
|
205
|
+
`for fixed_uid in ${DAIMON_ORGANIZATION_UID} ${DAIMON_BROKER_UID}${gateway ? ` ${DAIMON_GATEWAY_UID}` : ""} ${grokRegistrations.map((entry) => entry.uid).join(" ")}; do`,
|
|
228
206
|
' if ! getent group "$fixed_uid" >/dev/null; then groupadd -K GID_MIN=1 --gid "$fixed_uid" "daimon-$fixed_uid"; fi',
|
|
229
207
|
' if ! getent passwd "$fixed_uid" >/dev/null; then useradd -K UID_MIN=1 --no-create-home --no-log-init --uid "$fixed_uid" --gid "$fixed_uid" --home-dir /nonexistent --shell /usr/sbin/nologin "daimon-$fixed_uid"; fi',
|
|
230
208
|
"done",
|
|
231
|
-
...(
|
|
209
|
+
...(grokRegistrations.length === 0 ? [] : renderDaimonGrokHostPreflight()),
|
|
210
|
+
// Before broker provisioning: a Grok worker's deny list masks the gateway's paths, which must exist.
|
|
211
|
+
...renderDaimonGatewayProvisioning(runtimePlans),
|
|
232
212
|
...renderDaimonBrokerProvisioning(runtimePlans),
|
|
233
213
|
'if ! getent passwd "$uid" >/dev/null; then',
|
|
234
214
|
' runtime_identity="daimon-$uid"',
|
|
@@ -242,23 +222,21 @@ export const renderDaimonUidEntrypoint = (runtimePlans, persistentMountPaths = [
|
|
|
242
222
|
// organization-uid runtime process below, not the (Grok-only) broker, so
|
|
243
223
|
// this cannot be gated on `resolveDaimonGrokRegistrations`.
|
|
244
224
|
...renderDaimonUsageLedgerProvisioning(),
|
|
245
|
-
...(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
"trap cleanup_broker_startup EXIT",
|
|
250
|
-
"trap 'exit 143' TERM INT HUP",
|
|
225
|
+
...(grokRegistrations.length === 0 && !gateway ? [] : renderDaimonStartupSupervision()),
|
|
226
|
+
// The gateway starts first: the broker's readiness probes it for its Grok key.
|
|
227
|
+
...renderDaimonGatewayLaunch(runtimePlans, daimonPlan?.runtimeRoot ?? ""),
|
|
228
|
+
...(grokRegistrations.length === 0 ? [] : [
|
|
251
229
|
`install -d -o ${DAIMON_BROKER_UID} -g ${DAIMON_BROKER_UID} -m 0700 ${quote(DAIMON_BROKER_REALM)}`,
|
|
252
230
|
`if [ -e ${quote(`${DAIMON_BROKER_REALM}/auth.json`)} ]; then test -f ${quote(`${DAIMON_BROKER_REALM}/auth.json`)} && test ! -L ${quote(`${DAIMON_BROKER_REALM}/auth.json`)}; chown 0:0 ${quote(`${DAIMON_BROKER_REALM}/auth.json`)}; chmod 0600 ${quote(`${DAIMON_BROKER_REALM}/auth.json`)}; chown ${DAIMON_BROKER_UID}:${DAIMON_BROKER_UID} ${quote(`${DAIMON_BROKER_REALM}/auth.json`)}; fi`,
|
|
253
231
|
`setpriv --clear-groups --reuid ${DAIMON_BROKER_UID} --regid ${DAIMON_BROKER_UID} --inh-caps=-all --ambient-caps=-all --bounding-set=-all -- bash -ceu 'probe=${DAIMON_BROKER_REALM}/.daimon-ancestry-probe; umask 077; : > "$probe"; rm "$probe"'`,
|
|
254
232
|
`setpriv --clear-groups --reuid ${DAIMON_ORGANIZATION_UID} --regid ${DAIMON_ORGANIZATION_UID} --inh-caps=-all --ambient-caps=-all --bounding-set=-all -- bash -ceu '! test -r ${DAIMON_BROKER_REALM}'`,
|
|
255
|
-
...
|
|
233
|
+
...grokRegistrations.map((entry) => `setpriv --clear-groups --reuid ${entry.uid} --regid ${entry.uid} --inh-caps=-all --ambient-caps=-all --bounding-set=-all -- bash -ceu '! test -r ${DAIMON_BROKER_REALM}'`),
|
|
256
234
|
`setpriv --inh-caps=-all --ambient-caps=-all --bounding-set=-all,+chown,+setuid,+setgid -- ${quote(DAIMON_BROKER_EXECUTABLE)} &`,
|
|
257
235
|
"launcher_pid=$!",
|
|
258
236
|
"startup_children+=(\"$launcher_pid\")",
|
|
259
237
|
`wait_for_broker_socket ${quote(DAIMON_BROKER_LAUNCHER_SOCKET)} "$launcher_pid" "engine broker launcher"`,
|
|
260
238
|
`wait_for_broker_identity "$launcher_pid" 0 00000000000000c1 "engine broker launcher"`,
|
|
261
|
-
`setpriv --clear-groups --reuid ${DAIMON_BROKER_UID} --regid ${DAIMON_BROKER_UID} --inh-caps=-all --ambient-caps=-all --bounding-set=-all -- env TMPDIR=${quote(DAIMON_BROKER_TMPDIR)} ${quote(path.posix.join(daimonPlan?.runtimeRoot ?? "", "bin/daimon-runtime"))} engine-broker serve &`,
|
|
239
|
+
`setpriv --clear-groups --reuid ${DAIMON_BROKER_UID} --regid ${DAIMON_BROKER_UID} --inh-caps=-all --ambient-caps=-all --bounding-set=-all -- env TMPDIR=${quote(DAIMON_BROKER_TMPDIR)} ${renderDaimonGatewayRuntimeEnv(runtimePlans)}${quote(path.posix.join(daimonPlan?.runtimeRoot ?? "", "bin/daimon-runtime"))} engine-broker serve &`,
|
|
262
240
|
"broker_pid=$!",
|
|
263
241
|
"startup_children+=(\"$broker_pid\")",
|
|
264
242
|
`wait_for_broker_socket ${quote(DAIMON_BROKER_BACKEND_SOCKET)} "$broker_pid" "engine broker backend"`,
|
|
@@ -271,23 +249,27 @@ export const renderDaimonUidEntrypoint = (runtimePlans, persistentMountPaths = [
|
|
|
271
249
|
`[ -S ${quote(DAIMON_BROKER_SOCKET)} ] || exit 1`,
|
|
272
250
|
"for child_spec in \"$launcher_pid:0:00000000000000c1\" \"$relay_pid:2100:0000000000000000\" \"$broker_pid:2100:0000000000000000\"; do child=${child_spec%%:*}; rest=${child_spec#*:}; expected_uid=${rest%%:*}; expected_caps=${rest##*:}; observed_uid=$(awk '/^Uid:/{print $2}' \"/proc/$child/status\"); cap_bnd=$(awk '/^CapBnd:/{print $2}' \"/proc/$child/status\"); [ \"$observed_uid\" = \"$expected_uid\" ] && [ \"$cap_bnd\" = \"$expected_caps\" ] || exit 1; done"
|
|
273
251
|
]),
|
|
274
|
-
|
|
252
|
+
`${renderDaimonGatewayRuntimeEnv(runtimePlans)}setpriv --clear-groups --reuid "$uid" --regid "$gid" --inh-caps=-all --ambient-caps=-all --bounding-set=-all -- bash -ceu '`,
|
|
275
253
|
" if [ \"$EUID\" -eq 0 ]; then exit 1; fi",
|
|
276
254
|
" test \"$(sed -n \"s/^CapEff:[[:space:]]*//p\" /proc/self/status)\" = 0000000000000000",
|
|
277
255
|
" exec \"$@\"",
|
|
278
|
-
|
|
256
|
+
// Explicit stdin: a non-interactive shell gives `&` jobs /dev/null, which would
|
|
257
|
+
// starve the interactive `auth <engine> login` of the operator's terminal.
|
|
258
|
+
`' bash "\${runtime_command[@]}" <&0 &`,
|
|
279
259
|
"runtime_pid=$!",
|
|
280
260
|
"trap - EXIT TERM INT HUP",
|
|
281
261
|
"stopping=0",
|
|
282
|
-
|
|
262
|
+
`stop_children() { stopping=1; kill -TERM "$runtime_pid" 2>/dev/null || true; for child in ${gatewayPid}"\${relay_pid:-}" "\${broker_pid:-}" "\${launcher_pid:-}"; do [ -z "$child" ] || kill -TERM "$child" 2>/dev/null || true; done; }`,
|
|
283
263
|
"trap stop_children TERM INT HUP",
|
|
284
264
|
'watch_pids=("$runtime_pid")',
|
|
285
|
-
...(
|
|
265
|
+
...(grokRegistrations.length === 0 ? [] : ['watch_pids+=("$relay_pid" "$broker_pid" "$launcher_pid")']),
|
|
266
|
+
// An external gateway (training sidecar) leaves no local gateway to watch.
|
|
267
|
+
...(gateway ? ['[ -z "${gateway_pid:-}" ] || watch_pids+=("$gateway_pid")'] : []),
|
|
286
268
|
"finished_pid=",
|
|
287
269
|
'set +e; wait -n -p finished_pid "${watch_pids[@]}"; status=$?; set -e',
|
|
288
270
|
'if [ "${finished_pid:-}" != "$runtime_pid" ]; then status=1; fi',
|
|
289
271
|
'kill -TERM "$runtime_pid" 2>/dev/null || true',
|
|
290
|
-
|
|
272
|
+
`for child in "\${relay_pid:-}" "\${broker_pid:-}" "\${launcher_pid:-}"${gatewayPid ? ` ${gatewayPid.trim()}` : ""}; do [ -z "$child" ] || { kill -TERM "$child" 2>/dev/null || true; wait "$child" 2>/dev/null || true; }; done`,
|
|
291
273
|
'wait "$runtime_pid" 2>/dev/null || true',
|
|
292
274
|
"exit \"$status\""
|
|
293
275
|
].join("\n") + "\n";
|
|
@@ -6,7 +6,6 @@ const createMountId = (mountPath) => `memory-${safeSlug(mountPath)}`;
|
|
|
6
6
|
const isFileBackedMemoryStore = (bank) => bank.store.kind === "sqlite" || bank.store.kind === "json";
|
|
7
7
|
const transportFromRuntime = (runtimeName, bank) => {
|
|
8
8
|
switch (runtimeName) {
|
|
9
|
-
case "pi":
|
|
10
9
|
case "daimon":
|
|
11
10
|
// Mneme runs in-process for these runtimes (no MCP subprocess), but
|
|
12
11
|
// whether that in-process runtime is reachable -- and whether it
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveNoopolisRunId } from "../runtime/index.js";
|
|
2
2
|
import { createExclusiveReattachVolumeName, SpawnfileError } from "../shared/index.js";
|
|
3
|
-
import { createMoltnetCausalDirectory, createMoltnetDaimonReceiptStorePath, createMoltnetNetworkStateDirectory, createMoltnetServerConfigPath, createMoltnetOpenTokenDirectory, createMoltnetNativeServerConfig, createMoltnetNodeConfigPath,
|
|
3
|
+
import { createMoltnetCausalDirectory, createMoltnetDaimonReceiptStorePath, createMoltnetNetworkStateDirectory, createMoltnetServerConfigPath, createMoltnetOpenTokenDirectory, createMoltnetNativeServerConfig, createMoltnetNodeConfigPath, resolveMoltnetStorePersistenceMountPath } from "./moltnetConfigLowering.js";
|
|
4
4
|
import { assertNetworkBindingEnvUniqueness } from "./networkBinding.js";
|
|
5
5
|
import { createMoltnetNodeConfigContent } from "./moltnetNodeConfig.js";
|
|
6
6
|
import { createPersistentVolumeName, isNetworkHttpEnabled, toContainerRootfsPath } from "./moltnetArtifactPaths.js";
|
|
@@ -152,22 +152,6 @@ export const generateMoltnetArtifacts = async (plan, deploymentLineage = "compil
|
|
|
152
152
|
throw new SpawnfileError("validation_error", `Duplicate Moltnet node attachment for ${attachment.network}/${attachment.memberId}`);
|
|
153
153
|
}
|
|
154
154
|
nodePlanKeys.add(nodePlanKey);
|
|
155
|
-
if (agentNode.runtime.name === "pi") {
|
|
156
|
-
const clientAuth = resolveMoltnetClientAuth(serverPlan.server, attachment.network, attachment.memberId, node.slug, attachment.auth?.tokenId);
|
|
157
|
-
const usesPerAttachmentOpenToken = clientAuth.mode === "open" &&
|
|
158
|
-
clientAuth.staticToken !== true &&
|
|
159
|
-
Boolean(clientAuth.tokenEnv || clientAuth.tokenPath);
|
|
160
|
-
if (usesPerAttachmentOpenToken && clientAuth.tokenPath) {
|
|
161
|
-
const mountId = `agent-${node.slug}-moltnet-tokens`;
|
|
162
|
-
addPersistentMount({
|
|
163
|
-
id: mountId,
|
|
164
|
-
lifecycle: "exclusive-reattach",
|
|
165
|
-
mountPath: createMoltnetOpenTokenDirectory(node.slug),
|
|
166
|
-
reason: `Moltnet open-mode generated agent tokens for ${agentNode.name}`,
|
|
167
|
-
volumeName: durableVolumeName(mountId)
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
155
|
const nodeConfig = createMoltnetNodeConfigContent({
|
|
172
156
|
agentNode,
|
|
173
157
|
attachment: { ...attachment, memberId: attachment.memberId },
|
|
@@ -68,7 +68,7 @@ const createAttachmentConfig = (node, artifacts, attachment, agentSlug) => {
|
|
|
68
68
|
};
|
|
69
69
|
};
|
|
70
70
|
export const resolveMoltnetWorkspaceLayout = (runtimeName, _agentName) => {
|
|
71
|
-
if (runtimeName === "daimon"
|
|
71
|
+
if (runtimeName === "daimon") {
|
|
72
72
|
return {
|
|
73
73
|
clientConfigPath: `workspace/.moltnet/config.json`,
|
|
74
74
|
cliRuntime: "codex",
|
|
@@ -72,16 +72,6 @@ export const resolveRuntimeConfig = (plan, agentNode, nodeSlug, networkId, moltn
|
|
|
72
72
|
token_env: "SPAWNFILE_DAIMON_CONTROL_TOKEN"
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
|
-
case "pi": {
|
|
76
|
-
const port = getRuntimeAdapter(agentNode.runtime.name).container.port;
|
|
77
|
-
if (!port) {
|
|
78
|
-
throw new SpawnfileError("compile_error", `Unable to resolve ${agentNode.runtime.name} control port for Moltnet agent ${agentNode.name}`);
|
|
79
|
-
}
|
|
80
|
-
return {
|
|
81
|
-
control_url: `http://127.0.0.1:${port}/agents/${nodeSlug}/wake`,
|
|
82
|
-
kind: "pi"
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
75
|
default:
|
|
86
76
|
throw new SpawnfileError("compile_error", `Moltnet does not know how to attach runtime ${agentNode.runtime.name} directly`);
|
|
87
77
|
}
|
|
@@ -29,6 +29,7 @@ export declare const createDockerRunInvocation: (compileResult: CompileProjectRe
|
|
|
29
29
|
name: string;
|
|
30
30
|
value: string;
|
|
31
31
|
};
|
|
32
|
+
command?: readonly string[];
|
|
32
33
|
/** See `RuntimeAuthPreparationInput.containerCredentialUid`. */
|
|
33
34
|
containerCredentialUid?: number;
|
|
34
35
|
containerName?: string;
|
|
@@ -38,6 +39,8 @@ export declare const createDockerRunInvocation: (compileResult: CompileProjectRe
|
|
|
38
39
|
dockerContext?: string;
|
|
39
40
|
dockerHost?: string;
|
|
40
41
|
envFilePath?: string;
|
|
42
|
+
interactive?: boolean;
|
|
43
|
+
network?: string;
|
|
41
44
|
}) => Promise<DockerRunInvocation>;
|
|
42
45
|
interface ResolvedRunDeploymentOptions {
|
|
43
46
|
previousRecord?: DeploymentRecord;
|
|
@@ -6,6 +6,7 @@ import { ensureDirectory, fileExists, removeDirectory, writeUtf8File } from "../
|
|
|
6
6
|
import { appendDockerLabelArgs, createDockerDeploymentLabels, createDockerDeploymentUnitId, createDockerProjectLabel, dockerContextNameForTarget, dockerHostValueForTarget, normalizeDeploymentName, readDeploymentRecordFromOutput, resolveDeploymentRecordPath, verifyDockerDeploymentTarget, writeDockerDeploymentRecordForRun } from "../deployment/index.js";
|
|
7
7
|
import { DAIMON_DOCKER_RUNTIME_SECURITY_ARGS, DEFAULT_OUTPUT_DIRECTORY, SpawnfileError } from "../shared/index.js";
|
|
8
8
|
import { ensureNoopolisRunId, resolveNoopolisRunId } from "../runtime/index.js";
|
|
9
|
+
import { DAIMON_GATEWAY_URL_ENV, daimonProfileRealmVolume, isDaimonGatewayRealmMountId } from "../runtime/daimon/index.js";
|
|
9
10
|
import { compileProject } from "./compileProject.js";
|
|
10
11
|
import { createDefaultImageTag, resolveDockerBuildArchitecture } from "./buildProject.js";
|
|
11
12
|
import { slugify } from "./helpers.js";
|
|
@@ -59,9 +60,11 @@ export const createDockerRunInvocation = async (compileResult, imageTag, options
|
|
|
59
60
|
args.push("-d", "--restart", "unless-stopped");
|
|
60
61
|
}
|
|
61
62
|
else {
|
|
62
|
-
args.push("--rm");
|
|
63
|
+
args.push("--rm", ...(options.interactive ? ["-it"] : []));
|
|
63
64
|
}
|
|
64
65
|
args.push("--name", containerName);
|
|
66
|
+
if (options.network)
|
|
67
|
+
args.push("--network", options.network);
|
|
65
68
|
if (hasDaimon) {
|
|
66
69
|
args.push(...DAIMON_DOCKER_RUNTIME_SECURITY_ARGS, ...(await resolveDaimonCodexNativeSandboxDockerSecurityOptions(compileResult)));
|
|
67
70
|
}
|
|
@@ -80,7 +83,11 @@ export const createDockerRunInvocation = async (compileResult, imageTag, options
|
|
|
80
83
|
// reattached volume that already holds state is untouched by dropping it.
|
|
81
84
|
// (Target/secrets volumes under src/target/* keep `volume-nocopy`: no
|
|
82
85
|
// image content backs those paths and they must stay opaque.)
|
|
83
|
-
|
|
86
|
+
// An external auth gateway holds every gatewayed realm (the org mounts none); a profile-held login reattaches its volume.
|
|
87
|
+
const persistentMounts = (containerReport.persistent_mounts ?? [])
|
|
88
|
+
.filter((mount) => !env[DAIMON_GATEWAY_URL_ENV] || !isDaimonGatewayRealmMountId(mount.id))
|
|
89
|
+
.map((mount) => ({ ...mount, volume_name: daimonProfileRealmVolume(mount.id, options.authProfile) ?? mount.volume_name }));
|
|
90
|
+
for (const mount of persistentMounts) {
|
|
84
91
|
args.push("--mount", `type=volume,source=${mount.volume_name},target=${mount.mount_path}`);
|
|
85
92
|
}
|
|
86
93
|
const deploymentLabels = options.detach && deploymentName ? (() => {
|
|
@@ -97,7 +104,7 @@ export const createDockerRunInvocation = async (compileResult, imageTag, options
|
|
|
97
104
|
args.push("--env-file", envFilePath);
|
|
98
105
|
args.push(...(await resolveAuthMountArgs(containerReport, options.authProfile ?? null)));
|
|
99
106
|
args.push(...preparedRuntimeAuth.mountArgs);
|
|
100
|
-
args.push(imageTag);
|
|
107
|
+
args.push(imageTag, ...(options.command ?? []));
|
|
101
108
|
return {
|
|
102
109
|
args,
|
|
103
110
|
command: options.dockerCommand ?? "docker",
|
|
@@ -109,8 +116,8 @@ export const createDockerRunInvocation = async (compileResult, imageTag, options
|
|
|
109
116
|
dockerContext: options.dockerContext ?? null,
|
|
110
117
|
dockerHost: options.dockerHost ?? null,
|
|
111
118
|
envFilePath,
|
|
112
|
-
...(
|
|
113
|
-
exclusiveReattachVolumes:
|
|
119
|
+
...(persistentMounts.some((mount) => mount.lifecycle === "exclusive-reattach") ? {
|
|
120
|
+
exclusiveReattachVolumes: persistentMounts
|
|
114
121
|
.filter((mount) => mount.lifecycle === "exclusive-reattach")
|
|
115
122
|
.map((mount) => mount.volume_name)
|
|
116
123
|
.sort()
|
|
@@ -46,13 +46,7 @@ const addCoveredModelSecrets = (coveredModelSecrets, instanceId, secretNames) =>
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
export const prepareRuntimeAuthMounts = async (outputDirectory, containerReport, authProfile, env, tempRoot, containerCredentialUid) => {
|
|
49
|
-
//
|
|
50
|
-
// `prepareRuntimeAuth` may still have host-credential staging to do that
|
|
51
|
-
// does not depend on an imported Spawnfile auth profile (e.g. the Pi
|
|
52
|
-
// adapter mounting the host's `~/.grok`/`~/.codex`/antigravity CLI homes
|
|
53
|
-
// for a real-engine org — see `src/runtime/pi/runAuth.ts`). Each adapter is
|
|
54
|
-
// responsible for treating a `null` `authProfile` as "no profile-derived
|
|
55
|
-
// imports available" rather than failing.
|
|
49
|
+
// Adapters receive null profiles so they can handle runtime-owned credentials.
|
|
56
50
|
const coveredModelSecrets = new Set();
|
|
57
51
|
let launchIdentity;
|
|
58
52
|
const mountArgs = [];
|
|
@@ -113,6 +107,7 @@ export const assertDeclaredModelAuthSatisfied = (containerReport, authProfile, c
|
|
|
113
107
|
throw new SpawnfileError("validation_error", `Auth profile ${authProfile.name} is missing required auth imports: ${missingImportKinds.join(", ")}`);
|
|
114
108
|
}
|
|
115
109
|
};
|
|
110
|
+
const RUNTIME_HOME_IMPORT_KINDS = ["claude-code", "codex"];
|
|
116
111
|
const getImportMountTargetName = (kind) => kind === "claude-code" ? ".claude" : ".codex";
|
|
117
112
|
const createGeneratedRuntimeSecret = (secretName, generatedMoltnetSecrets) => {
|
|
118
113
|
if (secretName === "OPENCLAW_GATEWAY_TOKEN" || secretName === "OPENCLAW_HOOKS_TOKEN") {
|
|
@@ -227,23 +222,16 @@ export const resolveAuthMountArgs = async (containerReport, authProfile) => {
|
|
|
227
222
|
return [];
|
|
228
223
|
}
|
|
229
224
|
const args = [];
|
|
230
|
-
//
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
const piRuntimeHomes = new Set(containerReport.runtime_instances
|
|
234
|
-
.filter((instance) => instance.runtime === "pi")
|
|
235
|
-
.map((instance) => instance.home_path)
|
|
236
|
-
.filter((homePath) => homePath !== null));
|
|
237
|
-
const genericRuntimeHomes = containerReport.runtime_homes
|
|
238
|
-
.filter((runtimeHome) => !piRuntimeHomes.has(runtimeHome));
|
|
239
|
-
for (const [kind, entry] of Object.entries(authProfile.imports)) {
|
|
225
|
+
// Only runtime-home logins are bind-mounted; a Grok import belongs to the auth gateway alone.
|
|
226
|
+
for (const kind of RUNTIME_HOME_IMPORT_KINDS) {
|
|
227
|
+
const entry = authProfile.imports[kind];
|
|
240
228
|
if (!entry) {
|
|
241
229
|
continue;
|
|
242
230
|
}
|
|
243
231
|
if (!(await fileExists(entry.path))) {
|
|
244
232
|
throw new SpawnfileError("validation_error", `Imported auth path for ${kind} does not exist: ${entry.path}`);
|
|
245
233
|
}
|
|
246
|
-
for (const runtimeHome of
|
|
234
|
+
for (const runtimeHome of containerReport.runtime_homes) {
|
|
247
235
|
args.push("-v", `${entry.path}:${path.posix.join(runtimeHome, getImportMountTargetName(kind))}`);
|
|
248
236
|
}
|
|
249
237
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const TRAINING_CONTEXT_VERSION: "spawnfile.training-context.v1";
|
|
3
|
-
export declare const TRAINING_EXECUTION_CAPABILITY_LABEL = "com.spawnfile.training.execution";
|
|
4
|
-
export declare const TRAINING_EXECUTION_VERSION = "spawnfile.training-execution.v1";
|
|
5
3
|
export declare const trainingSourceSchema: z.ZodObject<{
|
|
6
4
|
sourcePath: z.ZodString;
|
|
7
5
|
destinationPath: z.ZodString;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export const TRAINING_CONTEXT_VERSION = "spawnfile.training-context.v1";
|
|
3
|
-
export const TRAINING_EXECUTION_CAPABILITY_LABEL = "com.spawnfile.training.execution";
|
|
4
|
-
export const TRAINING_EXECUTION_VERSION = "spawnfile.training-execution.v1";
|
|
5
3
|
const digest = z.string().regex(/^sha256:[a-f0-9]{64}$/u);
|
|
6
4
|
const absolutePath = z.string().min(1).regex(/^(?:\/|[A-Za-z]:[\\/])/u);
|
|
7
5
|
const relativePath = z.string().min(1).regex(/^(?!\/)(?!.*(?:^|\/)\.\.(?:\/|$))[^\\]+$/u);
|