spawnfile 0.1.25 → 0.1.28
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/index.d.ts +2 -1
- package/dist/compiler/training/index.js +2 -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/public.d.ts +6 -0
- package/dist/runtime/daimon/training/public.js +5 -0
- package/dist/runtime/daimon/training/public.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 +10 -0
- package/dist/runtime/trainingCli.js +27 -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/trainingPublic.d.ts +3 -0
- package/dist/runtime/trainingPublic.js +2 -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 +23 -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 +13 -0
- package/dist/training/experiments/index.js +13 -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 +8 -0
- package/dist/training/experiments/training/index.js +8 -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/public.d.ts +10 -0
- package/dist/training/public.js +7 -0
- package/dist/training/public.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 +31 -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,21 @@
|
|
|
1
|
+
export function observation(overrides = {}) {
|
|
2
|
+
return { id: 'dispatch', source: 'native', seq: 1, type: 'tool.dispatch',
|
|
3
|
+
timestamp: '2026-09-13T12:00:00Z', trialId: 'trial', wakeId: 'wake',
|
|
4
|
+
callId: 'call', tool: 'validate', args: { value: 'article' }, ...overrides };
|
|
5
|
+
}
|
|
6
|
+
export function artifact(value = { body: ['A precise report.'] }) {
|
|
7
|
+
return { name: 'article', checkpointId: 'checkpoint-1', digest: 'sha256:example',
|
|
8
|
+
bytes: JSON.stringify(value), value, provenance: 'test fixture', acceptedCallId: 'file' };
|
|
9
|
+
}
|
|
10
|
+
export function snapshot(overrides = {}) {
|
|
11
|
+
return { trialId: 'trial', recordId: 'record', closed: true, events: [],
|
|
12
|
+
coverage: [{ channel: 'tools', completeness: 'complete', ordering: 'source' },
|
|
13
|
+
{ channel: 'output', completeness: 'complete', ordering: 'source' }],
|
|
14
|
+
artifacts: { article: artifact() }, output: '4', inputFiles: { packet: 'Source evidence' },
|
|
15
|
+
context: { edition: '2026-09-13' }, ...overrides };
|
|
16
|
+
}
|
|
17
|
+
export function evaluationContext(overrides = {}) {
|
|
18
|
+
return { snapshot: snapshot(), results: {}, scores: {}, judges: {}, embeddings: {},
|
|
19
|
+
readText: async () => { throw new Error('Sidecar not registered'); }, ...overrides };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/training/testing/evidence.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CAAC,YAAkC,EAAE;IAC9D,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe;QACtE,SAAS,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;QACnE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;AACjF,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,QAAiB,EAAE,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE;IACvE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB;QAC9E,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;AAC9F,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,YAAyC,EAAE;IAClE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QACrE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC3E,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACtE,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE;QAC1F,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;AACvD,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,YAAwC,EAAE;IAC1E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;QAChF,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { observation, artifact, snapshot, evaluationContext } from './evidence.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/training/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { escapeHtml as e, percent } from './format.js';
|
|
2
|
+
export function liveActivity(data) {
|
|
3
|
+
const activity = data.activity;
|
|
4
|
+
if (!activity)
|
|
5
|
+
return '';
|
|
6
|
+
return `<section class="panel"><h2 class="panel-title">Live measurements</h2><div class="panel-body">
|
|
7
|
+
<strong>${e(activity.status)}</strong><p class="muted">${e(activity.phase)} · ${e(activity.caseId)}</p>
|
|
8
|
+
<div class="budget-row"><span>Observed tools</span><strong>${activity.toolCalls}</strong></div>
|
|
9
|
+
<div class="budget-row"><span>Judge attempts</span><strong>${activity.judgeCalls}</strong></div>
|
|
10
|
+
<div class="activity-measurements">${activity.measurements.map(value => `<div class="budget-row"><span title="${e(value.stageId)}">${e(value.criterionId)}${value.weight === undefined ? '' : ` · ${value.weight}×`}</span>
|
|
11
|
+
<strong>${value.kind === 'gate' ? e(value.status) : percent(value.score)}</strong></div>`).join('')}</div>
|
|
12
|
+
</div></section>`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../../src/training/viewer/cockpit/activity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO;UACC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;6DACrC,QAAQ,CAAC,SAAS;6DAClB,QAAQ,CAAC,UAAU;qCAC3C,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACnE,wCAAwC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG;UACrI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;iBAClF,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { escapeHtml, shown, table } from './format.js';
|
|
2
|
+
function checkTree(checks) {
|
|
3
|
+
if (checks.length === 0)
|
|
4
|
+
return '<p class="muted">No checks supplied.</p>';
|
|
5
|
+
return `<ul>${checks.map((check) => `<li><strong>${escapeHtml(check.label)}</strong> — ${escapeHtml(check.status)};
|
|
6
|
+
score ${shown(check.score)}${check.weight === undefined ? '' : ` · weight ${shown(check.weight)} · contribution ${shown(check.weightedContribution ?? null)}`} <span class="muted">(${escapeHtml(check.id)})</span>
|
|
7
|
+
${check.judgeFailure === undefined ? '' : `<p class="muted">Judge failure: ${escapeHtml(check.judgeFailure.cause)}${check.judgeFailure.status === undefined ? '' : ` ${check.judgeFailure.status}`}${check.judgeFailure.kind === undefined ? '' : ` (${escapeHtml(check.judgeFailure.kind)})`} · judge ${escapeHtml(check.judgeFailure.judge)} · requested ${escapeHtml(check.judgeFailure.requestedModel ?? 'unknown')} · answered ${escapeHtml(check.judgeFailure.responseModel ?? 'unknown')} via ${escapeHtml(check.judgeFailure.responseRoute ?? 'unknown')}</p>`}
|
|
8
|
+
<p>Evidence: ${escapeHtml(check.evidenceIds.join(', ') || 'None supplied')}</p>
|
|
9
|
+
${check.children.length === 0 ? '' : checkTree(check.children)}</li>`).join('')}</ul>`;
|
|
10
|
+
}
|
|
11
|
+
function money(value) {
|
|
12
|
+
if (value === null)
|
|
13
|
+
return 'Unknown';
|
|
14
|
+
return value.low === value.high ? `$${value.low.toFixed(6)}` : `$${value.low.toFixed(6)}–$${value.high.toFixed(6)}`;
|
|
15
|
+
}
|
|
16
|
+
export function costView(costs) {
|
|
17
|
+
if (costs === undefined)
|
|
18
|
+
return '<p class="muted">No cost estimate or recorded valuation supplied.</p>';
|
|
19
|
+
const { planned, observed } = costs;
|
|
20
|
+
const sources = [...(planned?.lines ?? []), ...(observed?.lines ?? [])].flatMap(line => line.price === null ? [] : [line.price]);
|
|
21
|
+
const references = [...new Map(sources.map(price => [JSON.stringify(price), price])).values()].map(price => `<li>${price.source === null ? 'Source link unavailable' : `<a href="${escapeHtml(price.source)}" rel="noreferrer">Rate source</a>`} · checked ${escapeHtml(price.checkedAt)}</li>`).join('');
|
|
22
|
+
const estimate = planned === undefined ? '<p class="muted">No preflight estimate supplied.</p>' :
|
|
23
|
+
`<p>API-equivalent estimate: <strong>${money(planned.total)}</strong> · known subtotal ${money(planned.knownSubtotal)} · ${escapeHtml(planned.coverage)}</p>
|
|
24
|
+
<p class="muted">Planning assumptions, not a spending ceiling or an observed charge.</p>
|
|
25
|
+
${table(['Role / name', 'Phase', 'Requested model', 'Provider', 'Planned calls', 'Estimate USD'], planned.lines.map(line => [`${line.role} / ${line.name}`, line.phase, line.model, shown(line.provider), String(line.plannedCalls), money(line.amount)]))}`;
|
|
26
|
+
const recorded = observed === undefined ? '<p class="muted">No recorded cost valuation supplied.</p>' :
|
|
27
|
+
`<p>Recorded API-equivalent cost: <strong>${money(observed.total)}</strong> · known subtotal ${money(observed.knownSubtotal)}</p>
|
|
28
|
+
<p>Observed-entry pricing: ${escapeHtml(observed.completeness)} · usage capture: ${escapeHtml(observed.usageCoverage)}.</p>
|
|
29
|
+
<p class="muted">Unknown or invalid usage is not zero. Recorded totals may omit unobserved work. Subject model attribution is an unverified requested-model assumption.</p>
|
|
30
|
+
${table(['Role / name', 'Recorded entries', 'API-equivalent USD', 'Known subtotal USD'], observed.groups.map(group => [`${group.role} / ${group.name}`, String(group.entryCount), money(group.amount), money(group.knownSubtotal)]))}
|
|
31
|
+
<details><summary>Recorded models, outcomes and token counts</summary>
|
|
32
|
+
${table(['Role / name', 'Model / attribution', 'Requested model', 'Provider / route', 'Outcome', 'Input', 'Cache reads', 'Cache writes', 'Writes 5m / 1h', 'Output', 'Reasoning', 'Valuation / USD'], observed.lines.map(line => [`${line.role} / ${line.name}`, `${shown(line.model)} / ${line.modelBasis}`, shown(line.requestedModel),
|
|
33
|
+
`${shown(line.provider)} / ${shown(line.route)}`, line.outcome,
|
|
34
|
+
shown(line.usage?.inputTokens ?? null), shown(line.usage?.cachedInputTokens ?? null), shown(line.usage?.cacheWriteInputTokens ?? null),
|
|
35
|
+
`${shown(line.usage?.cacheWrite5mInputTokens ?? null)} / ${shown(line.usage?.cacheWrite1hInputTokens ?? null)}`,
|
|
36
|
+
shown(line.usage?.outputTokens ?? null), shown(line.usage?.reasoningTokens ?? null),
|
|
37
|
+
`${line.usage?.invalid ? 'Invalid usage; ' : ''}${line.valuationStatus} / ${money(line.amount)}`]))}</details>`;
|
|
38
|
+
return `<p>USD text-token valuation only. Subscription fees and subscription quota percentages are separate and unknown.</p>
|
|
39
|
+
${estimate}${recorded}<p class="muted">Cache reads and cache writes are distinct subsets of input; reasoning is already included in output.</p>
|
|
40
|
+
${references ? `<ul>${references}</ul>` : '<p class="muted">No dated rate source supplied.</p>'}`;
|
|
41
|
+
}
|
|
42
|
+
export function trialDetails(data) {
|
|
43
|
+
if (data.trials.length === 0)
|
|
44
|
+
return '<p class="empty-state">No trials supplied.</p>';
|
|
45
|
+
return data.trials.map((trial, index) => `<details class="detail-drawer" id="trial-${index}" data-trial-key="${escapeHtml(trial.id)}"><summary>Trial ${String(index + 1).padStart(2, '0')} · ${escapeHtml(trial.caseId)} <span class="badge">${escapeHtml(trial.status.split(' ')[0])}</span></summary>
|
|
46
|
+
<div class="panel-body"><p class="mono-id">${escapeHtml(trial.id)} · candidate ${escapeHtml(trial.candidateId)}</p><p>Optimizer reward: score ${shown(trial.score)}</p>
|
|
47
|
+
<h3>Required checks</h3>${checkTree(trial.checks)}
|
|
48
|
+
<details><summary>Evidence events · ${trial.events.length}</summary>${table(['ID', 'Type', 'Timestamp', 'Summary'], trial.events.map(event => [event.id, event.type, event.timestamp, event.summary]))}</details>
|
|
49
|
+
<details><summary>Observation coverage</summary>${table(['Channel', 'Completeness', 'Ordering'], trial.coverage.map(row => [row.channel, row.completeness, row.ordering]))}</details>
|
|
50
|
+
</div></details>`).join('');
|
|
51
|
+
}
|
|
52
|
+
export function provenance(data) {
|
|
53
|
+
return `<p>Selected candidate: ${escapeHtml(data.optimizer?.selectedCandidateId ?? 'None supplied')}</p>
|
|
54
|
+
${data.optimizer === undefined ? '<p>No optimizer progress supplied.</p>' : `<p>${escapeHtml(data.optimizer.name)} · ${data.optimizer.evaluations}/${data.optimizer.maxMetricCalls} evaluations · ${data.optimizer.proposals}/${data.optimizer.maxProposals} proposals</p>`}
|
|
55
|
+
${table(['Candidate identity', 'Parents', 'Validation reward', 'Editable resources'], data.candidates.map(candidate => [candidate.id, candidate.parentIds.join(', ') || 'Baseline', shown(candidate.validationScore), candidate.editablePaths.join('\n')]))}
|
|
56
|
+
<h3>Recorded usage</h3>${table(['Purpose', 'Model / attribution', 'Route', 'Input', 'Cache reads', 'Output', 'Source'], data.usage.map(entry => [entry.purpose, `${shown(entry.model)} / ${entry.model === null ? 'unknown' : entry.modelBasis ?? 'provider-reported'}`, shown(entry.route), shown(entry.usage?.inputTokens ?? null), shown(entry.usage?.cachedInputTokens ?? null), shown(entry.usage?.outputTokens ?? null), entry.usage?.source ?? 'Unknown']))}`;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../../src/training/viewer/cockpit/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function escapeHtml(value: string): string;
|
|
2
|
+
export declare function shown(value: string | number | null): string;
|
|
3
|
+
export declare function number(value: number | null): string;
|
|
4
|
+
export declare function percent(value: number | null): string;
|
|
5
|
+
export declare function delta(value: number | null): string;
|
|
6
|
+
export declare function shortId(value: string): string;
|
|
7
|
+
export declare function money(value: {
|
|
8
|
+
low: number;
|
|
9
|
+
high: number;
|
|
10
|
+
} | null | undefined): string;
|
|
11
|
+
export declare function table(headers: string[], rows: string[][]): string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function escapeHtml(value) {
|
|
2
|
+
return value.replace(/[&<>"']/g, character => ({ '&': '&', '<': '<', '>': '>',
|
|
3
|
+
'"': '"', "'": ''' })[character]);
|
|
4
|
+
}
|
|
5
|
+
export function shown(value) { return value === null ? 'Unknown' : String(value); }
|
|
6
|
+
export function number(value) {
|
|
7
|
+
if (value === null)
|
|
8
|
+
return '—';
|
|
9
|
+
return new Intl.NumberFormat('en-US', { maximumFractionDigits: 1 }).format(value);
|
|
10
|
+
}
|
|
11
|
+
export function percent(value) { return value === null ? '—' : number(value * 100); }
|
|
12
|
+
export function delta(value) {
|
|
13
|
+
return value === null ? '—' : `${value > 0 ? '+' : value < 0 ? '−' : ''}${number(Math.abs(value) * 100)}`;
|
|
14
|
+
}
|
|
15
|
+
export function shortId(value) { return value.replace(/^sha256:/, '').slice(0, 8); }
|
|
16
|
+
export function money(value) {
|
|
17
|
+
if (value == null)
|
|
18
|
+
return '—';
|
|
19
|
+
return value.low === value.high ? `$${value.low.toFixed(2)}` : `$${value.low.toFixed(2)}–${value.high.toFixed(2)}`;
|
|
20
|
+
}
|
|
21
|
+
export function table(headers, rows) {
|
|
22
|
+
if (rows.length === 0)
|
|
23
|
+
return '<p class="empty-state">No entries supplied.</p>';
|
|
24
|
+
return `<div class="scroll"><table class="compact-table"><thead><tr>${headers.map(value => `<th scope="col">${escapeHtml(value)}</th>`).join('')}</tr></thead>
|
|
25
|
+
<tbody>${rows.map(row => `<tr>${row.map(value => `<td>${escapeHtml(value)}</td>`).join('')}</tr>`).join('')}</tbody></table></div>`;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/training/viewer/cockpit/format.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;QACrF,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAA6B,IAAY,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnH,MAAM,UAAU,MAAM,CAAC,KAAoB;IACzC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAC/B,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAoB,IAAY,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE5G,MAAM,UAAU,KAAK,CAAC,KAAoB;IACxC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,IAAY,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpG,MAAM,UAAU,KAAK,CAAC,KAAuD;IAC3E,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC;IAC9B,OAAO,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACrH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAiB,EAAE,IAAgB;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,iDAAiD,CAAC;IAChF,OAAO,+DAA+D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACzI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC;AACpI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/training/viewer/cockpit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/** Shipped read-only browser controller; source data comes only from the local viewer. */
|
|
2
|
+
export declare const cockpitScript = "\n(function () {\n let stream, controller, fetching = false, pending = false, unloaded = false, terminal = false;\n const current = () => location.hash.slice(1).split('/');\n const state = text => { const label = document.getElementById('stream-state'); if (label) label.textContent = text; };\n const drawers = () => Array.from(document.querySelectorAll('[data-view-pane]')).flatMap(pane => {\n const positions = new Map();\n return Array.from(pane.querySelectorAll('details')).map(node => {\n const identity = node.closest('[data-trial-key]')?.dataset.trialKey ?? null;\n const ordinal = positions.get(identity) ?? 0; positions.set(identity, ordinal + 1);\n return [JSON.stringify([pane.dataset.viewPane, identity, ordinal]), node];\n });\n });\n const display = (view, metric) => {\n const buttons = Array.from(document.querySelectorAll('[data-view-button]'));\n const panes = Array.from(document.querySelectorAll('[data-view-pane]'));\n const metrics = Array.from(document.querySelectorAll('[data-metric-panel]'));\n const target = buttons.some(button => button.dataset.viewButton === view) ? view : 'overview';\n const chosen = metrics.some(pane => pane.dataset.metricPanel === metric) ? metric : (metrics[0]?.dataset.metricPanel ?? '0');\n for (const button of buttons) {\n const active = button.dataset.viewButton === target;\n button.classList.toggle('active', active); button.setAttribute('aria-pressed', String(active));\n }\n for (const pane of panes) pane.hidden = pane.dataset.viewPane !== target;\n for (const pane of metrics) pane.hidden = pane.dataset.metricPanel !== chosen;\n for (const select of document.querySelectorAll('[data-metric-select]')) select.value = chosen;\n location.hash = target + '/' + chosen;\n };\n const apply = next => {\n // Read presentation state at commit time: the user may interact before a snapshot arrives.\n const live = document.getElementById('poll').checked;\n const scroll = new Map(Array.from(document.querySelectorAll('[data-view-pane], .sidebar')).map(pane => [pane.dataset.viewPane ?? 'sidebar', pane.scrollTop]));\n const opened = new Map(drawers().map(([key, node]) => [key, node.open]));\n const focusId = document.activeElement?.id;\n document.querySelector('.shell').replaceWith(next);\n document.getElementById('poll').checked = live;\n bind(); display(current()[0], current()[1]);\n for (const pane of document.querySelectorAll('[data-view-pane], .sidebar')) pane.scrollTop = scroll.get(pane.dataset.viewPane ?? 'sidebar') ?? 0;\n for (const [key, node] of drawers()) node.open = opened.get(key) ?? false;\n if (focusId) document.getElementById(focusId)?.focus({ preventScroll: true });\n };\n const refresh = async () => {\n if (unloaded || terminal) return;\n if (fetching) { pending = true; return; }\n fetching = true;\n controller = new AbortController();\n const timeout = setTimeout(() => controller?.abort(), 10000);\n try {\n const response = await fetch(location.pathname + location.search, { cache: 'no-store', signal: controller.signal });\n if (!response.ok) throw new Error();\n const next = new DOMParser().parseFromString(await response.text(), 'text/html').querySelector('.shell');\n if (!next) throw new Error();\n if (unloaded || terminal) return;\n apply(next);\n const live = document.getElementById('poll').checked;\n state(live ? (stream?.readyState === 1 ? 'Streaming' : 'Connecting') : 'Paused');\n } catch { if (!unloaded && !terminal) state('Snapshot unavailable'); }\n finally { clearTimeout(timeout); controller = undefined; fetching = false; if (pending) { pending = false; void refresh(); } }\n };\n const connect = () => {\n stream?.close(); stream = undefined;\n if (terminal) { state('Viewer closed'); return; }\n if (!document.getElementById('poll').checked) { pending = false; state('Paused'); return; }\n state('Connecting');\n const connection = new EventSource('/api/events' + location.search); stream = connection;\n const active = () => stream === connection && !unloaded && !terminal;\n stream.addEventListener('open', () => { if (active()) state('Streaming'); });\n stream.addEventListener('snapshot', () => { if (active() && document.visibilityState !== 'hidden') void refresh(); });\n stream.addEventListener('final', event => {\n if (!active()) return;\n terminal = true; pending = false; controller?.abort(); connection.close();\n try {\n const payload = JSON.parse(event.data);\n if (typeof payload.html === 'string') {\n const next = new DOMParser().parseFromString(payload.html, 'text/html').querySelector('.shell');\n if (!next) throw new Error();\n apply(next);\n }\n document.getElementById('poll').checked = false;\n state('Viewer closed');\n } catch { state('Final snapshot unavailable'); }\n });\n stream.addEventListener('unavailable', () => { if (active()) state('Snapshot unavailable'); });\n stream.addEventListener('error', () => { if (active()) state('Disconnected \u00B7 reconnecting'); });\n };\n const bind = () => {\n for (const button of document.querySelectorAll('[data-view-button]')) button.addEventListener('click', () => display(button.dataset.viewButton, current()[1] ?? '0'));\n for (const select of document.querySelectorAll('[data-metric-select]')) select.addEventListener('change', () => { location.search = '?metric=' + select.value; });\n for (const button of document.querySelectorAll('[data-open-trial]')) button.addEventListener('click', () => {\n display('trials', current()[1] ?? '0');\n const drawer = document.getElementById('trial-' + button.dataset.openTrial);\n if (drawer) { drawer.open = true; drawer.scrollIntoView({ block: 'nearest' }); drawer.focus(); }\n });\n document.getElementById('refresh').addEventListener('click', () => { void refresh(); });\n document.getElementById('poll').addEventListener('change', connect);\n };\n bind(); display(current()[0] ?? 'overview', current()[1] ?? '0'); connect();\n document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'visible' && document.getElementById('poll').checked) void refresh(); });\n window.addEventListener('beforeunload', () => { unloaded = true; pending = false; stream?.close(); controller?.abort(); });\n})();\n";
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/** Shipped read-only browser controller; source data comes only from the local viewer. */
|
|
2
|
+
export const cockpitScript = `
|
|
3
|
+
(function () {
|
|
4
|
+
let stream, controller, fetching = false, pending = false, unloaded = false, terminal = false;
|
|
5
|
+
const current = () => location.hash.slice(1).split('/');
|
|
6
|
+
const state = text => { const label = document.getElementById('stream-state'); if (label) label.textContent = text; };
|
|
7
|
+
const drawers = () => Array.from(document.querySelectorAll('[data-view-pane]')).flatMap(pane => {
|
|
8
|
+
const positions = new Map();
|
|
9
|
+
return Array.from(pane.querySelectorAll('details')).map(node => {
|
|
10
|
+
const identity = node.closest('[data-trial-key]')?.dataset.trialKey ?? null;
|
|
11
|
+
const ordinal = positions.get(identity) ?? 0; positions.set(identity, ordinal + 1);
|
|
12
|
+
return [JSON.stringify([pane.dataset.viewPane, identity, ordinal]), node];
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
const display = (view, metric) => {
|
|
16
|
+
const buttons = Array.from(document.querySelectorAll('[data-view-button]'));
|
|
17
|
+
const panes = Array.from(document.querySelectorAll('[data-view-pane]'));
|
|
18
|
+
const metrics = Array.from(document.querySelectorAll('[data-metric-panel]'));
|
|
19
|
+
const target = buttons.some(button => button.dataset.viewButton === view) ? view : 'overview';
|
|
20
|
+
const chosen = metrics.some(pane => pane.dataset.metricPanel === metric) ? metric : (metrics[0]?.dataset.metricPanel ?? '0');
|
|
21
|
+
for (const button of buttons) {
|
|
22
|
+
const active = button.dataset.viewButton === target;
|
|
23
|
+
button.classList.toggle('active', active); button.setAttribute('aria-pressed', String(active));
|
|
24
|
+
}
|
|
25
|
+
for (const pane of panes) pane.hidden = pane.dataset.viewPane !== target;
|
|
26
|
+
for (const pane of metrics) pane.hidden = pane.dataset.metricPanel !== chosen;
|
|
27
|
+
for (const select of document.querySelectorAll('[data-metric-select]')) select.value = chosen;
|
|
28
|
+
location.hash = target + '/' + chosen;
|
|
29
|
+
};
|
|
30
|
+
const apply = next => {
|
|
31
|
+
// Read presentation state at commit time: the user may interact before a snapshot arrives.
|
|
32
|
+
const live = document.getElementById('poll').checked;
|
|
33
|
+
const scroll = new Map(Array.from(document.querySelectorAll('[data-view-pane], .sidebar')).map(pane => [pane.dataset.viewPane ?? 'sidebar', pane.scrollTop]));
|
|
34
|
+
const opened = new Map(drawers().map(([key, node]) => [key, node.open]));
|
|
35
|
+
const focusId = document.activeElement?.id;
|
|
36
|
+
document.querySelector('.shell').replaceWith(next);
|
|
37
|
+
document.getElementById('poll').checked = live;
|
|
38
|
+
bind(); display(current()[0], current()[1]);
|
|
39
|
+
for (const pane of document.querySelectorAll('[data-view-pane], .sidebar')) pane.scrollTop = scroll.get(pane.dataset.viewPane ?? 'sidebar') ?? 0;
|
|
40
|
+
for (const [key, node] of drawers()) node.open = opened.get(key) ?? false;
|
|
41
|
+
if (focusId) document.getElementById(focusId)?.focus({ preventScroll: true });
|
|
42
|
+
};
|
|
43
|
+
const refresh = async () => {
|
|
44
|
+
if (unloaded || terminal) return;
|
|
45
|
+
if (fetching) { pending = true; return; }
|
|
46
|
+
fetching = true;
|
|
47
|
+
controller = new AbortController();
|
|
48
|
+
const timeout = setTimeout(() => controller?.abort(), 10000);
|
|
49
|
+
try {
|
|
50
|
+
const response = await fetch(location.pathname + location.search, { cache: 'no-store', signal: controller.signal });
|
|
51
|
+
if (!response.ok) throw new Error();
|
|
52
|
+
const next = new DOMParser().parseFromString(await response.text(), 'text/html').querySelector('.shell');
|
|
53
|
+
if (!next) throw new Error();
|
|
54
|
+
if (unloaded || terminal) return;
|
|
55
|
+
apply(next);
|
|
56
|
+
const live = document.getElementById('poll').checked;
|
|
57
|
+
state(live ? (stream?.readyState === 1 ? 'Streaming' : 'Connecting') : 'Paused');
|
|
58
|
+
} catch { if (!unloaded && !terminal) state('Snapshot unavailable'); }
|
|
59
|
+
finally { clearTimeout(timeout); controller = undefined; fetching = false; if (pending) { pending = false; void refresh(); } }
|
|
60
|
+
};
|
|
61
|
+
const connect = () => {
|
|
62
|
+
stream?.close(); stream = undefined;
|
|
63
|
+
if (terminal) { state('Viewer closed'); return; }
|
|
64
|
+
if (!document.getElementById('poll').checked) { pending = false; state('Paused'); return; }
|
|
65
|
+
state('Connecting');
|
|
66
|
+
const connection = new EventSource('/api/events' + location.search); stream = connection;
|
|
67
|
+
const active = () => stream === connection && !unloaded && !terminal;
|
|
68
|
+
stream.addEventListener('open', () => { if (active()) state('Streaming'); });
|
|
69
|
+
stream.addEventListener('snapshot', () => { if (active() && document.visibilityState !== 'hidden') void refresh(); });
|
|
70
|
+
stream.addEventListener('final', event => {
|
|
71
|
+
if (!active()) return;
|
|
72
|
+
terminal = true; pending = false; controller?.abort(); connection.close();
|
|
73
|
+
try {
|
|
74
|
+
const payload = JSON.parse(event.data);
|
|
75
|
+
if (typeof payload.html === 'string') {
|
|
76
|
+
const next = new DOMParser().parseFromString(payload.html, 'text/html').querySelector('.shell');
|
|
77
|
+
if (!next) throw new Error();
|
|
78
|
+
apply(next);
|
|
79
|
+
}
|
|
80
|
+
document.getElementById('poll').checked = false;
|
|
81
|
+
state('Viewer closed');
|
|
82
|
+
} catch { state('Final snapshot unavailable'); }
|
|
83
|
+
});
|
|
84
|
+
stream.addEventListener('unavailable', () => { if (active()) state('Snapshot unavailable'); });
|
|
85
|
+
stream.addEventListener('error', () => { if (active()) state('Disconnected · reconnecting'); });
|
|
86
|
+
};
|
|
87
|
+
const bind = () => {
|
|
88
|
+
for (const button of document.querySelectorAll('[data-view-button]')) button.addEventListener('click', () => display(button.dataset.viewButton, current()[1] ?? '0'));
|
|
89
|
+
for (const select of document.querySelectorAll('[data-metric-select]')) select.addEventListener('change', () => { location.search = '?metric=' + select.value; });
|
|
90
|
+
for (const button of document.querySelectorAll('[data-open-trial]')) button.addEventListener('click', () => {
|
|
91
|
+
display('trials', current()[1] ?? '0');
|
|
92
|
+
const drawer = document.getElementById('trial-' + button.dataset.openTrial);
|
|
93
|
+
if (drawer) { drawer.open = true; drawer.scrollIntoView({ block: 'nearest' }); drawer.focus(); }
|
|
94
|
+
});
|
|
95
|
+
document.getElementById('refresh').addEventListener('click', () => { void refresh(); });
|
|
96
|
+
document.getElementById('poll').addEventListener('change', connect);
|
|
97
|
+
};
|
|
98
|
+
bind(); display(current()[0] ?? 'overview', current()[1] ?? '0'); connect();
|
|
99
|
+
document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'visible' && document.getElementById('poll').checked) void refresh(); });
|
|
100
|
+
window.addEventListener('beforeunload', () => { unloaded = true; pending = false; stream?.close(); controller?.abort(); });
|
|
101
|
+
})();
|
|
102
|
+
`;
|
|
103
|
+
//# sourceMappingURL=interaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../../src/training/viewer/cockpit/interaction.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoG5B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ViewerData } from '../types.js';
|
|
2
|
+
import type { CockpitMetrics, MetricDefinition } from '../metrics/index.js';
|
|
3
|
+
export declare function metricOverview(data: ViewerData, model: CockpitMetrics, metric: MetricDefinition, index: number): string;
|
|
4
|
+
export declare function costOverview(data: ViewerData, model: CockpitMetrics): string;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { comparison, convergence, costChart, scoreAt } from './plots.js';
|
|
2
|
+
import { delta, escapeHtml as e, money, number, percent } from './format.js';
|
|
3
|
+
function metricCard(label, value, note, tone = '') {
|
|
4
|
+
return `<div class="metric-card"><div class="metric-label">${e(label)}</div><div class="metric-value ${tone}">${e(value)}</div><div class="metric-note">${e(note)}</div></div>`;
|
|
5
|
+
}
|
|
6
|
+
function scoreCard(model, metric, split) {
|
|
7
|
+
const candidate = model.candidates.at(-1);
|
|
8
|
+
const score = candidate === undefined ? undefined : scoreAt(model, candidate.id, split, metric.id);
|
|
9
|
+
const paired = model.comparisons.find(row => row.candidateId === candidate?.id && row.split === split && row.metricId === metric.id);
|
|
10
|
+
const change = paired?.delta ?? null;
|
|
11
|
+
const pairedValue = change !== null;
|
|
12
|
+
const note = pairedValue
|
|
13
|
+
? `${delta(change)} pts vs baseline · ${paired.matchedCases}/${paired.expectedCases ?? '?'} matched cases`
|
|
14
|
+
: score === undefined ? 'No measured cases' : `No paired comparison · ${score.observedCases}/${score.expectedCases ?? '?'} observed cases`;
|
|
15
|
+
return metricCard(`${split} · latest`, percent(pairedValue ? paired.candidateValue : score?.value ?? null), note, change === null || change === 0 ? 'neutral' : change > 0 ? 'positive' : 'negative');
|
|
16
|
+
}
|
|
17
|
+
function trialMatrix(data, model, metric) {
|
|
18
|
+
if (!data.trials.length)
|
|
19
|
+
return '<p class="empty-state">Evaluated trials will appear here.</p>';
|
|
20
|
+
const rows = data.trials.map((trial, index) => {
|
|
21
|
+
const mapped = model.trialIndex[index];
|
|
22
|
+
const candidate = model.candidates.find(row => row.id === mapped.candidateId);
|
|
23
|
+
const split = mapped.split;
|
|
24
|
+
const status = trial.status.split(' ')[0];
|
|
25
|
+
const result = ['pass', 'fail'].includes(status) ? status : 'unknown';
|
|
26
|
+
return `<tr><td><button class="trial-button" data-open-trial="${index}">${e(candidate?.label ?? 'Unmapped')} <span class="faint">↗</span></button></td>
|
|
27
|
+
<td class="case-label">${e(trial.caseId)}</td><td>${e(split)}</td><td><span class="status-cell ${result}">${e(status)}</span></td><td>${percent(trial.score)}</td></tr>`;
|
|
28
|
+
}).join('');
|
|
29
|
+
return `<div class="scroll"><table class="matrix-table"><thead><tr><th scope="col">Prompt</th><th scope="col">Case</th><th scope="col">Split</th><th scope="col">Required gates</th><th scope="col">Reward / 100</th></tr></thead><tbody>${rows}</tbody></table></div>
|
|
30
|
+
<div class="panel-footer">${e(metric.label)} is plotted above. A failed required gate gives optimizer reward 0. Select a trial to inspect it.</div>`;
|
|
31
|
+
}
|
|
32
|
+
export function metricOverview(data, model, metric, index) {
|
|
33
|
+
const observed = data.costs?.observed;
|
|
34
|
+
const note = observed?.total == null ? 'Known subtotal · total incomplete' : 'Recorded text-token valuation';
|
|
35
|
+
const latest = model.candidates.at(-1);
|
|
36
|
+
const developmentTrials = model.trialIndex.filter(trial => trial.split === 'train' || trial.split === 'validation').length;
|
|
37
|
+
const val = model.comparisons.find(row => row.candidateId === latest?.id && row.metricId === metric.id && row.split === 'validation');
|
|
38
|
+
const comparisonTitle = val?.delta == null ? 'Awaiting validation' : val.delta < 0 ? 'Validation went down' : val.delta > 0 ? 'Validation improved' : 'Validation unchanged';
|
|
39
|
+
const kindLabel = metric.kind === 'strict' ? 'Optimizer reward · required gates applied' : metric.kind === 'stage' ? 'Raw stage score · before required gates' : 'Recorded check score';
|
|
40
|
+
return `<div class="metric-view" data-metric-panel="${index}">
|
|
41
|
+
<div class="metric-grid">${scoreCard(model, metric, 'train')}${scoreCard(model, metric, 'validation')}
|
|
42
|
+
${metricCard('Development trials', number(developmentTrials), `${model.candidates.length} prompt versions observed`)}
|
|
43
|
+
${metricCard('API equivalent', money(observed?.total ?? observed?.knownSubtotal), note)}</div>
|
|
44
|
+
<div class="chart-grid">
|
|
45
|
+
<section class="panel convergence-panel"><h2 class="panel-title">Trial trend</h2><div class="panel-body">
|
|
46
|
+
<div class="chart-controls"><strong>${e(metric.label)} <span class="faint">/ 100</span></strong><label class="screen-reader-only" for="metric-${index}">Chart metric</label><select id="metric-${index}" class="chart-select" data-metric-select>${model.metrics.map((item, option) => `<option value="${option}"${index === option ? ' selected' : ''}>${e(item.label)}${item.kind === 'strict' ? ' · gated' : ''}</option>`).join('')}</select></div>
|
|
47
|
+
<div class="chart-legend"><span class="legend-key train">Training</span><span class="legend-key validation">Validation</span></div>
|
|
48
|
+
<div class="chart-wrap">${convergence(model, metric)}</div></div><p class="chart-caption">${kindLabel}. Trial order on x-axis; cases may differ. Missing values stay gaps.</p></section>
|
|
49
|
+
<section class="panel comparison-panel"><h2 class="panel-title">Generalization</h2><div class="panel-body"><p class="eyebrow">Same validation cases</p><h3 class="comparison-title">${comparisonTitle}</h3>${comparison(model, metric)}</div><p class="chart-caption">${model.candidates.length < 3 ? 'Too few prompt versions to establish convergence.' : 'Candidate history is measured progress, not proof of convergence.'}</p></section>
|
|
50
|
+
</div>
|
|
51
|
+
<section class="panel matrix-panel"><h2 class="panel-title">Trial results</h2><div class="matrix-body">${trialMatrix(data, model, metric)}</div></section>
|
|
52
|
+
</div>`;
|
|
53
|
+
}
|
|
54
|
+
export function costOverview(data, model) {
|
|
55
|
+
const observed = data.costs?.observed;
|
|
56
|
+
return `<div class="metric-grid">${metricCard('API equivalent', money(observed?.total ?? observed?.knownSubtotal), observed?.total == null ? 'Known subtotal; incomplete total' : 'Recorded valuation')}
|
|
57
|
+
${metricCard('Planned range', money(data.costs?.planned?.total), 'Dry-run assumptions')}
|
|
58
|
+
${metricCard('Recorded calls', number(model.costs.reduce((sum, row) => sum + row.entryCount, 0)), 'Subject + judges + optimizer')}
|
|
59
|
+
${metricCard('Subscription quota', '—', 'Not supplied by providers')}</div>
|
|
60
|
+
<section class="panel"><h2 class="panel-title">Where the work went</h2><div class="panel-body">${costChart(model)}</div></section>`;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=overview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview.js","sourceRoot":"","sources":["../../../../src/training/viewer/cockpit/overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { buildCockpitMetrics } from '../metrics/index.js';
|
|
2
|
+
import { cockpitStyles } from './styles.js';
|
|
3
|
+
import { cockpitScript } from './interaction.js';
|
|
4
|
+
import { escapeHtml as e, shortId } from './format.js';
|
|
5
|
+
import { costView, provenance, trialDetails } from './evidence.js';
|
|
6
|
+
import { costOverview, metricOverview } from './overview.js';
|
|
7
|
+
import { liveActivity } from './activity.js';
|
|
8
|
+
function navigation(model, data) {
|
|
9
|
+
return [['overview', 'Overview', '↗'], ['trials', 'Trials', String(data.trials.length)],
|
|
10
|
+
['costs', 'Costs & usage', 'USD'], ['provenance', 'Provenance', String(model.candidates.length)]].map(([view, label, count]) => `<button class="nav-item${view === 'overview' ? ' active' : ''}" data-view-button="${view}" aria-pressed="${view === 'overview'}"><span>${label}</span><span class="nav-count">${count}</span></button>`).join('');
|
|
11
|
+
}
|
|
12
|
+
export function renderCockpit(data, nonce, metricIndex = 0) {
|
|
13
|
+
const model = buildCockpitMetrics(data);
|
|
14
|
+
const activeIndex = model.metrics[metricIndex] === undefined ? 0 : metricIndex;
|
|
15
|
+
const failed = data.experiment.status === 'failed';
|
|
16
|
+
const replay = data.experiment.phase === 'replay' || ['completed', 'complete', 'failed'].includes(data.experiment.status);
|
|
17
|
+
const badge = failed ? 'Run stopped' : data.experiment.status;
|
|
18
|
+
const modelNames = [...new Set(data.costs?.observed?.lines.map(line => line.model ?? line.requestedModel).filter(Boolean) ?? [])];
|
|
19
|
+
const phaseCounts = ['train', 'validation', 'test'].map(split => {
|
|
20
|
+
const count = data.cases.filter(row => row.split === split).length;
|
|
21
|
+
return `${split} ${split === 'test' && count === 0 ? '—' : count}`;
|
|
22
|
+
}).join(' · ');
|
|
23
|
+
return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
24
|
+
<title>${e(data.experiment.title)} · Training</title><style nonce="${e(nonce)}">${cockpitStyles}</style></head>
|
|
25
|
+
<body><div class="shell"><header class="topbar"><div class="brand"><span class="brand-mark" aria-hidden="true">◈</span> TRAINING <span class="top-title" title="${e(data.experiment.title)}">${e(data.experiment.title)}</span></div>
|
|
26
|
+
<div class="header-actions"><span class="badge ${failed ? 'bad' : 'good'}"><span class="dot"></span>${e(badge)}</span><button id="refresh" class="refresh-button">↻ Refresh</button><label><input id="poll" type="checkbox"${replay ? '' : ' checked'}> Live</label></div></header>
|
|
27
|
+
<div class="workspace"><aside class="sidebar"><section class="panel"><h2 class="panel-title">Experiment</h2><div class="panel-body"><p class="experiment-label">${e(data.experiment.title.split(' — ')[0])}</p><p class="muted">${e(data.optimizer?.name ?? 'Evaluation')}</p><p class="mono-id">run ${e(shortId(data.experiment.id))}</p></div><div class="panel-footer">${e(phaseCounts)}<br>Selected: ${e(model.candidates.find(candidate => candidate.selected)?.label ?? 'pending')}</div></section>
|
|
28
|
+
<nav class="panel" aria-label="Experiment views"><h2 class="panel-title">Console</h2><div class="panel-body">${navigation(model, data)}</div></nav>
|
|
29
|
+
<section class="panel budget-panel"><h2 class="panel-title">Budget</h2><div class="panel-body"><div class="budget-row"><span class="muted">Evaluations</span><strong>${data.optimizer ? `${data.optimizer.evaluations}/${data.optimizer.maxMetricCalls}` : '—'}</strong></div>
|
|
30
|
+
<div class="budget-row"><span class="muted">Proposals</span><strong>${data.optimizer ? `${data.optimizer.proposals}/${data.optimizer.maxProposals}` : '—'}</strong></div><p class="muted">${e(modelNames.join(' · ') || 'Model identity not supplied')}</p></div><div class="panel-footer">Local experiment · read only</div></section>${liveActivity(data)}</aside>
|
|
31
|
+
<main class="cockpit-main"><section class="view-pane" data-view-pane="overview" aria-label="Training overview">
|
|
32
|
+
${data.trials.length ? metricOverview(data, model, model.metrics[activeIndex], activeIndex) : '<section class="panel"><h2 class="panel-title">Trial trend</h2><div class="empty-state"><strong>No measured scores yet.</strong><span>Charts appear when the first trial is evaluated.</span></div></section>'}</section>
|
|
33
|
+
<section class="view-pane inspector" data-view-pane="trials" hidden><div class="overview-head"><div><p class="eyebrow">Drill down</p><h1 class="outcome-title">Trials & evidence</h1></div><span class="badge">${data.trials.length} trials</span></div>${trialDetails(data)}</section>
|
|
34
|
+
<section class="view-pane inspector" data-view-pane="costs" hidden><div class="overview-head"><div><p class="eyebrow">Recorded work</p><h1 class="outcome-title">Costs & usage</h1></div></div>${costOverview(data, model)}<details class="detail-drawer"><summary>Models, tokens & pricing evidence</summary><div class="panel-body">${costView(data.costs)}</div></details></section>
|
|
35
|
+
<section class="view-pane inspector" data-view-pane="provenance" hidden><div class="overview-head"><div><p class="eyebrow">Reproducibility</p><h1 class="outcome-title">Prompt provenance</h1></div></div><section class="panel"><h2 class="panel-title">Recorded identities</h2><div class="panel-body">${provenance(data)}</div></section></section>
|
|
36
|
+
</main></div><footer class="statusbar"><div class="status-group"><span>mode: <span class="status-value">${replay ? 'replay' : 'live'}</span></span><span id="stream-state">${replay ? 'Paused' : 'Connecting'}</span><span>source: <span class="status-value">recorded evidence</span></span></div><div class="status-group"><span>updated: <span class="status-value">${e(data.experiment.updatedAt)}</span></span><span class="${failed ? 'negative' : 'muted'}">${e(data.experiment.status)}</span></div></footer>
|
|
37
|
+
</div><script nonce="${e(nonce)}">${cockpitScript}</script></body></html>`;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../src/training/viewer/cockpit/page.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CockpitMetrics, MetricDefinition, MetricSplit, MetricSummary } from '../metrics/index.js';
|
|
2
|
+
export declare function scoreAt(model: CockpitMetrics, candidateId: string, split: MetricSplit, metricId: string): MetricSummary | undefined;
|
|
3
|
+
/** Recorded development trial order, never deduplicated candidate means or sealed tests. */
|
|
4
|
+
export declare function convergence(model: CockpitMetrics, metric: MetricDefinition): string;
|
|
5
|
+
export declare function comparison(model: CockpitMetrics, metric: MetricDefinition): string;
|
|
6
|
+
export declare function costChart(model: CockpitMetrics): string;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { escapeHtml as e, money, number, percent } from './format.js';
|
|
2
|
+
export function scoreAt(model, candidateId, split, metricId) {
|
|
3
|
+
return model.scores.find(score => score.candidateId === candidateId && score.split === split && score.metricId === metricId);
|
|
4
|
+
}
|
|
5
|
+
/** Recorded development trial order, never deduplicated candidate means or sealed tests. */
|
|
6
|
+
export function convergence(model, metric) {
|
|
7
|
+
const trials = model.trialMeasurements.filter(trial => trial.split === 'train' || trial.split === 'validation');
|
|
8
|
+
if (trials.length === 0)
|
|
9
|
+
return '<p class="empty-state">The first measured development trial will appear here.</p>';
|
|
10
|
+
const x = (index) => 8 + index * 83 / Math.max(1, trials.length - 1);
|
|
11
|
+
const y = (value) => 82 - value * 70;
|
|
12
|
+
const grid = [0, 0.25, 0.5, 0.75, 1].map(value => `<line class="chart-gridline" x1="8%" x2="91%" y1="${y(value)}%" y2="${y(value)}%"/><text class="chart-tick" x="5%" y="${y(value)}%" dy="4" text-anchor="end">${value * 100}</text>`).join('');
|
|
13
|
+
const candidateLabels = new Map(model.candidates.map(candidate => [candidate.id, candidate.label]));
|
|
14
|
+
const series = ['train', 'validation'].map(split => {
|
|
15
|
+
let previous;
|
|
16
|
+
return trials.map((trial, index) => {
|
|
17
|
+
if (trial.split !== split)
|
|
18
|
+
return '';
|
|
19
|
+
const value = trial.values[metric.id];
|
|
20
|
+
if (value == null) {
|
|
21
|
+
previous = undefined;
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
const line = previous === undefined ? ''
|
|
25
|
+
: `<line class="chart-${split}" x1="${x(previous.index)}%" y1="${y(previous.value)}%" x2="${x(index)}%" y2="${y(value)}%"/>`;
|
|
26
|
+
previous = { index, value };
|
|
27
|
+
const candidateLabel = candidateLabels.get(trial.candidateId) ?? 'Unmapped';
|
|
28
|
+
const label = `Development trial ${index + 1}, ${trial.caseId}, ${candidateLabel} (${trial.candidateId}), ${split}: ${percent(value)} / 100`;
|
|
29
|
+
const numberLabel = trials.length <= 12 ? `<text class="chart-tick chart-${split}" x="${x(index)}%" y="${y(value)}%" dy="${split === 'train' ? -12 : 18}" text-anchor="middle">${percent(value)}</text>` : '';
|
|
30
|
+
return `${line}<circle class="chart-point chart-${split} ${split}" cx="${x(index)}%" cy="${y(value)}%" r="5" tabindex="0"><title>${e(label)}</title></circle>${numberLabel}`;
|
|
31
|
+
}).join('');
|
|
32
|
+
}).join('');
|
|
33
|
+
const stride = Math.max(1, Math.ceil((trials.length - 1) / 7));
|
|
34
|
+
const labels = trials.map((_, index) => index % stride === 0 || index === trials.length - 1
|
|
35
|
+
? `<text class="chart-tick" x="${x(index)}%" y="98%" text-anchor="${index === 0 ? 'start' : index === trials.length - 1 ? 'end' : 'middle'}">${index + 1}</text>` : '').join('');
|
|
36
|
+
return `<svg class="chart-svg" role="img" aria-label="${e(metric.label)} by measured development trial ordinal: training and validation, 0 to 100">${grid}${series}${labels}</svg>`;
|
|
37
|
+
}
|
|
38
|
+
export function comparison(model, metric) {
|
|
39
|
+
const latest = model.candidates.at(-1);
|
|
40
|
+
if (!latest)
|
|
41
|
+
return '<p class="empty-state">Awaiting a measured comparison.</p>';
|
|
42
|
+
const paired = model.comparisons.find(row => row.candidateId === latest.id && row.split === 'validation' && row.metricId === metric.id);
|
|
43
|
+
if (!paired || paired.matchedCases === 0)
|
|
44
|
+
return '<p class="empty-state">No matched validation cases yet.</p>';
|
|
45
|
+
return [
|
|
46
|
+
{ label: 'Baseline', value: paired.baselineValue, phase: 'baseline' },
|
|
47
|
+
{ label: latest.label, value: paired.candidateValue, phase: 'validation' },
|
|
48
|
+
].map(row => `<div class="score-row"><div class="score-name">${e(row.label)}</div><span class="score-number">${percent(row.value)}</span>
|
|
49
|
+
<svg class="score-track" viewBox="0 0 100 9" preserveAspectRatio="none" aria-hidden="true"><rect class="score-fill" data-phase="${row.phase}" width="${(row.value ?? 0) * 100}" height="9"/></svg></div>`).join('')
|
|
50
|
+
+ `<p class="chart-caption">${paired.matchedCases} matched case${paired.matchedCases === 1 ? '' : 's'} · same evidence</p>`;
|
|
51
|
+
}
|
|
52
|
+
export function costChart(model) {
|
|
53
|
+
const total = model.costs.reduce((sum, row) => sum + (row.knownSubtotal?.low ?? 0), 0);
|
|
54
|
+
if (model.costs.length === 0)
|
|
55
|
+
return '<p class="empty-state">No recorded costs yet.</p>';
|
|
56
|
+
let offset = 0;
|
|
57
|
+
const segments = total > 0 ? model.costs.map(row => {
|
|
58
|
+
const width = 100 * (row.knownSubtotal?.low ?? 0) / total;
|
|
59
|
+
const segment = `<rect class="cost-segment" data-role="${e(row.role)}" x="${offset}" width="${width}" height="16"><title>${e(`${row.name}: ${money(row.knownSubtotal)}`)}</title></rect>`;
|
|
60
|
+
offset += width;
|
|
61
|
+
return segment;
|
|
62
|
+
}).join('') : '';
|
|
63
|
+
return `<svg class="cost-stack" viewBox="0 0 100 16" preserveAspectRatio="none" role="img" aria-label="Share of known cost lower bounds by role">${segments}</svg>
|
|
64
|
+
<div class="cost-legend">${model.costs.map(row => `<div><span class="legend-key" data-role="${e(row.role)}"></span><span>${e(row.role === row.name ? row.role : `${row.role} / ${row.name}`)}</span><strong>${money(row.knownSubtotal)}</strong><span class="muted">${number(row.entryCount)} calls</span></div>`).join('')}</div>
|
|
65
|
+
<p class="chart-caption">Known cost only · proportions use lower bounds</p>`;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=plots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plots.js","sourceRoot":"","sources":["../../../../src/training/viewer/cockpit/plots.ts"],"names":[],"mappings":"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"}
|