spawnfile 0.1.33 → 0.1.34
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/auth/trainingAuth.d.ts +2 -5
- package/dist/cli/devCommands.d.ts +1 -1
- package/dist/cli/devCommands.js +0 -66
- package/dist/cli/runCli.d.ts +1 -4
- package/dist/cli/runCli.js +2 -2
- package/dist/cli/trainCommand.js +9 -15
- package/dist/cli/trainingBooted.d.ts +7 -0
- package/dist/cli/trainingBooted.js +41 -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 +7 -88
- package/dist/compiler/containerDaimonGatewayRender.d.ts +50 -0
- package/dist/compiler/containerDaimonGatewayRender.js +157 -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 +26 -46
- 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 +1 -0
- package/dist/compiler/runProject.js +9 -3
- package/dist/compiler/runProjectAuth.js +2 -17
- 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/trial/boot.d.ts +53 -0
- package/dist/compiler/training/trial/boot.js +147 -0
- package/dist/compiler/training/trial/docker.d.ts +8 -0
- package/dist/compiler/training/trial/docker.js +22 -0
- package/dist/compiler/training/trial/gateway.d.ts +42 -0
- package/dist/compiler/training/trial/gateway.js +98 -0
- package/dist/compiler/training/trial/index.d.ts +4 -0
- package/dist/compiler/training/trial/index.js +4 -0
- package/dist/compiler/training/trial/launcher.d.ts +32 -0
- package/dist/compiler/training/trial/launcher.js +49 -0
- package/dist/compiler/training/trial/project.d.ts +11 -0
- package/dist/compiler/training/trial/project.js +31 -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/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 +6 -12
- 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 +7 -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 +9 -3
- package/dist/runtime/daimon/subscriptionRealms.js +22 -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 +46 -0
- package/dist/runtime/daimon/training/booted/adapter.js +59 -0
- package/dist/runtime/daimon/training/booted/adapter.js.map +1 -0
- package/dist/runtime/daimon/training/booted/index.d.ts +2 -0
- package/dist/runtime/daimon/training/booted/index.js +2 -0
- package/dist/runtime/daimon/training/booted/index.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/training/providers/codex-subscription/index.js.map +1 -0
- package/dist/runtime/daimon/training/providers/codex-subscription/protocol.js.map +1 -0
- package/dist/runtime/daimon/training/providers/codex-subscription/provider.js.map +1 -0
- package/dist/runtime/daimon/training/providers/codex-subscription/strict-schema.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.d.ts +1 -3
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.js +5 -5
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.js.map +1 -1
- package/dist/runtime/daimon/training/providers/grok-subscription/index.d.ts +1 -2
- package/dist/runtime/daimon/training/providers/grok-subscription/index.js +0 -1
- package/dist/runtime/daimon/training/providers/grok-subscription/index.js.map +1 -1
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.d.ts +5 -17
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.js +18 -31
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.js.map +1 -1
- package/dist/runtime/daimon/training/providers/grok-subscription/provider.js +1 -2
- package/dist/runtime/daimon/training/providers/grok-subscription/provider.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 +1 -1
- package/dist/runtime/trainingProviders.d.ts +1 -2
- package/dist/runtime/trainingProviders.js +9 -19
- 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/shared/errors.js +0 -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.js.map +0 -1
- package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.js.map +0 -1
- 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.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/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
- /package/dist/runtime/{codex-exec → daimon}/training/providers/codex-subscription/index.d.ts +0 -0
- /package/dist/runtime/{codex-exec → daimon}/training/providers/codex-subscription/index.js +0 -0
- /package/dist/runtime/{codex-exec → daimon}/training/providers/codex-subscription/protocol.d.ts +0 -0
- /package/dist/runtime/{codex-exec → daimon}/training/providers/codex-subscription/protocol.js +0 -0
- /package/dist/runtime/{codex-exec → daimon}/training/providers/codex-subscription/provider.d.ts +0 -0
- /package/dist/runtime/{codex-exec → daimon}/training/providers/codex-subscription/provider.js +0 -0
- /package/dist/runtime/{codex-exec → daimon}/training/providers/codex-subscription/strict-schema.d.ts +0 -0
- /package/dist/runtime/{codex-exec → daimon}/training/providers/codex-subscription/strict-schema.js +0 -0
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import { canonicalWireId } from '../../../../../training/index.js';
|
|
2
|
-
import { lstat, realpath, writeFile } from 'node:fs/promises';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
const limit = 65_536;
|
|
5
|
-
/** Published tails are for identifying a defect class, not for reading a transcript. */
|
|
6
|
-
const published = 4_096;
|
|
7
|
-
/**
|
|
8
|
-
* Below this length a value cannot carry credential entropy, and substituting it
|
|
9
|
-
* would corrupt unrelated text while proving nothing. Such values are not
|
|
10
|
-
* redaction targets; the assignment scrub below still keeps them from being
|
|
11
|
-
* published as a named environment value.
|
|
12
|
-
*/
|
|
13
|
-
const shortestRedactableSecret = 8;
|
|
14
|
-
/** Environment values are never published verbatim, including ones this adapter was never told were secret. */
|
|
15
|
-
const assignment = /(^|[\s"'([{,;])([A-Za-z_][A-Za-z0-9_]{1,63})=(\S+)/gu;
|
|
16
|
-
/** Paths whose name says credential: published as a class, never as a location. */
|
|
17
|
-
const credentialPath = /(?:^|(?<=\s))\S*\/\S*(?:auth\.json|\.pem|\.key|token)\S*/giu;
|
|
18
|
-
/** Undeclared credential-shaped material: what substitution cannot remove because nobody declared it. */
|
|
19
|
-
const credentialShaped = [/bearer\s+\S+/iu, /-----BEGIN [A-Z ]*(?:PRIVATE KEY|CERTIFICATE)/u];
|
|
20
|
-
const opaqueRun = /[A-Za-z0-9_-]{40,}/gu;
|
|
21
|
-
export const redactedMarker = '[redacted]';
|
|
22
|
-
export const redactedPathMarker = '[redacted-path]';
|
|
23
|
-
const truncate = (text) => text.length > published ? `${text.slice(0, published)}…` : text;
|
|
24
|
-
/** Longest message published from a frame; a frame is an identity and a sentence, not a transcript. */
|
|
25
|
-
const framedMessage = 512;
|
|
26
|
-
const maximumFrames = 8;
|
|
27
|
-
export const withholdDetectors = ['declared-secret', 'bearer', 'pem', 'opaque-run'];
|
|
28
|
-
/**
|
|
29
|
-
* Which detector refuses this text, named rather than counted.
|
|
30
|
-
*
|
|
31
|
-
* Knowing that a bearer header fired tells an operator "the runtime threw with a
|
|
32
|
-
* capability token in the message"; knowing that a long opaque run fired tells
|
|
33
|
-
* them "something printed a blob". Without the name, a withheld stream is
|
|
34
|
-
* indistinguishable from a crash with no output at all.
|
|
35
|
-
*/
|
|
36
|
-
function withholdingDetectors(text, survivingSecret) {
|
|
37
|
-
const detectors = [];
|
|
38
|
-
if (survivingSecret)
|
|
39
|
-
detectors.push('declared-secret');
|
|
40
|
-
if (credentialShaped[0].test(text))
|
|
41
|
-
detectors.push('bearer');
|
|
42
|
-
if (credentialShaped[1].test(text))
|
|
43
|
-
detectors.push('pem');
|
|
44
|
-
if ([...text.matchAll(opaqueRun)].some(match => !/^[0-9a-f]+$/u.test(match[0])))
|
|
45
|
-
detectors.push('opaque-run');
|
|
46
|
-
return detectors;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Removes every value this adapter knows to be secret, then refuses to call the
|
|
50
|
-
* result clean if anything credential-shaped is left.
|
|
51
|
-
*
|
|
52
|
-
* Substitution covers the control token, the declared environment values and the
|
|
53
|
-
* credential file paths. The assignment scrub covers a secret nobody declared: a
|
|
54
|
-
* line that echoes `SOMETHING=value` publishes the name and drops the value. What
|
|
55
|
-
* substitution cannot reach is an undeclared credential printed on its own — a
|
|
56
|
-
* bearer header, a PEM block, a long opaque token — so its presence makes the
|
|
57
|
-
* text unpublishable rather than published in the hope that it is harmless.
|
|
58
|
-
*/
|
|
59
|
-
export function redactNativeDiagnostic(text, secrets) {
|
|
60
|
-
const substitutable = [...new Set(secrets.filter(secret => secret.length >= shortestRedactableSecret))];
|
|
61
|
-
let value = text;
|
|
62
|
-
for (const secret of substitutable.sort((left, right) => right.length - left.length))
|
|
63
|
-
value = value.split(secret).join(redactedMarker);
|
|
64
|
-
value = value.replace(assignment, (_match, lead, key) => `${lead}${key}=${redactedMarker}`);
|
|
65
|
-
value = value.replace(credentialPath, redactedPathMarker);
|
|
66
|
-
const detectors = withholdingDetectors(value, substitutable.some(secret => value.includes(secret)));
|
|
67
|
-
return { text: value, clean: !detectors.length, detectors };
|
|
68
|
-
}
|
|
69
|
-
/** Every `{"schema":…}` line the runtime printed, with the field it states its failure in. */
|
|
70
|
-
function readFrames(stream, text, secrets) {
|
|
71
|
-
const frames = [];
|
|
72
|
-
for (const line of text.split(/\r?\n/u)) {
|
|
73
|
-
if (frames.length >= maximumFrames || !line.trim().startsWith('{'))
|
|
74
|
-
continue;
|
|
75
|
-
let row;
|
|
76
|
-
try {
|
|
77
|
-
row = JSON.parse(line);
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
if (!row || typeof row !== 'object' || typeof row.schema !== 'string' || !row.schema)
|
|
83
|
-
continue;
|
|
84
|
-
const stated = [row.error, row.reason, row.message].find(value => typeof value === 'string' && value);
|
|
85
|
-
if (stated === undefined) {
|
|
86
|
-
frames.push({ stream, schema: row.schema });
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
// The schema is an identity, never a secret, so it publishes even when the message it carries cannot.
|
|
90
|
-
const message = redactNativeDiagnostic(String(stated).slice(0, framedMessage), secrets);
|
|
91
|
-
frames.push({ stream, schema: row.schema, ...(message.clean ? { message: message.text } : { withheldBy: message.detectors }) });
|
|
92
|
-
}
|
|
93
|
-
return frames.length ? frames : undefined;
|
|
94
|
-
}
|
|
95
|
-
const lineCount = (text) => text ? text.split(/\r?\n/u).length : 0;
|
|
96
|
-
/** The worker's own stated failure is the best reason; a frame from any layer beats an exit status. */
|
|
97
|
-
function classify(frames, exitCode, exitSignal, fallback) {
|
|
98
|
-
const stated = frames?.filter(frame => frame.message !== undefined) ?? [];
|
|
99
|
-
const worker = stated.find(frame => canonicalWireId(frame.schema) === 'spawnfile.training.daimon-native.start-failed.v1');
|
|
100
|
-
// Any layer's own account — the worker's, or a caller bootstrap's — outranks an exit code.
|
|
101
|
-
const frame = worker ?? stated.at(-1);
|
|
102
|
-
if (frame)
|
|
103
|
-
return `${frame.schema}: ${frame.message}`;
|
|
104
|
-
if (exitSignal)
|
|
105
|
-
return `Native worker terminated by signal ${exitSignal}: ${fallback}`;
|
|
106
|
-
if (exitCode !== null && exitCode !== 0)
|
|
107
|
-
return `Native worker exited with code ${exitCode}: ${fallback}`;
|
|
108
|
-
return fallback;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Carries the publishable record, and the unredacted capture, out of startup.
|
|
112
|
-
*
|
|
113
|
-
* The caller persists the record durably and writes the capture to the
|
|
114
|
-
* operator's own run output as an operator-only file. The capture never reaches
|
|
115
|
-
* the event stream, a report or a viewer projection.
|
|
116
|
-
*/
|
|
117
|
-
export class NativeStartupFailure extends Error {
|
|
118
|
-
diagnostic;
|
|
119
|
-
capture;
|
|
120
|
-
constructor(message, diagnostic, capture) {
|
|
121
|
-
super(message);
|
|
122
|
-
this.diagnostic = diagnostic;
|
|
123
|
-
this.capture = capture;
|
|
124
|
-
this.name = 'NativeStartupFailure';
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/** Protected process output, never a public observation or a model/judge input. */
|
|
128
|
-
export async function childDiagnostics(root, trialId, configSha256, secrets = []) {
|
|
129
|
-
const directory = await lstat(root);
|
|
130
|
-
if (!directory.isDirectory() || directory.isSymbolicLink() || await realpath(root) !== root || (directory.mode & 0o777) !== 0o700) {
|
|
131
|
-
throw new Error('Native diagnostics require the protected canonical control directory');
|
|
132
|
-
}
|
|
133
|
-
const file = join(root, 'child-diagnostics.json');
|
|
134
|
-
const streams = { stdout: { bytes: Buffer.alloc(0), truncated: false }, stderr: { bytes: Buffer.alloc(0), truncated: false } };
|
|
135
|
-
let saved;
|
|
136
|
-
let status = { exitCode: null, exitSignal: null };
|
|
137
|
-
return {
|
|
138
|
-
file,
|
|
139
|
-
append(chunk, stdout) {
|
|
140
|
-
if (saved)
|
|
141
|
-
return;
|
|
142
|
-
const stream = stdout ? streams.stdout : streams.stderr;
|
|
143
|
-
const remaining = limit - stream.bytes.length;
|
|
144
|
-
stream.truncated ||= chunk.length > remaining;
|
|
145
|
-
if (remaining > 0)
|
|
146
|
-
stream.bytes = Buffer.concat([stream.bytes, chunk.subarray(0, remaining)]);
|
|
147
|
-
},
|
|
148
|
-
save(exitCode, exitSignal) {
|
|
149
|
-
status = { exitCode, exitSignal };
|
|
150
|
-
return saved ??= writeFile(file, JSON.stringify({ schema: 'spawnfile.training.daimon-native.child-diagnostics.v1', trialId, configSha256,
|
|
151
|
-
exitCode, exitSignal, limitBytesPerStream: limit,
|
|
152
|
-
stdout: streams.stdout.bytes.toString('utf8'), stderr: streams.stderr.bytes.toString('utf8'),
|
|
153
|
-
truncated: { stdout: streams.stdout.truncated, stderr: streams.stderr.truncated },
|
|
154
|
-
}) + '\n', { flag: 'wx', mode: 0o600 });
|
|
155
|
-
},
|
|
156
|
-
/**
|
|
157
|
-
* The durable half of the protected file above.
|
|
158
|
-
*
|
|
159
|
-
* The full capture stays in the control root, which on a training slot is
|
|
160
|
-
* tmpfs that dies with the container; this redacted record is what an
|
|
161
|
-
* operator can still read afterwards, and it always names the failure class
|
|
162
|
-
* even when the bytes themselves have to be withheld.
|
|
163
|
-
*/
|
|
164
|
-
/**
|
|
165
|
-
* The publishable record on its own, for a worker that died *after*
|
|
166
|
-
* readiness. Startup already published one; a mid-turn death published
|
|
167
|
-
* nothing at all, so the one account of why the worker stopped answering
|
|
168
|
-
* lived only in the protected file on the slot's tmpfs and died with the
|
|
169
|
-
* container. Same redaction, same withholding rules, no capture: this
|
|
170
|
-
* travels in the durable event stream, which outlives the container, and an
|
|
171
|
-
* unredacted capture has no business there.
|
|
172
|
-
*/
|
|
173
|
-
record(caught) {
|
|
174
|
-
return build(caught);
|
|
175
|
-
},
|
|
176
|
-
startupFailure(caught) {
|
|
177
|
-
const diagnostic = build(caught);
|
|
178
|
-
const raw = { stdout: streams.stdout.bytes.toString('utf8'), stderr: streams.stderr.bytes.toString('utf8') };
|
|
179
|
-
const capture = { basename: 'OPERATOR-ONLY.native-startup-capture.json',
|
|
180
|
-
content: `${JSON.stringify({ schema: 'spawnfile.training.daimon-native.operator-capture.v1', trialId, configSha256,
|
|
181
|
-
exitCode: status.exitCode, exitSignal: status.exitSignal, protectedArtifact: file,
|
|
182
|
-
limitBytesPerStream: limit, stdout: raw.stdout, stderr: raw.stderr,
|
|
183
|
-
truncated: { stdout: streams.stdout.truncated, stderr: streams.stderr.truncated } }, null, 2)}\n` };
|
|
184
|
-
return new NativeStartupFailure(`Native worker failed before readiness: ${diagnostic.reason}`, diagnostic, capture);
|
|
185
|
-
},
|
|
186
|
-
};
|
|
187
|
-
function build(caught) {
|
|
188
|
-
const fallback = caught instanceof Error ? caught.message : String(caught);
|
|
189
|
-
const raw = { stdout: streams.stdout.bytes.toString('utf8'), stderr: streams.stderr.bytes.toString('utf8') };
|
|
190
|
-
const out = redactNativeDiagnostic(raw.stdout, secrets);
|
|
191
|
-
const err = redactNativeDiagnostic(raw.stderr, secrets);
|
|
192
|
-
// Frames publish per field, so one unpublishable message never costs the whole account of the failure.
|
|
193
|
-
const frames = [...readFrames('stdout', raw.stdout, secrets) ?? [], ...readFrames('stderr', raw.stderr, secrets) ?? []];
|
|
194
|
-
const reason = redactNativeDiagnostic(classify(frames, status.exitCode, status.exitSignal, fallback), secrets);
|
|
195
|
-
const clean = out.clean && err.clean;
|
|
196
|
-
const withheld = [['stdout', raw.stdout, out], ['stderr', raw.stderr, err]]
|
|
197
|
-
.filter(([, , result]) => !result.clean)
|
|
198
|
-
.map(([stream, text, result]) => ({ stream, bytes: Buffer.byteLength(text), lines: lineCount(text),
|
|
199
|
-
frame: frames.find(row => row.stream === stream)?.schema ?? null, detectors: result.detectors }));
|
|
200
|
-
const diagnostic = {
|
|
201
|
-
schema: 'spawnfile.training.daimon-native.startup-diagnostic.v1', trialId,
|
|
202
|
-
// A withheld stream still leaves the class identified, so the reason is kept whenever it is itself clean.
|
|
203
|
-
reason: reason.clean ? truncate(reason.text) : 'Native worker failed before readiness; its stated reason could not be published safely',
|
|
204
|
-
exitCode: status.exitCode, exitSignal: status.exitSignal,
|
|
205
|
-
redaction: clean ? 'applied' : 'withheld',
|
|
206
|
-
...(clean ? { streams: { stdout: truncate(out.text), stderr: truncate(err.text),
|
|
207
|
-
truncated: { stdout: streams.stdout.truncated || out.text.length > published, stderr: streams.stderr.truncated || err.text.length > published } } } : {}),
|
|
208
|
-
...(frames.length ? { frames } : {}),
|
|
209
|
-
...(withheld.length ? { withheld } : {}),
|
|
210
|
-
protectedArtifact: file,
|
|
211
|
-
};
|
|
212
|
-
return diagnostic;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/child/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Real child/loopback protocol fixture only; it does not execute a model or prove
|
|
3
|
-
* sandboxing.
|
|
4
|
-
*
|
|
5
|
-
* `frames` names a file of terminal frames a REAL worker controller produced, one
|
|
6
|
-
* per wake. In that mode this fixture stops inventing evidence and replays them by
|
|
7
|
-
* wake id, which is the only way a test can put the worker's own poll and the
|
|
8
|
-
* parent's evidence reader on the same trial: the two halves live in different
|
|
9
|
-
* processes, and every fix that passed on one side alone went on to fail live.
|
|
10
|
-
*/
|
|
11
|
-
export declare function childFixture(mode?: string, frames?: string): Promise<{
|
|
12
|
-
root: string;
|
|
13
|
-
input: import("../../../../../training/index.js").SubjectStart;
|
|
14
|
-
launch: import("../receipt/schema.js").VerifiedNativeLaunch;
|
|
15
|
-
save(): Promise<void>;
|
|
16
|
-
}>;
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { createServer } from 'node:net';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { readFile, writeFile } from 'node:fs/promises';
|
|
4
|
-
import { launchFixture } from '../test-fixtures.js';
|
|
5
|
-
import { sha256 } from '../receipt/index.js';
|
|
6
|
-
/**
|
|
7
|
-
* Real child/loopback protocol fixture only; it does not execute a model or prove
|
|
8
|
-
* sandboxing.
|
|
9
|
-
*
|
|
10
|
-
* `frames` names a file of terminal frames a REAL worker controller produced, one
|
|
11
|
-
* per wake. In that mode this fixture stops inventing evidence and replays them by
|
|
12
|
-
* wake id, which is the only way a test can put the worker's own poll and the
|
|
13
|
-
* parent's evidence reader on the same trial: the two halves live in different
|
|
14
|
-
* processes, and every fix that passed on one side alone went on to fail live.
|
|
15
|
-
*/
|
|
16
|
-
export async function childFixture(mode = 'complete', frames) {
|
|
17
|
-
const f = await launchFixture();
|
|
18
|
-
// TMPDIR may sit below an ESM package (as it does in CI). This worker is CommonJS.
|
|
19
|
-
f.launch.bootstrap.entrypoint = 'bootstrap.cjs';
|
|
20
|
-
const reservation = createServer();
|
|
21
|
-
await new Promise(resolve => reservation.listen(0, '127.0.0.1', resolve));
|
|
22
|
-
f.launch.host.port = reservation.address().port;
|
|
23
|
-
await new Promise(resolve => reservation.close(() => resolve()));
|
|
24
|
-
f.launch.workspace.target = f.launch.workspace.source;
|
|
25
|
-
for (const row of f.launch.projections)
|
|
26
|
-
row.target = row.source;
|
|
27
|
-
for (const row of f.launch.credentials)
|
|
28
|
-
row.target = row.source;
|
|
29
|
-
const config = JSON.parse(await readFile(f.launch.config, 'utf8'));
|
|
30
|
-
config.host.port = f.launch.host.port;
|
|
31
|
-
config.agents[0].workspacePath = f.launch.workspace.target;
|
|
32
|
-
config.agents[0].runtimeHomePath = f.launch.projections[0].target;
|
|
33
|
-
config.agents[0].instructions = f.input.instructions;
|
|
34
|
-
const bytes = JSON.stringify(config);
|
|
35
|
-
f.launch.configSha256 = sha256(bytes);
|
|
36
|
-
await writeFile(f.launch.config, bytes);
|
|
37
|
-
await f.save();
|
|
38
|
-
await writeFile(f.launch.envFile, `UNIT_CHILD_MODE=${mode}\nNATIVE_TRANSPORT_TOKEN=unit-transport-value\n${frames ? `UNIT_CHILD_FRAMES=${frames}\n` : ''}`);
|
|
39
|
-
await writeFile(join(f.launch.bootstrap.root, f.launch.bootstrap.entrypoint), worker);
|
|
40
|
-
return f;
|
|
41
|
-
}
|
|
42
|
-
const worker = `
|
|
43
|
-
const fs=require('node:fs'),http=require('node:http'),crypto=require('node:crypto'),path=require('node:path');
|
|
44
|
-
const args=Object.fromEntries(process.argv.slice(2).reduce((rows,v,i,all)=>i%2?rows:[...rows,[v.slice(2),all[i+1]]],[]));
|
|
45
|
-
const launch=JSON.parse(fs.readFileSync(args.launch)),token=fs.readFileSync(args['token-file'],'utf8').trim(),trial=args['trial-id'],mode=process.env.UNIT_CHILD_MODE;
|
|
46
|
-
fs.writeFileSync(path.join(launch.controlRoot,'child-env.json'),JSON.stringify({fresh:!process.env.UNIT_PARENT_SECRET,home:process.env.HOME,transport:process.env.NATIVE_TRANSPORT_TOKEN,pid:process.pid}));
|
|
47
|
-
if(mode==='noisy'){console.log('Bootstrap progress');process.stderr.write('Unit diagnostic');}
|
|
48
|
-
if(mode==='leak'){process.stderr.write('upstream refused: Bearer sk-unit-'+'A1b2C3d4'.repeat(6)+'\\n');process.stderr.write(JSON.stringify({schema:'spawnfile.training.daimon-native.start-failed.v1',error:'unit missing native library'})+'\\n');process.exit(1);}
|
|
49
|
-
if(mode==='exit'){process.stderr.write(JSON.stringify({schema:'spawnfile.training.daimon-native.start-failed.v1',error:'unit missing native library'})+'\\n');process.exit(1);}if(mode==='overflow'){process.stdout.write('X'.repeat(1100000));setInterval(()=>{},1000);return;}
|
|
50
|
-
let terminal;const replay=process.env.UNIT_CHILD_FRAMES?JSON.parse(fs.readFileSync(process.env.UNIT_CHILD_FRAMES,'utf8')):undefined;const health={version:'noopolis.daimon.organization-runtime-health.v1',state:'running',agents:[{agentId:mode==='bad-health'?'foreign':launch.agent.id}]};
|
|
51
|
-
// The real worker stops its own Daimon host as soon as a delivery closes its execution and
|
|
52
|
-
// stays deferred with no continuation left, so the caller's closure query lands on a stopped
|
|
53
|
-
// runtime. Daimon seals the v2 activity projection at that stop and keeps answering it;
|
|
54
|
-
// an 'unanswerable' mode reproduces the host that answers HTTP 503 native_host_unavailable there.
|
|
55
|
-
let hostStopped=false,wakes=0,budget=0,stopOutcome,items=[],admitted=[],closed=[];
|
|
56
|
-
// Daimon's real seal keeps one accepted-delivery record per wake of the trial, so a
|
|
57
|
-
// continued trial's projection is never the single-item shape one wake produces.
|
|
58
|
-
const activity=()=>({version:'noopolis.daimon.organization-runtime-activity.v2',
|
|
59
|
-
state:hostStopped?'stopped':'running',items,
|
|
60
|
-
// A host that stopped with work still admitted seals that honestly, and the caller
|
|
61
|
-
// must refuse the closure rather than read the empty-list case into it.
|
|
62
|
-
// Production admits an execution for as long as its wake runs and drops it when the
|
|
63
|
-
// wake closes, which is the whole of the live quiescence answer: a worker still in a
|
|
64
|
-
// turn reports it here, and a caller reading anything else is reading its own notes.
|
|
65
|
-
executions:hostStopped&&mode.endsWith('-busy-seal')?[{agent_id:launch.agent.id,execution_id:'x'.repeat(64),state:'running',delivery_ids:[]}]
|
|
66
|
-
// A projection carrying an execution that is not this agent's cannot be counted at
|
|
67
|
-
// all, and a count nobody can account for is the one answer closure must refuse.
|
|
68
|
-
:mode==='foreign-execution'?[{agent_id:'another-agent',execution_id:'y'.repeat(64),state:'running',delivery_ids:[]}]
|
|
69
|
-
:admitted.length?admitted:terminal?.activity?.executions??[]});
|
|
70
|
-
// The worker settles its stop exactly once and every later /trial/stop replays that
|
|
71
|
-
// same value, including an internal stop that did not acknowledge: control.ts races
|
|
72
|
-
// host.stop() against a 5s deadline and memoizes whatever it got.
|
|
73
|
-
const settleStop=()=>{hostStopped=true;stopOutcome=stopOutcome??(mode==='bad-stop'||mode.endsWith('-stop-unknown')
|
|
74
|
-
?{schema:'spawnfile.training.daimon-native.stop.v1',state:'unknown',quiescence:'unknown',error:'unit native shutdown deadline exceeded'}
|
|
75
|
-
:{schema:'spawnfile.training.daimon-native.stop.v1',state:'acknowledged',quiescence:'unknown',containmentVerification:'parent-container-owner'});return stopOutcome;};
|
|
76
|
-
const server=http.createServer(async(req,res)=>{if(req.headers.authorization!=='Bearer '+token){res.writeHead(401);res.end();return;}
|
|
77
|
-
if(req.url==='/v2/activity'&&hostStopped&&mode.endsWith('-unanswerable')){res.writeHead(503,{'content-type':'application/json'});res.end(JSON.stringify({error:'native_host_unavailable'}));return;}
|
|
78
|
-
res.writeHead(200,{'content-type':'application/json'});
|
|
79
|
-
if(req.url==='/trial/health'){res.end(JSON.stringify(health));return;}
|
|
80
|
-
if(req.url==='/v2/activity'){res.end(JSON.stringify(activity()));return;}
|
|
81
|
-
if(req.url==='/trial/stop'){res.end(JSON.stringify(settleStop()));return;}
|
|
82
|
-
// An admitted execution names the deliveries it covers, because that projection is
|
|
83
|
-
// the runtime's own binding of a delivery to an execution and the only thing that
|
|
84
|
-
// answers for a wake whose receipt has already dropped its execution id.
|
|
85
|
-
if(req.url==='/trial/run'){const running={agent_id:launch.agent.id,execution_id:crypto.randomUUID(),state:'running',delivery_ids:[]};admitted=[...admitted,running];
|
|
86
|
-
if(mode==='stall')return;if(mode==='die-mid-turn'){process.stderr.write('worker: stream bound crossed, terminating\\n');server.closeAllConnections();process.exit(1);}let text='';for await(const chunk of req)text+=chunk;const input=JSON.parse(text),id=crypto.randomUUID(),at=new Date().toISOString();
|
|
87
|
-
// The runtime's own binding of this delivery to the execution running it: the
|
|
88
|
-
// projection names the delivery ids an admitted execution covers.
|
|
89
|
-
running.delivery_ids=[trial+':'+input.wakeId];
|
|
90
|
-
admitted=admitted.filter(row=>row!==running);
|
|
91
|
-
// A real worker's own frames, replayed verbatim: this fixture authors nothing in
|
|
92
|
-
// this mode, so what the reader parses is exactly what the worker published.
|
|
93
|
-
if(replay){terminal=replay.find(row=>row.wakeId===input.wakeId);if(!terminal){res.end('{}');return;}items=[...items,{...terminal.receipt,active:false}];res.end(JSON.stringify(terminal));return;}
|
|
94
|
-
if(!wakes++)budget=input.controls?.maxExternalDeliveries??0;
|
|
95
|
-
const receipt={version:'noopolis.daimon.wake-receipt-status.v2',acceptance_id:crypto.randomUUID(),agent_id:launch.agent.id,delivery_id:trial+':'+input.wakeId,request_digest:'a'.repeat(64),state:'completed',accepted_at:at,updated_at:at,execution_id:id};
|
|
96
|
-
items=[...items,{...receipt,active:false,queue_position:wakes}];
|
|
97
|
-
const closedTrace={schema:'daimon.turn_trace.v1',agent_id:launch.agent.id,turn_id:id,started_at:at,completed_at:at,status:'completed',tools:[]};
|
|
98
|
-
closed=[...closed,closedTrace];
|
|
99
|
-
// Every wake of a continued trial closes an execution of its own, and a worker that
|
|
100
|
-
// does not strip its own history publishes all of them on the frame. The frame still
|
|
101
|
-
// names the one THIS wake closed; the '-history' modes are that shape, with the two
|
|
102
|
-
// ways it can go wrong beside it: an earlier trace that is not this agent's work at
|
|
103
|
-
// all, and two traces answering to the one execution the frame names.
|
|
104
|
-
const history=mode.includes('-history')?closed.map(row=>({...row})):[closedTrace];
|
|
105
|
-
// Both faults are injected only once the trial HAS history, so neither can be
|
|
106
|
-
// mistaken for the arity: the first wake of each mode publishes a clean single trace.
|
|
107
|
-
if(history.length>1&&mode.endsWith('-foreign'))history[0]={...history[0],agent_id:'another-agent'};
|
|
108
|
-
if(history.length>1&&mode.endsWith('-ambiguous'))history.push({...closedTrace});
|
|
109
|
-
terminal={schema:'spawnfile.training.daimon-native.trial.v1',trialId:trial,wakeId:input.wakeId,agentId:launch.agent.id,model:launch.agent.model,configSha256:launch.configSha256,status:'completed',startedAt:at,completedAt:at,executionId:id,receipt,activity:{version:'noopolis.daimon.organization-runtime-activity.v2',items:[{...receipt,active:false}],executions:[]},native:{traces:history,usage:[{v:'noopolis.daimon.turn-usage.v1',agent:launch.agent.id,wake:id,engine:'codex',input:100,output:20,cache_read:40,total:120,complete:true}],toolReceipts:[],modelContexts:[{model:launch.agent.model}]},coverage:[{channel:'usage',completeness:'complete',ordering:'source'}]};
|
|
110
|
-
// Daimon CLEARS the receipt's execution id when the subject defers the delivery,
|
|
111
|
-
// so a deferred wake's frame names an execution its own receipt no longer does.
|
|
112
|
-
// A fixture that kept it made every reader test bind through a field production
|
|
113
|
-
// never supplies on this path.
|
|
114
|
-
if((mode.startsWith('blocked')||mode==='undisposed')&&(input.wakeId==='task'||mode.startsWith('blocked-always'))){terminal.status='failed';terminal.blocked='awaiting-external-input';receipt.state='accepted';receipt.deferred=true;delete receipt.execution_id;
|
|
115
|
-
if(wakes>budget)settleStop();
|
|
116
|
-
terminal.error='Native execution completed; delivery blocked awaiting external input';
|
|
117
|
-
// Production derives \`blocked\` from the deferred marker, so a delivery without one
|
|
118
|
-
// never carries it; control.ts reports the disposition it actually found and stops
|
|
119
|
-
// the host on its own failure path. A fixture pairing the two is a shape nothing emits.
|
|
120
|
-
// A reclaimed-undisposed delivery keeps its execution id; only a deferral clears it.
|
|
121
|
-
if(mode==='blocked-no-deferred'||mode==='undisposed'){delete receipt.deferred;delete terminal.blocked;receipt.execution_id=id;receipt.code='active_wake_aborted';
|
|
122
|
-
terminal.error='Native execution completed; delivery reclaimed undisposed (active_wake_aborted)';settleStop();}
|
|
123
|
-
if(mode==='blocked-failed-trace')terminal.native.traces[0].status='failed';
|
|
124
|
-
if(mode==='blocked-active')terminal.activity.executions=[{agent_id:launch.agent.id,turn_id:id}];
|
|
125
|
-
if(mode==='blocked-wrong-execution')terminal.executionId='foreign';
|
|
126
|
-
// The same observed shape — a deferred delivery over a closed trace, on a frame that
|
|
127
|
-
// names an execution nothing answers to — placed on the wakes a continued trial adds.
|
|
128
|
-
// '-unbound-continuation' binds the assignment and loses only its continuations, which
|
|
129
|
-
// is the trial that had an admissible frame and published none; '-unbound' loses every
|
|
130
|
-
// wake, so nothing in it may be selected however many frames it published.
|
|
131
|
-
if(mode==='blocked-always-unbound'||mode.startsWith('blocked-always-unbound-continuation')&&input.wakeId!=='task')terminal.executionId='foreign';
|
|
132
|
-
if(mode==='blocked-always-failed-continuation-foreign'&&input.wakeId!=='task')terminal.native.traces[0].status='failed';
|
|
133
|
-
if(mode.endsWith('-continuation-foreign')&&input.wakeId!=='task')terminal.native.traces.push({...closedTrace,turn_id:'foreign-execution',agent_id:'another-agent'});}
|
|
134
|
-
// A closed execution the broker sealed on the subject's own declared timeout: the
|
|
135
|
-
// worker labels the frame only when that execution's own usage row says so;
|
|
136
|
-
// '-unbacked' is a label that row does not support.
|
|
137
|
-
if(mode.startsWith('limit')){terminal.status='failed';receipt.state='failed';closedTrace.status='failed';closedTrace.error={message:'engine broker turn failed (limit_exceeded; limit=timeout)',stage:'engine_prompt'};
|
|
138
|
-
terminal.native.usage[0].complete=false;terminal.native.usage[0].limit_reason=mode.startsWith('limit-unlabelled')||mode==='limit-unbacked'?'none':'timeout';terminal.coverage=[{channel:'usage',completeness:'partial',ordering:'source'}];
|
|
139
|
-
terminal.error='Native execution failed: Grok broker turn limit_exceeded (limit_reason timeout)';if(!mode.startsWith('limit-unlabelled'))terminal.limit='timeout';
|
|
140
|
-
// A timeout counts only once the trace spans the configured wake ceiling (20s here);
|
|
141
|
-
// '-idle' is Daimon's idle watchdog sealing the same reason after a short stall.
|
|
142
|
-
closedTrace.started_at=new Date(Date.parse(at)-(mode==='limit-idle'?1000:20000)).toISOString();
|
|
143
|
-
// Daimon's retry shape: the failed execution ran again under a fresh id, and after that
|
|
144
|
-
// failed too the receipt is accepted, deferred and no longer names an execution.
|
|
145
|
-
if(mode==='limit-retried'){const first={...closedTrace,turn_id:crypto.randomUUID()};terminal.native.traces=[first,closedTrace];
|
|
146
|
-
terminal.native.usage=[{...terminal.native.usage[0],wake:first.turn_id},terminal.native.usage[0]];receipt.state='accepted';receipt.deferred=true;delete receipt.execution_id;
|
|
147
|
-
terminal.activity.items=[{...receipt,active:false}];}
|
|
148
|
-
settleStop();}
|
|
149
|
-
if(mode==='bad-terminal')terminal.trialId='foreign';
|
|
150
|
-
// A frame whose receipt answers for another trial's delivery, with every other
|
|
151
|
-
// identity on the frame itself matching: the delivery is the only thing that says so.
|
|
152
|
-
if(mode==='foreign-delivery')receipt.delivery_id='other-trial:'+input.wakeId;
|
|
153
|
-
res.end(JSON.stringify(terminal));return;}
|
|
154
|
-
res.end('{}');});
|
|
155
|
-
const engine=launch.agent.engine==='grok'?{engine:'grok',reasoningEffort:mode==='bad-effort'?'high':launch.agent.reasoningEffort}:{};
|
|
156
|
-
server.listen(launch.host.port,'127.0.0.1',()=>console.log(JSON.stringify({schema:'spawnfile.training.daimon-native.ready.v1',trialId:mode==='bad-ready'?'foreign':trial,configSha256:launch.configSha256,agentId:launch.agent.id,model:mode==='bad-model'?'grok-4.5':launch.agent.model,port:launch.host.port,...engine})));
|
|
157
|
-
process.on('SIGTERM',()=>{if(mode==='ignore-term')return;server.closeAllConnections();server.close(()=>process.exit(0));});
|
|
158
|
-
`;
|
|
159
|
-
//# sourceMappingURL=fixture.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/child/fixture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { GrokSlotFreshnessStore } from '../../services/index.js';
|
|
2
|
-
import { type GrokNativeLaunch, type VerifiedNativeLaunch } from '../receipt/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Grok slot isolation is proven by the root slot supervisor's receipt, which
|
|
5
|
-
* the worker already verified with Daimon's verifier. The parent re-binds it
|
|
6
|
-
* without Daimon and adds the caller's protected paths: each one, every launch
|
|
7
|
-
* evaluator root and the control root must be an exact denied canary. The two
|
|
8
|
-
* digest-bound subject roots are the one exemption, for the reason
|
|
9
|
-
* `grokSubjectRoots` states; a protected path inside them is still required. No local
|
|
10
|
-
* `codex sandbox` process runs and no model is called. The receipt must carry
|
|
11
|
-
* this trial's recycle nonce and a generation above the last one the
|
|
12
|
-
* evaluator's persisted freshness state accepted; acceptance advances that state.
|
|
13
|
-
*/
|
|
14
|
-
export declare function verifyChildGrokSlot(launch: VerifiedNativeLaunch & GrokNativeLaunch, trialId: string, protectedPaths: readonly string[], slots: GrokSlotFreshnessStore | undefined): Promise<void>;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { lstat, realpath, writeFile } from 'node:fs/promises';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { grokSubjectRoots, nativeTrialArtifactsRoot, parseGrokBrokerReceipt, readPrivateFile, requiredGrokEvaluatorPaths } from '../receipt/index.js';
|
|
4
|
-
/**
|
|
5
|
-
* Grok slot isolation is proven by the root slot supervisor's receipt, which
|
|
6
|
-
* the worker already verified with Daimon's verifier. The parent re-binds it
|
|
7
|
-
* without Daimon and adds the caller's protected paths: each one, every launch
|
|
8
|
-
* evaluator root and the control root must be an exact denied canary. The two
|
|
9
|
-
* digest-bound subject roots are the one exemption, for the reason
|
|
10
|
-
* `grokSubjectRoots` states; a protected path inside them is still required. No local
|
|
11
|
-
* `codex sandbox` process runs and no model is called. The receipt must carry
|
|
12
|
-
* this trial's recycle nonce and a generation above the last one the
|
|
13
|
-
* evaluator's persisted freshness state accepted; acceptance advances that state.
|
|
14
|
-
*/
|
|
15
|
-
export async function verifyChildGrokSlot(launch, trialId, protectedPaths, slots) {
|
|
16
|
-
try {
|
|
17
|
-
if (!slots)
|
|
18
|
-
throw new Error('Grok child execution requires the evaluator slot freshness store');
|
|
19
|
-
// Exempt the digest-bound subject roots BEFORE validating shapes: the evaluator reaches its own
|
|
20
|
-
// trial workspace and runtime home through symlinks into the slot, and a symlink is neither a
|
|
21
|
-
// file nor a directory to `lstat`. Everything the receipt must deny is still validated below.
|
|
22
|
-
const subject = grokSubjectRoots(launch);
|
|
23
|
-
// Match subject roots by resolved target, not by spelling: the evaluator's own trial workspace and
|
|
24
|
-
// runtime home are symlinks into the slot, while the launch names the slot paths the digest binds.
|
|
25
|
-
const resolved = new Set(await Promise.all(subject.map(async (root) => realpath(root).catch(() => root))));
|
|
26
|
-
const exempt = await Promise.all(protectedPaths.map(async (path) => subject.includes(path) || resolved.has(await realpath(path).catch(() => path))));
|
|
27
|
-
const required = protectedPaths.filter((_, index) => !exempt[index]);
|
|
28
|
-
for (const path of required) {
|
|
29
|
-
const entry = await lstat(path);
|
|
30
|
-
if (!entry.isDirectory() && !entry.isFile())
|
|
31
|
-
throw new Error(`Unsupported protected native path: ${path}`);
|
|
32
|
-
}
|
|
33
|
-
const artifacts = nativeTrialArtifactsRoot(launch, trialId);
|
|
34
|
-
const receipt = parseGrokBrokerReceipt(JSON.parse(await readPrivateFile(join(artifacts, 'sandbox-projection.json'), 1_048_576)), launch, trialId, required);
|
|
35
|
-
await slots.accept(receipt.projection.slot, receipt.slotPreflight);
|
|
36
|
-
await writeFile(join(artifacts, 'child-sandbox-preflight.json'), JSON.stringify({ schema: 'spawnfile.training.daimon-native.child-grok-slot-preflight.v1',
|
|
37
|
-
trialId, configSha256: launch.configSha256, projectionSha256: receipt.projectionSha256, slot: receipt.projection.slot,
|
|
38
|
-
workerUid: receipt.projection.workerUid, slotPreflightCreatedAt: receipt.slotPreflight.created_at, slotGeneration: receipt.slotPreflight.generation, modelCallsMade: 0, localSandboxProbe: false,
|
|
39
|
-
evaluatorPathsDenied: [...new Set([...requiredGrokEvaluatorPaths(launch), ...required])].sort() }), { flag: 'wx', mode: 0o600 });
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
// Name the underlying refusal: a wrapped cause is invisible in the published failure record.
|
|
43
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
44
|
-
throw new Error(`Grok broker slot preflight failed before cognition: ${reason}`, { cause: error });
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=grok.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/child/grok.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { startOwnedChild, bindTerminalEvidence } from './lifecycle.js';
|
|
2
|
-
export { nativeChildArguments, nativeChildEnvironment } from './arguments.js';
|
|
3
|
-
export type { NativeChildExecution } from './types.js';
|
|
4
|
-
export { createGrokSlotFreshnessStore } from '../../services/index.js';
|
|
5
|
-
export type { GrokSlotFreshness, GrokSlotFreshnessOptions, GrokSlotFreshnessStore } from '../../services/index.js';
|
|
6
|
-
export { redactNativeDiagnostic, redactedMarker, redactedPathMarker, withholdDetectors } from './diagnostics.js';
|
|
7
|
-
export type { WithholdDetector } from './diagnostics.js';
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { startOwnedChild, bindTerminalEvidence } from './lifecycle.js';
|
|
2
|
-
export { nativeChildArguments, nativeChildEnvironment } from './arguments.js';
|
|
3
|
-
export { createGrokSlotFreshnessStore } from '../../services/index.js';
|
|
4
|
-
export { redactNativeDiagnostic, redactedMarker, redactedPathMarker, withholdDetectors } from './diagnostics.js';
|
|
5
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/child/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { TerminalEvidenceMissing } from '../../../../../training/index.js';
|
|
2
|
-
import { type VerifiedNativeLaunch } from '../receipt/index.js';
|
|
3
|
-
import { type TerminalEvidence } from '../worker/index.js';
|
|
4
|
-
import { type NativeExecutionHandle } from '../transport/index.js';
|
|
5
|
-
import { type TransportDeliverySource } from '../worker/index.js';
|
|
6
|
-
import type { NativeChildExecution } from './types.js';
|
|
7
|
-
/** One fresh worker process in the caller's existing container; no Docker or remote proof. */
|
|
8
|
-
export declare function startOwnedChild(execution: NativeChildExecution, launch: VerifiedNativeLaunch, trialId: string, timeoutMs: number, signal?: AbortSignal, startupMs?: number, protectedPaths?: readonly string[]): Promise<NativeExecutionHandle>;
|
|
9
|
-
/** One delivery's place in the ledger: which wake it was, and why its frame cannot be scored. */
|
|
10
|
-
interface WakeEvidence {
|
|
11
|
-
wakeId: string;
|
|
12
|
-
source?: TransportDeliverySource;
|
|
13
|
-
unevidenced?: TerminalEvidenceMissing;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Whether ONE wake's frame can be scored from — never whether something is still
|
|
17
|
-
* spending, and never a verdict about the trial around it.
|
|
18
|
-
*
|
|
19
|
-
* A frame from another trial, agent, wake or config is not this trial's evidence,
|
|
20
|
-
* and that check lives here rather than in the closure predicate. The receipt has
|
|
21
|
-
* to name this trial's own delivery too: the frame's identity and the delivery the
|
|
22
|
-
* runtime answered for are one delivery, or the frame is accounting for somebody
|
|
23
|
-
* else's wake. Those are attribution failures, so they `seal` the whole trial:
|
|
24
|
-
* nothing this runtime published can be scored past one.
|
|
25
|
-
*
|
|
26
|
-
* A trial whose subject deferred runs its continuations as further wakes, and each
|
|
27
|
-
* one closes an execution of its own. The trace that answers for THIS frame is the
|
|
28
|
-
* one the frame names; the rest are this same trial's earlier, already-closed
|
|
29
|
-
* wakes, and counting them was refusing a healthy run for the arity of its own
|
|
30
|
-
* history. Nothing is admitted by position: an unnamed execution resolves to no
|
|
31
|
-
* trace at all, and that is this wake's own fault rather than the trial's.
|
|
32
|
-
*
|
|
33
|
-
* An identity conflict still throws, because it must fail the turn rather than
|
|
34
|
-
* pass as verified work; it only records what it was first. Two traces answering
|
|
35
|
-
* to the named execution is its own word: the frame is not unbound, it is
|
|
36
|
-
* unreadable, and that distinction is what sends the next look at it upstream
|
|
37
|
-
* instead of here.
|
|
38
|
-
*/
|
|
39
|
-
export declare function bindTerminalEvidence(wake: WakeEvidence, value: TerminalEvidence, launch: VerifiedNativeLaunch, trialId: string, seal: (fault: TerminalEvidenceMissing) => void, wakeTimeoutMs?: number): void;
|
|
40
|
-
export {};
|