spawnfile 0.1.25 → 0.1.27
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 +2 -2
- package/dist/auth/trainingAuth.js +1 -1
- package/dist/cli/runCli.d.ts +2 -2
- package/dist/cli/runCli.js +2 -2
- package/dist/cli/trainCommand.js +4 -5
- package/dist/cli/{paideiaDelegation.d.ts → trainingExecution.d.ts} +3 -4
- package/dist/cli/trainingExecution.js +151 -0
- package/dist/compiler/containerDaimonGrokWorkerRender.d.ts +2 -2
- package/dist/compiler/containerDaimonGrokWorkerRender.js +3 -2
- package/dist/compiler/containerDaimonUidEntrypointRender.js +4 -3
- package/dist/compiler/containerPackageOverrides.d.ts +1 -1
- package/dist/compiler/training/broker/declaration.d.ts +2 -2
- package/dist/compiler/training/broker/declaration.js +3 -2
- package/dist/compiler/training/broker/entrypoint.d.ts +3 -3
- package/dist/compiler/training/broker/entrypoint.js +7 -6
- package/dist/compiler/training/broker/evaluatorSecrets.js +4 -2
- package/dist/compiler/training/broker/paths.d.ts +15 -15
- package/dist/compiler/training/broker/paths.js +23 -23
- package/dist/compiler/training/broker/projection.d.ts +4 -4
- package/dist/compiler/training/broker/projection.js +9 -7
- package/dist/compiler/training/broker/provisioning.d.ts +1 -1
- package/dist/compiler/training/broker/provisioning.js +3 -3
- package/dist/compiler/training/broker/registration.d.ts +1 -1
- package/dist/compiler/training/broker/registration.js +1 -1
- package/dist/compiler/training/broker/supervisor.d.ts +1 -1
- package/dist/compiler/training/container/contract.js +2 -1
- package/dist/compiler/training/container/evaluators.d.ts +3 -3
- package/dist/compiler/training/container/evaluators.js +6 -6
- package/dist/compiler/training/container/launch.js +15 -7
- package/dist/compiler/training/container/security.js +3 -3
- package/dist/compiler/training/container/subjectIsolation.js +2 -1
- package/dist/compiler/training/execution.d.ts +8 -10
- package/dist/compiler/training/execution.js +1 -1
- package/dist/compiler/training/moments.js +2 -2
- package/dist/compiler/training/plan/contract.d.ts +7 -7
- package/dist/compiler/training/plan/load.js +2 -0
- package/dist/compiler/training/preparation/assets/Dockerfile +8 -17
- package/dist/compiler/training/preparation/assets/package-lock.json +2012 -316
- package/dist/compiler/training/preparation/broker.js +2 -1
- package/dist/compiler/training/preparation/contract.d.ts +5 -9
- package/dist/compiler/training/preparation/contract.js +4 -3
- package/dist/compiler/training/preparation/image.js +2 -4
- package/dist/compiler/training/preparation/prepare.js +3 -3
- package/dist/compiler/training/repair/compatibility.js +17 -6
- package/dist/compiler/training/repair/contract.d.ts +14 -22
- package/dist/compiler/training/repair/contract.js +3 -2
- package/dist/compiler/training/repair/prepare.d.ts +5 -9
- package/dist/compiler/training/repair/prepare.js +10 -4
- package/dist/compiler/training/repair/witness.d.ts +4 -8
- package/dist/compiler/training/repair/witness.js +16 -2
- package/dist/compiler/training/rewind/contract.d.ts +9 -9
- package/dist/compiler/training/subjectDeclaration.d.ts +2 -1
- package/dist/compiler/training/subjectDeclaration.js +4 -2
- package/dist/compiler/training/subjectLease.d.ts +9 -8
- package/dist/compiler/training/subjectLease.js +17 -13
- package/dist/distribution/imageRuntimeAuth.js +33 -24
- package/dist/manifest/executionSchemas.d.ts +9 -9
- package/dist/manifest/mcpSchemas.d.ts +3 -3
- package/dist/manifest/schemas.d.ts +71 -71
- package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
- package/dist/manifest/teamNetworkAuthSchemas.d.ts +1 -1
- package/dist/manifest/teamNetworkSchemas.d.ts +2 -2
- package/dist/manifest/teamNetworkServerSchemas.d.ts +2 -2
- package/dist/manifest/trainingDataSchemas.d.ts +2 -2
- package/dist/runtime/codex-exec/training/adapter.d.ts +13 -0
- package/dist/runtime/codex-exec/training/adapter.js +101 -0
- package/dist/runtime/codex-exec/training/adapter.js.map +1 -0
- package/dist/runtime/codex-exec/training/environment.d.ts +3 -0
- package/dist/runtime/codex-exec/training/environment.js +26 -0
- package/dist/runtime/codex-exec/training/environment.js.map +1 -0
- package/dist/runtime/codex-exec/training/index.d.ts +2 -0
- package/dist/runtime/codex-exec/training/index.js +3 -0
- package/dist/runtime/codex-exec/training/index.js.map +1 -0
- package/dist/runtime/codex-exec/training/protocol.d.ts +15 -0
- package/dist/runtime/codex-exec/training/protocol.js +102 -0
- package/dist/runtime/codex-exec/training/protocol.js.map +1 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/index.d.ts +1 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/index.js +2 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/index.js.map +1 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.d.ts +17 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.js +80 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/protocol.js.map +1 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.d.ts +12 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.js +125 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/provider.js.map +1 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.d.ts +6 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.js +219 -0
- package/dist/runtime/codex-exec/training/providers/codex-subscription/strict-schema.js.map +1 -0
- package/dist/runtime/container.js +1 -1
- package/dist/runtime/containerPackageOverrides.d.ts +2 -2
- package/dist/runtime/containerPackageOverrides.js +1 -1
- package/dist/runtime/daimon/adapter.js +9 -9
- package/dist/runtime/daimon/config.d.ts +2 -1
- package/dist/runtime/daimon/config.js +25 -25
- package/dist/runtime/daimon/contract-manifest.json +1 -1
- package/dist/runtime/daimon/contract-manifest.sha256 +1 -1
- package/dist/runtime/daimon/contractManifest.d.ts +206 -202
- package/dist/runtime/daimon/contractManifest.js +48 -145
- package/dist/runtime/daimon/contractManifest.js.map +1 -0
- package/dist/runtime/daimon/contractManifestSchema.d.ts +1455 -0
- package/dist/runtime/daimon/contractManifestSchema.js +19 -0
- package/dist/runtime/daimon/contractManifestSchema.js.map +1 -0
- package/dist/runtime/daimon/engineDescriptorSchema.d.ts +1826 -0
- package/dist/runtime/daimon/engineDescriptorSchema.js +107 -0
- package/dist/runtime/daimon/engineDescriptorSchema.js.map +1 -0
- package/dist/runtime/daimon/engineDescriptors.generated.d.ts +477 -0
- package/dist/runtime/daimon/engineDescriptors.generated.js +5 -0
- package/dist/runtime/daimon/engineDescriptors.generated.js.map +1 -0
- package/dist/runtime/daimon/engines.d.ts +664 -0
- package/dist/runtime/daimon/engines.js +25 -0
- package/dist/runtime/daimon/engines.js.map +1 -0
- package/dist/runtime/daimon/grokModel.d.ts +2 -1
- package/dist/runtime/daimon/grokModel.js +10 -7
- package/dist/runtime/daimon/grokSkillsSupport.js +2 -1
- package/dist/runtime/daimon/grokTurnLimits.js +3 -3
- package/dist/runtime/daimon/grokWorkerContract.d.ts +2 -2
- package/dist/runtime/daimon/grokWorkerContract.js +10 -9
- package/dist/runtime/daimon/index.d.ts +4 -0
- package/dist/runtime/daimon/index.js +5 -0
- package/dist/runtime/daimon/index.js.map +1 -0
- package/dist/runtime/daimon/packageName.d.ts +2 -0
- package/dist/runtime/daimon/packageName.js +3 -0
- package/dist/runtime/daimon/packageName.js.map +1 -0
- package/dist/runtime/daimon/runAuth.d.ts +4 -4
- package/dist/runtime/daimon/runAuth.js +71 -53
- package/dist/runtime/daimon/training/index.d.ts +2 -0
- package/dist/runtime/daimon/training/index.js +7 -0
- package/dist/runtime/daimon/training/index.js.map +1 -0
- package/dist/runtime/daimon/training/legacy/adapter.d.ts +11 -0
- package/dist/runtime/daimon/training/legacy/adapter.js +175 -0
- package/dist/runtime/daimon/training/legacy/adapter.js.map +1 -0
- package/dist/runtime/daimon/training/legacy/index.d.ts +2 -0
- package/dist/runtime/daimon/training/legacy/index.js +3 -0
- package/dist/runtime/daimon/training/legacy/index.js.map +1 -0
- package/dist/runtime/daimon/training/legacy/public.d.ts +49 -0
- package/dist/runtime/daimon/training/legacy/public.js +16 -0
- package/dist/runtime/daimon/training/legacy/public.js.map +1 -0
- package/dist/runtime/daimon/training/native/adapter.d.ts +18 -0
- package/dist/runtime/daimon/training/native/adapter.js +231 -0
- package/dist/runtime/daimon/training/native/adapter.js.map +1 -0
- package/dist/runtime/daimon/training/native/admission.d.ts +7 -0
- package/dist/runtime/daimon/training/native/admission.js +52 -0
- package/dist/runtime/daimon/training/native/admission.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/arguments.d.ts +16 -0
- package/dist/runtime/daimon/training/native/child/arguments.js +69 -0
- package/dist/runtime/daimon/training/native/child/arguments.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/deferred-trial.d.ts +24 -0
- package/dist/runtime/daimon/training/native/child/deferred-trial.js +63 -0
- package/dist/runtime/daimon/training/native/child/deferred-trial.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/diagnostics.d.ts +58 -0
- package/dist/runtime/daimon/training/native/child/diagnostics.js +215 -0
- package/dist/runtime/daimon/training/native/child/diagnostics.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/fixture.d.ts +16 -0
- package/dist/runtime/daimon/training/native/child/fixture.js +157 -0
- package/dist/runtime/daimon/training/native/child/fixture.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/grok.d.ts +14 -0
- package/dist/runtime/daimon/training/native/child/grok.js +47 -0
- package/dist/runtime/daimon/training/native/child/grok.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/index.d.ts +7 -0
- package/dist/runtime/daimon/training/native/child/index.js +5 -0
- package/dist/runtime/daimon/training/native/child/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/lifecycle.d.ts +40 -0
- package/dist/runtime/daimon/training/native/child/lifecycle.js +391 -0
- package/dist/runtime/daimon/training/native/child/lifecycle.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/probe.d.ts +2 -0
- package/dist/runtime/daimon/training/native/child/probe.js +11 -0
- package/dist/runtime/daimon/training/native/child/probe.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/sandbox.d.ts +4 -0
- package/dist/runtime/daimon/training/native/child/sandbox.js +76 -0
- package/dist/runtime/daimon/training/native/child/sandbox.js.map +1 -0
- package/dist/runtime/daimon/training/native/child/types.d.ts +15 -0
- package/dist/runtime/daimon/training/native/child/types.js +2 -0
- package/dist/runtime/daimon/training/native/child/types.js.map +1 -0
- package/dist/runtime/daimon/training/native/container/docker.d.ts +29 -0
- package/dist/runtime/daimon/training/native/container/docker.js +105 -0
- package/dist/runtime/daimon/training/native/container/docker.js.map +1 -0
- package/dist/runtime/daimon/training/native/container/grok-slot.d.ts +22 -0
- package/dist/runtime/daimon/training/native/container/grok-slot.js +38 -0
- package/dist/runtime/daimon/training/native/container/grok-slot.js.map +1 -0
- package/dist/runtime/daimon/training/native/container/index.d.ts +6 -0
- package/dist/runtime/daimon/training/native/container/index.js +6 -0
- package/dist/runtime/daimon/training/native/container/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/container/lifecycle.d.ts +8 -0
- package/dist/runtime/daimon/training/native/container/lifecycle.js +110 -0
- package/dist/runtime/daimon/training/native/container/lifecycle.js.map +1 -0
- package/dist/runtime/daimon/training/native/container/manifest.d.ts +17 -0
- package/dist/runtime/daimon/training/native/container/manifest.js +144 -0
- package/dist/runtime/daimon/training/native/container/manifest.js.map +1 -0
- package/dist/runtime/daimon/training/native/container/native-preflight.d.ts +8 -0
- package/dist/runtime/daimon/training/native/container/native-preflight.js +40 -0
- package/dist/runtime/daimon/training/native/container/native-preflight.js.map +1 -0
- package/dist/runtime/daimon/training/native/container/preflight.d.ts +15 -0
- package/dist/runtime/daimon/training/native/container/preflight.js +79 -0
- package/dist/runtime/daimon/training/native/container/preflight.js.map +1 -0
- package/dist/runtime/daimon/training/native/container/slot.d.ts +4 -0
- package/dist/runtime/daimon/training/native/container/slot.js +58 -0
- package/dist/runtime/daimon/training/native/container/slot.js.map +1 -0
- package/dist/runtime/daimon/training/native/external.d.ts +37 -0
- package/dist/runtime/daimon/training/native/external.js +75 -0
- package/dist/runtime/daimon/training/native/external.js.map +1 -0
- package/dist/runtime/daimon/training/native/grants/authority.d.ts +36 -0
- package/dist/runtime/daimon/training/native/grants/authority.js +49 -0
- package/dist/runtime/daimon/training/native/grants/authority.js.map +1 -0
- package/dist/runtime/daimon/training/native/grants/index.d.ts +2 -0
- package/dist/runtime/daimon/training/native/grants/index.js +3 -0
- package/dist/runtime/daimon/training/native/grants/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/grants/pins.d.ts +30 -0
- package/dist/runtime/daimon/training/native/grants/pins.js +20 -0
- package/dist/runtime/daimon/training/native/grants/pins.js.map +1 -0
- package/dist/runtime/daimon/training/native/grants/test-socket.d.ts +6 -0
- package/dist/runtime/daimon/training/native/grants/test-socket.js +35 -0
- package/dist/runtime/daimon/training/native/grants/test-socket.js.map +1 -0
- package/dist/runtime/daimon/training/native/grok-fixtures.d.ts +34 -0
- package/dist/runtime/daimon/training/native/grok-fixtures.js +179 -0
- package/dist/runtime/daimon/training/native/grok-fixtures.js.map +1 -0
- package/dist/runtime/daimon/training/native/index.d.ts +38 -0
- package/dist/runtime/daimon/training/native/index.js +27 -0
- package/dist/runtime/daimon/training/native/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/live-checkout.d.ts +2 -0
- package/dist/runtime/daimon/training/native/live-checkout.js +15 -0
- package/dist/runtime/daimon/training/native/live-checkout.js.map +1 -0
- package/dist/runtime/daimon/training/native/observations.d.ts +51 -0
- package/dist/runtime/daimon/training/native/observations.js +217 -0
- package/dist/runtime/daimon/training/native/observations.js.map +1 -0
- package/dist/runtime/daimon/training/native/outcome.d.ts +13 -0
- package/dist/runtime/daimon/training/native/outcome.js +37 -0
- package/dist/runtime/daimon/training/native/outcome.js.map +1 -0
- package/dist/runtime/daimon/training/native/preparation/engine-config.d.ts +21 -0
- package/dist/runtime/daimon/training/native/preparation/engine-config.js +30 -0
- package/dist/runtime/daimon/training/native/preparation/engine-config.js.map +1 -0
- package/dist/runtime/daimon/training/native/preparation/fixtures.d.ts +17 -0
- package/dist/runtime/daimon/training/native/preparation/fixtures.js +50 -0
- package/dist/runtime/daimon/training/native/preparation/fixtures.js.map +1 -0
- package/dist/runtime/daimon/training/native/preparation/index.d.ts +7 -0
- package/dist/runtime/daimon/training/native/preparation/index.js +5 -0
- package/dist/runtime/daimon/training/native/preparation/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/preparation/layout.d.ts +66 -0
- package/dist/runtime/daimon/training/native/preparation/layout.js +87 -0
- package/dist/runtime/daimon/training/native/preparation/layout.js.map +1 -0
- package/dist/runtime/daimon/training/native/preparation/subject.d.ts +14 -0
- package/dist/runtime/daimon/training/native/preparation/subject.js +67 -0
- package/dist/runtime/daimon/training/native/preparation/subject.js.map +1 -0
- package/dist/runtime/daimon/training/native/preparation/types.d.ts +69 -0
- package/dist/runtime/daimon/training/native/preparation/types.js +2 -0
- package/dist/runtime/daimon/training/native/preparation/types.js.map +1 -0
- package/dist/runtime/daimon/training/native/receipt/artifacts.d.ts +25 -0
- package/dist/runtime/daimon/training/native/receipt/artifacts.js +32 -0
- package/dist/runtime/daimon/training/native/receipt/artifacts.js.map +1 -0
- package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.d.ts +129 -0
- package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.js +45 -0
- package/dist/runtime/daimon/training/native/receipt/grok-clocked-pins.js.map +1 -0
- package/dist/runtime/daimon/training/native/receipt/grok.d.ts +246 -0
- package/dist/runtime/daimon/training/native/receipt/grok.js +195 -0
- package/dist/runtime/daimon/training/native/receipt/grok.js.map +1 -0
- package/dist/runtime/daimon/training/native/receipt/index.d.ts +10 -0
- package/dist/runtime/daimon/training/native/receipt/index.js +7 -0
- package/dist/runtime/daimon/training/native/receipt/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/receipt/paths.d.ts +3 -0
- package/dist/runtime/daimon/training/native/receipt/paths.js +18 -0
- package/dist/runtime/daimon/training/native/receipt/paths.js.map +1 -0
- package/dist/runtime/daimon/training/native/receipt/sandbox.d.ts +42 -0
- package/dist/runtime/daimon/training/native/receipt/sandbox.js +35 -0
- package/dist/runtime/daimon/training/native/receipt/sandbox.js.map +1 -0
- package/dist/runtime/daimon/training/native/receipt/schema.d.ts +486 -0
- package/dist/runtime/daimon/training/native/receipt/schema.js +138 -0
- package/dist/runtime/daimon/training/native/receipt/schema.js.map +1 -0
- package/dist/runtime/daimon/training/native/receipt/task-clock.d.ts +19 -0
- package/dist/runtime/daimon/training/native/receipt/task-clock.js +49 -0
- package/dist/runtime/daimon/training/native/receipt/task-clock.js.map +1 -0
- package/dist/runtime/daimon/training/native/sealed-usage.d.ts +218 -0
- package/dist/runtime/daimon/training/native/sealed-usage.js +261 -0
- package/dist/runtime/daimon/training/native/sealed-usage.js.map +1 -0
- package/dist/runtime/daimon/training/native/test-fixtures.d.ts +27 -0
- package/dist/runtime/daimon/training/native/test-fixtures.js +158 -0
- package/dist/runtime/daimon/training/native/test-fixtures.js.map +1 -0
- package/dist/runtime/daimon/training/native/transcript.d.ts +96 -0
- package/dist/runtime/daimon/training/native/transcript.js +239 -0
- package/dist/runtime/daimon/training/native/transcript.js.map +1 -0
- package/dist/runtime/daimon/training/native/transport/delivery.d.ts +27 -0
- package/dist/runtime/daimon/training/native/transport/delivery.js +98 -0
- package/dist/runtime/daimon/training/native/transport/delivery.js.map +1 -0
- package/dist/runtime/daimon/training/native/transport/http.d.ts +3 -0
- package/dist/runtime/daimon/training/native/transport/http.js +81 -0
- package/dist/runtime/daimon/training/native/transport/http.js.map +1 -0
- package/dist/runtime/daimon/training/native/transport/index.d.ts +4 -0
- package/dist/runtime/daimon/training/native/transport/index.js +3 -0
- package/dist/runtime/daimon/training/native/transport/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/transport/types.d.ts +15 -0
- package/dist/runtime/daimon/training/native/transport/types.js +2 -0
- package/dist/runtime/daimon/training/native/transport/types.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/cli.d.ts +1 -0
- package/dist/runtime/daimon/training/native/worker/cli.js +17 -0
- package/dist/runtime/daimon/training/native/worker/cli.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/control.d.ts +20 -0
- package/dist/runtime/daimon/training/native/worker/control.js +266 -0
- package/dist/runtime/daimon/training/native/worker/control.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/deliveries.d.ts +38 -0
- package/dist/runtime/daimon/training/native/worker/deliveries.js +91 -0
- package/dist/runtime/daimon/training/native/worker/deliveries.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/evidence/collect.d.ts +54 -0
- package/dist/runtime/daimon/training/native/worker/evidence/collect.js +278 -0
- package/dist/runtime/daimon/training/native/worker/evidence/collect.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/evidence/execution.d.ts +102 -0
- package/dist/runtime/daimon/training/native/worker/evidence/execution.js +191 -0
- package/dist/runtime/daimon/training/native/worker/evidence/execution.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/evidence/index.d.ts +3 -0
- package/dist/runtime/daimon/training/native/worker/evidence/index.js +4 -0
- package/dist/runtime/daimon/training/native/worker/evidence/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/evidence/io.d.ts +20 -0
- package/dist/runtime/daimon/training/native/worker/evidence/io.js +130 -0
- package/dist/runtime/daimon/training/native/worker/evidence/io.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/evidence/seal.d.ts +3 -0
- package/dist/runtime/daimon/training/native/worker/evidence/seal.js +67 -0
- package/dist/runtime/daimon/training/native/worker/evidence/seal.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/index.d.ts +11 -0
- package/dist/runtime/daimon/training/native/worker/index.js +8 -0
- package/dist/runtime/daimon/training/native/worker/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/profile.d.ts +23 -0
- package/dist/runtime/daimon/training/native/worker/profile.js +149 -0
- package/dist/runtime/daimon/training/native/worker/profile.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/public.d.ts +41 -0
- package/dist/runtime/daimon/training/native/worker/public.js +22 -0
- package/dist/runtime/daimon/training/native/worker/public.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/sandbox.d.ts +4 -0
- package/dist/runtime/daimon/training/native/worker/sandbox.js +52 -0
- package/dist/runtime/daimon/training/native/worker/sandbox.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/server.d.ts +4 -0
- package/dist/runtime/daimon/training/native/worker/server.js +102 -0
- package/dist/runtime/daimon/training/native/worker/server.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/types.d.ts +318 -0
- package/dist/runtime/daimon/training/native/worker/types.js +2 -0
- package/dist/runtime/daimon/training/native/worker/types.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/index.d.ts +4 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/index.js +4 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/index.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/source.d.ts +3 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/source.js +16 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/source.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.d.ts +4 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.js +52 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/terminal.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.d.ts +21 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.js +198 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/transport.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/types.d.ts +91 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/types.js +2 -0
- package/dist/runtime/daimon/training/native/worker/wake-delivery/types.js.map +1 -0
- package/dist/runtime/daimon/training/native/worker/worker.d.ts +1 -0
- package/dist/runtime/daimon/training/native/worker/worker.js +103 -0
- package/dist/runtime/daimon/training/native/worker/worker.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-broker/broker.d.ts +20 -0
- package/dist/runtime/daimon/training/providers/grok-broker/broker.js +55 -0
- package/dist/runtime/daimon/training/providers/grok-broker/broker.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.d.ts +15 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.js +29 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-fixtures.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-home.d.ts +16 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-home.js +60 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-home.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.d.ts +81 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.js +221 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-pool.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.d.ts +31 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.js +78 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grant-releases.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grants.d.ts +63 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grants.js +20 -0
- package/dist/runtime/daimon/training/providers/grok-broker/grants.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-broker/index.d.ts +3 -0
- package/dist/runtime/daimon/training/providers/grok-broker/index.js +4 -0
- package/dist/runtime/daimon/training/providers/grok-broker/index.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.d.ts +21 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.js +81 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/cli.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/index.d.ts +4 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/index.js +5 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/index.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.d.ts +26 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.js +102 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/protocol.js.map +1 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/provider.d.ts +9 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/provider.js +38 -0
- package/dist/runtime/daimon/training/providers/grok-subscription/provider.js.map +1 -0
- package/dist/runtime/daimon/training/services/freshness.d.ts +15 -0
- package/dist/runtime/daimon/training/services/freshness.js +19 -0
- package/dist/runtime/daimon/training/services/freshness.js.map +1 -0
- package/dist/runtime/daimon/training/services/index.d.ts +3 -0
- package/dist/runtime/daimon/training/services/index.js +3 -0
- package/dist/runtime/daimon/training/services/index.js.map +1 -0
- package/dist/runtime/daimon/training/services/slot-freshness.d.ts +34 -0
- package/dist/runtime/daimon/training/services/slot-freshness.js +178 -0
- package/dist/runtime/daimon/training/services/slot-freshness.js.map +1 -0
- package/dist/runtime/daimon/wakeMoments.js +1 -0
- package/dist/runtime/daimon/wakeMoments.js.map +1 -0
- package/dist/runtime/pi/appPreludeSource.js +3 -2
- package/dist/runtime/pi/appTemplate.d.ts +1 -1
- package/dist/runtime/pi/appTemplate.js +2 -1
- package/dist/runtime/registry.d.ts +6 -0
- package/dist/runtime/registry.js +2 -0
- package/dist/runtime/trainingCli.d.ts +5 -0
- package/dist/runtime/trainingCli.js +23 -0
- package/dist/runtime/trainingGraderProviders.d.ts +4 -0
- package/dist/runtime/trainingGraderProviders.js +55 -0
- package/dist/runtime/trainingProviders.d.ts +4 -0
- package/dist/runtime/trainingProviders.js +89 -0
- package/dist/runtime/trainingSubjects.d.ts +129 -0
- package/dist/runtime/trainingSubjects.js +32 -0
- package/dist/shared/daimonCodexDocker.js +9 -10
- package/dist/shared/errors.js +1 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +1 -0
- package/dist/shared/trainingLegacy/index.d.ts +5 -0
- package/dist/shared/trainingLegacy/index.js +6 -0
- package/dist/shared/trainingLegacy/index.js.map +1 -0
- package/dist/shared/trainingLegacy/trainingLegacyEnvironment.d.ts +6 -0
- package/dist/shared/trainingLegacy/trainingLegacyEnvironment.js +40 -0
- package/dist/shared/trainingLegacy/trainingLegacyEnvironment.js.map +1 -0
- package/dist/shared/trainingLegacy/trainingLegacyFiles.d.ts +4 -0
- package/dist/shared/trainingLegacy/trainingLegacyFiles.js +34 -0
- package/dist/shared/trainingLegacy/trainingLegacyFiles.js.map +1 -0
- package/dist/shared/trainingLegacy/trainingLegacyGraderProviders.d.ts +5 -0
- package/dist/shared/trainingLegacy/trainingLegacyGraderProviders.js +6 -0
- package/dist/shared/trainingLegacy/trainingLegacyGraderProviders.js.map +1 -0
- package/dist/shared/trainingLegacy/trainingLegacyHashDomains.d.ts +39 -0
- package/dist/shared/trainingLegacy/trainingLegacyHashDomains.js +41 -0
- package/dist/shared/trainingLegacy/trainingLegacyHashDomains.js.map +1 -0
- package/dist/shared/trainingLegacy/trainingLegacyWire.d.ts +15 -0
- package/dist/shared/trainingLegacy/trainingLegacyWire.js +21 -0
- package/dist/shared/trainingLegacy/trainingLegacyWire.js.map +1 -0
- package/dist/shared/trainingLegacy/trainingLegacyWireAliases.json +90 -0
- package/dist/target/contracts.d.ts +2 -2
- package/dist/training/candidates/authored.d.ts +3 -0
- package/dist/training/candidates/authored.js +27 -0
- package/dist/training/candidates/authored.js.map +1 -0
- package/dist/training/candidates/derive.d.ts +3 -0
- package/dist/training/candidates/derive.js +66 -0
- package/dist/training/candidates/derive.js.map +1 -0
- package/dist/training/candidates/filesystem.d.ts +7 -0
- package/dist/training/candidates/filesystem.js +41 -0
- package/dist/training/candidates/filesystem.js.map +1 -0
- package/dist/training/candidates/headings.d.ts +9 -0
- package/dist/training/candidates/headings.js +47 -0
- package/dist/training/candidates/headings.js.map +1 -0
- package/dist/training/candidates/identity.d.ts +6 -0
- package/dist/training/candidates/identity.js +29 -0
- package/dist/training/candidates/identity.js.map +1 -0
- package/dist/training/candidates/index.d.ts +6 -0
- package/dist/training/candidates/index.js +6 -0
- package/dist/training/candidates/index.js.map +1 -0
- package/dist/training/candidates/materialize.d.ts +2 -0
- package/dist/training/candidates/materialize.js +39 -0
- package/dist/training/candidates/materialize.js.map +1 -0
- package/dist/training/candidates/snapshot.d.ts +5 -0
- package/dist/training/candidates/snapshot.js +22 -0
- package/dist/training/candidates/snapshot.js.map +1 -0
- package/dist/training/candidates/types.d.ts +41 -0
- package/dist/training/candidates/types.js +2 -0
- package/dist/training/candidates/types.js.map +1 -0
- package/dist/training/candidates/validation.d.ts +4 -0
- package/dist/training/candidates/validation.js +89 -0
- package/dist/training/candidates/validation.js.map +1 -0
- package/dist/training/capture/index.d.ts +2 -0
- package/dist/training/capture/index.js +2 -0
- package/dist/training/capture/index.js.map +1 -0
- package/dist/training/capture/trace.d.ts +16 -0
- package/dist/training/capture/trace.js +74 -0
- package/dist/training/capture/trace.js.map +1 -0
- package/dist/training/cases/builtin-evaluators.d.ts +2 -0
- package/dist/training/cases/builtin-evaluators.js +120 -0
- package/dist/training/cases/builtin-evaluators.js.map +1 -0
- package/dist/training/cases/check-schema.d.ts +2 -0
- package/dist/training/cases/check-schema.js +60 -0
- package/dist/training/cases/check-schema.js.map +1 -0
- package/dist/training/cases/cost-projection.d.ts +27 -0
- package/dist/training/cases/cost-projection.js +29 -0
- package/dist/training/cases/cost-projection.js.map +1 -0
- package/dist/training/cases/fixtures.d.ts +5 -0
- package/dist/training/cases/fixtures.js +134 -0
- package/dist/training/cases/fixtures.js.map +1 -0
- package/dist/training/cases/grader.d.ts +14 -0
- package/dist/training/cases/grader.js +122 -0
- package/dist/training/cases/grader.js.map +1 -0
- package/dist/training/cases/index.d.ts +12 -0
- package/dist/training/cases/index.js +11 -0
- package/dist/training/cases/index.js.map +1 -0
- package/dist/training/cases/json-schema.d.ts +3 -0
- package/dist/training/cases/json-schema.js +6 -0
- package/dist/training/cases/json-schema.js.map +1 -0
- package/dist/training/cases/parser.d.ts +6 -0
- package/dist/training/cases/parser.js +45 -0
- package/dist/training/cases/parser.js.map +1 -0
- package/dist/training/cases/plans.d.ts +14 -0
- package/dist/training/cases/plans.js +186 -0
- package/dist/training/cases/plans.js.map +1 -0
- package/dist/training/cases/resolver.d.ts +5 -0
- package/dist/training/cases/resolver.js +90 -0
- package/dist/training/cases/resolver.js.map +1 -0
- package/dist/training/cases/schema.d.ts +5 -0
- package/dist/training/cases/schema.js +154 -0
- package/dist/training/cases/schema.js.map +1 -0
- package/dist/training/cases/splits.d.ts +16 -0
- package/dist/training/cases/splits.js +71 -0
- package/dist/training/cases/splits.js.map +1 -0
- package/dist/training/cases/text-checks.d.ts +3 -0
- package/dist/training/cases/text-checks.js +50 -0
- package/dist/training/cases/text-checks.js.map +1 -0
- package/dist/training/cases/training/identity.d.ts +6 -0
- package/dist/training/cases/training/identity.js +26 -0
- package/dist/training/cases/training/identity.js.map +1 -0
- package/dist/training/cases/training/index.d.ts +2 -0
- package/dist/training/cases/training/index.js +3 -0
- package/dist/training/cases/training/index.js.map +1 -0
- package/dist/training/cases/training/schema.d.ts +4 -0
- package/dist/training/cases/training/schema.js +207 -0
- package/dist/training/cases/training/schema.js.map +1 -0
- package/dist/training/cases/turn-bindings.d.ts +3 -0
- package/dist/training/cases/turn-bindings.js +61 -0
- package/dist/training/cases/turn-bindings.js.map +1 -0
- package/dist/training/cases/validation.d.ts +17 -0
- package/dist/training/cases/validation.js +92 -0
- package/dist/training/cases/validation.js.map +1 -0
- package/dist/training/cli/arguments.d.ts +18 -0
- package/dist/training/cli/arguments.js +165 -0
- package/dist/training/cli/arguments.js.map +1 -0
- package/dist/training/cli/commands.d.ts +3 -0
- package/dist/training/cli/commands.js +255 -0
- package/dist/training/cli/commands.js.map +1 -0
- package/dist/training/cli/datasets.d.ts +30 -0
- package/dist/training/cli/datasets.js +116 -0
- package/dist/training/cli/datasets.js.map +1 -0
- package/dist/training/cli/dry-run.d.ts +7 -0
- package/dist/training/cli/dry-run.js +37 -0
- package/dist/training/cli/dry-run.js.map +1 -0
- package/dist/training/cli/grader/atomic/decompose.d.ts +43 -0
- package/dist/training/cli/grader/atomic/decompose.js +208 -0
- package/dist/training/cli/grader/atomic/decompose.js.map +1 -0
- package/dist/training/cli/grader/atomic/files.d.ts +159 -0
- package/dist/training/cli/grader/atomic/files.js +97 -0
- package/dist/training/cli/grader/atomic/files.js.map +1 -0
- package/dist/training/cli/grader/atomic/index.d.ts +8 -0
- package/dist/training/cli/grader/atomic/index.js +34 -0
- package/dist/training/cli/grader/atomic/index.js.map +1 -0
- package/dist/training/cli/grader/atomic/reference.d.ts +131 -0
- package/dist/training/cli/grader/atomic/reference.js +133 -0
- package/dist/training/cli/grader/atomic/reference.js.map +1 -0
- package/dist/training/cli/grader/atomic/runtime.d.ts +3 -0
- package/dist/training/cli/grader/atomic/runtime.js +91 -0
- package/dist/training/cli/grader/atomic/runtime.js.map +1 -0
- package/dist/training/cli/grader/atomic/traps.d.ts +15 -0
- package/dist/training/cli/grader/atomic/traps.js +38 -0
- package/dist/training/cli/grader/atomic/traps.js.map +1 -0
- package/dist/training/cli/grader/backend.d.ts +19 -0
- package/dist/training/cli/grader/backend.js +39 -0
- package/dist/training/cli/grader/backend.js.map +1 -0
- package/dist/training/cli/grader/cache.d.ts +2 -0
- package/dist/training/cli/grader/cache.js +75 -0
- package/dist/training/cli/grader/cache.js.map +1 -0
- package/dist/training/cli/grader/calibrate.d.ts +19 -0
- package/dist/training/cli/grader/calibrate.js +237 -0
- package/dist/training/cli/grader/calibrate.js.map +1 -0
- package/dist/training/cli/grader/cost.d.ts +24 -0
- package/dist/training/cli/grader/cost.js +54 -0
- package/dist/training/cli/grader/cost.js.map +1 -0
- package/dist/training/cli/grader/exclusions.d.ts +12 -0
- package/dist/training/cli/grader/exclusions.js +49 -0
- package/dist/training/cli/grader/exclusions.js.map +1 -0
- package/dist/training/cli/grader/grade.d.ts +26 -0
- package/dist/training/cli/grader/grade.js +33 -0
- package/dist/training/cli/grader/grade.js.map +1 -0
- package/dist/training/cli/grader/index.d.ts +10 -0
- package/dist/training/cli/grader/index.js +73 -0
- package/dist/training/cli/grader/index.js.map +1 -0
- package/dist/training/cli/grader/label-call.d.ts +13 -0
- package/dist/training/cli/grader/label-call.js +67 -0
- package/dist/training/cli/grader/label-call.js.map +1 -0
- package/dist/training/cli/grader/label-import.d.ts +16 -0
- package/dist/training/cli/grader/label-import.js +84 -0
- package/dist/training/cli/grader/label-import.js.map +1 -0
- package/dist/training/cli/grader/label-inputs.d.ts +9 -0
- package/dist/training/cli/grader/label-inputs.js +56 -0
- package/dist/training/cli/grader/label-inputs.js.map +1 -0
- package/dist/training/cli/grader/label.d.ts +25 -0
- package/dist/training/cli/grader/label.js +172 -0
- package/dist/training/cli/grader/label.js.map +1 -0
- package/dist/training/cli/grader/records.d.ts +20 -0
- package/dist/training/cli/grader/records.js +65 -0
- package/dist/training/cli/grader/records.js.map +1 -0
- package/dist/training/cli/grader/report.d.ts +26 -0
- package/dist/training/cli/grader/report.js +42 -0
- package/dist/training/cli/grader/report.js.map +1 -0
- package/dist/training/cli/grader/runtime.d.ts +5 -0
- package/dist/training/cli/grader/runtime.js +64 -0
- package/dist/training/cli/grader/runtime.js.map +1 -0
- package/dist/training/cli/grader/validate.d.ts +5 -0
- package/dist/training/cli/grader/validate.js +42 -0
- package/dist/training/cli/grader/validate.js.map +1 -0
- package/dist/training/cli/index.d.ts +6 -0
- package/dist/training/cli/index.js +4 -0
- package/dist/training/cli/index.js.map +1 -0
- package/dist/training/cli/launch.d.ts +3 -0
- package/dist/training/cli/launch.js +17 -0
- package/dist/training/cli/launch.js.map +1 -0
- package/dist/training/cli/native.d.ts +235 -0
- package/dist/training/cli/native.js +83 -0
- package/dist/training/cli/native.js.map +1 -0
- package/dist/training/cli/output.d.ts +21 -0
- package/dist/training/cli/output.js +95 -0
- package/dist/training/cli/output.js.map +1 -0
- package/dist/training/cli/progress/activity.d.ts +11 -0
- package/dist/training/cli/progress/activity.js +45 -0
- package/dist/training/cli/progress/activity.js.map +1 -0
- package/dist/training/cli/progress/failure.d.ts +37 -0
- package/dist/training/cli/progress/failure.js +48 -0
- package/dist/training/cli/progress/failure.js.map +1 -0
- package/dist/training/cli/progress/generations.d.ts +11 -0
- package/dist/training/cli/progress/generations.js +50 -0
- package/dist/training/cli/progress/generations.js.map +1 -0
- package/dist/training/cli/progress/index.d.ts +6 -0
- package/dist/training/cli/progress/index.js +5 -0
- package/dist/training/cli/progress/index.js.map +1 -0
- package/dist/training/cli/progress/journal.d.ts +38 -0
- package/dist/training/cli/progress/journal.js +101 -0
- package/dist/training/cli/progress/journal.js.map +1 -0
- package/dist/training/cli/report/diff.d.ts +2 -0
- package/dist/training/cli/report/diff.js +24 -0
- package/dist/training/cli/report/diff.js.map +1 -0
- package/dist/training/cli/report/export.d.ts +9 -0
- package/dist/training/cli/report/export.js +81 -0
- package/dist/training/cli/report/export.js.map +1 -0
- package/dist/training/cli/report/fixture.d.ts +9 -0
- package/dist/training/cli/report/fixture.js +65 -0
- package/dist/training/cli/report/fixture.js.map +1 -0
- package/dist/training/cli/report/index.d.ts +1 -0
- package/dist/training/cli/report/index.js +2 -0
- package/dist/training/cli/report/index.js.map +1 -0
- package/dist/training/cli/report/markdown.d.ts +2 -0
- package/dist/training/cli/report/markdown.js +60 -0
- package/dist/training/cli/report/markdown.js.map +1 -0
- package/dist/training/cli/report/summary.d.ts +130 -0
- package/dist/training/cli/report/summary.js +165 -0
- package/dist/training/cli/report/summary.js.map +1 -0
- package/dist/training/cli/spawnfile/context.d.ts +75 -0
- package/dist/training/cli/spawnfile/context.js +78 -0
- package/dist/training/cli/spawnfile/context.js.map +1 -0
- package/dist/training/cli/spawnfile/index.d.ts +5 -0
- package/dist/training/cli/spawnfile/index.js +4 -0
- package/dist/training/cli/spawnfile/index.js.map +1 -0
- package/dist/training/cli/spawnfile/moments.d.ts +44 -0
- package/dist/training/cli/spawnfile/moments.js +71 -0
- package/dist/training/cli/spawnfile/moments.js.map +1 -0
- package/dist/training/cli/spawnfile/selection.d.ts +83 -0
- package/dist/training/cli/spawnfile/selection.js +54 -0
- package/dist/training/cli/spawnfile/selection.js.map +1 -0
- package/dist/training/cli/training/cache.d.ts +4 -0
- package/dist/training/cli/training/cache.js +43 -0
- package/dist/training/cli/training/cache.js.map +1 -0
- package/dist/training/cli/training/checkpoint.d.ts +19 -0
- package/dist/training/cli/training/checkpoint.js +62 -0
- package/dist/training/cli/training/checkpoint.js.map +1 -0
- package/dist/training/cli/training/comparison.d.ts +8 -0
- package/dist/training/cli/training/comparison.js +22 -0
- package/dist/training/cli/training/comparison.js.map +1 -0
- package/dist/training/cli/training/configuration.d.ts +10 -0
- package/dist/training/cli/training/configuration.js +81 -0
- package/dist/training/cli/training/configuration.js.map +1 -0
- package/dist/training/cli/training/deadlines.d.ts +7 -0
- package/dist/training/cli/training/deadlines.js +14 -0
- package/dist/training/cli/training/deadlines.js.map +1 -0
- package/dist/training/cli/training/index.d.ts +8 -0
- package/dist/training/cli/training/index.js +9 -0
- package/dist/training/cli/training/index.js.map +1 -0
- package/dist/training/cli/training/inference.d.ts +48 -0
- package/dist/training/cli/training/inference.js +96 -0
- package/dist/training/cli/training/inference.js.map +1 -0
- package/dist/training/cli/training/optimizer.d.ts +33 -0
- package/dist/training/cli/training/optimizer.js +92 -0
- package/dist/training/cli/training/optimizer.js.map +1 -0
- package/dist/training/cli/training/output-lock.d.ts +2 -0
- package/dist/training/cli/training/output-lock.js +30 -0
- package/dist/training/cli/training/output-lock.js.map +1 -0
- package/dist/training/cli/types.d.ts +101 -0
- package/dist/training/cli/types.js +2 -0
- package/dist/training/cli/types.js.map +1 -0
- package/dist/training/cli/viewer.d.ts +40 -0
- package/dist/training/cli/viewer.js +210 -0
- package/dist/training/cli/viewer.js.map +1 -0
- package/dist/training/contracts/atomic-feedback.d.ts +2 -0
- package/dist/training/contracts/atomic-feedback.js +2 -0
- package/dist/training/contracts/atomic-feedback.js.map +1 -0
- package/dist/training/contracts/dataset.d.ts +174 -0
- package/dist/training/contracts/dataset.js +2 -0
- package/dist/training/contracts/dataset.js.map +1 -0
- package/dist/training/contracts/evaluation.d.ts +256 -0
- package/dist/training/contracts/evaluation.js +41 -0
- package/dist/training/contracts/evaluation.js.map +1 -0
- package/dist/training/contracts/execution.d.ts +363 -0
- package/dist/training/contracts/execution.js +15 -0
- package/dist/training/contracts/execution.js.map +1 -0
- package/dist/training/contracts/grader-providers.d.ts +40 -0
- package/dist/training/contracts/grader-providers.js +27 -0
- package/dist/training/contracts/grader-providers.js.map +1 -0
- package/dist/training/contracts/grading.d.ts +74 -0
- package/dist/training/contracts/grading.js +2 -0
- package/dist/training/contracts/grading.js.map +1 -0
- package/dist/training/contracts/index.d.ts +16 -0
- package/dist/training/contracts/index.js +8 -0
- package/dist/training/contracts/index.js.map +1 -0
- package/dist/training/contracts/inference-grants.d.ts +34 -0
- package/dist/training/contracts/inference-grants.js +2 -0
- package/dist/training/contracts/inference-grants.js.map +1 -0
- package/dist/training/contracts/inference-registry.d.ts +38 -0
- package/dist/training/contracts/inference-registry.js +7 -0
- package/dist/training/contracts/inference-registry.js.map +1 -0
- package/dist/training/contracts/training-config.d.ts +95 -0
- package/dist/training/contracts/training-config.js +15 -0
- package/dist/training/contracts/training-config.js.map +1 -0
- package/dist/training/contracts/trial-slot.d.ts +12 -0
- package/dist/training/contracts/trial-slot.js +2 -0
- package/dist/training/contracts/trial-slot.js.map +1 -0
- package/dist/training/dspy/AGENTS.md +29 -0
- package/dist/training/dspy/README.md +206 -0
- package/dist/training/dspy/protocol.md +311 -0
- package/dist/training/dspy/pyproject.toml +36 -0
- package/dist/training/dspy/requirements.lock +69 -0
- package/dist/training/dspy/spawnfile_training_dspy/AGENTS.md +63 -0
- package/dist/training/dspy/spawnfile_training_dspy/__init__.py +6 -0
- package/dist/training/dspy/spawnfile_training_dspy/checkpoint.py +146 -0
- package/dist/training/dspy/spawnfile_training_dspy/legacy_wire_aliases.json +90 -0
- package/dist/training/dspy/spawnfile_training_dspy/main.py +36 -0
- package/dist/training/dspy/spawnfile_training_dspy/native.py +89 -0
- package/dist/training/dspy/spawnfile_training_dspy/optimizer.py +74 -0
- package/dist/training/dspy/spawnfile_training_dspy/proposal_history.py +275 -0
- package/dist/training/dspy/spawnfile_training_dspy/protocol.py +149 -0
- package/dist/training/dspy/spawnfile_training_dspy/reflection.py +199 -0
- package/dist/training/dspy/spawnfile_training_dspy/search/AGENTS.md +41 -0
- package/dist/training/dspy/spawnfile_training_dspy/search/__init__.py +1 -0
- package/dist/training/dspy/spawnfile_training_dspy/search/behavior_change.py +152 -0
- package/dist/training/dspy/spawnfile_training_dspy/search/boundaries.py +38 -0
- package/dist/training/dspy/spawnfile_training_dspy/search/instruction_text.py +47 -0
- package/dist/training/dspy/spawnfile_training_dspy/search/population.py +213 -0
- package/dist/training/dspy/spawnfile_training_dspy/search/selection.py +24 -0
- package/dist/training/dspy/spawnfile_training_dspy/search/variants.py +83 -0
- package/dist/training/dspy/spawnfile_training_dspy/session.py +116 -0
- package/dist/training/dspy/spawnfile_training_dspy/transport.py +129 -0
- package/dist/training/evaluation/atomic-grader.d.ts +5 -0
- package/dist/training/evaluation/atomic-grader.js +55 -0
- package/dist/training/evaluation/atomic-grader.js.map +1 -0
- package/dist/training/evaluation/embedding/index.d.ts +1 -0
- package/dist/training/evaluation/embedding/index.js +2 -0
- package/dist/training/evaluation/embedding/index.js.map +1 -0
- package/dist/training/evaluation/embedding/similarity.d.ts +4 -0
- package/dist/training/evaluation/embedding/similarity.js +38 -0
- package/dist/training/evaluation/embedding/similarity.js.map +1 -0
- package/dist/training/evaluation/engine.d.ts +6 -0
- package/dist/training/evaluation/engine.js +191 -0
- package/dist/training/evaluation/engine.js.map +1 -0
- package/dist/training/evaluation/grader.d.ts +4 -0
- package/dist/training/evaluation/grader.js +67 -0
- package/dist/training/evaluation/grader.js.map +1 -0
- package/dist/training/evaluation/index.d.ts +10 -0
- package/dist/training/evaluation/index.js +9 -0
- package/dist/training/evaluation/index.js.map +1 -0
- package/dist/training/evaluation/logic/index.d.ts +1 -0
- package/dist/training/evaluation/logic/index.js +2 -0
- package/dist/training/evaluation/logic/index.js.map +1 -0
- package/dist/training/evaluation/logic/results.d.ts +7 -0
- package/dist/training/evaluation/logic/results.js +70 -0
- package/dist/training/evaluation/logic/results.js.map +1 -0
- package/dist/training/evaluation/mechanical/index.d.ts +6 -0
- package/dist/training/evaluation/mechanical/index.js +7 -0
- package/dist/training/evaluation/mechanical/index.js.map +1 -0
- package/dist/training/evaluation/mechanical/predicates.d.ts +2 -0
- package/dist/training/evaluation/mechanical/predicates.js +27 -0
- package/dist/training/evaluation/mechanical/predicates.js.map +1 -0
- package/dist/training/evaluation/mechanical/sequence.d.ts +3 -0
- package/dist/training/evaluation/mechanical/sequence.js +75 -0
- package/dist/training/evaluation/mechanical/sequence.js.map +1 -0
- package/dist/training/evaluation/mechanical/text-checks.d.ts +3 -0
- package/dist/training/evaluation/mechanical/text-checks.js +65 -0
- package/dist/training/evaluation/mechanical/text-checks.js.map +1 -0
- package/dist/training/evaluation/mechanical/text-values.d.ts +7 -0
- package/dist/training/evaluation/mechanical/text-values.js +28 -0
- package/dist/training/evaluation/mechanical/text-values.js.map +1 -0
- package/dist/training/evaluation/mechanical/text.d.ts +3 -0
- package/dist/training/evaluation/mechanical/text.js +40 -0
- package/dist/training/evaluation/mechanical/text.js.map +1 -0
- package/dist/training/evaluation/mechanical/token-efficiency.d.ts +4 -0
- package/dist/training/evaluation/mechanical/token-efficiency.js +28 -0
- package/dist/training/evaluation/mechanical/token-efficiency.js.map +1 -0
- package/dist/training/evaluation/mechanical/tools.d.ts +3 -0
- package/dist/training/evaluation/mechanical/tools.js +39 -0
- package/dist/training/evaluation/mechanical/tools.js.map +1 -0
- package/dist/training/evaluation/registry.d.ts +4 -0
- package/dist/training/evaluation/registry.js +64 -0
- package/dist/training/evaluation/registry.js.map +1 -0
- package/dist/training/evaluation/repair.d.ts +14 -0
- package/dist/training/evaluation/repair.js +73 -0
- package/dist/training/evaluation/repair.js.map +1 -0
- package/dist/training/evaluation/schedule.d.ts +21 -0
- package/dist/training/evaluation/schedule.js +98 -0
- package/dist/training/evaluation/schedule.js.map +1 -0
- package/dist/training/evaluation/selectors.d.ts +22 -0
- package/dist/training/evaluation/selectors.js +61 -0
- package/dist/training/evaluation/selectors.js.map +1 -0
- package/dist/training/evaluation/semantic/attempts.d.ts +12 -0
- package/dist/training/evaluation/semantic/attempts.js +71 -0
- package/dist/training/evaluation/semantic/attempts.js.map +1 -0
- package/dist/training/evaluation/semantic/cache.d.ts +9 -0
- package/dist/training/evaluation/semantic/cache.js +40 -0
- package/dist/training/evaluation/semantic/cache.js.map +1 -0
- package/dist/training/evaluation/semantic/evidence-units.d.ts +14 -0
- package/dist/training/evaluation/semantic/evidence-units.js +58 -0
- package/dist/training/evaluation/semantic/evidence-units.js.map +1 -0
- package/dist/training/evaluation/semantic/failure.d.ts +30 -0
- package/dist/training/evaluation/semantic/failure.js +79 -0
- package/dist/training/evaluation/semantic/failure.js.map +1 -0
- package/dist/training/evaluation/semantic/index.d.ts +5 -0
- package/dist/training/evaluation/semantic/index.js +5 -0
- package/dist/training/evaluation/semantic/index.js.map +1 -0
- package/dist/training/evaluation/semantic/judgment.d.ts +21 -0
- package/dist/training/evaluation/semantic/judgment.js +50 -0
- package/dist/training/evaluation/semantic/judgment.js.map +1 -0
- package/dist/training/evaluation/semantic/protocol.d.ts +118 -0
- package/dist/training/evaluation/semantic/protocol.js +48 -0
- package/dist/training/evaluation/semantic/protocol.js.map +1 -0
- package/dist/training/evaluation/semantic/rubric.d.ts +3 -0
- package/dist/training/evaluation/semantic/rubric.js +202 -0
- package/dist/training/evaluation/semantic/rubric.js.map +1 -0
- package/dist/training/evaluation/semantic/templates.d.ts +7 -0
- package/dist/training/evaluation/semantic/templates.js +75 -0
- package/dist/training/evaluation/semantic/templates.js.map +1 -0
- package/dist/training/experiments/comparison/index.d.ts +2 -0
- package/dist/training/experiments/comparison/index.js +2 -0
- package/dist/training/experiments/comparison/index.js.map +1 -0
- package/dist/training/experiments/comparison/run.d.ts +3 -0
- package/dist/training/experiments/comparison/run.js +92 -0
- package/dist/training/experiments/comparison/run.js.map +1 -0
- package/dist/training/experiments/comparison/types.d.ts +39 -0
- package/dist/training/experiments/comparison/types.js +2 -0
- package/dist/training/experiments/comparison/types.js.map +1 -0
- package/dist/training/experiments/concurrency/index.d.ts +2 -0
- package/dist/training/experiments/concurrency/index.js +2 -0
- package/dist/training/experiments/concurrency/index.js.map +1 -0
- package/dist/training/experiments/concurrency/slots.d.ts +50 -0
- package/dist/training/experiments/concurrency/slots.js +120 -0
- package/dist/training/experiments/concurrency/slots.js.map +1 -0
- package/dist/training/experiments/costs/assumptions.d.ts +4 -0
- package/dist/training/experiments/costs/assumptions.js +18 -0
- package/dist/training/experiments/costs/assumptions.js.map +1 -0
- package/dist/training/experiments/costs/catalog.d.ts +3 -0
- package/dist/training/experiments/costs/catalog.js +24 -0
- package/dist/training/experiments/costs/catalog.js.map +1 -0
- package/dist/training/experiments/costs/config.d.ts +6 -0
- package/dist/training/experiments/costs/config.js +22 -0
- package/dist/training/experiments/costs/config.js.map +1 -0
- package/dist/training/experiments/costs/decisions.d.ts +5 -0
- package/dist/training/experiments/costs/decisions.js +48 -0
- package/dist/training/experiments/costs/decisions.js.map +1 -0
- package/dist/training/experiments/costs/index.d.ts +9 -0
- package/dist/training/experiments/costs/index.js +7 -0
- package/dist/training/experiments/costs/index.js.map +1 -0
- package/dist/training/experiments/costs/planning.d.ts +71 -0
- package/dist/training/experiments/costs/planning.js +140 -0
- package/dist/training/experiments/costs/planning.js.map +1 -0
- package/dist/training/experiments/costs/report.d.ts +71 -0
- package/dist/training/experiments/costs/report.js +269 -0
- package/dist/training/experiments/costs/report.js.map +1 -0
- package/dist/training/experiments/costs/types.d.ts +53 -0
- package/dist/training/experiments/costs/types.js +2 -0
- package/dist/training/experiments/costs/types.js.map +1 -0
- package/dist/training/experiments/costs/valuation.d.ts +3 -0
- package/dist/training/experiments/costs/valuation.js +124 -0
- package/dist/training/experiments/costs/valuation.js.map +1 -0
- package/dist/training/experiments/index.d.ts +12 -0
- package/dist/training/experiments/index.js +12 -0
- package/dist/training/experiments/index.js.map +1 -0
- package/dist/training/experiments/repair/import.d.ts +21 -0
- package/dist/training/experiments/repair/import.js +104 -0
- package/dist/training/experiments/repair/import.js.map +1 -0
- package/dist/training/experiments/repair/index.d.ts +6 -0
- package/dist/training/experiments/repair/index.js +5 -0
- package/dist/training/experiments/repair/index.js.map +1 -0
- package/dist/training/experiments/repair/measurement.d.ts +14 -0
- package/dist/training/experiments/repair/measurement.js +101 -0
- package/dist/training/experiments/repair/measurement.js.map +1 -0
- package/dist/training/experiments/repair/projection.d.ts +3 -0
- package/dist/training/experiments/repair/projection.js +63 -0
- package/dist/training/experiments/repair/projection.js.map +1 -0
- package/dist/training/experiments/repair/receipt.d.ts +43 -0
- package/dist/training/experiments/repair/receipt.js +52 -0
- package/dist/training/experiments/repair/receipt.js.map +1 -0
- package/dist/training/experiments/repair/record.d.ts +4 -0
- package/dist/training/experiments/repair/record.js +24 -0
- package/dist/training/experiments/repair/record.js.map +1 -0
- package/dist/training/experiments/replay/fixture.d.ts +10 -0
- package/dist/training/experiments/replay/fixture.js +53 -0
- package/dist/training/experiments/replay/fixture.js.map +1 -0
- package/dist/training/experiments/replay/index.d.ts +3 -0
- package/dist/training/experiments/replay/index.js +3 -0
- package/dist/training/experiments/replay/index.js.map +1 -0
- package/dist/training/experiments/replay/rescore.d.ts +3 -0
- package/dist/training/experiments/replay/rescore.js +63 -0
- package/dist/training/experiments/replay/rescore.js.map +1 -0
- package/dist/training/experiments/replay/schema.d.ts +408 -0
- package/dist/training/experiments/replay/schema.js +126 -0
- package/dist/training/experiments/replay/schema.js.map +1 -0
- package/dist/training/experiments/replay/source.d.ts +6 -0
- package/dist/training/experiments/replay/source.js +35 -0
- package/dist/training/experiments/replay/source.js.map +1 -0
- package/dist/training/experiments/replay/subject-usage.d.ts +3 -0
- package/dist/training/experiments/replay/subject-usage.js +18 -0
- package/dist/training/experiments/replay/subject-usage.js.map +1 -0
- package/dist/training/experiments/replay/types.d.ts +63 -0
- package/dist/training/experiments/replay/types.js +2 -0
- package/dist/training/experiments/replay/types.js.map +1 -0
- package/dist/training/experiments/training/checkpoint.d.ts +51 -0
- package/dist/training/experiments/training/checkpoint.js +200 -0
- package/dist/training/experiments/training/checkpoint.js.map +1 -0
- package/dist/training/experiments/training/criteria.d.ts +3 -0
- package/dist/training/experiments/training/criteria.js +23 -0
- package/dist/training/experiments/training/criteria.js.map +1 -0
- package/dist/training/experiments/training/feedback.d.ts +15 -0
- package/dist/training/experiments/training/feedback.js +133 -0
- package/dist/training/experiments/training/feedback.js.map +1 -0
- package/dist/training/experiments/training/held-out.d.ts +24 -0
- package/dist/training/experiments/training/held-out.js +41 -0
- package/dist/training/experiments/training/held-out.js.map +1 -0
- package/dist/training/experiments/training/index.d.ts +7 -0
- package/dist/training/experiments/training/index.js +7 -0
- package/dist/training/experiments/training/index.js.map +1 -0
- package/dist/training/experiments/training/partition.d.ts +20 -0
- package/dist/training/experiments/training/partition.js +24 -0
- package/dist/training/experiments/training/partition.js.map +1 -0
- package/dist/training/experiments/training/recovery.d.ts +17 -0
- package/dist/training/experiments/training/recovery.js +54 -0
- package/dist/training/experiments/training/recovery.js.map +1 -0
- package/dist/training/experiments/training/retry.d.ts +14 -0
- package/dist/training/experiments/training/retry.js +16 -0
- package/dist/training/experiments/training/retry.js.map +1 -0
- package/dist/training/experiments/training/scoring.d.ts +4 -0
- package/dist/training/experiments/training/scoring.js +42 -0
- package/dist/training/experiments/training/scoring.js.map +1 -0
- package/dist/training/experiments/training/training.d.ts +85 -0
- package/dist/training/experiments/training/training.js +208 -0
- package/dist/training/experiments/training/training.js.map +1 -0
- package/dist/training/experiments/trials/bindings.d.ts +4 -0
- package/dist/training/experiments/trials/bindings.js +46 -0
- package/dist/training/experiments/trials/bindings.js.map +1 -0
- package/dist/training/experiments/trials/closure.d.ts +2 -0
- package/dist/training/experiments/trials/closure.js +26 -0
- package/dist/training/experiments/trials/closure.js.map +1 -0
- package/dist/training/experiments/trials/control.d.ts +13 -0
- package/dist/training/experiments/trials/control.js +74 -0
- package/dist/training/experiments/trials/control.js.map +1 -0
- package/dist/training/experiments/trials/diagnostics.d.ts +25 -0
- package/dist/training/experiments/trials/diagnostics.js +99 -0
- package/dist/training/experiments/trials/diagnostics.js.map +1 -0
- package/dist/training/experiments/trials/files.d.ts +8 -0
- package/dist/training/experiments/trials/files.js +113 -0
- package/dist/training/experiments/trials/files.js.map +1 -0
- package/dist/training/experiments/trials/fixture.d.ts +13 -0
- package/dist/training/experiments/trials/fixture.js +40 -0
- package/dist/training/experiments/trials/fixture.js.map +1 -0
- package/dist/training/experiments/trials/index.d.ts +5 -0
- package/dist/training/experiments/trials/index.js +5 -0
- package/dist/training/experiments/trials/index.js.map +1 -0
- package/dist/training/experiments/trials/live.d.ts +20 -0
- package/dist/training/experiments/trials/live.js +68 -0
- package/dist/training/experiments/trials/live.js.map +1 -0
- package/dist/training/experiments/trials/paths.d.ts +5 -0
- package/dist/training/experiments/trials/paths.js +90 -0
- package/dist/training/experiments/trials/paths.js.map +1 -0
- package/dist/training/experiments/trials/preflight.d.ts +3 -0
- package/dist/training/experiments/trials/preflight.js +23 -0
- package/dist/training/experiments/trials/preflight.js.map +1 -0
- package/dist/training/experiments/trials/stored.d.ts +23 -0
- package/dist/training/experiments/trials/stored.js +46 -0
- package/dist/training/experiments/trials/stored.js.map +1 -0
- package/dist/training/experiments/trials/subject-usage.d.ts +7 -0
- package/dist/training/experiments/trials/subject-usage.js +66 -0
- package/dist/training/experiments/trials/subject-usage.js.map +1 -0
- package/dist/training/experiments/trials/trial.d.ts +11 -0
- package/dist/training/experiments/trials/trial.js +361 -0
- package/dist/training/experiments/trials/trial.js.map +1 -0
- package/dist/training/experiments/trials/types.d.ts +124 -0
- package/dist/training/experiments/trials/types.js +2 -0
- package/dist/training/experiments/trials/types.js.map +1 -0
- package/dist/training/graders/admission.d.ts +11 -0
- package/dist/training/graders/admission.js +22 -0
- package/dist/training/graders/admission.js.map +1 -0
- package/dist/training/graders/aggregation.d.ts +30 -0
- package/dist/training/graders/aggregation.js +71 -0
- package/dist/training/graders/aggregation.js.map +1 -0
- package/dist/training/graders/atomic/aggregate.d.ts +10 -0
- package/dist/training/graders/atomic/aggregate.js +31 -0
- package/dist/training/graders/atomic/aggregate.js.map +1 -0
- package/dist/training/graders/atomic/feedback.d.ts +3 -0
- package/dist/training/graders/atomic/feedback.js +16 -0
- package/dist/training/graders/atomic/feedback.js.map +1 -0
- package/dist/training/graders/atomic/format.d.ts +61 -0
- package/dist/training/graders/atomic/format.js +53 -0
- package/dist/training/graders/atomic/format.js.map +1 -0
- package/dist/training/graders/atomic/index.d.ts +7 -0
- package/dist/training/graders/atomic/index.js +6 -0
- package/dist/training/graders/atomic/index.js.map +1 -0
- package/dist/training/graders/atomic/runtime.d.ts +4 -0
- package/dist/training/graders/atomic/runtime.js +94 -0
- package/dist/training/graders/atomic/runtime.js.map +1 -0
- package/dist/training/graders/atomic/schema.d.ts +5 -0
- package/dist/training/graders/atomic/schema.js +37 -0
- package/dist/training/graders/atomic/schema.js.map +1 -0
- package/dist/training/graders/atomic/types.d.ts +68 -0
- package/dist/training/graders/atomic/types.js +2 -0
- package/dist/training/graders/atomic/types.js.map +1 -0
- package/dist/training/graders/calibration/escalation.d.ts +50 -0
- package/dist/training/graders/calibration/escalation.js +145 -0
- package/dist/training/graders/calibration/escalation.js.map +1 -0
- package/dist/training/graders/calibration/fitting.d.ts +28 -0
- package/dist/training/graders/calibration/fitting.js +121 -0
- package/dist/training/graders/calibration/fitting.js.map +1 -0
- package/dist/training/graders/calibration/index.d.ts +7 -0
- package/dist/training/graders/calibration/index.js +5 -0
- package/dist/training/graders/calibration/index.js.map +1 -0
- package/dist/training/graders/calibration/metrics.d.ts +31 -0
- package/dist/training/graders/calibration/metrics.js +145 -0
- package/dist/training/graders/calibration/metrics.js.map +1 -0
- package/dist/training/graders/calibration/selection.d.ts +13 -0
- package/dist/training/graders/calibration/selection.js +30 -0
- package/dist/training/graders/calibration/selection.js.map +1 -0
- package/dist/training/graders/calibration/types.d.ts +68 -0
- package/dist/training/graders/calibration/types.js +2 -0
- package/dist/training/graders/calibration/types.js.map +1 -0
- package/dist/training/graders/consensus.d.ts +11 -0
- package/dist/training/graders/consensus.js +29 -0
- package/dist/training/graders/consensus.js.map +1 -0
- package/dist/training/graders/decomposition/evidence.d.ts +21 -0
- package/dist/training/graders/decomposition/evidence.js +107 -0
- package/dist/training/graders/decomposition/evidence.js.map +1 -0
- package/dist/training/graders/decomposition/format.d.ts +265 -0
- package/dist/training/graders/decomposition/format.js +98 -0
- package/dist/training/graders/decomposition/format.js.map +1 -0
- package/dist/training/graders/decomposition/index.d.ts +10 -0
- package/dist/training/graders/decomposition/index.js +6 -0
- package/dist/training/graders/decomposition/index.js.map +1 -0
- package/dist/training/graders/decomposition/instantiate.d.ts +26 -0
- package/dist/training/graders/decomposition/instantiate.js +129 -0
- package/dist/training/graders/decomposition/instantiate.js.map +1 -0
- package/dist/training/graders/decomposition/location.d.ts +20 -0
- package/dist/training/graders/decomposition/location.js +75 -0
- package/dist/training/graders/decomposition/location.js.map +1 -0
- package/dist/training/graders/decomposition/metadata.d.ts +8 -0
- package/dist/training/graders/decomposition/metadata.js +14 -0
- package/dist/training/graders/decomposition/metadata.js.map +1 -0
- package/dist/training/graders/decomposition/spans.d.ts +6 -0
- package/dist/training/graders/decomposition/spans.js +18 -0
- package/dist/training/graders/decomposition/spans.js.map +1 -0
- package/dist/training/graders/decomposition/transport.d.ts +76 -0
- package/dist/training/graders/decomposition/transport.js +14 -0
- package/dist/training/graders/decomposition/transport.js.map +1 -0
- package/dist/training/graders/format/binding.d.ts +3 -0
- package/dist/training/graders/format/binding.js +37 -0
- package/dist/training/graders/format/binding.js.map +1 -0
- package/dist/training/graders/format/common.d.ts +13 -0
- package/dist/training/graders/format/common.js +77 -0
- package/dist/training/graders/format/common.js.map +1 -0
- package/dist/training/graders/format/grader.d.ts +236 -0
- package/dist/training/graders/format/grader.js +161 -0
- package/dist/training/graders/format/grader.js.map +1 -0
- package/dist/training/graders/format/index.d.ts +11 -0
- package/dist/training/graders/format/index.js +8 -0
- package/dist/training/graders/format/index.js.map +1 -0
- package/dist/training/graders/format/label-import.d.ts +42 -0
- package/dist/training/graders/format/label-import.js +44 -0
- package/dist/training/graders/format/label-import.js.map +1 -0
- package/dist/training/graders/format/labels.d.ts +45 -0
- package/dist/training/graders/format/labels.js +109 -0
- package/dist/training/graders/format/labels.js.map +1 -0
- package/dist/training/graders/format/questions.d.ts +67 -0
- package/dist/training/graders/format/questions.js +104 -0
- package/dist/training/graders/format/questions.js.map +1 -0
- package/dist/training/graders/format/row-regex.d.ts +2 -0
- package/dist/training/graders/format/row-regex.js +56 -0
- package/dist/training/graders/format/row-regex.js.map +1 -0
- package/dist/training/graders/format/rows.d.ts +15 -0
- package/dist/training/graders/format/rows.js +31 -0
- package/dist/training/graders/format/rows.js.map +1 -0
- package/dist/training/graders/format/sentences.d.ts +2 -0
- package/dist/training/graders/format/sentences.js +30 -0
- package/dist/training/graders/format/sentences.js.map +1 -0
- package/dist/training/graders/identity-calibration.d.ts +4 -0
- package/dist/training/graders/identity-calibration.js +15 -0
- package/dist/training/graders/identity-calibration.js.map +1 -0
- package/dist/training/graders/identity.d.ts +119 -0
- package/dist/training/graders/identity.js +119 -0
- package/dist/training/graders/identity.js.map +1 -0
- package/dist/training/graders/index.d.ts +23 -0
- package/dist/training/graders/index.js +14 -0
- package/dist/training/graders/index.js.map +1 -0
- package/dist/training/graders/instances.d.ts +21 -0
- package/dist/training/graders/instances.js +121 -0
- package/dist/training/graders/instances.js.map +1 -0
- package/dist/training/graders/labeling/import.d.ts +8 -0
- package/dist/training/graders/labeling/import.js +51 -0
- package/dist/training/graders/labeling/import.js.map +1 -0
- package/dist/training/graders/labeling/index.d.ts +3 -0
- package/dist/training/graders/labeling/index.js +3 -0
- package/dist/training/graders/labeling/index.js.map +1 -0
- package/dist/training/graders/labeling/planning.d.ts +39 -0
- package/dist/training/graders/labeling/planning.js +117 -0
- package/dist/training/graders/labeling/planning.js.map +1 -0
- package/dist/training/graders/references/council.d.ts +2 -0
- package/dist/training/graders/references/council.js +182 -0
- package/dist/training/graders/references/council.js.map +1 -0
- package/dist/training/graders/references/index.d.ts +5 -0
- package/dist/training/graders/references/index.js +5 -0
- package/dist/training/graders/references/index.js.map +1 -0
- package/dist/training/graders/references/metrics.d.ts +133 -0
- package/dist/training/graders/references/metrics.js +113 -0
- package/dist/training/graders/references/metrics.js.map +1 -0
- package/dist/training/graders/references/policy.d.ts +10 -0
- package/dist/training/graders/references/policy.js +16 -0
- package/dist/training/graders/references/policy.js.map +1 -0
- package/dist/training/graders/references/protocol.d.ts +11 -0
- package/dist/training/graders/references/protocol.js +63 -0
- package/dist/training/graders/references/protocol.js.map +1 -0
- package/dist/training/graders/references/types.d.ts +92 -0
- package/dist/training/graders/references/types.js +2 -0
- package/dist/training/graders/references/types.js.map +1 -0
- package/dist/training/graders/rows.d.ts +14 -0
- package/dist/training/graders/rows.js +39 -0
- package/dist/training/graders/rows.js.map +1 -0
- package/dist/training/graders/runtime/accounting.d.ts +10 -0
- package/dist/training/graders/runtime/accounting.js +43 -0
- package/dist/training/graders/runtime/accounting.js.map +1 -0
- package/dist/training/graders/runtime/grade.d.ts +3 -0
- package/dist/training/graders/runtime/grade.js +161 -0
- package/dist/training/graders/runtime/grade.js.map +1 -0
- package/dist/training/graders/runtime/identity.d.ts +6 -0
- package/dist/training/graders/runtime/identity.js +24 -0
- package/dist/training/graders/runtime/identity.js.map +1 -0
- package/dist/training/graders/runtime/index.d.ts +5 -0
- package/dist/training/graders/runtime/index.js +5 -0
- package/dist/training/graders/runtime/index.js.map +1 -0
- package/dist/training/graders/runtime/schema.d.ts +29 -0
- package/dist/training/graders/runtime/schema.js +27 -0
- package/dist/training/graders/runtime/schema.js.map +1 -0
- package/dist/training/graders/runtime/teacher.d.ts +8 -0
- package/dist/training/graders/runtime/teacher.js +43 -0
- package/dist/training/graders/runtime/teacher.js.map +1 -0
- package/dist/training/graders/runtime/types.d.ts +48 -0
- package/dist/training/graders/runtime/types.js +2 -0
- package/dist/training/graders/runtime/types.js.map +1 -0
- package/dist/training/graders/traps/generate.d.ts +6 -0
- package/dist/training/graders/traps/generate.js +94 -0
- package/dist/training/graders/traps/generate.js.map +1 -0
- package/dist/training/graders/traps/index.d.ts +3 -0
- package/dist/training/graders/traps/index.js +3 -0
- package/dist/training/graders/traps/index.js.map +1 -0
- package/dist/training/graders/traps/mutations.d.ts +10 -0
- package/dist/training/graders/traps/mutations.js +48 -0
- package/dist/training/graders/traps/mutations.js.map +1 -0
- package/dist/training/graders/traps/types.d.ts +37 -0
- package/dist/training/graders/traps/types.js +2 -0
- package/dist/training/graders/traps/types.js.map +1 -0
- package/dist/training/graders/traps/validation.d.ts +4 -0
- package/dist/training/graders/traps/validation.js +118 -0
- package/dist/training/graders/traps/validation.js.map +1 -0
- package/dist/training/index.d.ts +17 -0
- package/dist/training/index.js +16 -0
- package/dist/training/index.js.map +1 -0
- package/dist/training/inference/claude/index.d.ts +1 -0
- package/dist/training/inference/claude/index.js +2 -0
- package/dist/training/inference/claude/index.js.map +1 -0
- package/dist/training/inference/claude/protocol.d.ts +16 -0
- package/dist/training/inference/claude/protocol.js +72 -0
- package/dist/training/inference/claude/protocol.js.map +1 -0
- package/dist/training/inference/claude/provider.d.ts +9 -0
- package/dist/training/inference/claude/provider.js +153 -0
- package/dist/training/inference/claude/provider.js.map +1 -0
- package/dist/training/inference/claude/refusal.d.ts +2 -0
- package/dist/training/inference/claude/refusal.js +37 -0
- package/dist/training/inference/claude/refusal.js.map +1 -0
- package/dist/training/inference/decision/http.d.ts +14 -0
- package/dist/training/inference/decision/http.js +57 -0
- package/dist/training/inference/decision/http.js.map +1 -0
- package/dist/training/inference/decision/index.d.ts +6 -0
- package/dist/training/inference/decision/index.js +6 -0
- package/dist/training/inference/decision/index.js.map +1 -0
- package/dist/training/inference/decision/jev.d.ts +4 -0
- package/dist/training/inference/decision/jev.js +163 -0
- package/dist/training/inference/decision/jev.js.map +1 -0
- package/dist/training/inference/decision/ollama.d.ts +9 -0
- package/dist/training/inference/decision/ollama.js +101 -0
- package/dist/training/inference/decision/ollama.js.map +1 -0
- package/dist/training/inference/decision/prompt.d.ts +6 -0
- package/dist/training/inference/decision/prompt.js +19 -0
- package/dist/training/inference/decision/prompt.js.map +1 -0
- package/dist/training/inference/decision/teacher.d.ts +7 -0
- package/dist/training/inference/decision/teacher.js +61 -0
- package/dist/training/inference/decision/teacher.js.map +1 -0
- package/dist/training/inference/decision/typesafe/index.d.ts +9 -0
- package/dist/training/inference/decision/typesafe/index.js +82 -0
- package/dist/training/inference/decision/typesafe/index.js.map +1 -0
- package/dist/training/inference/decision/typesafe/transport.d.ts +44 -0
- package/dist/training/inference/decision/typesafe/transport.js +151 -0
- package/dist/training/inference/decision/typesafe/transport.js.map +1 -0
- package/dist/training/inference/decision/typesafe/wire.d.ts +25 -0
- package/dist/training/inference/decision/typesafe/wire.js +49 -0
- package/dist/training/inference/decision/typesafe/wire.js.map +1 -0
- package/dist/training/inference/diagnostic.d.ts +3 -0
- package/dist/training/inference/diagnostic.js +14 -0
- package/dist/training/inference/diagnostic.js.map +1 -0
- package/dist/training/inference/evaluator/index.d.ts +3 -0
- package/dist/training/inference/evaluator/index.js +4 -0
- package/dist/training/inference/evaluator/index.js.map +1 -0
- package/dist/training/inference/evaluator/ledger.d.ts +29 -0
- package/dist/training/inference/evaluator/ledger.js +70 -0
- package/dist/training/inference/evaluator/ledger.js.map +1 -0
- package/dist/training/inference/evaluator/policy.d.ts +39 -0
- package/dist/training/inference/evaluator/policy.js +67 -0
- package/dist/training/inference/evaluator/policy.js.map +1 -0
- package/dist/training/inference/evaluator/provider.d.ts +6 -0
- package/dist/training/inference/evaluator/provider.js +45 -0
- package/dist/training/inference/evaluator/provider.js.map +1 -0
- package/dist/training/inference/failure.d.ts +27 -0
- package/dist/training/inference/failure.js +36 -0
- package/dist/training/inference/failure.js.map +1 -0
- package/dist/training/inference/index.d.ts +8 -0
- package/dist/training/inference/index.js +9 -0
- package/dist/training/inference/index.js.map +1 -0
- package/dist/training/inference/ollama/context.d.ts +2 -0
- package/dist/training/inference/ollama/context.js +28 -0
- package/dist/training/inference/ollama/context.js.map +1 -0
- package/dist/training/inference/ollama/index.d.ts +2 -0
- package/dist/training/inference/ollama/index.js +3 -0
- package/dist/training/inference/ollama/index.js.map +1 -0
- package/dist/training/inference/ollama/provider.d.ts +12 -0
- package/dist/training/inference/ollama/provider.js +100 -0
- package/dist/training/inference/ollama/provider.js.map +1 -0
- package/dist/training/inference/request-cap.d.ts +7 -0
- package/dist/training/inference/request-cap.js +22 -0
- package/dist/training/inference/request-cap.js.map +1 -0
- package/dist/training/inference/response-schema.d.ts +9 -0
- package/dist/training/inference/response-schema.js +54 -0
- package/dist/training/inference/response-schema.js.map +1 -0
- package/dist/training/inference/routing.d.ts +17 -0
- package/dist/training/inference/routing.js +152 -0
- package/dist/training/inference/routing.js.map +1 -0
- package/dist/training/optimization/boundaries.d.ts +8 -0
- package/dist/training/optimization/boundaries.js +31 -0
- package/dist/training/optimization/boundaries.js.map +1 -0
- package/dist/training/optimization/bridge-fixtures.d.ts +13 -0
- package/dist/training/optimization/bridge-fixtures.js +40 -0
- package/dist/training/optimization/bridge-fixtures.js.map +1 -0
- package/dist/training/optimization/bridge-identity.d.ts +8 -0
- package/dist/training/optimization/bridge-identity.js +110 -0
- package/dist/training/optimization/bridge-identity.js.map +1 -0
- package/dist/training/optimization/checkpoint.d.ts +35 -0
- package/dist/training/optimization/checkpoint.js +187 -0
- package/dist/training/optimization/checkpoint.js.map +1 -0
- package/dist/training/optimization/evidence.d.ts +4 -0
- package/dist/training/optimization/evidence.js +65 -0
- package/dist/training/optimization/evidence.js.map +1 -0
- package/dist/training/optimization/host.d.ts +27 -0
- package/dist/training/optimization/host.js +144 -0
- package/dist/training/optimization/host.js.map +1 -0
- package/dist/training/optimization/index.d.ts +8 -0
- package/dist/training/optimization/index.js +6 -0
- package/dist/training/optimization/index.js.map +1 -0
- package/dist/training/optimization/inference.d.ts +4 -0
- package/dist/training/optimization/inference.js +33 -0
- package/dist/training/optimization/inference.js.map +1 -0
- package/dist/training/optimization/population-evidence.d.ts +4 -0
- package/dist/training/optimization/population-evidence.js +152 -0
- package/dist/training/optimization/population-evidence.js.map +1 -0
- package/dist/training/optimization/protocol.d.ts +532 -0
- package/dist/training/optimization/protocol.js +146 -0
- package/dist/training/optimization/protocol.js.map +1 -0
- package/dist/training/optimization/runner.d.ts +5 -0
- package/dist/training/optimization/runner.js +129 -0
- package/dist/training/optimization/runner.js.map +1 -0
- package/dist/training/optimization/testSupport.d.ts +9 -0
- package/dist/training/optimization/testSupport.js +29 -0
- package/dist/training/optimization/testSupport.js.map +1 -0
- package/dist/training/optimization/types.d.ts +73 -0
- package/dist/training/optimization/types.js +11 -0
- package/dist/training/optimization/types.js.map +1 -0
- package/dist/training/platform/index.d.ts +1 -0
- package/dist/training/platform/index.js +2 -0
- package/dist/training/platform/index.js.map +1 -0
- package/dist/training/platform/mutations/index.d.ts +5 -0
- package/dist/training/platform/mutations/index.js +10 -0
- package/dist/training/platform/mutations/index.js.map +1 -0
- package/dist/training/platform/process/index.d.ts +1 -0
- package/dist/training/platform/process/index.js +2 -0
- package/dist/training/platform/process/index.js.map +1 -0
- package/dist/training/platform/process/runner.d.ts +32 -0
- package/dist/training/platform/process/runner.js +190 -0
- package/dist/training/platform/process/runner.js.map +1 -0
- package/dist/training/providers/index.d.ts +2 -0
- package/dist/training/providers/index.js +3 -0
- package/dist/training/providers/index.js.map +1 -0
- package/dist/training/providers/policy.d.ts +23 -0
- package/dist/training/providers/policy.js +27 -0
- package/dist/training/providers/policy.js.map +1 -0
- package/dist/training/providers/registry.d.ts +2 -0
- package/dist/training/providers/registry.js +62 -0
- package/dist/training/providers/registry.js.map +1 -0
- package/dist/training/storage/cache/index.d.ts +2 -0
- package/dist/training/storage/cache/index.js +2 -0
- package/dist/training/storage/cache/index.js.map +1 -0
- package/dist/training/storage/cache/persistent.d.ts +12 -0
- package/dist/training/storage/cache/persistent.js +124 -0
- package/dist/training/storage/cache/persistent.js.map +1 -0
- package/dist/training/storage/cache/schema.d.ts +2 -0
- package/dist/training/storage/cache/schema.js +62 -0
- package/dist/training/storage/cache/schema.js.map +1 -0
- package/dist/training/storage/content.d.ts +13 -0
- package/dist/training/storage/content.js +44 -0
- package/dist/training/storage/content.js.map +1 -0
- package/dist/training/storage/evaluation-json.d.ts +12 -0
- package/dist/training/storage/evaluation-json.js +46 -0
- package/dist/training/storage/evaluation-json.js.map +1 -0
- package/dist/training/storage/filesystem.d.ts +6 -0
- package/dist/training/storage/filesystem.js +95 -0
- package/dist/training/storage/filesystem.js.map +1 -0
- package/dist/training/storage/index.d.ts +6 -0
- package/dist/training/storage/index.js +5 -0
- package/dist/training/storage/index.js.map +1 -0
- package/dist/training/storage/journal.d.ts +11 -0
- package/dist/training/storage/journal.js +81 -0
- package/dist/training/storage/journal.js.map +1 -0
- package/dist/training/storage/permissions.d.ts +5 -0
- package/dist/training/storage/permissions.js +40 -0
- package/dist/training/storage/permissions.js.map +1 -0
- package/dist/training/storage/store.d.ts +2 -0
- package/dist/training/storage/store.js +162 -0
- package/dist/training/storage/store.js.map +1 -0
- package/dist/training/storage/types.d.ts +67 -0
- package/dist/training/storage/types.js +2 -0
- package/dist/training/storage/types.js.map +1 -0
- package/dist/training/subjects/environment.d.ts +2 -0
- package/dist/training/subjects/environment.js +14 -0
- package/dist/training/subjects/environment.js.map +1 -0
- package/dist/training/subjects/index.d.ts +3 -0
- package/dist/training/subjects/index.js +3 -0
- package/dist/training/subjects/index.js.map +1 -0
- package/dist/training/subjects/registry.d.ts +15 -0
- package/dist/training/subjects/registry.js +13 -0
- package/dist/training/subjects/registry.js.map +1 -0
- package/dist/training/testing/evidence.d.ts +6 -0
- package/dist/training/testing/evidence.js +21 -0
- package/dist/training/testing/evidence.js.map +1 -0
- package/dist/training/testing/index.d.ts +1 -0
- package/dist/training/testing/index.js +2 -0
- package/dist/training/testing/index.js.map +1 -0
- package/dist/training/viewer/cockpit/activity.d.ts +2 -0
- package/dist/training/viewer/cockpit/activity.js +14 -0
- package/dist/training/viewer/cockpit/activity.js.map +1 -0
- package/dist/training/viewer/cockpit/evidence.d.ts +4 -0
- package/dist/training/viewer/cockpit/evidence.js +58 -0
- package/dist/training/viewer/cockpit/evidence.js.map +1 -0
- package/dist/training/viewer/cockpit/format.d.ts +11 -0
- package/dist/training/viewer/cockpit/format.js +27 -0
- package/dist/training/viewer/cockpit/format.js.map +1 -0
- package/dist/training/viewer/cockpit/index.d.ts +4 -0
- package/dist/training/viewer/cockpit/index.js +5 -0
- package/dist/training/viewer/cockpit/index.js.map +1 -0
- package/dist/training/viewer/cockpit/interaction.d.ts +2 -0
- package/dist/training/viewer/cockpit/interaction.js +103 -0
- package/dist/training/viewer/cockpit/interaction.js.map +1 -0
- package/dist/training/viewer/cockpit/overview.d.ts +4 -0
- package/dist/training/viewer/cockpit/overview.js +62 -0
- package/dist/training/viewer/cockpit/overview.js.map +1 -0
- package/dist/training/viewer/cockpit/page.d.ts +2 -0
- package/dist/training/viewer/cockpit/page.js +39 -0
- package/dist/training/viewer/cockpit/page.js.map +1 -0
- package/dist/training/viewer/cockpit/plots.d.ts +6 -0
- package/dist/training/viewer/cockpit/plots.js +67 -0
- package/dist/training/viewer/cockpit/plots.js.map +1 -0
- package/dist/training/viewer/cockpit/responsive.d.ts +2 -0
- package/dist/training/viewer/cockpit/responsive.js +86 -0
- package/dist/training/viewer/cockpit/responsive.js.map +1 -0
- package/dist/training/viewer/cockpit/styles.d.ts +2 -0
- package/dist/training/viewer/cockpit/styles.js +349 -0
- package/dist/training/viewer/cockpit/styles.js.map +1 -0
- package/dist/training/viewer/costs.d.ts +4 -0
- package/dist/training/viewer/costs.js +81 -0
- package/dist/training/viewer/costs.js.map +1 -0
- package/dist/training/viewer/from-trials.d.ts +33 -0
- package/dist/training/viewer/from-trials.js +96 -0
- package/dist/training/viewer/from-trials.js.map +1 -0
- package/dist/training/viewer/index.d.ts +4 -0
- package/dist/training/viewer/index.js +4 -0
- package/dist/training/viewer/index.js.map +1 -0
- package/dist/training/viewer/metrics/candidates.d.ts +10 -0
- package/dist/training/viewer/metrics/candidates.js +56 -0
- package/dist/training/viewer/metrics/candidates.js.map +1 -0
- package/dist/training/viewer/metrics/index.d.ts +2 -0
- package/dist/training/viewer/metrics/index.js +2 -0
- package/dist/training/viewer/metrics/index.js.map +1 -0
- package/dist/training/viewer/metrics/model.d.ts +4 -0
- package/dist/training/viewer/metrics/model.js +11 -0
- package/dist/training/viewer/metrics/model.js.map +1 -0
- package/dist/training/viewer/metrics/recorded-costs.d.ts +4 -0
- package/dist/training/viewer/metrics/recorded-costs.js +55 -0
- package/dist/training/viewer/metrics/recorded-costs.js.map +1 -0
- package/dist/training/viewer/metrics/scores.d.ts +11 -0
- package/dist/training/viewer/metrics/scores.js +139 -0
- package/dist/training/viewer/metrics/scores.js.map +1 -0
- package/dist/training/viewer/metrics/types.d.ts +95 -0
- package/dist/training/viewer/metrics/types.js +2 -0
- package/dist/training/viewer/metrics/types.js.map +1 -0
- package/dist/training/viewer/page.d.ts +4 -0
- package/dist/training/viewer/page.js +7 -0
- package/dist/training/viewer/page.js.map +1 -0
- package/dist/training/viewer/projection.d.ts +3 -0
- package/dist/training/viewer/projection.js +98 -0
- package/dist/training/viewer/projection.js.map +1 -0
- package/dist/training/viewer/server.d.ts +3 -0
- package/dist/training/viewer/server.js +80 -0
- package/dist/training/viewer/server.js.map +1 -0
- package/dist/training/viewer/stream.d.ts +7 -0
- package/dist/training/viewer/stream.js +70 -0
- package/dist/training/viewer/stream.js.map +1 -0
- package/dist/training/viewer/types.d.ts +172 -0
- package/dist/training/viewer/types.js +2 -0
- package/dist/training/viewer/types.js.map +1 -0
- package/examples/training/AGENTS.md +19 -0
- package/examples/training/fixed-questions/AGENTS.md +7 -0
- package/examples/training/fixed-questions/README.md +19 -0
- package/examples/training/fixed-questions/evals/AGENTS.md +7 -0
- package/examples/training/fixed-questions/evals/delivery.spawnfile-training.yaml +33 -0
- package/examples/training/fixed-questions/evals/item.grader.yaml +41 -0
- package/examples/training/native-formatting/AGENTS.md +10 -0
- package/examples/training/native-formatting/PROMPT.md +4 -0
- package/examples/training/native-formatting/README.md +63 -0
- package/examples/training/native-formatting/SOUL.md +4 -0
- package/examples/training/native-formatting/evals/AGENTS.md +6 -0
- package/examples/training/native-formatting/evals/test.spawnfile-training.yaml +22 -0
- package/examples/training/native-formatting/evals/train.spawnfile-training.yaml +32 -0
- package/examples/training/newsroom-reporting/.spawnignore +4 -0
- package/examples/training/newsroom-reporting/AGENTS.md +24 -0
- package/examples/training/newsroom-reporting/README.md +255 -0
- package/examples/training/newsroom-reporting/Spawnfile +248 -0
- package/examples/training/newsroom-reporting/environment/AGENTS.md +14 -0
- package/examples/training/newsroom-reporting/environment/scribe/AGENTS.md +28 -0
- package/examples/training/newsroom-reporting/environment/scribe/RUNBOOK.md +50 -0
- package/examples/training/newsroom-reporting/environment/scribe/SOUL.md +6 -0
- package/examples/training/newsroom-reporting/evals/AGENTS.md +14 -0
- package/examples/training/newsroom-reporting/evals/test.spawnfile-training.yaml +165 -0
- package/examples/training/newsroom-reporting/evals/train.spawnfile-training.yaml +195 -0
- package/package.json +19 -6
- package/runtimes.yaml +6 -6
- package/dist/cli/paideiaDelegation.js +0 -211
- package/dist/cli/paideiaSupervisor.d.ts +0 -17
- package/dist/cli/paideiaSupervisor.js +0 -48
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { posix } from 'node:path';
|
|
3
|
+
import { nativeMounts } from './manifest.js';
|
|
4
|
+
import { containerSecurityOptions } from './preflight.js';
|
|
5
|
+
import { containerPaths } from '../receipt/index.js';
|
|
6
|
+
export const ownerLabel = 'training.daimon-native.owner';
|
|
7
|
+
export const trialLabel = 'training.daimon-native.trial';
|
|
8
|
+
export function dockerCommand(command = 'docker') {
|
|
9
|
+
return async (args, options = {}) => new Promise((resolve, reject) => {
|
|
10
|
+
if (options.signal?.aborted) {
|
|
11
|
+
reject(new Error('Docker operation aborted'));
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const child = spawn(command, args, { stdio: ['pipe', 'pipe', 'pipe'] });
|
|
15
|
+
let stdout = '';
|
|
16
|
+
let stderr = '';
|
|
17
|
+
let failure;
|
|
18
|
+
let force;
|
|
19
|
+
const abort = (reason = 'Docker operation aborted') => {
|
|
20
|
+
failure ??= new Error(reason);
|
|
21
|
+
child.kill('SIGTERM');
|
|
22
|
+
force ??= setTimeout(() => child.kill('SIGKILL'), 1000);
|
|
23
|
+
};
|
|
24
|
+
const onAbort = () => abort();
|
|
25
|
+
const timer = setTimeout(() => abort('Docker operation deadline exceeded'), options.timeoutMs ?? 15_000);
|
|
26
|
+
options.signal?.addEventListener('abort', onAbort, { once: true });
|
|
27
|
+
child.stdout.on('data', bytes => { stdout += String(bytes); if (Buffer.byteLength(stdout) > 16_777_216)
|
|
28
|
+
abort('Docker output exceeded its bound'); });
|
|
29
|
+
child.stderr.on('data', bytes => { stderr += String(bytes); if (Buffer.byteLength(stderr) > 65536)
|
|
30
|
+
abort('Docker diagnostics exceeded their bound'); });
|
|
31
|
+
child.stdin.on('error', () => undefined);
|
|
32
|
+
child.once('error', error => { failure = error; });
|
|
33
|
+
child.once('close', code => {
|
|
34
|
+
clearTimeout(timer);
|
|
35
|
+
clearTimeout(force);
|
|
36
|
+
options.signal?.removeEventListener('abort', onAbort);
|
|
37
|
+
if (failure)
|
|
38
|
+
reject(failure);
|
|
39
|
+
else
|
|
40
|
+
resolve({ code: code ?? 1, stdout, stderr });
|
|
41
|
+
});
|
|
42
|
+
child.stdin.end(options.stdin);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export function createContainerArguments(launch, name, owner, trialId, timeoutMs, user = `${process.getuid?.() ?? 1000}:${process.getgid?.() ?? 1000}`) {
|
|
46
|
+
const security = containerSecurityOptions(launch);
|
|
47
|
+
const mounts = [...nativeMounts(launch),
|
|
48
|
+
{ source: launch.config, target: containerPaths.config, readonly: true },
|
|
49
|
+
{ source: launch.tokenFile, target: containerPaths.token, readonly: true },
|
|
50
|
+
{ source: launch.controlRoot, target: containerPaths.control, readonly: false },
|
|
51
|
+
{ source: launch.workerRoot, target: containerPaths.worker, readonly: true },
|
|
52
|
+
{ source: launch.receiptFile, target: containerPaths.receipt, readonly: true },
|
|
53
|
+
...(launch.bootstrap ? [{ source: launch.bootstrap.root, target: containerPaths.bootstrap, readonly: true }] : []),
|
|
54
|
+
];
|
|
55
|
+
return ['create', '--name', name, '--label', `${ownerLabel}=${owner}`, '--label', `${trialLabel}=${trialId}`,
|
|
56
|
+
'--pull', 'never', '--init', '--read-only', '--user', user, '--cap-drop', 'ALL',
|
|
57
|
+
'--security-opt', 'no-new-privileges', ...security, '--pids-limit', '256',
|
|
58
|
+
'--tmpfs', '/tmp:rw,nosuid,nodev,size=268435456', '--tmpfs', '/run:rw,nosuid,nodev,size=16777216',
|
|
59
|
+
'--env-file', launch.envFile, '--workdir', '/opt/training',
|
|
60
|
+
...mounts.flatMap(mount => ['--mount', `type=bind,source=${mount.source},target=${mount.target}${mount.readonly ? ',readonly' : ''}`]),
|
|
61
|
+
'--entrypoint', '/usr/local/bin/node', launch.image, '--experimental-strip-types',
|
|
62
|
+
launch.bootstrap ? posix.join(containerPaths.bootstrap, launch.bootstrap.entrypoint) : `${containerPaths.worker}/worker/cli.js`,
|
|
63
|
+
'--launch', containerPaths.receipt, '--config', containerPaths.config, '--config-sha256', launch.configSha256, '--control-root', containerPaths.control,
|
|
64
|
+
'--token-file', containerPaths.token, '--evidence', `${containerPaths.control}/evidence.json`, '--trial-id', trialId,
|
|
65
|
+
'--timeout-ms', String(timeoutMs), '--schedule-override', 'disabled'];
|
|
66
|
+
}
|
|
67
|
+
export async function inspectOwned(run, name, owner) {
|
|
68
|
+
const result = await run(['inspect', name, '--format', '{{json .}}']);
|
|
69
|
+
if (result.code !== 0) {
|
|
70
|
+
if (/No such (?:object|container)/iu.test(result.stderr))
|
|
71
|
+
return undefined;
|
|
72
|
+
throw new Error('Cannot inspect native container ownership');
|
|
73
|
+
}
|
|
74
|
+
const value = JSON.parse(result.stdout);
|
|
75
|
+
if (value.Config?.Labels?.[ownerLabel] !== owner || typeof value.State?.Running !== 'boolean') {
|
|
76
|
+
throw new Error('Native container ownership or state mismatch');
|
|
77
|
+
}
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* `node:http` rather than `fetch`: a working worker holds the socket open for as
|
|
82
|
+
* long as its turn takes, and undici's ambient 300-second header timeout would
|
|
83
|
+
* kill a healthy one well inside a legitimate deadline. Here the caller's own
|
|
84
|
+
* deadline is the only bound, as it already was for the surrounding exec.
|
|
85
|
+
*/
|
|
86
|
+
const httpScript = `import {readFile} from 'node:fs/promises';
|
|
87
|
+
import {request} from 'node:http';
|
|
88
|
+
const input=JSON.parse(await new Promise(resolve=>{let s='';process.stdin.setEncoding('utf8');process.stdin.on('data',v=>s+=v);process.stdin.on('end',()=>resolve(s));}));
|
|
89
|
+
const token=(await readFile(input.tokenFile,'utf8')).trim();
|
|
90
|
+
const payload=input.body===undefined?undefined:JSON.stringify(input.body);
|
|
91
|
+
const value=await new Promise((resolve,reject)=>{
|
|
92
|
+
const call=request({host:'127.0.0.1',port:input.port,path:input.path,method:payload===undefined?'GET':'POST',signal:AbortSignal.timeout(input.timeoutMs),headers:{authorization:'Bearer '+token,...(payload===undefined?{}:{'content-type':'application/json'})}},response=>{
|
|
93
|
+
let text='';response.setEncoding('utf8');response.on('data',chunk=>{text+=chunk});
|
|
94
|
+
response.on('end',()=>{let parsed;try{parsed=JSON.parse(text)}catch(error){reject(error);return}
|
|
95
|
+
if(response.statusCode<200||response.statusCode>299){reject(Error('Native HTTP '+response.statusCode+': '+JSON.stringify(parsed)));return}
|
|
96
|
+
resolve(parsed)})});
|
|
97
|
+
call.on('error',reject);if(payload!==undefined)call.write(payload);call.end()});
|
|
98
|
+
process.stdout.write(JSON.stringify(value));`;
|
|
99
|
+
export async function workerRequest(run, name, path, body, timeoutMs = 5000, signal, port = 19700, tokenFile = containerPaths.token) {
|
|
100
|
+
const result = await run(['exec', '-i', name, '/usr/local/bin/node', '--input-type=module', '-e', httpScript], { signal, timeoutMs: timeoutMs + 2000, stdin: JSON.stringify({ path, body, timeoutMs, port, tokenFile }) });
|
|
101
|
+
if (result.code !== 0)
|
|
102
|
+
throw new Error(`Native worker request failed: ${result.stderr.slice(-2000)}`);
|
|
103
|
+
return JSON.parse(result.stdout);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=docker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/container/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type GrokNativeLaunch } from '../receipt/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* What the container's own root said about this slot, read before any process starts.
|
|
4
|
+
*
|
|
5
|
+
* A Codex launch anchors every writable root and every control file inside the
|
|
6
|
+
* trial runtime home, a directory the evaluator created for this trial: a launch
|
|
7
|
+
* receipt can therefore never widen writability past the evaluator's own
|
|
8
|
+
* scratch. A Grok launch cannot use that anchor — the training container fixes
|
|
9
|
+
* its slot paths and the projection digest binds them — so the equivalent
|
|
10
|
+
* authority is this receipt. The root slot supervisor writes it after running a
|
|
11
|
+
* worker-uid denial canary over every path in the digest-bound projection, and
|
|
12
|
+
* it names the digest it certifies. Training is not that authority, so the file
|
|
13
|
+
* must be root-owned (or, outside a container, owned by this evaluator) and
|
|
14
|
+
* never group- or world-writable.
|
|
15
|
+
*
|
|
16
|
+
* Only the denial set is returned. Receipt freshness stays with the evaluator's
|
|
17
|
+
* slot freshness store, which is the single authority for nonce and generation;
|
|
18
|
+
* the projection v2 digest is checked here because it binds this denial set and
|
|
19
|
+
* the declared workerConfigVariant to this launch. The slot receipt remains v2
|
|
20
|
+
* for both worker variants; launch parsing refuses unclocked task-clock trials.
|
|
21
|
+
*/
|
|
22
|
+
export declare function readGrokSlotDenials(launch: GrokNativeLaunch): Promise<string[]>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { lstat, realpath } from 'node:fs/promises';
|
|
2
|
+
import { grokSlotPreflightSchema, readPrivateFile } from '../receipt/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* What the container's own root said about this slot, read before any process starts.
|
|
5
|
+
*
|
|
6
|
+
* A Codex launch anchors every writable root and every control file inside the
|
|
7
|
+
* trial runtime home, a directory the evaluator created for this trial: a launch
|
|
8
|
+
* receipt can therefore never widen writability past the evaluator's own
|
|
9
|
+
* scratch. A Grok launch cannot use that anchor — the training container fixes
|
|
10
|
+
* its slot paths and the projection digest binds them — so the equivalent
|
|
11
|
+
* authority is this receipt. The root slot supervisor writes it after running a
|
|
12
|
+
* worker-uid denial canary over every path in the digest-bound projection, and
|
|
13
|
+
* it names the digest it certifies. Training is not that authority, so the file
|
|
14
|
+
* must be root-owned (or, outside a container, owned by this evaluator) and
|
|
15
|
+
* never group- or world-writable.
|
|
16
|
+
*
|
|
17
|
+
* Only the denial set is returned. Receipt freshness stays with the evaluator's
|
|
18
|
+
* slot freshness store, which is the single authority for nonce and generation;
|
|
19
|
+
* the projection v2 digest is checked here because it binds this denial set and
|
|
20
|
+
* the declared workerConfigVariant to this launch. The slot receipt remains v2
|
|
21
|
+
* for both worker variants; launch parsing refuses unclocked task-clock trials.
|
|
22
|
+
*/
|
|
23
|
+
export async function readGrokSlotDenials(launch) {
|
|
24
|
+
const file = launch.broker.slotPreflightReceipt;
|
|
25
|
+
if (await realpath(file) !== file)
|
|
26
|
+
throw new Error('The Grok slot preflight receipt must be a canonical file');
|
|
27
|
+
const entry = await lstat(file);
|
|
28
|
+
const owner = process.getuid?.();
|
|
29
|
+
if ((entry.mode & 0o022) !== 0 || entry.uid !== 0 && entry.uid !== owner) {
|
|
30
|
+
throw new Error('The Grok slot preflight receipt must be written by the container root and stay unwritable to other users');
|
|
31
|
+
}
|
|
32
|
+
const receipt = grokSlotPreflightSchema.parse(JSON.parse(await readPrivateFile(file, 262_144)));
|
|
33
|
+
if (receipt.projection_sha256 !== launch.broker.projectionSha256) {
|
|
34
|
+
throw new Error('The Grok slot preflight receipt certifies a different projection than this launch declares');
|
|
35
|
+
}
|
|
36
|
+
return [...new Set(receipt.canaries.map(canary => canary.path))].sort();
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=grok-slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grok-slot.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/container/grok-slot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAyB,MAAM,qBAAqB,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAwB;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAChD,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC/G,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;IAC9H,CAAC;IACD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAChG,IAAI,OAAO,CAAC,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;IAChH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { dockerCommand, createContainerArguments, inspectOwned, workerRequest, ownerLabel, trialLabel } from './docker.js';
|
|
2
|
+
export type { DockerCommand, DockerResult, ContainerInspection } from './docker.js';
|
|
3
|
+
export { startOwnedContainer } from './lifecycle.js';
|
|
4
|
+
export { loadNativeLaunch, nativeMounts } from './manifest.js';
|
|
5
|
+
export { containerSecurityOptions, grokContainerUnsupported, sandboxChecks, sandboxPreflightSchema } from './preflight.js';
|
|
6
|
+
export { assertLeasedLaunch } from './slot.js';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { dockerCommand, createContainerArguments, inspectOwned, workerRequest, ownerLabel, trialLabel } from './docker.js';
|
|
2
|
+
export { startOwnedContainer } from './lifecycle.js';
|
|
3
|
+
export { loadNativeLaunch, nativeMounts } from './manifest.js';
|
|
4
|
+
export { containerSecurityOptions, grokContainerUnsupported, sandboxChecks, sandboxPreflightSchema } from './preflight.js';
|
|
5
|
+
export { assertLeasedLaunch } from './slot.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/container/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3H,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC3H,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StopReceipt } from '../../../../../training/index.js';
|
|
2
|
+
import { type DockerCommand } from './docker.js';
|
|
3
|
+
import type { VerifiedNativeLaunch } from '../receipt/index.js';
|
|
4
|
+
export declare function startOwnedContainer(run: DockerCommand, launch: VerifiedNativeLaunch, trialId: string, timeoutMs: number, signal?: AbortSignal, startupMs?: number): Promise<{
|
|
5
|
+
name: string;
|
|
6
|
+
owner: `${string}-${string}-${string}-${string}-${string}`;
|
|
7
|
+
stop: (reason: string) => Promise<StopReceipt>;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { canonicalWireId } from '../../../../../training/index.js';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { verifyNativeSandbox } from './preflight.js';
|
|
4
|
+
import { createContainerArguments, inspectOwned, workerRequest } from './docker.js';
|
|
5
|
+
export async function startOwnedContainer(run, launch, trialId, timeoutMs, signal, startupMs = 60_000) {
|
|
6
|
+
const owner = randomUUID();
|
|
7
|
+
const name = `training-${owner}`;
|
|
8
|
+
let created = false;
|
|
9
|
+
let stopping;
|
|
10
|
+
const stop = (reason) => {
|
|
11
|
+
stopping ??= (async () => {
|
|
12
|
+
let native;
|
|
13
|
+
try {
|
|
14
|
+
if (!created)
|
|
15
|
+
return receipt('acknowledged', 'confirmed', reason, 'No native container was created');
|
|
16
|
+
let state = await inspectOwned(run, name, owner);
|
|
17
|
+
if (!state)
|
|
18
|
+
return receipt('acknowledged', 'confirmed', reason, 'Owned native container is absent');
|
|
19
|
+
if (state.State.Running) {
|
|
20
|
+
try {
|
|
21
|
+
native = await workerRequest(run, name, '/trial/stop', {}, 6000, undefined, launch.host.port);
|
|
22
|
+
}
|
|
23
|
+
catch { /* outer containment remains authoritative */ }
|
|
24
|
+
await run(['stop', '--time', '2', name], { timeoutMs: 5000 }).catch(() => undefined);
|
|
25
|
+
state = await inspectOwned(run, name, owner);
|
|
26
|
+
if (state?.State.Running) {
|
|
27
|
+
await run(['kill', name], { timeoutMs: 5000 });
|
|
28
|
+
const deadline = Date.now() + 3000;
|
|
29
|
+
do {
|
|
30
|
+
state = await inspectOwned(run, name, owner);
|
|
31
|
+
if (!state?.State.Running)
|
|
32
|
+
break;
|
|
33
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
34
|
+
} while (Date.now() < deadline);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (state?.State.Running)
|
|
38
|
+
throw new Error('Owned container still reports running after termination');
|
|
39
|
+
const removed = await run(['rm', name], { timeoutMs: 5000 });
|
|
40
|
+
if (removed.code !== 0 && await inspectOwned(run, name, owner))
|
|
41
|
+
throw new Error('Owned stopped container could not be removed');
|
|
42
|
+
if (await inspectOwned(run, name, owner))
|
|
43
|
+
throw new Error('Owned container remained after removal');
|
|
44
|
+
return receipt('acknowledged', 'confirmed', reason, `Owned container stopped and removed; native stop ${native?.state ?? 'unavailable'}`);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return receipt('unknown', 'unknown', reason, `Container shutdown unconfirmed: ${String(error)}`);
|
|
48
|
+
}
|
|
49
|
+
})();
|
|
50
|
+
return stopping;
|
|
51
|
+
};
|
|
52
|
+
try {
|
|
53
|
+
const context = await run(['context', 'inspect', '--format', '{{json .Endpoints.docker.Host}}'], { signal });
|
|
54
|
+
if (context.code !== 0 || !String(JSON.parse(context.stdout)).startsWith('unix://') ||
|
|
55
|
+
process.env.DOCKER_HOST && !process.env.DOCKER_HOST.startsWith('unix://'))
|
|
56
|
+
throw new Error('Native trials require a local Docker socket context');
|
|
57
|
+
created = true;
|
|
58
|
+
const create = await run(createContainerArguments(launch, name, owner, trialId, timeoutMs), { signal, timeoutMs: 30_000 });
|
|
59
|
+
if (create.code !== 0 || !/^[a-f0-9]{64}$/u.test(create.stdout.trim()))
|
|
60
|
+
throw new Error(`Native container creation failed: ${create.stderr.slice(-1000)}`);
|
|
61
|
+
await inspectOwned(run, name, owner);
|
|
62
|
+
const started = await run(['start', name], { signal });
|
|
63
|
+
if (started.code !== 0)
|
|
64
|
+
throw new Error(`Native container start failed: ${started.stderr.slice(-1000)}`);
|
|
65
|
+
const deadline = Date.now() + startupMs;
|
|
66
|
+
let lastError = '';
|
|
67
|
+
while (Date.now() < deadline) {
|
|
68
|
+
if (signal?.aborted)
|
|
69
|
+
throw new Error('Native startup aborted');
|
|
70
|
+
const state = await inspectOwned(run, name, owner);
|
|
71
|
+
if (!state?.State.Running) {
|
|
72
|
+
const logs = await run(['logs', '--tail', '20', name]);
|
|
73
|
+
throw new Error(`Native container exited before readiness: ${logs.stderr.slice(-2000)}${logs.stdout.slice(-2000)}`);
|
|
74
|
+
}
|
|
75
|
+
let healthy = false;
|
|
76
|
+
try {
|
|
77
|
+
const health = await workerRequest(run, name, '/trial/health', undefined, 1000, signal, launch.host.port);
|
|
78
|
+
const logs = await run(['logs', '--tail', '100', name], { signal });
|
|
79
|
+
const ready = logs.stdout.split('\n').filter(Boolean).flatMap(line => { try {
|
|
80
|
+
return [JSON.parse(line)];
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return [];
|
|
84
|
+
} })
|
|
85
|
+
.find(row => canonicalWireId(row.schema) === 'spawnfile.training.daimon-native.ready.v1' && row.trialId === trialId && row.configSha256 === launch.configSha256);
|
|
86
|
+
healthy = !!ready && health.version === 'noopolis.daimon.organization-runtime-health.v1' && health.state === 'running' &&
|
|
87
|
+
health.agents.length === 1 && health.agents[0]?.agentId === launch.agent.id;
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
lastError = String(error);
|
|
91
|
+
}
|
|
92
|
+
if (healthy) {
|
|
93
|
+
await verifyNativeSandbox(run, name, launch, trialId, signal);
|
|
94
|
+
return { name, owner, stop };
|
|
95
|
+
}
|
|
96
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
97
|
+
}
|
|
98
|
+
throw new Error(`Native startup deadline exceeded: ${lastError}`);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
const outcome = await stop('Native startup failed');
|
|
102
|
+
if (outcome.quiescence !== 'confirmed')
|
|
103
|
+
throw new Error(`${String(error)}; ${outcome.detail}`, { cause: error });
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function receipt(state, quiescence, reason, detail) {
|
|
108
|
+
return { state, scope: 'native-handle', quiescence, remoteWork: 'unknown', reason, detail };
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/container/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SubjectStart } from '../../../../../training/index.js';
|
|
2
|
+
import { type NativeLaunch, type VerifiedNativeLaunch, type NativeMount } from '../receipt/index.js';
|
|
3
|
+
export declare function nativeMounts(launch: NativeLaunch): NativeMount[];
|
|
4
|
+
/**
|
|
5
|
+
* Only fresh subtrees explicitly projected by trusted preparation enter the subject.
|
|
6
|
+
*
|
|
7
|
+
* Codex anchors every writable root, control file and control root inside the
|
|
8
|
+
* trial runtime home the evaluator created for this trial, so a launch receipt
|
|
9
|
+
* can never widen writability past that scratch. A brokered Grok launch runs in
|
|
10
|
+
* a training container whose slot paths are fixed and bound by
|
|
11
|
+
* `projection_sha256`, so the same guarantee is taken from the container
|
|
12
|
+
* contract instead: the two writable roots are exactly the trial workspace and
|
|
13
|
+
* the trial runtime home the evaluator itself named (and the projection digest
|
|
14
|
+
* binds both), the control root and every control input sit inside a root
|
|
15
|
+
* attested, worker-denied slot root, and no writable root touches one.
|
|
16
|
+
*/
|
|
17
|
+
export declare function loadNativeLaunch(input: SubjectStart, child?: boolean): Promise<VerifiedNativeLaunch>;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { assertLeasedLaunch } from './slot.js';
|
|
2
|
+
import { lstat, realpath, readdir } from 'node:fs/promises';
|
|
3
|
+
import { basename, dirname, join, posix, resolve } from 'node:path';
|
|
4
|
+
import { grokContainerUnsupported } from './preflight.js';
|
|
5
|
+
import { readGrokSlotDenials } from './grok-slot.js';
|
|
6
|
+
import { containerPaths, grokSubjectRoots, isGrokLaunch, nativeTrialArtifactsRoot, parseNativeLaunch, readPrivateFile, sha256, within } from '../receipt/index.js';
|
|
7
|
+
export function nativeMounts(launch) {
|
|
8
|
+
return [{ ...launch.workspace, readonly: false },
|
|
9
|
+
...launch.projections.map(({ source, target }) => ({ source, target, readonly: false })),
|
|
10
|
+
...launch.credentials.map(row => ({ ...row, readonly: true }))];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Only fresh subtrees explicitly projected by trusted preparation enter the subject.
|
|
14
|
+
*
|
|
15
|
+
* Codex anchors every writable root, control file and control root inside the
|
|
16
|
+
* trial runtime home the evaluator created for this trial, so a launch receipt
|
|
17
|
+
* can never widen writability past that scratch. A brokered Grok launch runs in
|
|
18
|
+
* a training container whose slot paths are fixed and bound by
|
|
19
|
+
* `projection_sha256`, so the same guarantee is taken from the container
|
|
20
|
+
* contract instead: the two writable roots are exactly the trial workspace and
|
|
21
|
+
* the trial runtime home the evaluator itself named (and the projection digest
|
|
22
|
+
* binds both), the control root and every control input sit inside a root
|
|
23
|
+
* attested, worker-denied slot root, and no writable root touches one.
|
|
24
|
+
*/
|
|
25
|
+
export async function loadNativeLaunch(input, child = false) {
|
|
26
|
+
const runtime = await realpath(input.runtimeHomePath);
|
|
27
|
+
// The resolved trial runtime home, not the caller's spelling of it: preparation may reach a fixed slot
|
|
28
|
+
// root through a symlink, and the worker refuses any control file whose own path traverses one. This
|
|
29
|
+
// cannot redirect the receipt — the value comes from the evaluator's `runtimeHomePath`, never from the
|
|
30
|
+
// launch, and every check below still pins that resolved root (for Grok, to the digest-bound slot home).
|
|
31
|
+
const receiptFile = join(runtime, 'native-launch.json');
|
|
32
|
+
const launch = parseNativeLaunch(JSON.parse(await readPrivateFile(receiptFile, 65536)));
|
|
33
|
+
if (input.slot)
|
|
34
|
+
assertLeasedLaunch(launch, input.slot);
|
|
35
|
+
if (launch.agent.engine === 'grok' && !child)
|
|
36
|
+
throw new Error(grokContainerUnsupported);
|
|
37
|
+
const workspace = await realpath(input.workspacePath);
|
|
38
|
+
if (input.model !== launch.agent.model)
|
|
39
|
+
throw new Error('Subject model differs from the prepared native model');
|
|
40
|
+
if (input.tools?.length)
|
|
41
|
+
throw new Error('Fixture functions cannot replace native runtime tools');
|
|
42
|
+
if (await realpath(launch.workspace.source) !== workspace)
|
|
43
|
+
throw new Error('Native workspace must be the materialized trial workspace');
|
|
44
|
+
const instructions = await readPrivateFile(join(workspace, launch.instructions.relativePath));
|
|
45
|
+
if (instructions !== input.instructions || sha256(instructions) !== launch.instructions.sha256) {
|
|
46
|
+
throw new Error('Materialized native instruction bytes differ from the declared candidate');
|
|
47
|
+
}
|
|
48
|
+
if (sha256(await readPrivateFile(launch.config)) !== launch.configSha256)
|
|
49
|
+
throw new Error('Native launch config digest mismatch');
|
|
50
|
+
const slotDenied = isGrokLaunch(launch) ? await readGrokSlotDenials(launch) : undefined;
|
|
51
|
+
const deniedRoot = (path) => !!slotDenied?.some(root => within(root, path));
|
|
52
|
+
const touchesDenied = (path) => !!slotDenied?.some(root => within(root, path) || within(path, root));
|
|
53
|
+
const control = await realpath(launch.controlRoot);
|
|
54
|
+
if (slotDenied) {
|
|
55
|
+
const entry = await lstat(control);
|
|
56
|
+
// The receipt is the container root's own statement; a control root it does not deny to the worker uid is refused.
|
|
57
|
+
if (control !== launch.controlRoot || !entry.isDirectory() || (entry.mode & 0o077) !== 0 ||
|
|
58
|
+
!slotDenied.includes(control) || within(workspace, control)) {
|
|
59
|
+
throw new Error('Native Grok control must be a private slot directory the verified slot receipt denies to the worker');
|
|
60
|
+
}
|
|
61
|
+
// The slot control root is shared across trials and already holds Daimon's own store, so freshness is per trial.
|
|
62
|
+
if (await lstat(nativeTrialArtifactsRoot(launch, input.trialId)).then(() => true, () => false)) {
|
|
63
|
+
throw new Error('Native Grok control already holds fresh trial data for this trial identity');
|
|
64
|
+
}
|
|
65
|
+
if ((await lstat(receiptFile)).mode & 0o077)
|
|
66
|
+
throw new Error('The Grok native launch receipt must stay private inside the slot runtime home');
|
|
67
|
+
}
|
|
68
|
+
else if (!within(runtime, control) || control === runtime || within(workspace, control) || (await readdir(control)).length) {
|
|
69
|
+
throw new Error('Native control must be a fresh empty directory within the trial runtime');
|
|
70
|
+
}
|
|
71
|
+
for (const file of [launch.config, launch.tokenFile, launch.envFile]) {
|
|
72
|
+
const path = await realpath(file);
|
|
73
|
+
const anchored = slotDenied ? deniedRoot(path) : within(runtime, path);
|
|
74
|
+
if (path !== file || !anchored || within(workspace, path))
|
|
75
|
+
throw new Error('Native control inputs must be private trial files');
|
|
76
|
+
await readPrivateFile(path);
|
|
77
|
+
}
|
|
78
|
+
if (touchesDenied(workspace))
|
|
79
|
+
throw new Error('The Grok slot workspace cannot be, contain or sit inside a denied slot root');
|
|
80
|
+
const protectedRoots = await Promise.all((input.protectedPaths ?? []).map(path => realpath(path)));
|
|
81
|
+
// The engine-neutral trial runner protects its own runtime home; for a Grok slot that root is the subject's home.
|
|
82
|
+
const subjectRoots = isGrokLaunch(launch) ? grokSubjectRoots(launch) : [];
|
|
83
|
+
const home = launch.projections.find(row => row.role === 'home');
|
|
84
|
+
const targets = new Set();
|
|
85
|
+
const writableSources = [];
|
|
86
|
+
for (const mount of nativeMounts(launch)) {
|
|
87
|
+
const source = await realpath(mount.source);
|
|
88
|
+
const stat = await lstat(source);
|
|
89
|
+
if (source !== resolve(mount.source) || !stat.isFile() && !stat.isDirectory())
|
|
90
|
+
throw new Error('Native bind source must be a real file or directory');
|
|
91
|
+
if (targets.has(mount.target))
|
|
92
|
+
throw new Error('Duplicate native bind target');
|
|
93
|
+
targets.add(mount.target);
|
|
94
|
+
if (['/', '/var', '/var/run', '/run', '/proc', '/sys', '/dev', '/etc', '/usr', '/opt', '/home', '/tmp'].includes(mount.target) ||
|
|
95
|
+
mount.target.includes('docker.sock') || source.includes('docker.sock'))
|
|
96
|
+
throw new Error('Forbidden native bind target');
|
|
97
|
+
if (Object.values(containerPaths).some(target => within(mount.target, target) || within(target, mount.target))) {
|
|
98
|
+
throw new Error('Native bind overlaps worker-owned control paths');
|
|
99
|
+
}
|
|
100
|
+
if (mount.readonly) {
|
|
101
|
+
// Only Codex has a portable ingress credential; Grok launches carry none (schema) and use the broker realm.
|
|
102
|
+
if (launch.agent.engine !== 'codex' || mount.target !== posix.join(home.target, '.daimon-inbound', 'codex-auth') || !stat.isFile() || (stat.mode & 0o077) !== 0 || stat.nlink !== 1) {
|
|
103
|
+
throw new Error('Credential mount must be one private read-only native ingress file');
|
|
104
|
+
}
|
|
105
|
+
const exposedSources = [launch.workspace.source, ...launch.projections.map(row => row.source), launch.workerRoot,
|
|
106
|
+
...(launch.bootstrap ? [launch.bootstrap.root] : [])];
|
|
107
|
+
if (exposedSources.some(root => within(root, source)))
|
|
108
|
+
throw new Error('Credential source cannot also be exposed through another native mount');
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (writableSources.some(root => within(root, source) || within(source, root))) {
|
|
112
|
+
throw new Error('Writable native projections cannot overlap or alias the engine credential home');
|
|
113
|
+
}
|
|
114
|
+
writableSources.push(source);
|
|
115
|
+
if (source !== workspace) {
|
|
116
|
+
if (slotDenied) {
|
|
117
|
+
// Closed set: the schema admits one projection, and it must be the trial runtime home the evaluator named,
|
|
118
|
+
// which the slot projection binds as `runtimeHomePath`. Nothing the launch chose on its own is writable.
|
|
119
|
+
if (source !== runtime || touchesDenied(source)) {
|
|
120
|
+
throw new Error('Native Grok projection must be exactly the slot runtime home and outside every denied slot root');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const childData = child && basename(workspace) === 'workspace' && launch.projections.some(row => row.source === source && ['home', 'memory', 'state'].includes(row.role) && source === join(dirname(workspace), row.role));
|
|
125
|
+
if ((!within(runtime, source) && !childData) || source === runtime || within(source, control) || within(control, source) ||
|
|
126
|
+
[launch.config, launch.tokenFile, launch.envFile].some(path => within(source, path))) {
|
|
127
|
+
throw new Error('Native projection must be fresh trial data and exclude controls');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (mount.target !== home.target && (within(home.target, mount.target) || within(mount.target, home.target))) {
|
|
131
|
+
throw new Error('Native projections cannot alias into the engine home');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (protectedRoots.some(root => within(source, root) && !subjectRoots.includes(root)))
|
|
135
|
+
throw new Error('Native bind contains evaluator-owned files');
|
|
136
|
+
}
|
|
137
|
+
for (const source of [launch.workerRoot, ...(launch.bootstrap ? [launch.bootstrap.root] : [])]) {
|
|
138
|
+
if (await realpath(source) !== source || !(await lstat(source)).isDirectory() || source === '/' ||
|
|
139
|
+
protectedRoots.some(root => within(source, root) || within(root, source)))
|
|
140
|
+
throw new Error('Invalid immutable native code mount');
|
|
141
|
+
}
|
|
142
|
+
return { ...launch, receiptFile };
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/container/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type VerifiedNativeLaunch } from '../receipt/index.js';
|
|
2
|
+
import type { DockerCommand } from './docker.js';
|
|
3
|
+
/** Exact owner-projected policy; fresh config home because sandbox lacks exec's isolation flags. */
|
|
4
|
+
export declare const nativePolicyProbeScript = "\nimport {execFile} from 'node:child_process';\nimport {promisify} from 'node:util';\nimport {mkdtemp,mkdir,readFile,writeFile,rm} from 'node:fs/promises';\nimport {join} from 'node:path';\nconst input=JSON.parse(await new Promise(resolve=>{let s='';process.stdin.setEncoding('utf8');process.stdin.on('data',v=>s+=v);process.stdin.on('end',()=>resolve(s));}));\nconst projection=input.projection;\nconst scratch=await mkdtemp(join(projection.workspacePath,'.spawnfile-training-native-policy-'));\ntry {\n const home=join(scratch,'home'), code=join(home,'.codex'), source=join(scratch,'input'), output=join(scratch,'complete');\n await mkdir(code,{recursive:true,mode:448});\n await writeFile(source,'NATIVE_WORKSPACE_READ',{mode:384});\n const command='const fs=require(\"node:fs\");if(process.cwd()!=='+JSON.stringify(projection.workspacePath)+'||fs.readFileSync('+JSON.stringify(source)+',\"utf8\")!==\"NATIVE_WORKSPACE_READ\")throw Error(\"Native workspace read failed\");fs.writeFileSync('+JSON.stringify(output)+',\"NATIVE_POLICY_EXECUTED\");';\n await promisify(execFile)(projection.executablePath,[...projection.sandboxArgs,'--','/usr/local/bin/node','-e',command],{\n cwd:projection.workspacePath,env:{PATH:process.env.PATH,HOME:home,CODEX_HOME:code,TMPDIR:'/tmp',LANG:'C.UTF-8'},timeout:12000,maxBuffer:65536});\n if(await readFile(output,'utf8')!=='NATIVE_POLICY_EXECUTED')throw Error('Native sandbox command did not complete');\n process.stdout.write(JSON.stringify({schema:'spawnfile.training.daimon-native.policy-preflight.v1',projectionSha256:input.projectionSha256,modelCallsMade:0,workspaceReadWrite:true}));\n} finally {await rm(scratch,{recursive:true,force:true});}\n";
|
|
5
|
+
export declare function verifyPreparedNativeSandbox(run: DockerCommand, name: string, launch: VerifiedNativeLaunch, trialId: string, signal?: AbortSignal): Promise<{
|
|
6
|
+
projectionSha256: string;
|
|
7
|
+
workspaceReadWrite: true;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { canonicalWireId } from '../../../../../training/index.js';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { parseNativeSandboxReceipt, readPrivateFile } from '../receipt/index.js';
|
|
4
|
+
/** Exact owner-projected policy; fresh config home because sandbox lacks exec's isolation flags. */
|
|
5
|
+
export const nativePolicyProbeScript = `
|
|
6
|
+
import {execFile} from 'node:child_process';
|
|
7
|
+
import {promisify} from 'node:util';
|
|
8
|
+
import {mkdtemp,mkdir,readFile,writeFile,rm} from 'node:fs/promises';
|
|
9
|
+
import {join} from 'node:path';
|
|
10
|
+
const input=JSON.parse(await new Promise(resolve=>{let s='';process.stdin.setEncoding('utf8');process.stdin.on('data',v=>s+=v);process.stdin.on('end',()=>resolve(s));}));
|
|
11
|
+
const projection=input.projection;
|
|
12
|
+
const scratch=await mkdtemp(join(projection.workspacePath,'.spawnfile-training-native-policy-'));
|
|
13
|
+
try {
|
|
14
|
+
const home=join(scratch,'home'), code=join(home,'.codex'), source=join(scratch,'input'), output=join(scratch,'complete');
|
|
15
|
+
await mkdir(code,{recursive:true,mode:448});
|
|
16
|
+
await writeFile(source,'NATIVE_WORKSPACE_READ',{mode:384});
|
|
17
|
+
const command='const fs=require("node:fs");if(process.cwd()!=='+JSON.stringify(projection.workspacePath)+'||fs.readFileSync('+JSON.stringify(source)+',"utf8")!=="NATIVE_WORKSPACE_READ")throw Error("Native workspace read failed");fs.writeFileSync('+JSON.stringify(output)+',"NATIVE_POLICY_EXECUTED");';
|
|
18
|
+
await promisify(execFile)(projection.executablePath,[...projection.sandboxArgs,'--','/usr/local/bin/node','-e',command],{
|
|
19
|
+
cwd:projection.workspacePath,env:{PATH:process.env.PATH,HOME:home,CODEX_HOME:code,TMPDIR:'/tmp',LANG:'C.UTF-8'},timeout:12000,maxBuffer:65536});
|
|
20
|
+
if(await readFile(output,'utf8')!=='NATIVE_POLICY_EXECUTED')throw Error('Native sandbox command did not complete');
|
|
21
|
+
process.stdout.write(JSON.stringify({schema:'spawnfile.training.daimon-native.policy-preflight.v1',projectionSha256:input.projectionSha256,modelCallsMade:0,workspaceReadWrite:true}));
|
|
22
|
+
} finally {await rm(scratch,{recursive:true,force:true});}
|
|
23
|
+
`;
|
|
24
|
+
export async function verifyPreparedNativeSandbox(run, name, launch, trialId, signal) {
|
|
25
|
+
const home = launch.projections.find(projection => projection.role === 'home');
|
|
26
|
+
const receipt = parseNativeSandboxReceipt(JSON.parse(await readPrivateFile(join(launch.controlRoot, 'sandbox-projection.json'), 262144)), {
|
|
27
|
+
trialId, configSha256: launch.configSha256, agentId: launch.agent.id, workspacePath: launch.workspace.target, runtimeHomePath: home.target,
|
|
28
|
+
});
|
|
29
|
+
const result = await run(['exec', '-i', name, '/usr/local/bin/node', '--input-type=module', '-e', nativePolicyProbeScript], {
|
|
30
|
+
signal, timeoutMs: 15_000, stdin: JSON.stringify({ path: 'native-policy-preflight', projectionSha256: receipt.projectionSha256, projection: receipt.projection }),
|
|
31
|
+
});
|
|
32
|
+
if (result.code !== 0)
|
|
33
|
+
throw new Error(`Exact native sandbox policy failed before cognition: ${result.stderr.slice(-3000)}`);
|
|
34
|
+
const proof = JSON.parse(result.stdout);
|
|
35
|
+
if (canonicalWireId(proof.schema) !== 'spawnfile.training.daimon-native.policy-preflight.v1' || proof.projectionSha256 !== receipt.projectionSha256 ||
|
|
36
|
+
proof.modelCallsMade !== 0 || proof.workspaceReadWrite !== true)
|
|
37
|
+
throw new Error('Exact native sandbox probe omitted bound workspace execution evidence');
|
|
38
|
+
return { projectionSha256: receipt.projectionSha256, workspaceReadWrite: true };
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=native-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-preflight.js","sourceRoot":"","sources":["../../../../../../src/runtime/daimon/training/native/container/native-preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAA6B,MAAM,qBAAqB,CAAC;AAG5G,oGAAoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;CAkBtC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,GAAkB,EAAE,IAAY,EAAE,MAA4B,EAC9G,OAAe,EAAE,MAAoB;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM,CAAE,CAAC;IAChF,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE;QACxI,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM;KAC3I,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,IAAI,EAAE,uBAAuB,CAAC,EAAE;QAC1H,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;KAClK,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7H,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAA4B,CAAC;IACnE,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,sDAAsD,IAAI,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC,gBAAgB;QACjJ,KAAK,CAAC,cAAc,KAAK,CAAC,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC5J,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { VerifiedNativeLaunch } from '../receipt/index.js';
|
|
2
|
+
import type { DockerCommand } from './docker.js';
|
|
3
|
+
/** Same namespace compatibility policy as Spawnfile's strict native Codex launch. */
|
|
4
|
+
export declare const codexSandboxContainerSecurity: readonly ["--security-opt", "seccomp=unconfined", "--security-opt", "apparmor=unconfined"];
|
|
5
|
+
/** Separate-container Grok needs a broker, realm and root slot supervisor this adapter does not own. */
|
|
6
|
+
export declare const grokContainerUnsupported = "Separate-container Grok native trials are unsupported: run Grok through child-process execution in the broker-capable training container";
|
|
7
|
+
/** Codex's bubblewrap needs unconfined outer profiles; no other engine inherits them. */
|
|
8
|
+
export declare function containerSecurityOptions(launch: VerifiedNativeLaunch): readonly string[];
|
|
9
|
+
export declare const sandboxPreflightSchema = "spawnfile.training.daimon-native.sandbox-preflight.v1";
|
|
10
|
+
export declare const sandboxChecks: readonly ["namespace", "workspaceRead", "workspaceWrite", "runDenied", "authDenied", "ingressDenied", "networkDenied"];
|
|
11
|
+
/** Shared verbatim by the emitted command and transition tests. A timeout proves nothing. */
|
|
12
|
+
export declare const sandboxNetworkProbeScript = "\nlet settled=false;\nconst socket=net.connect({host:'127.0.0.1',port});\nconst fail=message=>{if(settled)return;settled=true;socket.destroy();process.stderr.write(message);process.exitCode=1;};\nsocket.once('connect',()=>fail('Sandbox network reachable'));\nsocket.once('error',()=>{if(settled)return;settled=true;socket.destroy();fs.writeFileSync('complete','SANDBOX_CHECKS_PASSED');});\nsocket.setTimeout(750,()=>fail('Sandbox network probe timed out'));";
|
|
13
|
+
/** Runs only local sandbox commands with non-secret canaries and a fresh Codex home. */
|
|
14
|
+
export declare const sandboxPreflightScript: string;
|
|
15
|
+
export declare function verifyNativeSandbox(run: DockerCommand, name: string, launch: VerifiedNativeLaunch, trialId: string, signal?: AbortSignal): Promise<void>;
|