@sanity/ailf 0.5.0 → 2.0.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/README.md +0 -1
- package/config/features.ts +23 -0
- package/config/models.ts +95 -0
- package/config/prompts.ts +16 -0
- package/config/rubrics.ts +225 -0
- package/config/schedules.ts +47 -0
- package/config/sinks.ts +37 -0
- package/config/sources.ts +21 -0
- package/config/thresholds.ts +61 -0
- package/dist/_vendor/ailf-core/config-helpers.d.ts +171 -0
- package/dist/_vendor/ailf-core/config-helpers.js +170 -0
- package/dist/_vendor/ailf-core/env-helper.d.ts +35 -0
- package/dist/_vendor/ailf-core/env-helper.js +45 -0
- package/dist/_vendor/ailf-core/examples/index.d.ts +16 -0
- package/dist/_vendor/ailf-core/examples/index.js +25 -0
- package/dist/_vendor/ailf-core/index.d.ts +3 -0
- package/dist/_vendor/ailf-core/index.js +5 -0
- package/dist/_vendor/ailf-core/ports/context.d.ts +17 -2
- package/dist/_vendor/ailf-core/ports/doc-fetcher.d.ts +2 -2
- package/dist/_vendor/ailf-core/ports/index.d.ts +2 -1
- package/dist/_vendor/ailf-core/ports/mode-handler.d.ts +129 -0
- package/dist/_vendor/ailf-core/ports/mode-handler.js +19 -0
- package/dist/_vendor/ailf-core/ports/task-source.d.ts +16 -122
- package/dist/_vendor/ailf-core/ports/task-source.js +7 -7
- package/dist/_vendor/ailf-core/schemas/eval-config.d.ts +8 -2
- package/dist/_vendor/ailf-core/schemas/eval-config.js +17 -2
- package/dist/_vendor/ailf-core/schemas/pipeline-request.d.ts +9 -3
- package/dist/_vendor/ailf-core/schemas/pipeline-request.js +8 -1
- package/dist/_vendor/ailf-core/schemas/pipeline.d.ts +14 -31
- package/dist/_vendor/ailf-core/schemas/pipeline.js +17 -9
- package/dist/_vendor/ailf-core/schemas/schedules.d.ts +14 -4
- package/dist/_vendor/ailf-core/schemas/schedules.js +6 -2
- package/dist/_vendor/ailf-core/schemas/sinks.d.ts +1 -1
- package/dist/_vendor/ailf-core/services/comparison-formatters.js +57 -19
- package/dist/_vendor/ailf-core/services/index.d.ts +2 -1
- package/dist/_vendor/ailf-core/services/index.js +2 -1
- package/dist/_vendor/ailf-core/services/scoring-engine.d.ts +153 -0
- package/dist/_vendor/ailf-core/services/scoring-engine.js +237 -0
- package/dist/_vendor/ailf-core/services/scoring.d.ts +15 -2
- package/dist/_vendor/ailf-core/services/scoring.js +25 -15
- package/dist/_vendor/ailf-core/types/branded-ids.d.ts +137 -0
- package/dist/_vendor/ailf-core/types/branded-ids.js +136 -0
- package/dist/_vendor/ailf-core/types/eval-mode-config.d.ts +150 -0
- package/dist/_vendor/ailf-core/types/eval-mode-config.js +24 -0
- package/dist/_vendor/ailf-core/types/generalized-task.d.ts +332 -0
- package/dist/_vendor/ailf-core/types/generalized-task.js +13 -0
- package/dist/_vendor/ailf-core/types/index.d.ts +45 -83
- package/dist/_vendor/ailf-core/types/index.js +8 -1
- package/dist/_vendor/ailf-core/types/plugin-registry.d.ts +257 -0
- package/dist/_vendor/ailf-core/types/plugin-registry.js +185 -0
- package/dist/_vendor/ailf-core/types/storage-schema.d.ts +199 -0
- package/dist/_vendor/ailf-core/types/storage-schema.js +39 -0
- package/dist/_vendor/ailf-core/types/task-graph.d.ts +86 -0
- package/dist/_vendor/ailf-core/types/task-graph.js +20 -0
- package/dist/_vendor/ailf-core/types/trace.d.ts +118 -0
- package/dist/_vendor/ailf-core/types/trace.js +18 -0
- package/dist/_vendor/ailf-core/types/variable-envelope.d.ts +80 -0
- package/dist/_vendor/ailf-core/types/variable-envelope.js +16 -0
- package/dist/_vendor/ailf-shared/dimension-names.d.ts +5 -18
- package/dist/_vendor/ailf-shared/dimension-names.js +6 -24
- package/dist/_vendor/ailf-shared/eval-modes.d.ts +38 -6
- package/dist/_vendor/ailf-shared/eval-modes.js +26 -2
- package/dist/_vendor/ailf-shared/index.d.ts +0 -1
- package/dist/_vendor/ailf-shared/index.js +0 -1
- package/dist/adapters/api-client/build-request.js +14 -13
- package/dist/adapters/config-sources/file-config-adapter.d.ts +20 -11
- package/dist/adapters/config-sources/file-config-adapter.js +39 -12
- package/dist/adapters/config-sources/index.d.ts +2 -0
- package/dist/adapters/config-sources/index.js +1 -0
- package/dist/adapters/config-sources/ts-config-loader.d.ts +59 -0
- package/dist/adapters/config-sources/ts-config-loader.js +141 -0
- package/dist/adapters/doc-fetchers/sanity-doc-fetcher.d.ts +3 -2
- package/dist/adapters/doc-fetchers/sanity-doc-fetcher.js +7 -2
- package/dist/adapters/task-sources/composite-task-source.d.ts +3 -3
- package/dist/adapters/task-sources/composite-task-source.js +1 -1
- package/dist/adapters/task-sources/content-lake-task-source.d.ts +7 -6
- package/dist/adapters/task-sources/content-lake-task-source.js +35 -39
- package/dist/adapters/task-sources/index.d.ts +3 -2
- package/dist/adapters/task-sources/index.js +3 -2
- package/dist/adapters/task-sources/repo-schemas.d.ts +218 -16
- package/dist/adapters/task-sources/repo-schemas.js +227 -19
- package/dist/adapters/task-sources/repo-task-source.d.ts +16 -12
- package/dist/adapters/task-sources/repo-task-source.js +92 -80
- package/dist/adapters/task-sources/repo-validation.d.ts +36 -5
- package/dist/adapters/task-sources/repo-validation.js +126 -5
- package/dist/adapters/task-sources/task-file-loader.d.ts +64 -0
- package/dist/adapters/task-sources/task-file-loader.js +83 -0
- package/dist/adapters/task-sources/yaml-task-source.d.ts +6 -6
- package/dist/adapters/task-sources/yaml-task-source.js +19 -16
- package/dist/cli.js +0 -2
- package/dist/commands/baseline.js +4 -1
- package/dist/commands/calculate-scores.js +1 -1
- package/dist/commands/coverage-audit.js +9 -1
- package/dist/commands/explain-handler.js +25 -23
- package/dist/commands/fetch-docs.js +3 -2
- package/dist/commands/generate-configs.js +1 -1
- package/dist/commands/init.d.ts +6 -4
- package/dist/commands/init.js +302 -23
- package/dist/commands/interactive.js +11 -7
- package/dist/commands/pipeline-action.d.ts +2 -0
- package/dist/commands/pipeline-action.js +16 -6
- package/dist/commands/pipeline.d.ts +1 -0
- package/dist/commands/pipeline.js +4 -2
- package/dist/commands/pr-comment.js +1 -1
- package/dist/commands/publish.js +2 -2
- package/dist/commands/readiness-report.js +13 -6
- package/dist/commands/validate-tasks.d.ts +2 -2
- package/dist/commands/validate-tasks.js +26 -15
- package/dist/composition-root.d.ts +13 -1
- package/dist/composition-root.js +99 -4
- package/dist/index.d.ts +41 -0
- package/dist/index.js +48 -0
- package/dist/orchestration/build-app-context.js +1 -0
- package/dist/orchestration/build-step-sequence.js +28 -8
- package/dist/orchestration/steps/calculate-scores-step.js +24 -11
- package/dist/orchestration/steps/fetch-docs-step.js +8 -7
- package/dist/orchestration/steps/gap-analysis-step.js +8 -7
- package/dist/orchestration/steps/generate-configs-step.d.ts +16 -3
- package/dist/orchestration/steps/generate-configs-step.js +261 -51
- package/dist/orchestration/steps/grader-consistency-step.js +7 -4
- package/dist/orchestration/steps/mirror-repo-tasks-step.js +1 -1
- package/dist/orchestration/steps/readiness-step.js +5 -6
- package/dist/orchestration/steps/run-eval-step.d.ts +1 -2
- package/dist/orchestration/steps/run-eval-step.js +8 -7
- package/dist/pipeline/cache.d.ts +1 -1
- package/dist/pipeline/cache.js +36 -8
- package/dist/pipeline/calculate-scores.d.ts +2 -4
- package/dist/pipeline/calculate-scores.js +43 -113
- package/dist/pipeline/checks.js +2 -2
- package/dist/pipeline/compare.js +8 -8
- package/dist/pipeline/compiler/__tests__/agent-harness-handler.test.d.ts +10 -0
- package/dist/pipeline/compiler/__tests__/agent-harness-handler.test.js +288 -0
- package/dist/pipeline/compiler/__tests__/assertion-mapper.test.d.ts +9 -0
- package/dist/pipeline/compiler/__tests__/assertion-mapper.test.js +145 -0
- package/dist/pipeline/compiler/__tests__/knowledge-probe-handler.test.d.ts +10 -0
- package/dist/pipeline/compiler/__tests__/knowledge-probe-handler.test.js +314 -0
- package/dist/pipeline/compiler/__tests__/literacy-handler.test.d.ts +10 -0
- package/dist/pipeline/compiler/__tests__/literacy-handler.test.js +486 -0
- package/dist/pipeline/compiler/__tests__/mcp-server-handler.test.d.ts +10 -0
- package/dist/pipeline/compiler/__tests__/mcp-server-handler.test.js +392 -0
- package/dist/pipeline/compiler/__tests__/promptfoo-compiler.test.d.ts +9 -0
- package/dist/pipeline/compiler/__tests__/promptfoo-compiler.test.js +333 -0
- package/dist/pipeline/compiler/__tests__/sandbox-and-fixtures.test.d.ts +12 -0
- package/dist/pipeline/compiler/__tests__/sandbox-and-fixtures.test.js +210 -0
- package/dist/pipeline/compiler/__tests__/scoring-and-presets.test.d.ts +7 -0
- package/dist/pipeline/compiler/__tests__/scoring-and-presets.test.js +404 -0
- package/dist/pipeline/compiler/__tests__/scoring-bridge.test.d.ts +10 -0
- package/dist/pipeline/compiler/__tests__/scoring-bridge.test.js +184 -0
- package/dist/pipeline/compiler/__tests__/task-graph-builder.test.d.ts +8 -0
- package/dist/pipeline/compiler/__tests__/task-graph-builder.test.js +301 -0
- package/dist/pipeline/compiler/__tests__/telemetry.test.d.ts +9 -0
- package/dist/pipeline/compiler/__tests__/telemetry.test.js +503 -0
- package/dist/pipeline/compiler/assertion-mapper.d.ts +58 -0
- package/dist/pipeline/compiler/assertion-mapper.js +175 -0
- package/dist/pipeline/compiler/compiler-to-yaml.d.ts +51 -0
- package/dist/pipeline/compiler/compiler-to-yaml.js +222 -0
- package/dist/pipeline/compiler/config-loader.d.ts +56 -0
- package/dist/pipeline/compiler/config-loader.js +111 -0
- package/dist/pipeline/compiler/fixture-resolver.d.ts +41 -0
- package/dist/pipeline/compiler/fixture-resolver.js +113 -0
- package/dist/pipeline/compiler/hash.d.ts +11 -0
- package/dist/pipeline/compiler/hash.js +18 -0
- package/dist/pipeline/compiler/ignore-fields.d.ts +53 -0
- package/dist/pipeline/compiler/ignore-fields.js +113 -0
- package/dist/pipeline/compiler/index.d.ts +29 -0
- package/dist/pipeline/compiler/index.js +45 -0
- package/dist/pipeline/compiler/literacy-bridge.d.ts +102 -0
- package/dist/pipeline/compiler/literacy-bridge.js +172 -0
- package/dist/pipeline/compiler/mode-bases/agent-harness.d.ts +10 -0
- package/dist/pipeline/compiler/mode-bases/agent-harness.js +21 -0
- package/dist/pipeline/compiler/mode-bases/index.d.ts +4 -0
- package/dist/pipeline/compiler/mode-bases/index.js +4 -0
- package/dist/pipeline/compiler/mode-bases/knowledge-probe.d.ts +10 -0
- package/dist/pipeline/compiler/mode-bases/knowledge-probe.js +22 -0
- package/dist/pipeline/compiler/mode-bases/literacy.d.ts +12 -0
- package/dist/pipeline/compiler/mode-bases/literacy.js +78 -0
- package/dist/pipeline/compiler/mode-bases/mcp-server.d.ts +10 -0
- package/dist/pipeline/compiler/mode-bases/mcp-server.js +70 -0
- package/dist/pipeline/compiler/mode-handlers/__fixtures__/agent-harness-example-tasks.d.ts +14 -0
- package/dist/pipeline/compiler/mode-handlers/__fixtures__/agent-harness-example-tasks.js +152 -0
- package/dist/pipeline/compiler/mode-handlers/__fixtures__/knowledge-probe-example-tasks.d.ts +32 -0
- package/dist/pipeline/compiler/mode-handlers/__fixtures__/knowledge-probe-example-tasks.js +176 -0
- package/dist/pipeline/compiler/mode-handlers/__fixtures__/mcp-example-tasks.d.ts +49 -0
- package/dist/pipeline/compiler/mode-handlers/__fixtures__/mcp-example-tasks.js +259 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/assertions.d.ts +43 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/assertions.js +187 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/compiler.d.ts +19 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/compiler.js +138 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/index.d.ts +16 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/index.js +43 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/prompts.d.ts +9 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/prompts.js +29 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/sandbox.d.ts +12 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/sandbox.js +82 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/tool-presets.d.ts +4 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/tool-presets.js +19 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/types.d.ts +49 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/types.js +4 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/validation.d.ts +9 -0
- package/dist/pipeline/compiler/mode-handlers/agent-harness/validation.js +16 -0
- package/dist/pipeline/compiler/mode-handlers/index.d.ts +15 -0
- package/dist/pipeline/compiler/mode-handlers/index.js +19 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/assertions.d.ts +16 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/assertions.js +61 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/compiler.d.ts +18 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/compiler.js +112 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/index.d.ts +26 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/index.js +49 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/prompts.d.ts +9 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/prompts.js +28 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/types.d.ts +44 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/types.js +4 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/validation.d.ts +9 -0
- package/dist/pipeline/compiler/mode-handlers/knowledge-probe/validation.js +24 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/assertions.d.ts +18 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/assertions.js +118 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/compiler.d.ts +14 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/compiler.js +105 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/index.d.ts +11 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/index.js +38 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/prompts.d.ts +9 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/prompts.js +74 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/types.d.ts +41 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/types.js +4 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/validation.d.ts +12 -0
- package/dist/pipeline/compiler/mode-handlers/literacy/validation.js +28 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/assertions.d.ts +42 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/assertions.js +334 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/compiler.d.ts +19 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/compiler.js +100 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/index.d.ts +27 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/index.js +54 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/prompts.d.ts +8 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/prompts.js +28 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/provider-config.d.ts +28 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/provider-config.js +104 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/types.d.ts +37 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/types.js +4 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/validation.d.ts +9 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-server/validation.js +43 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/index.d.ts +33 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/index.js +174 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/mcp-connection.d.ts +19 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/mcp-connection.js +95 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/tool-loop-anthropic.d.ts +19 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/tool-loop-anthropic.js +172 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/tool-loop-openai.d.ts +14 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/tool-loop-openai.js +16 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/types.d.ts +93 -0
- package/dist/pipeline/compiler/mode-handlers/mcp-tool-provider/types.js +4 -0
- package/dist/pipeline/compiler/preset-loader.d.ts +22 -0
- package/dist/pipeline/compiler/preset-loader.js +99 -0
- package/dist/pipeline/compiler/presets/index.d.ts +9 -0
- package/dist/pipeline/compiler/presets/index.js +8 -0
- package/dist/pipeline/compiler/presets/sanity-literacy.d.ts +42 -0
- package/dist/pipeline/compiler/presets/sanity-literacy.js +208 -0
- package/dist/pipeline/compiler/promptfoo-compiler.d.ts +96 -0
- package/dist/pipeline/compiler/promptfoo-compiler.js +230 -0
- package/dist/pipeline/compiler/provider-assembler.d.ts +39 -0
- package/dist/pipeline/compiler/provider-assembler.js +137 -0
- package/dist/pipeline/compiler/sandbox/docker-sandbox.d.ts +21 -0
- package/dist/pipeline/compiler/sandbox/docker-sandbox.js +136 -0
- package/dist/pipeline/compiler/sandbox/fixture-provisioner.d.ts +69 -0
- package/dist/pipeline/compiler/sandbox/fixture-provisioner.js +189 -0
- package/dist/pipeline/compiler/sandbox/git-worktree-sandbox.d.ts +20 -0
- package/dist/pipeline/compiler/sandbox/git-worktree-sandbox.js +114 -0
- package/dist/pipeline/compiler/sandbox/index.d.ts +10 -0
- package/dist/pipeline/compiler/sandbox/index.js +11 -0
- package/dist/pipeline/compiler/sandbox/sandbox-selector.d.ts +35 -0
- package/dist/pipeline/compiler/sandbox/sandbox-selector.js +86 -0
- package/dist/pipeline/compiler/sandbox/sandbox-strategy.d.ts +81 -0
- package/dist/pipeline/compiler/sandbox/sandbox-strategy.js +15 -0
- package/dist/pipeline/compiler/sandbox/tempdir-sandbox.d.ts +20 -0
- package/dist/pipeline/compiler/sandbox/tempdir-sandbox.js +74 -0
- package/dist/pipeline/compiler/scoring-bridge.d.ts +49 -0
- package/dist/pipeline/compiler/scoring-bridge.js +114 -0
- package/dist/pipeline/compiler/task-graph-builder.d.ts +54 -0
- package/dist/pipeline/compiler/task-graph-builder.js +291 -0
- package/dist/pipeline/compiler/telemetry/cost-tracker.d.ts +90 -0
- package/dist/pipeline/compiler/telemetry/cost-tracker.js +146 -0
- package/dist/pipeline/compiler/telemetry/index.d.ts +14 -0
- package/dist/pipeline/compiler/telemetry/index.js +19 -0
- package/dist/pipeline/compiler/telemetry/redactor.d.ts +58 -0
- package/dist/pipeline/compiler/telemetry/redactor.js +222 -0
- package/dist/pipeline/compiler/telemetry/tool-classifier.d.ts +32 -0
- package/dist/pipeline/compiler/telemetry/tool-classifier.js +120 -0
- package/dist/pipeline/compiler/telemetry/trace-collector.d.ts +75 -0
- package/dist/pipeline/compiler/telemetry/trace-collector.js +297 -0
- package/dist/pipeline/compiler/telemetry/trace-store.d.ts +78 -0
- package/dist/pipeline/compiler/telemetry/trace-store.js +85 -0
- package/dist/pipeline/compiler/variable-resolver.d.ts +46 -0
- package/dist/pipeline/compiler/variable-resolver.js +115 -0
- package/dist/pipeline/coverage-audit.d.ts +15 -5
- package/dist/pipeline/coverage-audit.js +41 -22
- package/dist/pipeline/eval-constants.d.ts +16 -6
- package/dist/pipeline/eval-constants.js +25 -4
- package/dist/pipeline/eval-fingerprint.d.ts +2 -2
- package/dist/pipeline/eval-fingerprint.js +8 -9
- package/dist/pipeline/expand-tasks.d.ts +19 -10
- package/dist/pipeline/expand-tasks.js +34 -28
- package/dist/pipeline/gap-analysis.d.ts +1 -1
- package/dist/pipeline/gap-analysis.js +2 -2
- package/dist/pipeline/generate-configs.d.ts +22 -4
- package/dist/pipeline/generate-configs.js +53 -24
- package/dist/pipeline/grader-api.d.ts +3 -3
- package/dist/pipeline/grader-api.js +5 -12
- package/dist/pipeline/grader-compare-runner.js +20 -27
- package/dist/pipeline/grader-comparison.d.ts +4 -8
- package/dist/pipeline/grader-comparison.js +11 -17
- package/dist/pipeline/grader-consistency-runner.d.ts +2 -3
- package/dist/pipeline/grader-consistency-runner.js +16 -20
- package/dist/pipeline/grader-consistency.d.ts +6 -10
- package/dist/pipeline/grader-consistency.js +13 -32
- package/dist/pipeline/grader-sensitivity-runner.js +7 -5
- package/dist/pipeline/grader-sensitivity.d.ts +2 -6
- package/dist/pipeline/grader-sensitivity.js +10 -10
- package/dist/pipeline/grader-validate-runner.js +7 -5
- package/dist/pipeline/grader-validation.d.ts +2 -6
- package/dist/pipeline/grader-validation.js +14 -22
- package/dist/pipeline/map-request-to-config.js +7 -1
- package/dist/pipeline/mirror-repo-tasks.d.ts +13 -13
- package/dist/pipeline/mirror-repo-tasks.js +22 -21
- package/dist/pipeline/normalize-mode.d.ts +49 -0
- package/dist/pipeline/normalize-mode.js +64 -0
- package/dist/pipeline/plan.d.ts +5 -2
- package/dist/pipeline/plan.js +134 -78
- package/dist/pipeline/pr-comment.js +2 -0
- package/dist/pipeline/profile-resolution.d.ts +22 -14
- package/dist/pipeline/profile-resolution.js +41 -19
- package/dist/pipeline/provenance.d.ts +2 -2
- package/dist/pipeline/provenance.js +12 -17
- package/dist/pipeline/release-report.js +4 -4
- package/dist/pipeline/repo-threshold-evaluator.d.ts +1 -1
- package/dist/pipeline/repo-threshold-evaluator.js +1 -1
- package/dist/pipeline/rubric-loader.d.ts +20 -0
- package/dist/pipeline/rubric-loader.js +37 -0
- package/dist/pipeline/validate.d.ts +4 -4
- package/dist/pipeline/validate.js +64 -53
- package/dist/schedules/loader.js +18 -8
- package/dist/scripts/migrate-task-mode.d.ts +24 -0
- package/dist/scripts/migrate-task-mode.js +85 -0
- package/dist/scripts/migrate-tasks-to-content-lake.js +11 -10
- package/dist/scripts/validate-task-sources.d.ts +1 -1
- package/dist/scripts/validate-task-sources.js +15 -15
- package/dist/sinks/loader.js +5 -7
- package/dist/sources.d.ts +7 -7
- package/dist/sources.js +22 -24
- package/dist/webhook/dispatch.js +2 -1
- package/package.json +15 -4
- package/tasks/knowledge-probe/define-type-api.task.ts +55 -0
- package/tasks/knowledge-probe/groq-projections.task.ts +59 -0
- package/tasks/literacy/frameworks.task.ts +128 -0
- package/tasks/literacy/functions.task.ts +69 -0
- package/tasks/literacy/groq.task.ts +258 -0
- package/tasks/literacy/nextjs-live.task.ts +75 -0
- package/tasks/literacy/studio-setup.task.ts +131 -0
- package/tasks/literacy/visual-editing.task.ts +146 -0
- package/config/features.yaml +0 -116
- package/config/models.yaml +0 -116
- package/config/prompts.yaml +0 -75
- package/config/rubrics.yaml +0 -81
- package/config/schedules.yaml +0 -43
- package/config/sinks.yaml +0 -54
- package/config/sources.yaml +0 -51
- package/config/thresholds.yaml +0 -49
- package/dist/_vendor/ailf-tasks/cli.d.ts +0 -8
- package/dist/_vendor/ailf-tasks/cli.js +0 -61
- package/dist/_vendor/ailf-tasks/index.d.ts +0 -13
- package/dist/_vendor/ailf-tasks/index.js +0 -16
- package/dist/_vendor/ailf-tasks/parser.d.ts +0 -27
- package/dist/_vendor/ailf-tasks/parser.js +0 -73
- package/dist/_vendor/ailf-tasks/schemas.d.ts +0 -198
- package/dist/_vendor/ailf-tasks/schemas.js +0 -180
- package/dist/_vendor/ailf-tasks/validation.d.ts +0 -47
- package/dist/_vendor/ailf-tasks/validation.js +0 -162
- package/dist/agent-observer/test-imports.d.ts +0 -7
- package/dist/agent-observer/test-imports.js +0 -185
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adapter: Load task definitions from the Sanity Content Lake.
|
|
3
3
|
*
|
|
4
|
-
* Fetches ailf.task documents via GROQ and maps them to
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Fetches ailf.task documents via GROQ and maps them to
|
|
5
|
+
* GeneralizedTaskDefinition (LiteracyTaskDefinition variant). This
|
|
6
|
+
* adapter is the Content Lake counterpart of YamlTaskSource — both
|
|
7
|
+
* produce identical GeneralizedTaskDefinition[] for the same logical
|
|
8
|
+
* tasks. The pipeline never knows which adapter loaded the tasks.
|
|
8
9
|
*
|
|
9
10
|
* Wired in the composition root when --task-source content-lake is set.
|
|
10
11
|
*
|
|
@@ -16,11 +17,11 @@
|
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
17
18
|
/**
|
|
18
19
|
* GROQ query that projects ailf.task documents into a shape suitable for
|
|
19
|
-
* mapping to
|
|
20
|
+
* mapping to LiteracyTaskDefinition.
|
|
20
21
|
*
|
|
21
22
|
* Key projections:
|
|
22
|
-
* -
|
|
23
|
-
* -
|
|
23
|
+
* - area reference → dereferenced areaId string
|
|
24
|
+
* - contextDocs[] → dereferenced article slugs with reason
|
|
24
25
|
* - referenceSolution → title (for identification, not full content)
|
|
25
26
|
*
|
|
26
27
|
* Filter parameters:
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
*/
|
|
30
31
|
const TASKS_QUERY = /* groq */ `
|
|
31
32
|
*[_type == "ailf.task"
|
|
32
|
-
&& (!defined($areas) ||
|
|
33
|
+
&& (!defined($areas) || area->areaId.current in $areas)
|
|
33
34
|
&& (!defined($taskIds) || id.current in $taskIds)
|
|
34
35
|
&& (
|
|
35
36
|
// Status-based filtering (unified — replaces execution.enabled)
|
|
@@ -40,13 +41,13 @@ const TASKS_QUERY = /* groq */ `
|
|
|
40
41
|
|| (defined($taskIds) && status != "archived")
|
|
41
42
|
)
|
|
42
43
|
&& (!defined($tags) || count((tags)[@ in $tags]) > 0)
|
|
43
|
-
] | order(
|
|
44
|
+
] | order(area->areaId.current asc, id.current asc) {
|
|
44
45
|
"taskId": id.current,
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
46
|
+
title,
|
|
47
|
+
"areaId": area->areaId.current,
|
|
48
|
+
promptText,
|
|
48
49
|
docCoverage,
|
|
49
|
-
"
|
|
50
|
+
"contextDocs": contextDocs[] {
|
|
50
51
|
refType,
|
|
51
52
|
"slug": doc->slug.current,
|
|
52
53
|
"docRefId": doc->_id,
|
|
@@ -56,7 +57,7 @@ const TASKS_QUERY = /* groq */ `
|
|
|
56
57
|
perspective,
|
|
57
58
|
reason
|
|
58
59
|
},
|
|
59
|
-
|
|
60
|
+
assertions,
|
|
60
61
|
rawAssert,
|
|
61
62
|
baseline,
|
|
62
63
|
tags,
|
|
@@ -79,7 +80,7 @@ export class ContentLakeTaskSource {
|
|
|
79
80
|
}
|
|
80
81
|
const definitions = [];
|
|
81
82
|
for (const entry of raw) {
|
|
82
|
-
const mapped =
|
|
83
|
+
const mapped = mapToLiteracyTask(entry);
|
|
83
84
|
if (!mapped)
|
|
84
85
|
continue;
|
|
85
86
|
definitions.push(mapped);
|
|
@@ -105,35 +106,29 @@ function buildGroqParams(filter) {
|
|
|
105
106
|
};
|
|
106
107
|
}
|
|
107
108
|
// ---------------------------------------------------------------------------
|
|
108
|
-
// Mapping: Content Lake →
|
|
109
|
+
// Mapping: Content Lake → LiteracyTaskDefinition
|
|
109
110
|
// ---------------------------------------------------------------------------
|
|
110
111
|
/**
|
|
111
|
-
* Map a Content Lake ailf.task document to
|
|
112
|
+
* Map a Content Lake ailf.task document directly to a LiteracyTaskDefinition.
|
|
112
113
|
*
|
|
113
114
|
* Returns null if the document is missing required fields (taskId,
|
|
114
|
-
*
|
|
115
|
+
* title, areaId, promptText). These are required by the
|
|
115
116
|
* Studio schema, but defensive coding handles edge cases (drafts,
|
|
116
117
|
* partially-created documents, etc.).
|
|
117
118
|
*/
|
|
118
|
-
function
|
|
119
|
+
function mapToLiteracyTask(raw) {
|
|
119
120
|
// Required fields — skip malformed documents
|
|
120
|
-
if (!raw.taskId ||
|
|
121
|
-
!raw.description ||
|
|
122
|
-
!raw.featureAreaId ||
|
|
123
|
-
!raw.taskPrompt) {
|
|
121
|
+
if (!raw.taskId || !raw.title || !raw.areaId || !raw.promptText) {
|
|
124
122
|
return null;
|
|
125
123
|
}
|
|
126
|
-
const
|
|
124
|
+
const docs = (raw.contextDocs ?? [])
|
|
127
125
|
.map(mapCanonicalDocRef)
|
|
128
126
|
.filter((d) => d !== null);
|
|
129
|
-
const assertions = mapAssertions(raw.
|
|
127
|
+
const assertions = mapAssertions(raw.assertions ?? []);
|
|
130
128
|
// Append raw pass-through assertions (escape hatch for arbitrary Promptfoo
|
|
131
129
|
// assertion types that aren't in the curated list). These bypass template
|
|
132
130
|
// resolution and flow directly into the expanded Promptfoo test case as
|
|
133
|
-
// value-based assertions.
|
|
134
|
-
// "full" (the default) copies all assertions as-is, so rawAssert
|
|
135
|
-
// entries only run in the gold variant — consistent with how regular
|
|
136
|
-
// value-based assertions like `contains` or `regex` behave.
|
|
131
|
+
// value-based assertions.
|
|
137
132
|
const rawAssertions = (raw.rawAssert ?? [])
|
|
138
133
|
.filter((a) => !!a.type)
|
|
139
134
|
.map((a) => ({
|
|
@@ -141,7 +136,10 @@ function mapToTaskDefinition(raw) {
|
|
|
141
136
|
...(a.value !== undefined ? { value: a.value } : {}),
|
|
142
137
|
...(a.threshold !== undefined ? { threshold: a.threshold } : {}),
|
|
143
138
|
}));
|
|
144
|
-
const allAssertions = [
|
|
139
|
+
const allAssertions = [
|
|
140
|
+
...assertions,
|
|
141
|
+
...rawAssertions,
|
|
142
|
+
];
|
|
145
143
|
const baseline = raw.baseline
|
|
146
144
|
? {
|
|
147
145
|
...(raw.baseline.enabled !== undefined
|
|
@@ -155,25 +153,23 @@ function mapToTaskDefinition(raw) {
|
|
|
155
153
|
}
|
|
156
154
|
: undefined;
|
|
157
155
|
return {
|
|
156
|
+
mode: "literacy",
|
|
157
|
+
id: raw.taskId,
|
|
158
|
+
title: raw.title,
|
|
159
|
+
area: raw.areaId,
|
|
160
|
+
prompt: { text: raw.promptText },
|
|
161
|
+
context: { docs },
|
|
158
162
|
assertions: allAssertions,
|
|
159
|
-
canonicalDocs,
|
|
160
|
-
description: raw.description,
|
|
161
163
|
docCoverage: raw.docCoverage ?? false,
|
|
162
|
-
featureArea: raw.featureAreaId,
|
|
163
|
-
id: raw.taskId,
|
|
164
164
|
// Reference solution path is not meaningful for CL tasks — the solution
|
|
165
165
|
// content lives in the Content Lake document, not on the filesystem.
|
|
166
|
-
// Downstream consumers that need the solution content will need to fetch
|
|
167
|
-
// it via the referenceSolution reference. For now, use empty string
|
|
168
|
-
// (same as tasks without a reference solution).
|
|
169
166
|
referenceSolution: "",
|
|
170
|
-
taskPrompt: raw.taskPrompt,
|
|
171
167
|
...(baseline ? { baseline } : {}),
|
|
172
168
|
...(raw.tags?.length ? { tags: raw.tags } : {}),
|
|
173
169
|
};
|
|
174
170
|
}
|
|
175
171
|
/**
|
|
176
|
-
* Map a Content Lake
|
|
172
|
+
* Map a Content Lake context doc entry to the polymorphic CanonicalDocRef.
|
|
177
173
|
*
|
|
178
174
|
* Uses `refType` to determine which value field to read. Falls back to
|
|
179
175
|
* slug-based resolution for backward compatibility (documents created
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { CompositeTaskSource } from "./composite-task-source.js";
|
|
2
2
|
export { ContentLakeTaskSource } from "./content-lake-task-source.js";
|
|
3
|
-
export {
|
|
3
|
+
export { CanonicalTaskFileSchema, CanonicalTaskSchema, CURATED_ASSERTION_TYPES, detectLegacyFieldNames, parseCanonicalTaskFile, parseRepoConfig, RepoConfigSchema, RUBRIC_TEMPLATE_NAMES, type CanonicalTask, type CuratedAssertionType, type RepoConfig, type RubricTemplateName, } from "./repo-schemas.js";
|
|
4
4
|
export { RepoTaskSource } from "./repo-task-source.js";
|
|
5
5
|
export { detectTriggerContext, resolveTrigger, type ResolvedTrigger, type TriggerContext, } from "./repo-trigger.js";
|
|
6
|
-
export { formatValidationResult,
|
|
6
|
+
export { formatValidationResult, validateCanonicalTasks, type ValidationMessage, type ValidationResult, } from "./repo-validation.js";
|
|
7
|
+
export { discoverTsTaskFiles, loadAllTsTaskFiles, loadTsTaskFile, } from "./task-file-loader.js";
|
|
7
8
|
export { YamlTaskSource } from "./yaml-task-source.js";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { CompositeTaskSource } from "./composite-task-source.js";
|
|
2
2
|
export { ContentLakeTaskSource } from "./content-lake-task-source.js";
|
|
3
|
-
export {
|
|
3
|
+
export { CanonicalTaskFileSchema, CanonicalTaskSchema, CURATED_ASSERTION_TYPES, detectLegacyFieldNames, parseCanonicalTaskFile, parseRepoConfig, RepoConfigSchema, RUBRIC_TEMPLATE_NAMES, } from "./repo-schemas.js";
|
|
4
4
|
export { RepoTaskSource } from "./repo-task-source.js";
|
|
5
5
|
export { detectTriggerContext, resolveTrigger, } from "./repo-trigger.js";
|
|
6
|
-
export { formatValidationResult,
|
|
6
|
+
export { formatValidationResult, validateCanonicalTasks, } from "./repo-validation.js";
|
|
7
|
+
export { discoverTsTaskFiles, loadAllTsTaskFiles, loadTsTaskFile, } from "./task-file-loader.js";
|
|
7
8
|
export { YamlTaskSource } from "./yaml-task-source.js";
|
|
@@ -1,29 +1,231 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* repo-schemas.ts —
|
|
2
|
+
* repo-schemas.ts — Canonical Zod schemas for task and config validation.
|
|
3
3
|
*
|
|
4
|
-
* Task schemas
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Task schemas validate .ailf/tasks/*.yaml and .task.ts files against the
|
|
5
|
+
* canonical GeneralizedTaskDefinition shape. Field names match the internal
|
|
6
|
+
* domain model: `area` (not featureArea), `assertions` (not assert),
|
|
7
|
+
* `context.docs` (not canonicalDocs), `prompt.text` (not vars.task).
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* external tools that only validate task YAML.
|
|
9
|
+
* Previously this file re-exported from @sanity/ailf-tasks. That package
|
|
10
|
+
* has been eliminated — all schema logic now lives here.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* Config schemas (RepoConfigSchema, trigger config) are eval-pipeline-
|
|
13
|
+
* specific and remain here unchanged.
|
|
14
|
+
*
|
|
15
|
+
* @see packages/core/src/types/generalized-task.ts — canonical TypeScript types
|
|
13
16
|
* @see docs/exec-plans/tasks-as-content/phase-4-repo-based-tasks.md
|
|
14
17
|
*/
|
|
15
|
-
import { RepoTaskFileSchema as _Schema } from "../../_vendor/ailf-tasks/index.d.ts";
|
|
16
18
|
import { z } from "zod";
|
|
17
|
-
export { CURATED_ASSERTION_TYPES, RepoTaskFileSchema, RepoTaskSchema, RUBRIC_TEMPLATE_NAMES, type CuratedAssertionType, type RepoTask, type RubricTemplateName, } from "../../_vendor/ailf-tasks/index.d.ts";
|
|
18
|
-
export { loadTaskDir, parseTaskFile } from "../../_vendor/ailf-tasks/index.d.ts";
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* The set of assertion types allowed in task files.
|
|
21
|
+
*
|
|
22
|
+
* This is a curated subset of Promptfoo assertion types — we expose only the
|
|
23
|
+
* types that are stable, well-documented, and useful for external authors.
|
|
24
|
+
*/
|
|
25
|
+
export declare const CURATED_ASSERTION_TYPES: readonly ["llm-rubric", "contains", "contains-any", "contains-all", "not-contains", "icontains", "icontains-any", "regex", "javascript", "similar", "cost", "latency"];
|
|
26
|
+
export type CuratedAssertionType = (typeof CURATED_ASSERTION_TYPES)[number];
|
|
27
|
+
/**
|
|
28
|
+
* Valid rubric template names — must match keys in config/rubrics.yaml.
|
|
29
|
+
*/
|
|
30
|
+
export declare const RUBRIC_TEMPLATE_NAMES: readonly ["task-completion", "code-correctness", "doc-coverage"];
|
|
31
|
+
export type RubricTemplateName = (typeof RUBRIC_TEMPLATE_NAMES)[number];
|
|
32
|
+
/**
|
|
33
|
+
* Zod schema for a single task definition using canonical field names.
|
|
34
|
+
*
|
|
35
|
+
* Uses .passthrough() to allow mode-specific fields (serverConfig, sandbox,
|
|
36
|
+
* handler, etc.) without listing every possible field. Mode-specific
|
|
37
|
+
* validation is deferred to the pipeline's mode handlers.
|
|
38
|
+
*/
|
|
39
|
+
export declare const CanonicalTaskSchema: z.ZodObject<{
|
|
40
|
+
id: z.ZodString;
|
|
41
|
+
mode: z.ZodDefault<z.ZodString>;
|
|
42
|
+
title: z.ZodString;
|
|
43
|
+
description: z.ZodOptional<z.ZodString>;
|
|
44
|
+
area: z.ZodOptional<z.ZodString>;
|
|
45
|
+
difficulty: z.ZodOptional<z.ZodEnum<{
|
|
46
|
+
basic: "basic";
|
|
47
|
+
intermediate: "intermediate";
|
|
48
|
+
advanced: "advanced";
|
|
49
|
+
}>>;
|
|
50
|
+
status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
51
|
+
active: "active";
|
|
52
|
+
draft: "draft";
|
|
53
|
+
paused: "paused";
|
|
54
|
+
archived: "archived";
|
|
55
|
+
}>>>;
|
|
56
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
57
|
+
prompt: z.ZodOptional<z.ZodObject<{
|
|
58
|
+
template: z.ZodOptional<z.ZodString>;
|
|
59
|
+
text: z.ZodOptional<z.ZodString>;
|
|
60
|
+
systemMessage: z.ZodOptional<z.ZodString>;
|
|
61
|
+
vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
62
|
+
}, z.core.$strip>>;
|
|
63
|
+
context: z.ZodOptional<z.ZodObject<{
|
|
64
|
+
docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
65
|
+
id: z.ZodString;
|
|
66
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
67
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
68
|
+
path: z.ZodOptional<z.ZodString>;
|
|
69
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
70
|
+
slug: z.ZodString;
|
|
71
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
72
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
73
|
+
path: z.ZodString;
|
|
74
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
75
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
76
|
+
perspective: z.ZodString;
|
|
77
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
78
|
+
}, z.core.$strip>]>>>;
|
|
79
|
+
fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
80
|
+
}, z.core.$strip>>;
|
|
81
|
+
assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
82
|
+
type: z.ZodLiteral<"llm-rubric">;
|
|
83
|
+
template: z.ZodEnum<{
|
|
84
|
+
"task-completion": "task-completion";
|
|
85
|
+
"code-correctness": "code-correctness";
|
|
86
|
+
"doc-coverage": "doc-coverage";
|
|
87
|
+
}>;
|
|
88
|
+
criteria: z.ZodArray<z.ZodString>;
|
|
89
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
91
|
+
type: z.ZodEnum<{
|
|
92
|
+
"llm-rubric": "llm-rubric";
|
|
93
|
+
contains: "contains";
|
|
94
|
+
"contains-any": "contains-any";
|
|
95
|
+
"contains-all": "contains-all";
|
|
96
|
+
"not-contains": "not-contains";
|
|
97
|
+
icontains: "icontains";
|
|
98
|
+
"icontains-any": "icontains-any";
|
|
99
|
+
regex: "regex";
|
|
100
|
+
javascript: "javascript";
|
|
101
|
+
similar: "similar";
|
|
102
|
+
cost: "cost";
|
|
103
|
+
latency: "latency";
|
|
104
|
+
}>;
|
|
105
|
+
value: z.ZodOptional<z.ZodUnknown>;
|
|
106
|
+
threshold: z.ZodOptional<z.ZodNumber>;
|
|
107
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
108
|
+
}, z.core.$loose>]>>>;
|
|
109
|
+
referenceSolution: z.ZodOptional<z.ZodString>;
|
|
110
|
+
docCoverage: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
111
|
+
baseline: z.ZodOptional<z.ZodObject<{
|
|
112
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
113
|
+
rubric: z.ZodOptional<z.ZodEnum<{
|
|
114
|
+
full: "full";
|
|
115
|
+
abbreviated: "abbreviated";
|
|
116
|
+
none: "none";
|
|
117
|
+
}>>;
|
|
118
|
+
}, z.core.$strip>>;
|
|
119
|
+
rubric: z.ZodOptional<z.ZodUnknown>;
|
|
120
|
+
providers: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
121
|
+
options: z.ZodOptional<z.ZodUnknown>;
|
|
122
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
123
|
+
}, z.core.$loose>;
|
|
124
|
+
export type CanonicalTask = z.infer<typeof CanonicalTaskSchema>;
|
|
125
|
+
/**
|
|
126
|
+
* Schema for an array of canonical tasks — what a single .ailf/tasks/*.yaml
|
|
127
|
+
* file contains. Each file must define at least one task.
|
|
128
|
+
*/
|
|
129
|
+
export declare const CanonicalTaskFileSchema: z.ZodArray<z.ZodObject<{
|
|
130
|
+
id: z.ZodString;
|
|
131
|
+
mode: z.ZodDefault<z.ZodString>;
|
|
132
|
+
title: z.ZodString;
|
|
133
|
+
description: z.ZodOptional<z.ZodString>;
|
|
134
|
+
area: z.ZodOptional<z.ZodString>;
|
|
135
|
+
difficulty: z.ZodOptional<z.ZodEnum<{
|
|
136
|
+
basic: "basic";
|
|
137
|
+
intermediate: "intermediate";
|
|
138
|
+
advanced: "advanced";
|
|
139
|
+
}>>;
|
|
140
|
+
status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
141
|
+
active: "active";
|
|
142
|
+
draft: "draft";
|
|
143
|
+
paused: "paused";
|
|
144
|
+
archived: "archived";
|
|
145
|
+
}>>>;
|
|
146
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
147
|
+
prompt: z.ZodOptional<z.ZodObject<{
|
|
148
|
+
template: z.ZodOptional<z.ZodString>;
|
|
149
|
+
text: z.ZodOptional<z.ZodString>;
|
|
150
|
+
systemMessage: z.ZodOptional<z.ZodString>;
|
|
151
|
+
vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
152
|
+
}, z.core.$strip>>;
|
|
153
|
+
context: z.ZodOptional<z.ZodObject<{
|
|
154
|
+
docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
155
|
+
id: z.ZodString;
|
|
156
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
157
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
158
|
+
path: z.ZodOptional<z.ZodString>;
|
|
159
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
160
|
+
slug: z.ZodString;
|
|
161
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
162
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
163
|
+
path: z.ZodString;
|
|
164
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
165
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
166
|
+
perspective: z.ZodString;
|
|
167
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
168
|
+
}, z.core.$strip>]>>>;
|
|
169
|
+
fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
170
|
+
}, z.core.$strip>>;
|
|
171
|
+
assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
172
|
+
type: z.ZodLiteral<"llm-rubric">;
|
|
173
|
+
template: z.ZodEnum<{
|
|
174
|
+
"task-completion": "task-completion";
|
|
175
|
+
"code-correctness": "code-correctness";
|
|
176
|
+
"doc-coverage": "doc-coverage";
|
|
177
|
+
}>;
|
|
178
|
+
criteria: z.ZodArray<z.ZodString>;
|
|
179
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
180
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
181
|
+
type: z.ZodEnum<{
|
|
182
|
+
"llm-rubric": "llm-rubric";
|
|
183
|
+
contains: "contains";
|
|
184
|
+
"contains-any": "contains-any";
|
|
185
|
+
"contains-all": "contains-all";
|
|
186
|
+
"not-contains": "not-contains";
|
|
187
|
+
icontains: "icontains";
|
|
188
|
+
"icontains-any": "icontains-any";
|
|
189
|
+
regex: "regex";
|
|
190
|
+
javascript: "javascript";
|
|
191
|
+
similar: "similar";
|
|
192
|
+
cost: "cost";
|
|
193
|
+
latency: "latency";
|
|
194
|
+
}>;
|
|
195
|
+
value: z.ZodOptional<z.ZodUnknown>;
|
|
196
|
+
threshold: z.ZodOptional<z.ZodNumber>;
|
|
197
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
198
|
+
}, z.core.$loose>]>>>;
|
|
199
|
+
referenceSolution: z.ZodOptional<z.ZodString>;
|
|
200
|
+
docCoverage: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
201
|
+
baseline: z.ZodOptional<z.ZodObject<{
|
|
202
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
203
|
+
rubric: z.ZodOptional<z.ZodEnum<{
|
|
204
|
+
full: "full";
|
|
205
|
+
abbreviated: "abbreviated";
|
|
206
|
+
none: "none";
|
|
207
|
+
}>>;
|
|
208
|
+
}, z.core.$strip>>;
|
|
209
|
+
rubric: z.ZodOptional<z.ZodUnknown>;
|
|
210
|
+
providers: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
211
|
+
options: z.ZodOptional<z.ZodUnknown>;
|
|
212
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
213
|
+
}, z.core.$loose>>;
|
|
214
|
+
/**
|
|
215
|
+
* Parse and validate a task file's content against the canonical schema.
|
|
216
|
+
* Returns typed tasks or throws with a user-friendly Zod error message.
|
|
217
|
+
*
|
|
218
|
+
* Accepts pre-parsed YAML data (unknown), not a raw string.
|
|
219
|
+
*/
|
|
220
|
+
export declare function parseCanonicalTaskFile(raw: unknown, filename: string): CanonicalTask[];
|
|
221
|
+
/**
|
|
222
|
+
* Detect legacy field names in raw task data and return helpful messages.
|
|
22
223
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
224
|
+
* Runs BEFORE Zod parsing to catch the most common migration mistake —
|
|
225
|
+
* using old field names from @sanity/ailf-tasks instead of the canonical
|
|
226
|
+
* GeneralizedTaskDefinition shape.
|
|
25
227
|
*/
|
|
26
|
-
export declare function
|
|
228
|
+
export declare function detectLegacyFieldNames(raw: unknown, filename: string): string[];
|
|
27
229
|
/**
|
|
28
230
|
* Zod schema for .ailf/config.yaml — controls documentation source,
|
|
29
231
|
* report destination, and trigger behavior for evaluations from an
|