@velum-labs/routekit-eval-setup 1.3.2 → 1.5.0
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/dist/adapters/authoring-responses-request.d.ts +5 -0
- package/dist/adapters/authoring-responses-request.js +38 -0
- package/dist/adapters/evaluation-evidence-freshness.d.ts +7 -0
- package/dist/adapters/evaluation-evidence-freshness.js +76 -0
- package/dist/adapters/git-task-history.d.ts +67 -0
- package/dist/adapters/git-task-history.js +171 -0
- package/dist/adapters/integrated-repository-history.d.ts +21 -0
- package/dist/adapters/integrated-repository-history.js +175 -0
- package/dist/adapters/repository-command-diagnostic.d.ts +8 -0
- package/dist/adapters/repository-command-diagnostic.js +46 -0
- package/dist/adapters/repository-command-evidence.d.ts +13 -0
- package/dist/adapters/repository-command-evidence.js +102 -0
- package/dist/adapters/repository-command-runner.d.ts +238 -0
- package/dist/adapters/repository-command-runner.js +1483 -0
- package/dist/adapters/repository-import-context.d.ts +47 -0
- package/dist/adapters/repository-import-context.js +469 -0
- package/dist/adapters/repository-node-test-reporter.d.ts +3 -0
- package/dist/adapters/repository-node-test-reporter.js +27 -0
- package/dist/adapters/repository-review-evidence.d.ts +39 -0
- package/dist/adapters/repository-review-evidence.js +632 -0
- package/dist/adapters/repository-seed-selection.d.ts +7 -0
- package/dist/adapters/repository-seed-selection.js +79 -0
- package/dist/adapters/repository-solution-edits.d.ts +49 -0
- package/dist/adapters/repository-solution-edits.js +136 -0
- package/dist/adapters/repository-vitest-phase-adapter.d.ts +8 -0
- package/dist/adapters/repository-vitest-phase-adapter.js +310 -0
- package/dist/adapters/repository-vitest-reporter.d.ts +24 -0
- package/dist/adapters/repository-vitest-reporter.js +314 -0
- package/dist/adapters/strict-authoring-schema.d.ts +5 -0
- package/dist/adapters/strict-authoring-schema.js +158 -0
- package/dist/adapters/test-discovery.d.ts +30 -0
- package/dist/adapters/test-discovery.js +124 -0
- package/dist/adapters/typescript-repository-index.d.ts +51 -0
- package/dist/adapters/typescript-repository-index.js +226 -0
- package/dist/agentic-capabilities-protocol.d.ts +1373 -0
- package/dist/agentic-capabilities-protocol.js +786 -0
- package/dist/case-checkpoint-store.d.ts +29 -0
- package/dist/case-checkpoint-store.js +133 -0
- package/dist/case-pipeline-protocol-v2.d.ts +184 -0
- package/dist/case-pipeline-protocol-v2.js +193 -0
- package/dist/case-pipeline-protocol.d.ts +2626 -0
- package/dist/case-pipeline-protocol.js +371 -0
- package/dist/effect-api.d.ts +74 -10
- package/dist/effect-api.js +56 -6
- package/dist/errors.d.ts +31 -0
- package/dist/errors.js +10 -0
- package/dist/eval-capability-execution-envelope.d.ts +64 -0
- package/dist/eval-capability-execution-envelope.js +98 -0
- package/dist/eval-capability-policy.d.ts +90 -0
- package/dist/eval-capability-policy.js +107 -0
- package/dist/eval-event-log.d.ts +140 -0
- package/dist/eval-event-log.js +220 -0
- package/dist/evaluation-authoring-policy.d.ts +18 -0
- package/dist/evaluation-authoring-policy.js +19 -0
- package/dist/evaluation-authoring-validation.d.ts +22 -0
- package/dist/evaluation-authoring-validation.js +72 -0
- package/dist/evaluation-evidence.d.ts +20 -0
- package/dist/evaluation-evidence.js +319 -0
- package/dist/evaluation-grader-calibration-protocol.d.ts +108 -0
- package/dist/evaluation-grader-calibration-protocol.js +80 -0
- package/dist/evaluation-grader-calibration.d.ts +18 -0
- package/dist/evaluation-grader-calibration.js +334 -0
- package/dist/evaluation-grading-policy.d.ts +24 -0
- package/dist/evaluation-grading-policy.js +54 -0
- package/dist/evaluation-proposal-policy.d.ts +4 -0
- package/dist/evaluation-proposal-policy.js +91 -0
- package/dist/evaluation-source-retrieval.d.ts +68 -0
- package/dist/evaluation-source-retrieval.js +513 -0
- package/dist/evaluation-structure-policy.d.ts +29 -0
- package/dist/evaluation-structure-policy.js +138 -0
- package/dist/index.d.ts +124 -17
- package/dist/index.js +69 -11
- package/dist/inspection.js +2 -3
- package/dist/project-artifacts.d.ts +7 -2
- package/dist/project-artifacts.js +49 -136
- package/dist/project-authoring.d.ts +66 -5
- package/dist/project-authoring.js +783 -109
- package/dist/project-contracts.d.ts +419 -84
- package/dist/project-contracts.js +160 -52
- package/dist/project-store.js +2 -1
- package/dist/project-workflow.d.ts +5 -4
- package/dist/project-workflow.js +154 -35
- package/dist/repository-adversary-protocol.d.ts +64 -0
- package/dist/repository-adversary-protocol.js +105 -0
- package/dist/repository-behavior-protocol.d.ts +188 -0
- package/dist/repository-behavior-protocol.js +202 -0
- package/dist/repository-benchmark-protocol.d.ts +487 -0
- package/dist/repository-benchmark-protocol.js +96 -0
- package/dist/repository-execution-protocol.d.ts +150 -0
- package/dist/repository-execution-protocol.js +38 -0
- package/dist/repository-fixture-instructions.d.ts +3 -0
- package/dist/repository-fixture-instructions.js +91 -0
- package/dist/repository-fixture-protocol.d.ts +79 -0
- package/dist/repository-fixture-protocol.js +79 -0
- package/dist/repository-foundry-plan-protocol.d.ts +118 -0
- package/dist/repository-foundry-plan-protocol.js +296 -0
- package/dist/repository-foundry-progress-protocol.d.ts +52 -0
- package/dist/repository-foundry-progress-protocol.js +52 -0
- package/dist/repository-improvement-protocol.d.ts +100 -0
- package/dist/repository-improvement-protocol.js +106 -0
- package/dist/repository-language-model-protocol.d.ts +43 -0
- package/dist/repository-language-model-protocol.js +146 -0
- package/dist/repository-oracle-coverage-protocol.d.ts +18 -0
- package/dist/repository-oracle-coverage-protocol.js +39 -0
- package/dist/repository-oracle-execution-binding.d.ts +27 -0
- package/dist/repository-oracle-execution-binding.js +59 -0
- package/dist/repository-oracle-protocol.d.ts +230 -0
- package/dist/repository-oracle-protocol.js +156 -0
- package/dist/repository-oracle-scope-policy.d.ts +22 -0
- package/dist/repository-oracle-scope-policy.js +92 -0
- package/dist/repository-quality-policy.d.ts +15 -0
- package/dist/repository-quality-policy.js +357 -0
- package/dist/repository-routing-benchmark-protocol.d.ts +176 -0
- package/dist/repository-routing-benchmark-protocol.js +103 -0
- package/dist/repository-routing-model-protocol.d.ts +36 -0
- package/dist/repository-routing-model-protocol.js +89 -0
- package/dist/repository-routing-plan-protocol.d.ts +112 -0
- package/dist/repository-routing-plan-protocol.js +58 -0
- package/dist/repository-routing-quality-policy.d.ts +9 -0
- package/dist/repository-routing-quality-policy.js +191 -0
- package/dist/repository-seed-qualification-progress-protocol.d.ts +205 -0
- package/dist/repository-seed-qualification-progress-protocol.js +28 -0
- package/dist/repository-semantic-calibration-protocol.d.ts +768 -0
- package/dist/repository-semantic-calibration-protocol.js +276 -0
- package/dist/repository-semantic-calibration.d.ts +163 -0
- package/dist/repository-semantic-calibration.js +581 -0
- package/dist/repository-specification-contract-facts-protocol.d.ts +224 -0
- package/dist/repository-specification-contract-facts-protocol.js +276 -0
- package/dist/repository-specification-critique-protocol.d.ts +189 -0
- package/dist/repository-specification-critique-protocol.js +103 -0
- package/dist/repository-task-family-protocol.d.ts +24 -0
- package/dist/repository-task-family-protocol.js +37 -0
- package/dist/repository-task-seed-protocol.d.ts +384 -0
- package/dist/repository-task-seed-protocol.js +236 -0
- package/dist/repository-trajectory-protocol.d.ts +20 -0
- package/dist/repository-trajectory-protocol.js +42 -0
- package/dist/service.js +1 -1
- package/dist/services/adversary/service.d.ts +64 -0
- package/dist/services/adversary/service.js +330 -0
- package/dist/services/benchmark-compiler/service.d.ts +450 -0
- package/dist/services/benchmark-compiler/service.js +9 -0
- package/dist/services/budgeted-model/service.d.ts +118 -0
- package/dist/services/budgeted-model/service.js +460 -0
- package/dist/services/case-authoring/service.d.ts +163 -0
- package/dist/services/case-authoring/service.js +1456 -0
- package/dist/services/case-finalization/service.d.ts +283 -0
- package/dist/services/case-finalization/service.js +370 -0
- package/dist/services/case-generation/service.d.ts +619 -0
- package/dist/services/case-generation/service.js +2628 -0
- package/dist/services/case-pipeline/service.d.ts +31 -0
- package/dist/services/case-pipeline/service.js +485 -0
- package/dist/services/case-pipeline-v2/service.d.ts +70 -0
- package/dist/services/case-pipeline-v2/service.js +477 -0
- package/dist/services/command-observability/service.d.ts +13 -0
- package/dist/services/command-observability/service.js +3 -0
- package/dist/services/dimension-labeling/service.d.ts +77 -0
- package/dist/services/dimension-labeling/service.js +188 -0
- package/dist/services/eval-candidate/service.d.ts +208 -0
- package/dist/services/eval-candidate/service.js +64 -0
- package/dist/services/eval-capabilities/service.d.ts +183 -0
- package/dist/services/eval-capabilities/service.js +1433 -0
- package/dist/services/eval-environment/service.d.ts +173 -0
- package/dist/services/eval-environment/service.js +127 -0
- package/dist/services/evidence-reconstruction/service.d.ts +36 -0
- package/dist/services/evidence-reconstruction/service.js +145 -0
- package/dist/services/fixture-builder/service.d.ts +62 -0
- package/dist/services/fixture-builder/service.js +36 -0
- package/dist/services/fixture-validation/service.d.ts +75 -0
- package/dist/services/fixture-validation/service.js +295 -0
- package/dist/services/foundry/service.d.ts +831 -0
- package/dist/services/foundry/service.js +442 -0
- package/dist/services/foundry-progress/service.d.ts +62 -0
- package/dist/services/foundry-progress/service.js +149 -0
- package/dist/services/foundry-v2/service.d.ts +54 -0
- package/dist/services/foundry-v2/service.js +28 -0
- package/dist/services/grounded-authoring/service.d.ts +126 -0
- package/dist/services/grounded-authoring/service.js +822 -0
- package/dist/services/historical-case/service.d.ts +722 -0
- package/dist/services/historical-case/service.js +177 -0
- package/dist/services/improvement-loop/service.d.ts +59 -0
- package/dist/services/improvement-loop/service.js +176 -0
- package/dist/services/language-model/service.d.ts +52 -0
- package/dist/services/language-model/service.js +194 -0
- package/dist/services/oracle-builder/service.d.ts +146 -0
- package/dist/services/oracle-builder/service.js +513 -0
- package/dist/services/oracle-coverage/service.d.ts +28 -0
- package/dist/services/oracle-coverage/service.js +50 -0
- package/dist/services/oracle-coverage-witness/service.d.ts +130 -0
- package/dist/services/oracle-coverage-witness/service.js +538 -0
- package/dist/services/pipeline-challenge/service.d.ts +551 -0
- package/dist/services/pipeline-challenge/service.js +427 -0
- package/dist/services/pipeline-controls/service.d.ts +130 -0
- package/dist/services/pipeline-controls/service.js +483 -0
- package/dist/services/pipeline-oracle/service.d.ts +8 -0
- package/dist/services/pipeline-oracle/service.js +256 -0
- package/dist/services/pipeline-seed/service.d.ts +298 -0
- package/dist/services/pipeline-seed/service.js +428 -0
- package/dist/services/pipeline-spec/service.d.ts +103 -0
- package/dist/services/pipeline-spec/service.js +619 -0
- package/dist/services/pipeline-tournament/service.d.ts +258 -0
- package/dist/services/pipeline-tournament/service.js +476 -0
- package/dist/services/quality-gate/service.d.ts +233 -0
- package/dist/services/quality-gate/service.js +136 -0
- package/dist/services/repository-bundle/service.d.ts +33 -0
- package/dist/services/repository-bundle/service.js +114 -0
- package/dist/services/repository-model/service.d.ts +105 -0
- package/dist/services/repository-model/service.js +250 -0
- package/dist/services/repository-public-artifact/service.d.ts +133 -0
- package/dist/services/repository-public-artifact/service.js +330 -0
- package/dist/services/routing-benchmark/service.d.ts +362 -0
- package/dist/services/routing-benchmark/service.js +96 -0
- package/dist/services/specification-critic/service.d.ts +92 -0
- package/dist/services/specification-critic/service.js +172 -0
- package/dist/services/task-family/service.d.ts +40 -0
- package/dist/services/task-family/service.js +55 -0
- package/dist/services/task-seed/service.d.ts +906 -0
- package/dist/services/task-seed/service.js +1406 -0
- package/dist/services/task-specification/service.d.ts +27 -0
- package/dist/services/task-specification/service.js +40 -0
- package/dist/services/trajectory-policy/service.d.ts +110 -0
- package/dist/services/trajectory-policy/service.js +216 -0
- package/dist/test/agentic-capabilities-protocol.test.d.ts +1 -0
- package/dist/test/agentic-capabilities-protocol.test.js +570 -0
- package/dist/test/agentic-capabilities.test.d.ts +1 -0
- package/dist/test/agentic-capabilities.test.js +1461 -0
- package/dist/test/agentic-environment.test.d.ts +1 -0
- package/dist/test/agentic-environment.test.js +213 -0
- package/dist/test/case-pipeline-foundation.test.d.ts +1 -0
- package/dist/test/case-pipeline-foundation.test.js +535 -0
- package/dist/test/case-pipeline-protocol-v2.test.d.ts +1 -0
- package/dist/test/case-pipeline-protocol-v2.test.js +124 -0
- package/dist/test/case-pipeline-v2.test.d.ts +1 -0
- package/dist/test/case-pipeline-v2.test.js +286 -0
- package/dist/test/case-pipeline.test.d.ts +1 -0
- package/dist/test/case-pipeline.test.js +851 -0
- package/dist/test/eval-capability-policy.test.d.ts +1 -0
- package/dist/test/eval-capability-policy.test.js +50 -0
- package/dist/test/eval-event-log.test.d.ts +1 -0
- package/dist/test/eval-event-log.test.js +125 -0
- package/dist/test/evaluation-evidence-freshness.test.d.ts +1 -0
- package/dist/test/evaluation-evidence-freshness.test.js +44 -0
- package/dist/test/evaluation-evidence.test.d.ts +1 -0
- package/dist/test/evaluation-evidence.test.js +230 -0
- package/dist/test/evaluation-grader-calibration.test.d.ts +1 -0
- package/dist/test/evaluation-grader-calibration.test.js +373 -0
- package/dist/test/evaluation-proposal-digest.test.d.ts +1 -0
- package/dist/test/evaluation-proposal-digest.test.js +187 -0
- package/dist/test/evaluation-source-retrieval.test.d.ts +1 -0
- package/dist/test/evaluation-source-retrieval.test.js +237 -0
- package/dist/test/evaluation-structure-policy.test.d.ts +1 -0
- package/dist/test/evaluation-structure-policy.test.js +196 -0
- package/dist/test/fixtures/repository-resource-panel.d.ts +39 -0
- package/dist/test/fixtures/repository-resource-panel.js +111 -0
- package/dist/test/fixtures/vitest-boundary-panel.d.ts +84 -0
- package/dist/test/fixtures/vitest-boundary-panel.js +120 -0
- package/dist/test/fixtures/vitest-phase-panel.d.ts +135 -0
- package/dist/test/fixtures/vitest-phase-panel.js +213 -0
- package/dist/test/fixtures/vitest-reporter-results.d.ts +76 -0
- package/dist/test/fixtures/vitest-reporter-results.js +94 -0
- package/dist/test/grounded-authoring.test.d.ts +1 -0
- package/dist/test/grounded-authoring.test.js +565 -0
- package/dist/test/integrated-repository-history.test.d.ts +1 -0
- package/dist/test/integrated-repository-history.test.js +227 -0
- package/dist/test/project-authoring.test.js +593 -43
- package/dist/test/project-workflow.test.js +419 -40
- package/dist/test/repository-authoring-artifacts.test.d.ts +1 -0
- package/dist/test/repository-authoring-artifacts.test.js +185 -0
- package/dist/test/repository-bundle.test.d.ts +1 -0
- package/dist/test/repository-bundle.test.js +52 -0
- package/dist/test/repository-case-generation.test.d.ts +1 -0
- package/dist/test/repository-case-generation.test.js +3465 -0
- package/dist/test/repository-command-diagnostic.test.d.ts +1 -0
- package/dist/test/repository-command-diagnostic.test.js +55 -0
- package/dist/test/repository-command-signals.test.d.ts +1 -0
- package/dist/test/repository-command-signals.test.js +124 -0
- package/dist/test/repository-fixture-scope-coverage.test.d.ts +1 -0
- package/dist/test/repository-fixture-scope-coverage.test.js +127 -0
- package/dist/test/repository-fixture-validation.test.d.ts +1 -0
- package/dist/test/repository-fixture-validation.test.js +362 -0
- package/dist/test/repository-foundry-progress.test.d.ts +1 -0
- package/dist/test/repository-foundry-progress.test.js +110 -0
- package/dist/test/repository-foundry-quality.test.d.ts +1 -0
- package/dist/test/repository-foundry-quality.test.js +1138 -0
- package/dist/test/repository-import-context.test.d.ts +1 -0
- package/dist/test/repository-import-context.test.js +354 -0
- package/dist/test/repository-model-authoring.test.d.ts +1 -0
- package/dist/test/repository-model-authoring.test.js +544 -0
- package/dist/test/repository-model.test.d.ts +1 -0
- package/dist/test/repository-model.test.js +2195 -0
- package/dist/test/repository-node-test-reporter.test.d.ts +1 -0
- package/dist/test/repository-node-test-reporter.test.js +104 -0
- package/dist/test/repository-oracle-concurrency.test.d.ts +1 -0
- package/dist/test/repository-oracle-concurrency.test.js +542 -0
- package/dist/test/repository-oracle-coverage-witness.test.d.ts +1 -0
- package/dist/test/repository-oracle-coverage-witness.test.js +511 -0
- package/dist/test/repository-oracle-coverage.test.d.ts +1 -0
- package/dist/test/repository-oracle-coverage.test.js +168 -0
- package/dist/test/repository-oracle-evidence.test.d.ts +1 -0
- package/dist/test/repository-oracle-evidence.test.js +185 -0
- package/dist/test/repository-oracle-plan.test.d.ts +1 -0
- package/dist/test/repository-oracle-plan.test.js +176 -0
- package/dist/test/repository-overlay-isolation.test.d.ts +1 -0
- package/dist/test/repository-overlay-isolation.test.js +85 -0
- package/dist/test/repository-preparation-cache.test.d.ts +1 -0
- package/dist/test/repository-preparation-cache.test.js +414 -0
- package/dist/test/repository-public-artifact.test.d.ts +1 -0
- package/dist/test/repository-public-artifact.test.js +273 -0
- package/dist/test/repository-qualification-diagnostics.test.d.ts +1 -0
- package/dist/test/repository-qualification-diagnostics.test.js +524 -0
- package/dist/test/repository-reference-authoring.test.d.ts +1 -0
- package/dist/test/repository-reference-authoring.test.js +1633 -0
- package/dist/test/repository-review-evidence-v2.test.d.ts +1 -0
- package/dist/test/repository-review-evidence-v2.test.js +183 -0
- package/dist/test/repository-review-evidence.test.d.ts +1 -0
- package/dist/test/repository-review-evidence.test.js +124 -0
- package/dist/test/repository-seed-exclusions.test.d.ts +1 -0
- package/dist/test/repository-seed-exclusions.test.js +96 -0
- package/dist/test/repository-seed-selection.test.d.ts +1 -0
- package/dist/test/repository-seed-selection.test.js +504 -0
- package/dist/test/repository-semantic-calibration.test.d.ts +1 -0
- package/dist/test/repository-semantic-calibration.test.js +688 -0
- package/dist/test/repository-solution-edits.test.d.ts +1 -0
- package/dist/test/repository-solution-edits.test.js +377 -0
- package/dist/test/repository-specification-budget.test.d.ts +1 -0
- package/dist/test/repository-specification-budget.test.js +171 -0
- package/dist/test/repository-specification-contract-checkpoint.test.d.ts +1 -0
- package/dist/test/repository-specification-contract-checkpoint.test.js +228 -0
- package/dist/test/repository-specification-contract-facts.test.d.ts +1 -0
- package/dist/test/repository-specification-contract-facts.test.js +177 -0
- package/dist/test/repository-trajectory-authoring.test.d.ts +1 -0
- package/dist/test/repository-trajectory-authoring.test.js +176 -0
- package/dist/test/repository-valid-control-plan.test.d.ts +1 -0
- package/dist/test/repository-valid-control-plan.test.js +45 -0
- package/dist/test/repository-vitest-phase.test.d.ts +1 -0
- package/dist/test/repository-vitest-phase.test.js +848 -0
- package/dist/test/repository-vitest-reporter.test.d.ts +1 -0
- package/dist/test/repository-vitest-reporter.test.js +158 -0
- package/dist/test/repository-workspace-build.test.d.ts +1 -0
- package/dist/test/repository-workspace-build.test.js +160 -0
- package/dist/test/strict-authoring-schema.test.d.ts +1 -0
- package/dist/test/strict-authoring-schema.test.js +169 -0
- package/package.json +48 -6
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
const NonNegativeInteger = Schema.Finite.pipe(Schema.check(Schema.makeFilter((value) => value >= 0 && Number.isInteger(value) ? undefined : "value must be a non-negative integer")));
|
|
3
|
+
const PositiveInteger = NonNegativeInteger.pipe(Schema.check(Schema.makeFilter((value) => value >= 1 ? undefined : "value must be a positive integer")));
|
|
4
|
+
const NonNegativeFinite = Schema.Finite.pipe(Schema.check(Schema.makeFilter((value) => value >= 0 ? undefined : "value must be a non-negative finite number")));
|
|
5
|
+
const BoundedFailureReason = Schema.String.pipe(Schema.check(Schema.makeFilter((value) => value.length >= 1 && value.length <= 2_000
|
|
6
|
+
? undefined
|
|
7
|
+
: "failure reason must contain between 1 and 2000 characters")));
|
|
8
|
+
const RunPlanEvent = Schema.Struct({
|
|
9
|
+
name: Schema.Literal("plan"),
|
|
10
|
+
at: Schema.String,
|
|
11
|
+
runId: Schema.String,
|
|
12
|
+
plannedCalls: NonNegativeInteger
|
|
13
|
+
});
|
|
14
|
+
const RunCallEventFields = {
|
|
15
|
+
at: Schema.String,
|
|
16
|
+
runId: Schema.String,
|
|
17
|
+
dimensionId: Schema.String,
|
|
18
|
+
caseId: Schema.String,
|
|
19
|
+
sequence: PositiveInteger
|
|
20
|
+
};
|
|
21
|
+
const RunCandidateEvent = Schema.Struct({
|
|
22
|
+
name: Schema.Literal("candidate#"),
|
|
23
|
+
...RunCallEventFields
|
|
24
|
+
});
|
|
25
|
+
const RunJudgeEvent = Schema.Struct({
|
|
26
|
+
name: Schema.Literal("judge#"),
|
|
27
|
+
...RunCallEventFields
|
|
28
|
+
});
|
|
29
|
+
export const EvalRunFailurePhase = Schema.Literals([
|
|
30
|
+
"target",
|
|
31
|
+
"classifier",
|
|
32
|
+
"suite-inspection",
|
|
33
|
+
"comparison",
|
|
34
|
+
"activation",
|
|
35
|
+
"accounting",
|
|
36
|
+
"completion"
|
|
37
|
+
]);
|
|
38
|
+
const RunFailureDetailEvent = Schema.Struct({
|
|
39
|
+
name: Schema.Literal("failure-detail"),
|
|
40
|
+
at: Schema.String,
|
|
41
|
+
runId: Schema.String,
|
|
42
|
+
phase: EvalRunFailurePhase,
|
|
43
|
+
reason: BoundedFailureReason,
|
|
44
|
+
retryable: Schema.Boolean,
|
|
45
|
+
callId: Schema.optionalKey(Schema.String),
|
|
46
|
+
reservationId: Schema.optionalKey(Schema.String),
|
|
47
|
+
accounting: Schema.Struct({
|
|
48
|
+
expectedCalls: NonNegativeInteger,
|
|
49
|
+
observedCalls: NonNegativeInteger,
|
|
50
|
+
knownInputTokens: NonNegativeInteger,
|
|
51
|
+
knownOutputTokens: NonNegativeInteger,
|
|
52
|
+
unknownTokenMeasurements: NonNegativeInteger,
|
|
53
|
+
knownPricedSubtotalUsd: NonNegativeFinite,
|
|
54
|
+
unpricedCalls: NonNegativeInteger,
|
|
55
|
+
subscriptionUnitCalls: NonNegativeInteger
|
|
56
|
+
}),
|
|
57
|
+
cleanup: Schema.Struct({
|
|
58
|
+
sessionOpened: Schema.Boolean,
|
|
59
|
+
sessionClosed: Schema.Boolean,
|
|
60
|
+
detail: Schema.optionalKey(Schema.String)
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
const AuthoringEventFields = {
|
|
64
|
+
at: Schema.String,
|
|
65
|
+
operationId: Schema.String
|
|
66
|
+
};
|
|
67
|
+
const AuthoringBasisEvent = Schema.Struct({
|
|
68
|
+
name: Schema.Literal("basis"),
|
|
69
|
+
...AuthoringEventFields
|
|
70
|
+
});
|
|
71
|
+
const AuthoringDimensionsEvent = Schema.Struct({
|
|
72
|
+
name: Schema.Literal("dimensions"),
|
|
73
|
+
...AuthoringEventFields
|
|
74
|
+
});
|
|
75
|
+
const AuthoringActivationEvent = Schema.Struct({
|
|
76
|
+
name: Schema.Literal("activation"),
|
|
77
|
+
...AuthoringEventFields
|
|
78
|
+
});
|
|
79
|
+
export const EvalNamedEvent = Schema.Union([
|
|
80
|
+
RunPlanEvent,
|
|
81
|
+
RunCandidateEvent,
|
|
82
|
+
RunJudgeEvent,
|
|
83
|
+
RunFailureDetailEvent,
|
|
84
|
+
AuthoringBasisEvent,
|
|
85
|
+
AuthoringDimensionsEvent,
|
|
86
|
+
AuthoringActivationEvent
|
|
87
|
+
]);
|
|
88
|
+
export const EvalNamedEventLog = Schema.Array(EvalNamedEvent);
|
|
89
|
+
const caseKey = (dimensionId, caseId) => `${dimensionId}\u0000${caseId}`;
|
|
90
|
+
export function resumeEvalCaseCursors(log) {
|
|
91
|
+
const cursors = new Map();
|
|
92
|
+
for (const event of log) {
|
|
93
|
+
if (event.name !== "candidate#" && event.name !== "judge#")
|
|
94
|
+
continue;
|
|
95
|
+
const key = caseKey(event.dimensionId, event.caseId);
|
|
96
|
+
const cursor = cursors.get(key) ??
|
|
97
|
+
{
|
|
98
|
+
dimensionId: event.dimensionId,
|
|
99
|
+
caseId: event.caseId,
|
|
100
|
+
candidates: new Map(),
|
|
101
|
+
judges: new Set()
|
|
102
|
+
};
|
|
103
|
+
const firstHoleSequence = (() => {
|
|
104
|
+
let sequence = 1;
|
|
105
|
+
while (cursor.candidates.has(sequence) && cursor.judges.has(sequence)) {
|
|
106
|
+
sequence += 1;
|
|
107
|
+
}
|
|
108
|
+
return sequence;
|
|
109
|
+
})();
|
|
110
|
+
if (cursor.candidates.has(firstHoleSequence) &&
|
|
111
|
+
!cursor.judges.has(firstHoleSequence) &&
|
|
112
|
+
(event.name !== "judge#" || event.sequence !== firstHoleSequence)) {
|
|
113
|
+
cursors.set(key, cursor);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (event.name === "candidate#")
|
|
117
|
+
cursor.candidates.set(event.sequence, event);
|
|
118
|
+
else
|
|
119
|
+
cursor.judges.add(event.sequence);
|
|
120
|
+
cursor.lastEvent = event;
|
|
121
|
+
cursors.set(key, cursor);
|
|
122
|
+
}
|
|
123
|
+
return [...cursors.values()].map((cursor) => {
|
|
124
|
+
let completePairs = 0;
|
|
125
|
+
while (cursor.candidates.has(completePairs + 1) &&
|
|
126
|
+
cursor.judges.has(completePairs + 1)) {
|
|
127
|
+
completePairs += 1;
|
|
128
|
+
}
|
|
129
|
+
const hole = cursor.candidates.get(completePairs + 1);
|
|
130
|
+
return {
|
|
131
|
+
dimensionId: cursor.dimensionId,
|
|
132
|
+
caseId: cursor.caseId,
|
|
133
|
+
completePairs,
|
|
134
|
+
...(hole === undefined
|
|
135
|
+
? cursor.lastEvent === undefined
|
|
136
|
+
? {}
|
|
137
|
+
: { lastEvent: cursor.lastEvent }
|
|
138
|
+
: { lastEvent: hole }),
|
|
139
|
+
...(hole === undefined ? {} : { hole })
|
|
140
|
+
};
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
export function evalEventLabel(event) {
|
|
144
|
+
return event.name === "candidate#" || event.name === "judge#"
|
|
145
|
+
? `${event.name}${String(event.sequence)}`
|
|
146
|
+
: event.name;
|
|
147
|
+
}
|
|
148
|
+
const lastPlanEvent = (log) => {
|
|
149
|
+
for (let index = log.length - 1; index >= 0; index -= 1) {
|
|
150
|
+
const event = log[index];
|
|
151
|
+
if (event?.name === "plan")
|
|
152
|
+
return event;
|
|
153
|
+
}
|
|
154
|
+
return undefined;
|
|
155
|
+
};
|
|
156
|
+
export function presentEvalEventLog(log, options = {}) {
|
|
157
|
+
const plan = lastPlanEvent(log);
|
|
158
|
+
if (plan !== undefined && plan.plannedCalls < 1) {
|
|
159
|
+
return {
|
|
160
|
+
failed: true,
|
|
161
|
+
lines: ["run fail no planned calls"]
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const cursors = resumeEvalCaseCursors(log);
|
|
165
|
+
const failHoles = options.failHoles ?? true;
|
|
166
|
+
const lastEvent = log[log.length - 1];
|
|
167
|
+
const failureLine = lastEvent?.name === "failure-detail"
|
|
168
|
+
? `run fail ${lastEvent.phase}: ${lastEvent.reason}`
|
|
169
|
+
: undefined;
|
|
170
|
+
const authoringLine = lastEvent?.name === "basis" ||
|
|
171
|
+
lastEvent?.name === "dimensions" ||
|
|
172
|
+
lastEvent?.name === "activation"
|
|
173
|
+
? `authoring ${evalEventLabel(lastEvent)}`
|
|
174
|
+
: undefined;
|
|
175
|
+
const cursorLines = cursors.map((cursor) => {
|
|
176
|
+
const label = cursor.lastEvent === undefined ? "plan" : evalEventLabel(cursor.lastEvent);
|
|
177
|
+
return `${cursor.dimensionId}/${cursor.caseId} ${cursor.hole === undefined || !failHoles
|
|
178
|
+
? label
|
|
179
|
+
: `fail ${label} missing judge#${String(cursor.hole.sequence)}`}`;
|
|
180
|
+
});
|
|
181
|
+
return {
|
|
182
|
+
failed: failureLine !== undefined ||
|
|
183
|
+
(failHoles && cursors.some((cursor) => cursor.hole !== undefined)),
|
|
184
|
+
lines: failureLine !== undefined
|
|
185
|
+
? [...cursorLines, failureLine]
|
|
186
|
+
: cursors.length === 0
|
|
187
|
+
? authoringLine === undefined
|
|
188
|
+
? plan === undefined
|
|
189
|
+
? []
|
|
190
|
+
: [`run ${evalEventLabel(plan)}`]
|
|
191
|
+
: [authoringLine]
|
|
192
|
+
: authoringLine === undefined
|
|
193
|
+
? cursorLines
|
|
194
|
+
: [...cursorLines, authoringLine]
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
export function assertEvalRunCanFail(log) {
|
|
198
|
+
const plan = lastPlanEvent(log);
|
|
199
|
+
if (plan === undefined) {
|
|
200
|
+
throw new Error("failed eval run cannot terminate without its plan event");
|
|
201
|
+
}
|
|
202
|
+
const terminal = log[log.length - 1];
|
|
203
|
+
if (terminal?.name !== "failure-detail" || terminal.runId !== plan.runId) {
|
|
204
|
+
throw new Error("failed eval run must end with a matching terminal failure-detail event");
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
export function assertEvalRunCanComplete(log) {
|
|
208
|
+
const plan = lastPlanEvent(log);
|
|
209
|
+
if (plan === undefined || plan.plannedCalls < 1) {
|
|
210
|
+
throw new Error("eval run cannot complete without a plan containing at least one call");
|
|
211
|
+
}
|
|
212
|
+
const failure = log.find((event) => event.name === "failure-detail" && event.runId === plan.runId);
|
|
213
|
+
if (failure !== undefined) {
|
|
214
|
+
throw new Error(`eval run cannot complete after terminal failure in phase ${JSON.stringify(failure.phase)}`);
|
|
215
|
+
}
|
|
216
|
+
const hole = resumeEvalCaseCursors(log).find((cursor) => cursor.hole !== undefined);
|
|
217
|
+
if (hole?.hole !== undefined) {
|
|
218
|
+
throw new Error(`eval case ${JSON.stringify(hole.dimensionId)}/${JSON.stringify(hole.caseId)} cannot complete after ${evalEventLabel(hole.hole)} without judge#${String(hole.hole.sequence)}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provisional transport limits for compiler-backed evaluation authoring.
|
|
3
|
+
*
|
|
4
|
+
* These values bound model input/output and persisted candidate context; they
|
|
5
|
+
* are not semantic-quality thresholds. Live preflight and later empirical
|
|
6
|
+
* calibration must determine whether they produce coherent, useful cases.
|
|
7
|
+
*/
|
|
8
|
+
export declare const EVAL_AUTHORING_EVIDENCE_BLOCK_BYTES = 3000;
|
|
9
|
+
export declare const EVAL_AUTHORING_CASE_EVIDENCE_BYTES = 12000;
|
|
10
|
+
/**
|
|
11
|
+
* Maximum compiler blocks exposed as one mechanically safe author selection.
|
|
12
|
+
*
|
|
13
|
+
* A block may consume the complete block-byte allowance, so this cardinality
|
|
14
|
+
* guarantees that selecting every exposed block cannot exceed the case context
|
|
15
|
+
* allowance. The exact byte check remains authoritative because smaller blocks
|
|
16
|
+
* do not make every same-cardinality combination equivalent.
|
|
17
|
+
*/
|
|
18
|
+
export declare const EVAL_AUTHORING_CASE_EVIDENCE_BLOCKS: number;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provisional transport limits for compiler-backed evaluation authoring.
|
|
3
|
+
*
|
|
4
|
+
* These values bound model input/output and persisted candidate context; they
|
|
5
|
+
* are not semantic-quality thresholds. Live preflight and later empirical
|
|
6
|
+
* calibration must determine whether they produce coherent, useful cases.
|
|
7
|
+
*/
|
|
8
|
+
export const EVAL_AUTHORING_EVIDENCE_BLOCK_BYTES = 3_000;
|
|
9
|
+
export const EVAL_AUTHORING_CASE_EVIDENCE_BYTES = 12_000;
|
|
10
|
+
/**
|
|
11
|
+
* Maximum compiler blocks exposed as one mechanically safe author selection.
|
|
12
|
+
*
|
|
13
|
+
* A block may consume the complete block-byte allowance, so this cardinality
|
|
14
|
+
* guarantees that selecting every exposed block cannot exceed the case context
|
|
15
|
+
* allowance. The exact byte check remains authoritative because smaller blocks
|
|
16
|
+
* do not make every same-cardinality combination equivalent.
|
|
17
|
+
*/
|
|
18
|
+
export const EVAL_AUTHORING_CASE_EVIDENCE_BLOCKS = Math.floor(EVAL_AUTHORING_CASE_EVIDENCE_BYTES /
|
|
19
|
+
EVAL_AUTHORING_EVIDENCE_BLOCK_BYTES);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type EvalAuthoringValidationCategory = "schema-constraint" | "schema-decode" | "case-shape" | "criterion-topology" | "control-topology" | "evidence-selection";
|
|
2
|
+
export declare class EvalAuthoringValidationIssue extends Error {
|
|
3
|
+
readonly category: EvalAuthoringValidationCategory;
|
|
4
|
+
readonly path: string;
|
|
5
|
+
constructor(input: {
|
|
6
|
+
readonly category: EvalAuthoringValidationCategory;
|
|
7
|
+
readonly path: string;
|
|
8
|
+
readonly detail: string;
|
|
9
|
+
readonly cause?: unknown;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export declare const evalAuthoringValidationDiagnostic: (cause: unknown) => {
|
|
13
|
+
readonly category: EvalAuthoringValidationCategory;
|
|
14
|
+
readonly path: string;
|
|
15
|
+
readonly detail: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const prefixEvalAuthoringValidationIssue: (cause: unknown, prefix: string) => EvalAuthoringValidationIssue;
|
|
18
|
+
export declare const renderEvalAuthoringValidationFailure: (input: {
|
|
19
|
+
readonly scope: string;
|
|
20
|
+
readonly cause: unknown;
|
|
21
|
+
readonly callId?: string;
|
|
22
|
+
}) => string;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export class EvalAuthoringValidationIssue extends Error {
|
|
2
|
+
category;
|
|
3
|
+
path;
|
|
4
|
+
constructor(input) {
|
|
5
|
+
super(input.detail, input.cause === undefined ? undefined : { cause: input.cause });
|
|
6
|
+
this.name = "EvalAuthoringValidationIssue";
|
|
7
|
+
this.category = input.category;
|
|
8
|
+
this.path = input.path;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const recordOf = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
|
|
12
|
+
? value
|
|
13
|
+
: undefined;
|
|
14
|
+
const schemaIssuePath = (value) => {
|
|
15
|
+
const record = recordOf(value);
|
|
16
|
+
if (record === undefined)
|
|
17
|
+
return undefined;
|
|
18
|
+
if (Array.isArray(record.path))
|
|
19
|
+
return record.path;
|
|
20
|
+
if (Array.isArray(record.issues)) {
|
|
21
|
+
for (const issue of record.issues) {
|
|
22
|
+
const path = schemaIssuePath(issue);
|
|
23
|
+
if (path !== undefined)
|
|
24
|
+
return path;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return schemaIssuePath(record.issue);
|
|
28
|
+
};
|
|
29
|
+
const propertyPath = (segments) => segments.reduce((path, segment) => {
|
|
30
|
+
if (typeof segment === "number")
|
|
31
|
+
return `${path}[${String(segment)}]`;
|
|
32
|
+
if (typeof segment === "string" && /^[A-Za-z_$][A-Za-z0-9_$]*$/u.test(segment)) {
|
|
33
|
+
return `${path}.${segment}`;
|
|
34
|
+
}
|
|
35
|
+
return `${path}[${JSON.stringify(String(segment))}]`;
|
|
36
|
+
}, "$");
|
|
37
|
+
export const evalAuthoringValidationDiagnostic = (cause) => {
|
|
38
|
+
if (cause instanceof EvalAuthoringValidationIssue) {
|
|
39
|
+
return {
|
|
40
|
+
category: cause.category,
|
|
41
|
+
path: cause.path,
|
|
42
|
+
detail: cause.message
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const record = recordOf(cause);
|
|
46
|
+
const issuePath = schemaIssuePath(record?.issue);
|
|
47
|
+
return {
|
|
48
|
+
category: "schema-decode",
|
|
49
|
+
path: issuePath === undefined ? "$" : propertyPath(issuePath),
|
|
50
|
+
detail: "value does not conform to the persisted evaluation schema"
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export const prefixEvalAuthoringValidationIssue = (cause, prefix) => {
|
|
54
|
+
const diagnostic = evalAuthoringValidationDiagnostic(cause);
|
|
55
|
+
const suffix = diagnostic.path === "$" ? "" : diagnostic.path.slice(1);
|
|
56
|
+
return new EvalAuthoringValidationIssue({
|
|
57
|
+
category: diagnostic.category,
|
|
58
|
+
path: `${prefix}${suffix}`,
|
|
59
|
+
detail: diagnostic.detail,
|
|
60
|
+
cause
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
export const renderEvalAuthoringValidationFailure = (input) => {
|
|
64
|
+
const diagnostic = evalAuthoringValidationDiagnostic(input.cause);
|
|
65
|
+
return [
|
|
66
|
+
`${input.scope} failed validation`,
|
|
67
|
+
...(input.callId === undefined ? [] : [`call id ${input.callId}`]),
|
|
68
|
+
`category ${diagnostic.category}`,
|
|
69
|
+
`path ${diagnostic.path}`,
|
|
70
|
+
diagnostic.detail
|
|
71
|
+
].join("; ");
|
|
72
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { EvalEvidenceBlock, EvalEvidenceSource } from "./project-contracts.js";
|
|
2
|
+
export declare function compileEvaluationEvidence(input: {
|
|
3
|
+
readonly sources: readonly {
|
|
4
|
+
readonly path: string;
|
|
5
|
+
readonly content: string;
|
|
6
|
+
}[];
|
|
7
|
+
readonly maximumBlockBytes: number;
|
|
8
|
+
}): readonly EvalEvidenceSource[];
|
|
9
|
+
export declare function assertEvaluationEvidenceSources(sources: readonly EvalEvidenceSource[]): void;
|
|
10
|
+
export declare function selectEvaluationEvidenceBlocks(input: {
|
|
11
|
+
readonly sources: readonly EvalEvidenceSource[];
|
|
12
|
+
readonly evidenceIds: readonly string[];
|
|
13
|
+
}): readonly EvalEvidenceSource[];
|
|
14
|
+
export declare function mergeEvaluationEvidenceSources(packets: readonly (readonly EvalEvidenceSource[])[]): readonly EvalEvidenceSource[];
|
|
15
|
+
export declare function resolveEvaluationEvidence(input: {
|
|
16
|
+
readonly sources: readonly EvalEvidenceSource[];
|
|
17
|
+
readonly evidenceIds: readonly string[];
|
|
18
|
+
readonly maximumContextBytes: number;
|
|
19
|
+
}): readonly EvalEvidenceBlock[];
|
|
20
|
+
export declare function renderEvaluationEvidenceContext(blocks: readonly EvalEvidenceBlock[]): string;
|