@sanity/ailf 0.1.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 +89 -0
- package/bin/ailf.js +64 -0
- package/canonical/grader-references/README.md +88 -0
- package/canonical/grader-references/groq.yaml +234 -0
- package/canonical/grader-references/studio-setup.yaml +275 -0
- package/canonical/reference-solutions/.gitkeep +1 -0
- package/canonical/reference-solutions/frameworks/nuxt.ts +119 -0
- package/canonical/reference-solutions/frameworks/remix.tsx +100 -0
- package/canonical/reference-solutions/functions/publish-webhook.ts +60 -0
- package/canonical/reference-solutions/groq/advanced-filtering.ts +379 -0
- package/canonical/reference-solutions/groq/blog-queries.ts +137 -0
- package/canonical/reference-solutions/groq/joins-references.ts +300 -0
- package/canonical/reference-solutions/nextjs/app-router-integration.tsx +128 -0
- package/canonical/reference-solutions/studio-setup/blog-schema.ts +143 -0
- package/canonical/reference-solutions/studio-setup/custom-tool.tsx +78 -0
- package/canonical/reference-solutions/visual-editing/live-preview.tsx +137 -0
- package/canonical/reference-solutions/visual-editing/presentation-nextjs.tsx +130 -0
- package/config/airbyte/ai_literacy_framework.connector.yaml +639 -0
- package/config/bigquery/README.md +74 -0
- package/config/bigquery/views/area_scores.sql +87 -0
- package/config/bigquery/views/reports.sql +49 -0
- package/config/features.yaml +116 -0
- package/config/models.yaml +115 -0
- package/config/prompts.yaml +75 -0
- package/config/rubrics.yaml +62 -0
- package/config/schedules.yaml +43 -0
- package/config/sinks.yaml +54 -0
- package/config/sources.yaml +51 -0
- package/config/thresholds.yaml +49 -0
- package/dist/_vendor/ailf-core/examples/index.d.ts +190 -0
- package/dist/_vendor/ailf-core/examples/index.js +285 -0
- package/dist/_vendor/ailf-core/index.d.ts +17 -0
- package/dist/_vendor/ailf-core/index.js +17 -0
- package/dist/_vendor/ailf-core/ports/cache-store.d.ts +72 -0
- package/dist/_vendor/ailf-core/ports/cache-store.js +17 -0
- package/dist/_vendor/ailf-core/ports/config-source.d.ts +33 -0
- package/dist/_vendor/ailf-core/ports/config-source.js +15 -0
- package/dist/_vendor/ailf-core/ports/context.d.ts +172 -0
- package/dist/_vendor/ailf-core/ports/context.js +14 -0
- package/dist/_vendor/ailf-core/ports/doc-fetcher.d.ts +131 -0
- package/dist/_vendor/ailf-core/ports/doc-fetcher.js +12 -0
- package/dist/_vendor/ailf-core/ports/eval-runner.d.ts +24 -0
- package/dist/_vendor/ailf-core/ports/eval-runner.js +8 -0
- package/dist/_vendor/ailf-core/ports/index.d.ts +15 -0
- package/dist/_vendor/ailf-core/ports/index.js +7 -0
- package/dist/_vendor/ailf-core/ports/logger.d.ts +36 -0
- package/dist/_vendor/ailf-core/ports/logger.js +11 -0
- package/dist/_vendor/ailf-core/ports/pipeline-step.d.ts +46 -0
- package/dist/_vendor/ailf-core/ports/pipeline-step.js +8 -0
- package/dist/_vendor/ailf-core/ports/task-source.d.ts +159 -0
- package/dist/_vendor/ailf-core/ports/task-source.js +72 -0
- package/dist/_vendor/ailf-core/schemas/callback-payload.d.ts +24 -0
- package/dist/_vendor/ailf-core/schemas/callback-payload.js +29 -0
- package/dist/_vendor/ailf-core/schemas/eval-config.d.ts +55 -0
- package/dist/_vendor/ailf-core/schemas/eval-config.js +78 -0
- package/dist/_vendor/ailf-core/schemas/index.d.ts +16 -0
- package/dist/_vendor/ailf-core/schemas/index.js +16 -0
- package/dist/_vendor/ailf-core/schemas/pipeline-request.d.ts +125 -0
- package/dist/_vendor/ailf-core/schemas/pipeline-request.js +67 -0
- package/dist/_vendor/ailf-core/schemas/pipeline.d.ts +531 -0
- package/dist/_vendor/ailf-core/schemas/pipeline.js +318 -0
- package/dist/_vendor/ailf-core/schemas/schedules.d.ts +68 -0
- package/dist/_vendor/ailf-core/schemas/schedules.js +74 -0
- package/dist/_vendor/ailf-core/schemas/sinks.d.ts +207 -0
- package/dist/_vendor/ailf-core/schemas/sinks.js +108 -0
- package/dist/_vendor/ailf-core/services/comparison-formatters.d.ts +18 -0
- package/dist/_vendor/ailf-core/services/comparison-formatters.js +189 -0
- package/dist/_vendor/ailf-core/services/config-helpers.d.ts +41 -0
- package/dist/_vendor/ailf-core/services/config-helpers.js +86 -0
- package/dist/_vendor/ailf-core/services/index.d.ts +12 -0
- package/dist/_vendor/ailf-core/services/index.js +12 -0
- package/dist/_vendor/ailf-core/services/scoring.d.ts +49 -0
- package/dist/_vendor/ailf-core/services/scoring.js +222 -0
- package/dist/_vendor/ailf-core/types/index.d.ts +1082 -0
- package/dist/_vendor/ailf-core/types/index.js +21 -0
- package/dist/_vendor/ailf-core/types/scoring-input.d.ts +54 -0
- package/dist/_vendor/ailf-core/types/scoring-input.js +9 -0
- package/dist/_vendor/ailf-shared/dimension-names.d.ts +21 -0
- package/dist/_vendor/ailf-shared/dimension-names.js +27 -0
- package/dist/_vendor/ailf-shared/document-ref.d.ts +29 -0
- package/dist/_vendor/ailf-shared/document-ref.js +1 -0
- package/dist/_vendor/ailf-shared/eval-modes.d.ts +12 -0
- package/dist/_vendor/ailf-shared/eval-modes.js +8 -0
- package/dist/_vendor/ailf-shared/index.d.ts +16 -0
- package/dist/_vendor/ailf-shared/index.js +16 -0
- package/dist/_vendor/ailf-shared/noise-threshold.d.ts +9 -0
- package/dist/_vendor/ailf-shared/noise-threshold.js +9 -0
- package/dist/_vendor/ailf-shared/score-grades.d.ts +17 -0
- package/dist/_vendor/ailf-shared/score-grades.js +23 -0
- package/dist/adapters/cache/content-lake-cache.d.ts +24 -0
- package/dist/adapters/cache/content-lake-cache.js +59 -0
- package/dist/adapters/cache/filesystem-cache.d.ts +18 -0
- package/dist/adapters/cache/filesystem-cache.js +54 -0
- package/dist/adapters/cache/index.d.ts +2 -0
- package/dist/adapters/cache/index.js +2 -0
- package/dist/adapters/config-sources/cli-config-adapter.d.ts +17 -0
- package/dist/adapters/config-sources/cli-config-adapter.js +23 -0
- package/dist/adapters/config-sources/file-config-adapter.d.ts +26 -0
- package/dist/adapters/config-sources/file-config-adapter.js +96 -0
- package/dist/adapters/config-sources/index.d.ts +2 -0
- package/dist/adapters/config-sources/index.js +2 -0
- package/dist/adapters/doc-fetchers/index.d.ts +1 -0
- package/dist/adapters/doc-fetchers/index.js +1 -0
- package/dist/adapters/doc-fetchers/sanity-doc-fetcher.d.ts +76 -0
- package/dist/adapters/doc-fetchers/sanity-doc-fetcher.js +620 -0
- package/dist/adapters/eval-runners/index.d.ts +1 -0
- package/dist/adapters/eval-runners/index.js +1 -0
- package/dist/adapters/eval-runners/promptfoo-eval-adapter.d.ts +14 -0
- package/dist/adapters/eval-runners/promptfoo-eval-adapter.js +63 -0
- package/dist/adapters/index.d.ts +12 -0
- package/dist/adapters/index.js +12 -0
- package/dist/adapters/loggers/console-logger.d.ts +22 -0
- package/dist/adapters/loggers/console-logger.js +54 -0
- package/dist/adapters/loggers/index.d.ts +9 -0
- package/dist/adapters/loggers/index.js +9 -0
- package/dist/adapters/loggers/json-logger.d.ts +18 -0
- package/dist/adapters/loggers/json-logger.js +33 -0
- package/dist/adapters/loggers/quiet-logger.d.ts +16 -0
- package/dist/adapters/loggers/quiet-logger.js +30 -0
- package/dist/adapters/task-sources/composite-task-source.d.ts +20 -0
- package/dist/adapters/task-sources/composite-task-source.js +59 -0
- package/dist/adapters/task-sources/content-lake-task-source.d.ts +20 -0
- package/dist/adapters/task-sources/content-lake-task-source.js +219 -0
- package/dist/adapters/task-sources/index.d.ts +7 -0
- package/dist/adapters/task-sources/index.js +7 -0
- package/dist/adapters/task-sources/repo-schemas.d.ts +245 -0
- package/dist/adapters/task-sources/repo-schemas.js +234 -0
- package/dist/adapters/task-sources/repo-task-source.d.ts +22 -0
- package/dist/adapters/task-sources/repo-task-source.js +104 -0
- package/dist/adapters/task-sources/repo-trigger.d.ts +52 -0
- package/dist/adapters/task-sources/repo-trigger.js +153 -0
- package/dist/adapters/task-sources/repo-validation.d.ts +49 -0
- package/dist/adapters/task-sources/repo-validation.js +164 -0
- package/dist/adapters/task-sources/yaml-task-source.d.ts +18 -0
- package/dist/adapters/task-sources/yaml-task-source.js +136 -0
- package/dist/agent-observer/agentic-provider.d.ts +132 -0
- package/dist/agent-observer/agentic-provider.js +983 -0
- package/dist/agent-observer/classifier.d.ts +62 -0
- package/dist/agent-observer/classifier.js +269 -0
- package/dist/agent-observer/index.d.ts +7 -0
- package/dist/agent-observer/index.js +4 -0
- package/dist/agent-observer/pricing.d.ts +35 -0
- package/dist/agent-observer/pricing.js +82 -0
- package/dist/agent-observer/provider.d.ts +77 -0
- package/dist/agent-observer/provider.js +151 -0
- package/dist/agent-observer/proxy.d.ts +91 -0
- package/dist/agent-observer/proxy.js +321 -0
- package/dist/agent-observer/test-imports.d.ts +7 -0
- package/dist/agent-observer/test-imports.js +185 -0
- package/dist/agent-observer/types.d.ts +137 -0
- package/dist/agent-observer/types.js +16 -0
- package/dist/assertions/source-isolation.d.ts +72 -0
- package/dist/assertions/source-isolation.js +117 -0
- package/dist/cli.d.ts +24 -0
- package/dist/cli.js +199 -0
- package/dist/commands/agent-report.d.ts +5 -0
- package/dist/commands/agent-report.js +69 -0
- package/dist/commands/baseline.d.ts +9 -0
- package/dist/commands/baseline.js +141 -0
- package/dist/commands/cache.d.ts +13 -0
- package/dist/commands/cache.js +135 -0
- package/dist/commands/calculate-scores.d.ts +8 -0
- package/dist/commands/calculate-scores.js +48 -0
- package/dist/commands/compare.d.ts +8 -0
- package/dist/commands/compare.js +120 -0
- package/dist/commands/completion.d.ts +18 -0
- package/dist/commands/completion.js +260 -0
- package/dist/commands/coverage-audit.d.ts +7 -0
- package/dist/commands/coverage-audit.js +40 -0
- package/dist/commands/discovery-report.d.ts +10 -0
- package/dist/commands/discovery-report.js +44 -0
- package/dist/commands/eval.d.ts +9 -0
- package/dist/commands/eval.js +35 -0
- package/dist/commands/explain-handler.d.ts +34 -0
- package/dist/commands/explain-handler.js +719 -0
- package/dist/commands/fetch-docs.d.ts +8 -0
- package/dist/commands/fetch-docs.js +128 -0
- package/dist/commands/generate-configs.d.ts +8 -0
- package/dist/commands/generate-configs.js +46 -0
- package/dist/commands/grader/index.d.ts +11 -0
- package/dist/commands/grader/index.js +118 -0
- package/dist/commands/init.d.ts +19 -0
- package/dist/commands/init.js +150 -0
- package/dist/commands/interactive.d.ts +12 -0
- package/dist/commands/interactive.js +238 -0
- package/dist/commands/lookup-doc.d.ts +15 -0
- package/dist/commands/lookup-doc.js +84 -0
- package/dist/commands/measure-retrieval.d.ts +5 -0
- package/dist/commands/measure-retrieval.js +65 -0
- package/dist/commands/pipeline-action.d.ts +71 -0
- package/dist/commands/pipeline-action.js +305 -0
- package/dist/commands/pipeline.d.ts +62 -0
- package/dist/commands/pipeline.js +53 -0
- package/dist/commands/pr-comment.d.ts +8 -0
- package/dist/commands/pr-comment.js +47 -0
- package/dist/commands/publish.d.ts +26 -0
- package/dist/commands/publish.js +253 -0
- package/dist/commands/readiness-report.d.ts +10 -0
- package/dist/commands/readiness-report.js +104 -0
- package/dist/commands/shared/options.d.ts +29 -0
- package/dist/commands/shared/options.js +57 -0
- package/dist/commands/update-quality-scores.d.ts +5 -0
- package/dist/commands/update-quality-scores.js +20 -0
- package/dist/commands/validate-tasks.d.ts +16 -0
- package/dist/commands/validate-tasks.js +93 -0
- package/dist/commands/validate.d.ts +9 -0
- package/dist/commands/validate.js +73 -0
- package/dist/commands/webhook-server.d.ts +5 -0
- package/dist/commands/webhook-server.js +30 -0
- package/dist/commands/weekly-digest.d.ts +10 -0
- package/dist/commands/weekly-digest.js +104 -0
- package/dist/composition-root.d.ts +26 -0
- package/dist/composition-root.js +107 -0
- package/dist/interpolate.d.ts +26 -0
- package/dist/interpolate.js +70 -0
- package/dist/job-store.d.ts +104 -0
- package/dist/job-store.js +188 -0
- package/dist/lib/agent-behavior-report.d.ts +8 -0
- package/dist/lib/agent-behavior-report.js +185 -0
- package/dist/lib/baseline.d.ts +19 -0
- package/dist/lib/baseline.js +153 -0
- package/dist/lib/calculate-scores.d.ts +23 -0
- package/dist/lib/calculate-scores.js +42 -0
- package/dist/lib/compare.d.ts +18 -0
- package/dist/lib/compare.js +170 -0
- package/dist/lib/coverage-audit.d.ts +4 -0
- package/dist/lib/coverage-audit.js +42 -0
- package/dist/lib/discovery-report.d.ts +13 -0
- package/dist/lib/discovery-report.js +57 -0
- package/dist/lib/fetch-docs.d.ts +30 -0
- package/dist/lib/fetch-docs.js +171 -0
- package/dist/lib/generate-configs.d.ts +25 -0
- package/dist/lib/generate-configs.js +42 -0
- package/dist/lib/grader-api.d.ts +21 -0
- package/dist/lib/grader-api.js +34 -0
- package/dist/lib/grader-compare.d.ts +19 -0
- package/dist/lib/grader-compare.js +91 -0
- package/dist/lib/grader-consistency.d.ts +27 -0
- package/dist/lib/grader-consistency.js +79 -0
- package/dist/lib/grader-sensitivity.d.ts +19 -0
- package/dist/lib/grader-sensitivity.js +75 -0
- package/dist/lib/grader-validate.d.ts +19 -0
- package/dist/lib/grader-validate.js +78 -0
- package/dist/lib/measure-retrieval.d.ts +14 -0
- package/dist/lib/measure-retrieval.js +71 -0
- package/dist/lib/pr-comment.d.ts +16 -0
- package/dist/lib/pr-comment.js +28 -0
- package/dist/lib/readiness-report.d.ts +13 -0
- package/dist/lib/readiness-report.js +108 -0
- package/dist/lib/webhook-server.d.ts +11 -0
- package/dist/lib/webhook-server.js +24 -0
- package/dist/lib/weekly-digest.d.ts +24 -0
- package/dist/lib/weekly-digest.js +148 -0
- package/dist/orchestration/build-app-context.d.ts +27 -0
- package/dist/orchestration/build-app-context.js +81 -0
- package/dist/orchestration/build-step-sequence.d.ts +15 -0
- package/dist/orchestration/build-step-sequence.js +84 -0
- package/dist/orchestration/config-to-source-overrides.d.ts +9 -0
- package/dist/orchestration/config-to-source-overrides.js +28 -0
- package/dist/orchestration/env-bridge.d.ts +21 -0
- package/dist/orchestration/env-bridge.js +66 -0
- package/dist/orchestration/index.d.ts +11 -0
- package/dist/orchestration/index.js +11 -0
- package/dist/orchestration/pipeline-orchestrator.d.ts +24 -0
- package/dist/orchestration/pipeline-orchestrator.js +153 -0
- package/dist/orchestration/step-runner.d.ts +20 -0
- package/dist/orchestration/step-runner.js +88 -0
- package/dist/orchestration/steps/calculate-scores-step.d.ts +13 -0
- package/dist/orchestration/steps/calculate-scores-step.js +95 -0
- package/dist/orchestration/steps/callback-step.d.ts +24 -0
- package/dist/orchestration/steps/callback-step.js +76 -0
- package/dist/orchestration/steps/compare-step.d.ts +14 -0
- package/dist/orchestration/steps/compare-step.js +92 -0
- package/dist/orchestration/steps/discovery-report-step.d.ts +13 -0
- package/dist/orchestration/steps/discovery-report-step.js +55 -0
- package/dist/orchestration/steps/fetch-docs-shell.d.ts +17 -0
- package/dist/orchestration/steps/fetch-docs-shell.js +30 -0
- package/dist/orchestration/steps/fetch-docs-step.d.ts +14 -0
- package/dist/orchestration/steps/fetch-docs-step.js +135 -0
- package/dist/orchestration/steps/gap-analysis-step.d.ts +16 -0
- package/dist/orchestration/steps/gap-analysis-step.js +136 -0
- package/dist/orchestration/steps/generate-configs-step.d.ts +14 -0
- package/dist/orchestration/steps/generate-configs-step.js +85 -0
- package/dist/orchestration/steps/grader-consistency-step.d.ts +13 -0
- package/dist/orchestration/steps/grader-consistency-step.js +64 -0
- package/dist/orchestration/steps/index.d.ts +19 -0
- package/dist/orchestration/steps/index.js +19 -0
- package/dist/orchestration/steps/mirror-repo-tasks-step.d.ts +21 -0
- package/dist/orchestration/steps/mirror-repo-tasks-step.js +94 -0
- package/dist/orchestration/steps/publish-report-step.d.ts +26 -0
- package/dist/orchestration/steps/publish-report-step.js +216 -0
- package/dist/orchestration/steps/readiness-step.d.ts +13 -0
- package/dist/orchestration/steps/readiness-step.js +91 -0
- package/dist/orchestration/steps/report-step.d.ts +12 -0
- package/dist/orchestration/steps/report-step.js +49 -0
- package/dist/orchestration/steps/run-eval-step.d.ts +17 -0
- package/dist/orchestration/steps/run-eval-step.js +195 -0
- package/dist/orchestration/steps/validate-step.d.ts +12 -0
- package/dist/orchestration/steps/validate-step.js +41 -0
- package/dist/pipeline/agent-behavior-report.d.ts +53 -0
- package/dist/pipeline/agent-behavior-report.js +132 -0
- package/dist/pipeline/attribution.d.ts +47 -0
- package/dist/pipeline/attribution.js +226 -0
- package/dist/pipeline/baseline.d.ts +37 -0
- package/dist/pipeline/baseline.js +141 -0
- package/dist/pipeline/cache.d.ts +101 -0
- package/dist/pipeline/cache.js +283 -0
- package/dist/pipeline/calculate-scores.d.ts +102 -0
- package/dist/pipeline/calculate-scores.js +1128 -0
- package/dist/pipeline/callback-delivery.d.ts +50 -0
- package/dist/pipeline/callback-delivery.js +89 -0
- package/dist/pipeline/checks.d.ts +39 -0
- package/dist/pipeline/checks.js +280 -0
- package/dist/pipeline/classify-url.d.ts +61 -0
- package/dist/pipeline/classify-url.js +93 -0
- package/dist/pipeline/compare.d.ts +31 -0
- package/dist/pipeline/compare.js +208 -0
- package/dist/pipeline/coverage-audit.d.ts +39 -0
- package/dist/pipeline/coverage-audit.js +165 -0
- package/dist/pipeline/degradations.d.ts +85 -0
- package/dist/pipeline/degradations.js +242 -0
- package/dist/pipeline/discovery-report.d.ts +55 -0
- package/dist/pipeline/discovery-report.js +178 -0
- package/dist/pipeline/eval-constants.d.ts +68 -0
- package/dist/pipeline/eval-constants.js +111 -0
- package/dist/pipeline/eval-fingerprint.d.ts +66 -0
- package/dist/pipeline/eval-fingerprint.js +175 -0
- package/dist/pipeline/expand-tasks.d.ts +220 -0
- package/dist/pipeline/expand-tasks.js +421 -0
- package/dist/pipeline/failure-modes.d.ts +46 -0
- package/dist/pipeline/failure-modes.js +348 -0
- package/dist/pipeline/fetch-url-content.d.ts +44 -0
- package/dist/pipeline/fetch-url-content.js +93 -0
- package/dist/pipeline/gap-analysis.d.ts +48 -0
- package/dist/pipeline/gap-analysis.js +231 -0
- package/dist/pipeline/generate-configs.d.ts +72 -0
- package/dist/pipeline/generate-configs.js +395 -0
- package/dist/pipeline/grader-api.d.ts +49 -0
- package/dist/pipeline/grader-api.js +200 -0
- package/dist/pipeline/grader-compare-runner.d.ts +44 -0
- package/dist/pipeline/grader-compare-runner.js +301 -0
- package/dist/pipeline/grader-comparison.d.ts +111 -0
- package/dist/pipeline/grader-comparison.js +161 -0
- package/dist/pipeline/grader-consistency-runner.d.ts +60 -0
- package/dist/pipeline/grader-consistency-runner.js +270 -0
- package/dist/pipeline/grader-consistency.d.ts +103 -0
- package/dist/pipeline/grader-consistency.js +146 -0
- package/dist/pipeline/grader-sensitivity-runner.d.ts +40 -0
- package/dist/pipeline/grader-sensitivity-runner.js +282 -0
- package/dist/pipeline/grader-sensitivity.d.ts +94 -0
- package/dist/pipeline/grader-sensitivity.js +144 -0
- package/dist/pipeline/grader-validate-runner.d.ts +38 -0
- package/dist/pipeline/grader-validate-runner.js +229 -0
- package/dist/pipeline/grader-validation.d.ts +107 -0
- package/dist/pipeline/grader-validation.js +169 -0
- package/dist/pipeline/map-request-to-config.d.ts +19 -0
- package/dist/pipeline/map-request-to-config.js +80 -0
- package/dist/pipeline/measure-retrieval.d.ts +59 -0
- package/dist/pipeline/measure-retrieval.js +111 -0
- package/dist/pipeline/mirror-repo-tasks.d.ts +86 -0
- package/dist/pipeline/mirror-repo-tasks.js +350 -0
- package/dist/pipeline/plan-format.d.ts +33 -0
- package/dist/pipeline/plan-format.js +202 -0
- package/dist/pipeline/plan.d.ts +169 -0
- package/dist/pipeline/plan.js +708 -0
- package/dist/pipeline/pr-comment.d.ts +19 -0
- package/dist/pipeline/pr-comment.js +502 -0
- package/dist/pipeline/probe.d.ts +52 -0
- package/dist/pipeline/probe.js +390 -0
- package/dist/pipeline/provenance.d.ts +47 -0
- package/dist/pipeline/provenance.js +146 -0
- package/dist/pipeline/readiness-report.d.ts +87 -0
- package/dist/pipeline/readiness-report.js +205 -0
- package/dist/pipeline/release-classification.d.ts +54 -0
- package/dist/pipeline/release-classification.js +238 -0
- package/dist/pipeline/release-report.d.ts +37 -0
- package/dist/pipeline/release-report.js +222 -0
- package/dist/pipeline/repo-eval-comment.d.ts +37 -0
- package/dist/pipeline/repo-eval-comment.js +165 -0
- package/dist/pipeline/repo-threshold-evaluator.d.ts +89 -0
- package/dist/pipeline/repo-threshold-evaluator.js +162 -0
- package/dist/pipeline/resolve-mappings.d.ts +35 -0
- package/dist/pipeline/resolve-mappings.js +72 -0
- package/dist/pipeline/retrieval-metrics.d.ts +39 -0
- package/dist/pipeline/retrieval-metrics.js +136 -0
- package/dist/pipeline/reverse-mapping.d.ts +67 -0
- package/dist/pipeline/reverse-mapping.js +88 -0
- package/dist/pipeline/schemas.d.ts +9 -0
- package/dist/pipeline/schemas.js +9 -0
- package/dist/pipeline/steps/calculate-scores-step.d.ts +11 -0
- package/dist/pipeline/steps/calculate-scores-step.js +89 -0
- package/dist/pipeline/steps/compare-step.d.ts +18 -0
- package/dist/pipeline/steps/compare-step.js +90 -0
- package/dist/pipeline/steps/eval-step.d.ts +53 -0
- package/dist/pipeline/steps/eval-step.js +347 -0
- package/dist/pipeline/steps/fetch-docs-step.d.ts +11 -0
- package/dist/pipeline/steps/fetch-docs-step.js +84 -0
- package/dist/pipeline/steps/generate-configs-step.d.ts +11 -0
- package/dist/pipeline/steps/generate-configs-step.js +98 -0
- package/dist/pipeline/steps/grader-consistency-step.d.ts +21 -0
- package/dist/pipeline/steps/grader-consistency-step.js +74 -0
- package/dist/pipeline/steps/publish-report-step.d.ts +57 -0
- package/dist/pipeline/steps/publish-report-step.js +243 -0
- package/dist/pipeline/steps/report-step.d.ts +13 -0
- package/dist/pipeline/steps/report-step.js +56 -0
- package/dist/pipeline/steps/update-scores-step.d.ts +11 -0
- package/dist/pipeline/steps/update-scores-step.js +42 -0
- package/dist/pipeline/targeted-loo.d.ts +88 -0
- package/dist/pipeline/targeted-loo.js +203 -0
- package/dist/pipeline/thresholds.d.ts +27 -0
- package/dist/pipeline/thresholds.js +245 -0
- package/dist/pipeline/types.d.ts +10 -0
- package/dist/pipeline/types.js +10 -0
- package/dist/pipeline/validate.d.ts +67 -0
- package/dist/pipeline/validate.js +406 -0
- package/dist/pipeline/webhook-server.d.ts +37 -0
- package/dist/pipeline/webhook-server.js +133 -0
- package/dist/report-store.d.ts +84 -0
- package/dist/report-store.js +208 -0
- package/dist/sanity/client.d.ts +38 -0
- package/dist/sanity/client.js +86 -0
- package/dist/sanity/portable-text.d.ts +11 -0
- package/dist/sanity/portable-text.js +211 -0
- package/dist/sanity/queries.d.ts +133 -0
- package/dist/sanity/queries.js +300 -0
- package/dist/schedules/digest.d.ts +116 -0
- package/dist/schedules/digest.js +156 -0
- package/dist/schedules/index.d.ts +12 -0
- package/dist/schedules/index.js +10 -0
- package/dist/schedules/loader.d.ts +31 -0
- package/dist/schedules/loader.js +73 -0
- package/dist/schedules/schema.d.ts +9 -0
- package/dist/schedules/schema.js +9 -0
- package/dist/scripts/agent-behavior-report.d.ts +19 -0
- package/dist/scripts/agent-behavior-report.js +315 -0
- package/dist/scripts/baseline.d.ts +43 -0
- package/dist/scripts/baseline.js +267 -0
- package/dist/scripts/calculate-scores.d.ts +166 -0
- package/dist/scripts/calculate-scores.js +1296 -0
- package/dist/scripts/compare.d.ts +22 -0
- package/dist/scripts/compare.js +334 -0
- package/dist/scripts/coverage-audit.d.ts +44 -0
- package/dist/scripts/coverage-audit.js +209 -0
- package/dist/scripts/debug-eval.d.ts +19 -0
- package/dist/scripts/debug-eval.js +73 -0
- package/dist/scripts/discovery-report.d.ts +58 -0
- package/dist/scripts/discovery-report.js +250 -0
- package/dist/scripts/fetch-docs.d.ts +35 -0
- package/dist/scripts/fetch-docs.js +472 -0
- package/dist/scripts/generate-configs.d.ts +66 -0
- package/dist/scripts/generate-configs.js +459 -0
- package/dist/scripts/grader-api.d.ts +27 -0
- package/dist/scripts/grader-api.js +206 -0
- package/dist/scripts/grader-compare.d.ts +22 -0
- package/dist/scripts/grader-compare.js +368 -0
- package/dist/scripts/grader-consistency.d.ts +20 -0
- package/dist/scripts/grader-consistency.js +313 -0
- package/dist/scripts/grader-sensitivity.d.ts +22 -0
- package/dist/scripts/grader-sensitivity.js +354 -0
- package/dist/scripts/grader-validate.d.ts +19 -0
- package/dist/scripts/grader-validate.js +267 -0
- package/dist/scripts/measure-retrieval.d.ts +10 -0
- package/dist/scripts/measure-retrieval.js +145 -0
- package/dist/scripts/migrate-tasks-to-content-lake.d.ts +24 -0
- package/dist/scripts/migrate-tasks-to-content-lake.js +327 -0
- package/dist/scripts/pipeline.d.ts +76 -0
- package/dist/scripts/pipeline.js +1031 -0
- package/dist/scripts/pr-comment.d.ts +10 -0
- package/dist/scripts/pr-comment.js +510 -0
- package/dist/scripts/readiness-report.d.ts +88 -0
- package/dist/scripts/readiness-report.js +342 -0
- package/dist/scripts/update-quality-scores.d.ts +15 -0
- package/dist/scripts/update-quality-scores.js +184 -0
- package/dist/scripts/validate-task-sources.d.ts +21 -0
- package/dist/scripts/validate-task-sources.js +210 -0
- package/dist/scripts/validate.d.ts +13 -0
- package/dist/scripts/validate.js +79 -0
- package/dist/scripts/webhook-server.d.ts +26 -0
- package/dist/scripts/webhook-server.js +147 -0
- package/dist/scripts/weekly-digest.d.ts +24 -0
- package/dist/scripts/weekly-digest.js +144 -0
- package/dist/sinks/bigquery/index.d.ts +131 -0
- package/dist/sinks/bigquery/index.js +222 -0
- package/dist/sinks/format-slack.d.ts +64 -0
- package/dist/sinks/format-slack.js +306 -0
- package/dist/sinks/index.d.ts +23 -0
- package/dist/sinks/index.js +18 -0
- package/dist/sinks/loader.d.ts +18 -0
- package/dist/sinks/loader.js +82 -0
- package/dist/sinks/retry.d.ts +24 -0
- package/dist/sinks/retry.js +52 -0
- package/dist/sinks/schema.d.ts +9 -0
- package/dist/sinks/schema.js +9 -0
- package/dist/sinks/slack/format.d.ts +65 -0
- package/dist/sinks/slack/format.js +327 -0
- package/dist/sinks/slack/index.d.ts +27 -0
- package/dist/sinks/slack/index.js +78 -0
- package/dist/sinks/slack-sink.d.ts +27 -0
- package/dist/sinks/slack-sink.js +78 -0
- package/dist/sinks/types.d.ts +59 -0
- package/dist/sinks/types.js +44 -0
- package/dist/sinks/webhook/index.d.ts +19 -0
- package/dist/sinks/webhook/index.js +50 -0
- package/dist/sinks/webhook-sink.d.ts +19 -0
- package/dist/sinks/webhook-sink.js +50 -0
- package/dist/sources.d.ts +104 -0
- package/dist/sources.js +292 -0
- package/dist/webhook/budget.d.ts +42 -0
- package/dist/webhook/budget.js +60 -0
- package/dist/webhook/debounce.d.ts +67 -0
- package/dist/webhook/debounce.js +76 -0
- package/dist/webhook/dispatch.d.ts +45 -0
- package/dist/webhook/dispatch.js +84 -0
- package/dist/webhook/eval-request-handler.d.ts +87 -0
- package/dist/webhook/eval-request-handler.js +181 -0
- package/dist/webhook/handler.d.ts +88 -0
- package/dist/webhook/handler.js +203 -0
- package/dist/webhook/index.d.ts +17 -0
- package/dist/webhook/index.js +12 -0
- package/dist/webhook/types.d.ts +109 -0
- package/dist/webhook/types.js +10 -0
- package/package.json +72 -0
- package/tasks/.expanded.agentic.yaml +51 -0
- package/tasks/.expanded.yaml +66 -0
- package/tasks/frameworks.yaml +98 -0
- package/tasks/functions.yaml +51 -0
- package/tasks/groq.yaml +216 -0
- package/tasks/nextjs-live.yaml +62 -0
- package/tasks/studio-setup.yaml +111 -0
- package/tasks/visual-editing.yaml +120 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Port: Where task definitions come from.
|
|
3
|
+
*
|
|
4
|
+
* Adapters:
|
|
5
|
+
* - YamlTaskSource (current) — reads tasks/*.yaml files
|
|
6
|
+
* - ContentLakeTaskSource (tasks-as-content Phase 2) — GROQ query
|
|
7
|
+
* - RepoTaskSource (tasks-as-content Phase 4) — reads .ailf/tasks/
|
|
8
|
+
*
|
|
9
|
+
* The key invariant: the pipeline orchestrator and all downstream steps
|
|
10
|
+
* work with TaskDefinition[] regardless of where they came from.
|
|
11
|
+
*/
|
|
12
|
+
import type { FilterOptions } from "../types/index.js";
|
|
13
|
+
/** A templated assertion referencing a rubric template from config/rubrics.yaml */
|
|
14
|
+
export interface TemplatedAssertion {
|
|
15
|
+
type: "llm-rubric";
|
|
16
|
+
template: string;
|
|
17
|
+
criteria: string[];
|
|
18
|
+
weight?: number;
|
|
19
|
+
}
|
|
20
|
+
/** A value-based assertion (contains, javascript, etc.) */
|
|
21
|
+
export interface ValueAssertion {
|
|
22
|
+
type: string;
|
|
23
|
+
value?: unknown;
|
|
24
|
+
weight?: number;
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
/** Any assertion definition — either templated or value-based */
|
|
28
|
+
export type AssertionDefinition = TemplatedAssertion | ValueAssertion;
|
|
29
|
+
/** Baseline variant configuration */
|
|
30
|
+
export interface BaselineConfig {
|
|
31
|
+
/** Whether to generate a baseline variant. Default: true */
|
|
32
|
+
enabled?: boolean;
|
|
33
|
+
/** Rubric mode for baseline. Default: "abbreviated" */
|
|
34
|
+
rubric?: "abbreviated" | "full" | "none";
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A canonical documentation reference. Each entry resolves docs through
|
|
38
|
+
* one of four strategies, discriminated by key presence (no explicit
|
|
39
|
+
* `type` field). All strategies carry an optional `reason` for context.
|
|
40
|
+
*
|
|
41
|
+
* Strategies:
|
|
42
|
+
* - `slug` — one article by slug field (legacy, may not be unique)
|
|
43
|
+
* - `path` — one article by URL path (unique across sections)
|
|
44
|
+
* - `id` — one document by Sanity `_id` (drafts, imports)
|
|
45
|
+
* - `perspective` — all articles in a content release (one-to-many)
|
|
46
|
+
*
|
|
47
|
+
* @see docs/design-docs/canonical-doc-resolution.md
|
|
48
|
+
*/
|
|
49
|
+
export type CanonicalDocRef = SlugDocRef | PathDocRef | IdDocRef | PerspectiveDocRef;
|
|
50
|
+
/** Resolve by article slug field. Legacy — prefer `path` for uniqueness. */
|
|
51
|
+
export interface SlugDocRef {
|
|
52
|
+
slug: string;
|
|
53
|
+
reason?: string;
|
|
54
|
+
}
|
|
55
|
+
/** Resolve by URL path (after /docs/). Unique across sections. */
|
|
56
|
+
export interface PathDocRef {
|
|
57
|
+
path: string;
|
|
58
|
+
reason?: string;
|
|
59
|
+
}
|
|
60
|
+
/** Resolve by Sanity document `_id`. The primary resolution strategy.
|
|
61
|
+
*
|
|
62
|
+
* Optional `slug` and `path` provide human-readable context — they are
|
|
63
|
+
* NOT used for resolution (the `_id` is authoritative) but help YAML
|
|
64
|
+
* authors understand which document is being referenced. The Content Lake
|
|
65
|
+
* adapter populates them from the dereferenced article.
|
|
66
|
+
*/
|
|
67
|
+
export interface IdDocRef {
|
|
68
|
+
id: string;
|
|
69
|
+
reason?: string;
|
|
70
|
+
/** Human-readable slug (informational only — not used for resolution) */
|
|
71
|
+
slug?: string;
|
|
72
|
+
/** Human-readable path (informational only — not used for resolution) */
|
|
73
|
+
path?: string;
|
|
74
|
+
}
|
|
75
|
+
/** Resolve all articles in a content release. One-to-many. */
|
|
76
|
+
export interface PerspectiveDocRef {
|
|
77
|
+
perspective: string;
|
|
78
|
+
reason?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* A loaded, validated task definition ready for expansion.
|
|
82
|
+
*
|
|
83
|
+
* This is the canonical intermediate representation — adapters produce
|
|
84
|
+
* this from YAML, Content Lake, or .ailf/ files. Downstream consumers
|
|
85
|
+
* (expansion, doc fetching, validation) work exclusively with this type.
|
|
86
|
+
*
|
|
87
|
+
* Design notes:
|
|
88
|
+
* - `taskPrompt` is extracted from `vars.task` in YAML format
|
|
89
|
+
* - `docsPath` is NOT included — it's an infrastructure detail derived
|
|
90
|
+
* from convention (`file://contexts/canonical/${id}.md`)
|
|
91
|
+
* - `featureArea` is derived by the adapter (filename stem, document
|
|
92
|
+
* field, directory structure — depends on the source)
|
|
93
|
+
*/
|
|
94
|
+
export interface TaskDefinition {
|
|
95
|
+
/** Unique task identifier */
|
|
96
|
+
id: string;
|
|
97
|
+
/** Human-readable description */
|
|
98
|
+
description: string;
|
|
99
|
+
/** Feature area this task belongs to */
|
|
100
|
+
featureArea: string;
|
|
101
|
+
/** The implementation task prompt (the user-facing request) */
|
|
102
|
+
taskPrompt: string;
|
|
103
|
+
/** Canonical doc references with reasons */
|
|
104
|
+
canonicalDocs: CanonicalDocRef[];
|
|
105
|
+
/** Path to the reference solution (relative to eval package root) */
|
|
106
|
+
referenceSolution: string;
|
|
107
|
+
/** Whether doc coverage rubric should be auto-generated */
|
|
108
|
+
docCoverage: boolean;
|
|
109
|
+
/** Assertion definitions (rubric templates + value assertions) */
|
|
110
|
+
assertions: AssertionDefinition[];
|
|
111
|
+
/** Baseline variant configuration */
|
|
112
|
+
baseline?: BaselineConfig;
|
|
113
|
+
/** Additional template variables beyond task (e.g., custom vars) */
|
|
114
|
+
extraVars?: Record<string, unknown>;
|
|
115
|
+
}
|
|
116
|
+
/** Check if a canonical doc ref resolves by slug.
|
|
117
|
+
*
|
|
118
|
+
* Excludes IdDocRef (which may carry an optional `slug` for display).
|
|
119
|
+
* When both `id` and `slug` are present, it's an IdDocRef, not a SlugDocRef.
|
|
120
|
+
*/
|
|
121
|
+
export declare function isSlugRef(ref: CanonicalDocRef): ref is SlugDocRef;
|
|
122
|
+
/** Check if a canonical doc ref resolves by path.
|
|
123
|
+
*
|
|
124
|
+
* Excludes IdDocRef (which may carry an optional `path` for display).
|
|
125
|
+
* When both `id` and `path` are present, it's an IdDocRef, not a PathDocRef.
|
|
126
|
+
*/
|
|
127
|
+
export declare function isPathRef(ref: CanonicalDocRef): ref is PathDocRef;
|
|
128
|
+
/** Check if a canonical doc ref resolves by document ID.
|
|
129
|
+
*
|
|
130
|
+
* Uses `"id" in ref` as the primary discriminator. IdDocRef may also carry
|
|
131
|
+
* optional `slug` and `path` for display purposes, so we cannot exclude
|
|
132
|
+
* on those keys. When both `id` and `slug` are present, `id` wins.
|
|
133
|
+
*/
|
|
134
|
+
export declare function isIdRef(ref: CanonicalDocRef): ref is IdDocRef;
|
|
135
|
+
/** Check if a canonical doc ref resolves by content release perspective */
|
|
136
|
+
export declare function isPerspectiveRef(ref: CanonicalDocRef): ref is PerspectiveDocRef;
|
|
137
|
+
/**
|
|
138
|
+
* Extract a display identifier from any canonical doc ref.
|
|
139
|
+
* Useful for logging, error messages, and retrieval metrics.
|
|
140
|
+
*/
|
|
141
|
+
export declare function canonicalDocRefLabel(ref: CanonicalDocRef): string;
|
|
142
|
+
/** Check if an assertion uses the templated format (template + criteria) */
|
|
143
|
+
export declare function isTemplatedAssertion(entry: AssertionDefinition): entry is TemplatedAssertion;
|
|
144
|
+
/**
|
|
145
|
+
* Port: Where task definitions come from.
|
|
146
|
+
*
|
|
147
|
+
* The pipeline never knows HOW tasks are loaded — it only sees
|
|
148
|
+
* TaskDefinition[]. The adapter handles YAML parsing, GROQ queries,
|
|
149
|
+
* filesystem scanning, etc.
|
|
150
|
+
*/
|
|
151
|
+
export interface TaskSource {
|
|
152
|
+
/**
|
|
153
|
+
* Load task definitions, optionally filtered by area/task.
|
|
154
|
+
*
|
|
155
|
+
* @param filter — Area, task ID, or changed-doc filters
|
|
156
|
+
* @returns Validated task definitions ready for expansion
|
|
157
|
+
*/
|
|
158
|
+
loadTasks(filter?: FilterOptions): Promise<TaskDefinition[]>;
|
|
159
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Port: Where task definitions come from.
|
|
3
|
+
*
|
|
4
|
+
* Adapters:
|
|
5
|
+
* - YamlTaskSource (current) — reads tasks/*.yaml files
|
|
6
|
+
* - ContentLakeTaskSource (tasks-as-content Phase 2) — GROQ query
|
|
7
|
+
* - RepoTaskSource (tasks-as-content Phase 4) — reads .ailf/tasks/
|
|
8
|
+
*
|
|
9
|
+
* The key invariant: the pipeline orchestrator and all downstream steps
|
|
10
|
+
* work with TaskDefinition[] regardless of where they came from.
|
|
11
|
+
*/
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Type guards — canonical doc refs
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/** Check if a canonical doc ref resolves by slug.
|
|
16
|
+
*
|
|
17
|
+
* Excludes IdDocRef (which may carry an optional `slug` for display).
|
|
18
|
+
* When both `id` and `slug` are present, it's an IdDocRef, not a SlugDocRef.
|
|
19
|
+
*/
|
|
20
|
+
export function isSlugRef(ref) {
|
|
21
|
+
return "slug" in ref && !("id" in ref);
|
|
22
|
+
}
|
|
23
|
+
/** Check if a canonical doc ref resolves by path.
|
|
24
|
+
*
|
|
25
|
+
* Excludes IdDocRef (which may carry an optional `path` for display).
|
|
26
|
+
* When both `id` and `path` are present, it's an IdDocRef, not a PathDocRef.
|
|
27
|
+
*/
|
|
28
|
+
export function isPathRef(ref) {
|
|
29
|
+
return "path" in ref && !("id" in ref);
|
|
30
|
+
}
|
|
31
|
+
/** Check if a canonical doc ref resolves by document ID.
|
|
32
|
+
*
|
|
33
|
+
* Uses `"id" in ref` as the primary discriminator. IdDocRef may also carry
|
|
34
|
+
* optional `slug` and `path` for display purposes, so we cannot exclude
|
|
35
|
+
* on those keys. When both `id` and `slug` are present, `id` wins.
|
|
36
|
+
*/
|
|
37
|
+
export function isIdRef(ref) {
|
|
38
|
+
return "id" in ref;
|
|
39
|
+
}
|
|
40
|
+
/** Check if a canonical doc ref resolves by content release perspective */
|
|
41
|
+
export function isPerspectiveRef(ref) {
|
|
42
|
+
return "perspective" in ref;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extract a display identifier from any canonical doc ref.
|
|
46
|
+
* Useful for logging, error messages, and retrieval metrics.
|
|
47
|
+
*/
|
|
48
|
+
export function canonicalDocRefLabel(ref) {
|
|
49
|
+
if ("id" in ref) {
|
|
50
|
+
// Show slug/path annotation if available for readability
|
|
51
|
+
const hint = "slug" in ref ? ` (${ref.slug})` : "path" in ref ? ` (${ref.path})` : "";
|
|
52
|
+
return `id:${ref.id}${hint}`;
|
|
53
|
+
}
|
|
54
|
+
if ("slug" in ref)
|
|
55
|
+
return `slug:${ref.slug}`;
|
|
56
|
+
if ("path" in ref)
|
|
57
|
+
return `path:${ref.path}`;
|
|
58
|
+
if ("perspective" in ref)
|
|
59
|
+
return `perspective:${ref.perspective}`;
|
|
60
|
+
return "unknown";
|
|
61
|
+
}
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Type guards — assertions
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
/** Check if an assertion uses the templated format (template + criteria) */
|
|
66
|
+
export function isTemplatedAssertion(entry) {
|
|
67
|
+
return (entry.type === "llm-rubric" &&
|
|
68
|
+
"template" in entry &&
|
|
69
|
+
typeof entry.template === "string" &&
|
|
70
|
+
"criteria" in entry &&
|
|
71
|
+
Array.isArray(entry.criteria));
|
|
72
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sanity/ailf-core — Callback Payload schema
|
|
3
|
+
*
|
|
4
|
+
* Defines the formal contract for the payload POSTed to callback URLs
|
|
5
|
+
* after an API-triggered pipeline evaluation completes. This schema is
|
|
6
|
+
* the single source of truth — the CallbackStep produces it, and
|
|
7
|
+
* external consumers (SDK, webhooks) validate against it.
|
|
8
|
+
*
|
|
9
|
+
* The payload is HMAC-SHA256 signed via the X-AILF-Signature header.
|
|
10
|
+
* See packages/eval/src/pipeline/callback-delivery.ts for signature
|
|
11
|
+
* computation.
|
|
12
|
+
*
|
|
13
|
+
* @see packages/eval/src/orchestration/steps/callback-step.ts
|
|
14
|
+
* @see docs/design-docs/api-service-gateway.md
|
|
15
|
+
*/
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
export declare const CallbackPayloadSchema: z.ZodObject<{
|
|
18
|
+
deliveredAt: z.ZodString;
|
|
19
|
+
jobId: z.ZodOptional<z.ZodString>;
|
|
20
|
+
reportId: z.ZodOptional<z.ZodString>;
|
|
21
|
+
summary: z.ZodUnknown;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
/** Inferred TypeScript type for a callback payload. */
|
|
24
|
+
export type CallbackPayload = z.infer<typeof CallbackPayloadSchema>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sanity/ailf-core — Callback Payload schema
|
|
3
|
+
*
|
|
4
|
+
* Defines the formal contract for the payload POSTed to callback URLs
|
|
5
|
+
* after an API-triggered pipeline evaluation completes. This schema is
|
|
6
|
+
* the single source of truth — the CallbackStep produces it, and
|
|
7
|
+
* external consumers (SDK, webhooks) validate against it.
|
|
8
|
+
*
|
|
9
|
+
* The payload is HMAC-SHA256 signed via the X-AILF-Signature header.
|
|
10
|
+
* See packages/eval/src/pipeline/callback-delivery.ts for signature
|
|
11
|
+
* computation.
|
|
12
|
+
*
|
|
13
|
+
* @see packages/eval/src/orchestration/steps/callback-step.ts
|
|
14
|
+
* @see docs/design-docs/api-service-gateway.md
|
|
15
|
+
*/
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Callback Payload — the delivery contract
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
export const CallbackPayloadSchema = z.object({
|
|
21
|
+
/** ISO timestamp of when the callback was delivered */
|
|
22
|
+
deliveredAt: z.string().datetime(),
|
|
23
|
+
/** Job ID for tracking (present for API-triggered evaluations) */
|
|
24
|
+
jobId: z.string().optional(),
|
|
25
|
+
/** Report ID in the Content Lake (present when publish is enabled) */
|
|
26
|
+
reportId: z.string().optional(),
|
|
27
|
+
/** The full score summary from the evaluation */
|
|
28
|
+
summary: z.unknown(),
|
|
29
|
+
});
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EvalConfigSchema — Zod schema for JSON/YAML evaluation config files.
|
|
3
|
+
*
|
|
4
|
+
* This defines the shape of config files loaded via `--config <path>`.
|
|
5
|
+
* It's a user-facing subset of ResolvedConfig — fields that make sense
|
|
6
|
+
* to persist in a file. Runtime-computed fields (rootDir, promptfooUrl)
|
|
7
|
+
* are not included.
|
|
8
|
+
*
|
|
9
|
+
* The same schema will be used by the future ContentLakeConfigAdapter
|
|
10
|
+
* (studio-eval-config) so Content Lake documents validate identically.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
export declare const EvalConfigSchema: z.ZodObject<{
|
|
14
|
+
allowedOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
15
|
+
areas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
16
|
+
changedDocs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
17
|
+
compare: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
+
compareBaseline: z.ZodOptional<z.ZodString>;
|
|
19
|
+
compareThreshold: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
concurrency: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
debug: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
22
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
23
|
+
firstN: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
25
|
+
sample: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
}, z.core.$strip>]>>;
|
|
27
|
+
discoveryReport: z.ZodOptional<z.ZodBoolean>;
|
|
28
|
+
gapAnalysis: z.ZodOptional<z.ZodBoolean>;
|
|
29
|
+
graderReplications: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
31
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
32
|
+
agentic: "agentic";
|
|
33
|
+
baseline: "baseline";
|
|
34
|
+
full: "full";
|
|
35
|
+
observed: "observed";
|
|
36
|
+
}>>;
|
|
37
|
+
noCache: z.ZodOptional<z.ZodBoolean>;
|
|
38
|
+
noRemoteCache: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
publish: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
publishTag: z.ZodOptional<z.ZodString>;
|
|
41
|
+
readiness: z.ZodOptional<z.ZodBoolean>;
|
|
42
|
+
reportDataset: z.ZodOptional<z.ZodString>;
|
|
43
|
+
reportProjectId: z.ZodOptional<z.ZodString>;
|
|
44
|
+
searchMode: z.ZodOptional<z.ZodEnum<{
|
|
45
|
+
off: "off";
|
|
46
|
+
open: "open";
|
|
47
|
+
"origin-only": "origin-only";
|
|
48
|
+
}>>;
|
|
49
|
+
skipEval: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
+
skipFetch: z.ZodOptional<z.ZodBoolean>;
|
|
51
|
+
source: z.ZodOptional<z.ZodString>;
|
|
52
|
+
tasks: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
53
|
+
urls: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
54
|
+
}, z.core.$strict>;
|
|
55
|
+
export type EvalConfig = z.infer<typeof EvalConfigSchema>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EvalConfigSchema — Zod schema for JSON/YAML evaluation config files.
|
|
3
|
+
*
|
|
4
|
+
* This defines the shape of config files loaded via `--config <path>`.
|
|
5
|
+
* It's a user-facing subset of ResolvedConfig — fields that make sense
|
|
6
|
+
* to persist in a file. Runtime-computed fields (rootDir, promptfooUrl)
|
|
7
|
+
* are not included.
|
|
8
|
+
*
|
|
9
|
+
* The same schema will be used by the future ContentLakeConfigAdapter
|
|
10
|
+
* (studio-eval-config) so Content Lake documents validate identically.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
export const EvalConfigSchema = z
|
|
14
|
+
.object({
|
|
15
|
+
/** Allowed origins for agentic mode */
|
|
16
|
+
allowedOrigins: z.array(z.string()).optional(),
|
|
17
|
+
/** Feature area filter (comma-separated or array) */
|
|
18
|
+
areas: z.array(z.string()).optional(),
|
|
19
|
+
/** Changed doc slugs for impact scoping */
|
|
20
|
+
changedDocs: z.array(z.string()).optional(),
|
|
21
|
+
/** Enable comparison against baseline */
|
|
22
|
+
compare: z.boolean().optional(),
|
|
23
|
+
/** Specific baseline file to compare against */
|
|
24
|
+
compareBaseline: z.string().optional(),
|
|
25
|
+
/** Comparison noise threshold */
|
|
26
|
+
compareThreshold: z.number().min(0).optional(),
|
|
27
|
+
/** Max parallel API calls */
|
|
28
|
+
concurrency: z.number().int().positive().optional(),
|
|
29
|
+
/** Debug mode */
|
|
30
|
+
debug: z
|
|
31
|
+
.union([
|
|
32
|
+
z.boolean(),
|
|
33
|
+
z.object({
|
|
34
|
+
enabled: z.boolean().optional(),
|
|
35
|
+
firstN: z.number().int().positive().optional(),
|
|
36
|
+
pattern: z.string().optional(),
|
|
37
|
+
sample: z.number().int().positive().optional(),
|
|
38
|
+
}),
|
|
39
|
+
])
|
|
40
|
+
.optional(),
|
|
41
|
+
/** Enable discovery report */
|
|
42
|
+
discoveryReport: z.boolean().optional(),
|
|
43
|
+
/** Enable gap analysis */
|
|
44
|
+
gapAnalysis: z.boolean().optional(),
|
|
45
|
+
/** Grader consistency replications */
|
|
46
|
+
graderReplications: z.number().int().positive().optional(),
|
|
47
|
+
/** Custom headers for doc fetching */
|
|
48
|
+
headers: z.record(z.string(), z.string()).optional(),
|
|
49
|
+
/** Evaluation mode */
|
|
50
|
+
mode: z.enum(["baseline", "agentic", "observed", "full"]).optional(),
|
|
51
|
+
/** Disable local cache */
|
|
52
|
+
noCache: z.boolean().optional(),
|
|
53
|
+
/** Disable remote cache */
|
|
54
|
+
noRemoteCache: z.boolean().optional(),
|
|
55
|
+
/** Enable publishing */
|
|
56
|
+
publish: z.boolean().optional(),
|
|
57
|
+
/** Publish tag */
|
|
58
|
+
publishTag: z.string().optional(),
|
|
59
|
+
/** Enable readiness report */
|
|
60
|
+
readiness: z.boolean().optional(),
|
|
61
|
+
/** Report store dataset override */
|
|
62
|
+
reportDataset: z.string().optional(),
|
|
63
|
+
/** Report store project ID override */
|
|
64
|
+
reportProjectId: z.string().optional(),
|
|
65
|
+
/** Search mode for agentic mode */
|
|
66
|
+
searchMode: z.enum(["off", "open", "origin-only"]).optional(),
|
|
67
|
+
/** Skip eval step */
|
|
68
|
+
skipEval: z.boolean().optional(),
|
|
69
|
+
/** Skip fetch-docs step */
|
|
70
|
+
skipFetch: z.boolean().optional(),
|
|
71
|
+
/** Documentation source name */
|
|
72
|
+
source: z.string().optional(),
|
|
73
|
+
/** Task ID filter */
|
|
74
|
+
tasks: z.array(z.string()).optional(),
|
|
75
|
+
/** Doc source URL overrides */
|
|
76
|
+
urls: z.array(z.string().url()).optional(),
|
|
77
|
+
})
|
|
78
|
+
.strict();
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sanity/ailf-core — Zod validation schemas
|
|
3
|
+
*
|
|
4
|
+
* Runtime validation schemas for task definitions, rubrics, features,
|
|
5
|
+
* thresholds, sinks, and schedules. These are the parse layer that
|
|
6
|
+
* enforces domain invariants at system boundaries.
|
|
7
|
+
*
|
|
8
|
+
* Extracted from packages/eval during the Ports & Adapters migration
|
|
9
|
+
* (Phase 0d). Original files are now re-export barrels.
|
|
10
|
+
*/
|
|
11
|
+
export * from "./callback-payload.js";
|
|
12
|
+
export * from "./eval-config.js";
|
|
13
|
+
export * from "./pipeline-request.js";
|
|
14
|
+
export * from "./pipeline.js";
|
|
15
|
+
export * from "./schedules.js";
|
|
16
|
+
export * from "./sinks.js";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sanity/ailf-core — Zod validation schemas
|
|
3
|
+
*
|
|
4
|
+
* Runtime validation schemas for task definitions, rubrics, features,
|
|
5
|
+
* thresholds, sinks, and schedules. These are the parse layer that
|
|
6
|
+
* enforces domain invariants at system boundaries.
|
|
7
|
+
*
|
|
8
|
+
* Extracted from packages/eval during the Ports & Adapters migration
|
|
9
|
+
* (Phase 0d). Original files are now re-export barrels.
|
|
10
|
+
*/
|
|
11
|
+
export * from "./callback-payload.js";
|
|
12
|
+
export * from "./eval-config.js";
|
|
13
|
+
export * from "./pipeline-request.js";
|
|
14
|
+
export * from "./pipeline.js";
|
|
15
|
+
export * from "./schedules.js";
|
|
16
|
+
export * from "./sinks.js";
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sanity/ailf-core — Pipeline Request schema
|
|
3
|
+
*
|
|
4
|
+
* The universal pipeline invocation contract. A single Zod schema shared
|
|
5
|
+
* between the API gateway (POST /v1/pipeline), the CLI (--config flag),
|
|
6
|
+
* and GitHub Actions workflows (repository_dispatch payload).
|
|
7
|
+
*
|
|
8
|
+
* This eliminates the ~100-line bash flag-building in the workflow YAML
|
|
9
|
+
* by flowing the entire payload through the system untouched. Each layer
|
|
10
|
+
* validates it against this schema but doesn't restructure it.
|
|
11
|
+
*
|
|
12
|
+
* @see docs/design-docs/api-service-gateway.md — Section 7.2
|
|
13
|
+
* @see packages/eval/src/pipeline/map-request-to-config.ts — maps to ResolvedConfig
|
|
14
|
+
*/
|
|
15
|
+
import { z } from "zod";
|
|
16
|
+
export declare const PipelineRequestSchema: z.ZodObject<{
|
|
17
|
+
allowedOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
18
|
+
backend: z.ZodOptional<z.ZodEnum<{
|
|
19
|
+
"github-actions": "github-actions";
|
|
20
|
+
"cloud-run": "cloud-run";
|
|
21
|
+
}>>;
|
|
22
|
+
areas: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
+
callback: z.ZodOptional<z.ZodObject<{
|
|
24
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
25
|
+
url: z.ZodString;
|
|
26
|
+
}, z.core.$strip>>;
|
|
27
|
+
changedDocs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
28
|
+
compare: z.ZodOptional<z.ZodBoolean>;
|
|
29
|
+
compareBaseline: z.ZodOptional<z.ZodString>;
|
|
30
|
+
compareThreshold: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
concurrency: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
dataset: z.ZodOptional<z.ZodString>;
|
|
33
|
+
debug: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
34
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
firstN: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
37
|
+
sample: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
}, z.core.$strip>]>>;
|
|
39
|
+
discoveryReport: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
gapAnalysis: z.ZodOptional<z.ZodBoolean>;
|
|
41
|
+
graderReplications: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
43
|
+
inlineTasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
44
|
+
assert: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
45
|
+
criteria: z.ZodArray<z.ZodString>;
|
|
46
|
+
template: z.ZodString;
|
|
47
|
+
type: z.ZodLiteral<"llm-rubric">;
|
|
48
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
50
|
+
type: z.ZodLiteral<"contains">;
|
|
51
|
+
value: z.ZodString;
|
|
52
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
53
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
54
|
+
type: z.ZodLiteral<"contains-any">;
|
|
55
|
+
value: z.ZodArray<z.ZodString>;
|
|
56
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
58
|
+
type: z.ZodLiteral<"not-contains">;
|
|
59
|
+
value: z.ZodString;
|
|
60
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
61
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
62
|
+
type: z.ZodLiteral<"javascript">;
|
|
63
|
+
value: z.ZodString;
|
|
64
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
65
|
+
}, z.core.$strip>]>>;
|
|
66
|
+
baseline: z.ZodOptional<z.ZodObject<{
|
|
67
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
rubric: z.ZodOptional<z.ZodEnum<{
|
|
69
|
+
full: "full";
|
|
70
|
+
abbreviated: "abbreviated";
|
|
71
|
+
none: "none";
|
|
72
|
+
}>>;
|
|
73
|
+
}, z.core.$strip>>;
|
|
74
|
+
canonical_docs: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
75
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
76
|
+
slug: z.ZodString;
|
|
77
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
78
|
+
path: z.ZodString;
|
|
79
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
80
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
81
|
+
id: z.ZodString;
|
|
82
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
83
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
84
|
+
perspective: z.ZodString;
|
|
85
|
+
reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
86
|
+
}, z.core.$strip>]>>;
|
|
87
|
+
description: z.ZodString;
|
|
88
|
+
doc_coverage: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
+
id: z.ZodString;
|
|
90
|
+
reference_solution: z.ZodString;
|
|
91
|
+
vars: z.ZodObject<{
|
|
92
|
+
docs: z.ZodString;
|
|
93
|
+
task: z.ZodString;
|
|
94
|
+
}, z.core.$loose>;
|
|
95
|
+
}, z.core.$strip>>>;
|
|
96
|
+
jobId: z.ZodOptional<z.ZodString>;
|
|
97
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
98
|
+
agentic: "agentic";
|
|
99
|
+
baseline: "baseline";
|
|
100
|
+
full: "full";
|
|
101
|
+
observed: "observed";
|
|
102
|
+
}>>;
|
|
103
|
+
noCache: z.ZodOptional<z.ZodBoolean>;
|
|
104
|
+
noRemoteCache: z.ZodOptional<z.ZodBoolean>;
|
|
105
|
+
perspective: z.ZodOptional<z.ZodString>;
|
|
106
|
+
projectId: z.ZodOptional<z.ZodString>;
|
|
107
|
+
publish: z.ZodOptional<z.ZodBoolean>;
|
|
108
|
+
publishTag: z.ZodOptional<z.ZodString>;
|
|
109
|
+
readiness: z.ZodOptional<z.ZodBoolean>;
|
|
110
|
+
searchMode: z.ZodOptional<z.ZodEnum<{
|
|
111
|
+
off: "off";
|
|
112
|
+
open: "open";
|
|
113
|
+
"origin-only": "origin-only";
|
|
114
|
+
}>>;
|
|
115
|
+
source: z.ZodOptional<z.ZodString>;
|
|
116
|
+
taskMode: z.ZodOptional<z.ZodEnum<{
|
|
117
|
+
"content-lake": "content-lake";
|
|
118
|
+
yaml: "yaml";
|
|
119
|
+
inline: "inline";
|
|
120
|
+
}>>;
|
|
121
|
+
tasks: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
122
|
+
urls: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
/** Inferred TypeScript type for a pipeline request payload. */
|
|
125
|
+
export type PipelineRequest = z.infer<typeof PipelineRequestSchema>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sanity/ailf-core — Pipeline Request schema
|
|
3
|
+
*
|
|
4
|
+
* The universal pipeline invocation contract. A single Zod schema shared
|
|
5
|
+
* between the API gateway (POST /v1/pipeline), the CLI (--config flag),
|
|
6
|
+
* and GitHub Actions workflows (repository_dispatch payload).
|
|
7
|
+
*
|
|
8
|
+
* This eliminates the ~100-line bash flag-building in the workflow YAML
|
|
9
|
+
* by flowing the entire payload through the system untouched. Each layer
|
|
10
|
+
* validates it against this schema but doesn't restructure it.
|
|
11
|
+
*
|
|
12
|
+
* @see docs/design-docs/api-service-gateway.md — Section 7.2
|
|
13
|
+
* @see packages/eval/src/pipeline/map-request-to-config.ts — maps to ResolvedConfig
|
|
14
|
+
*/
|
|
15
|
+
import { z } from "zod";
|
|
16
|
+
import { SingleTaskSchema } from "./pipeline.js";
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Debug options — boolean shorthand or structured object
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
const DebugOptionsSchema = z.object({
|
|
21
|
+
enabled: z.boolean().optional(),
|
|
22
|
+
firstN: z.number().int().positive().optional(),
|
|
23
|
+
pattern: z.string().optional(),
|
|
24
|
+
sample: z.number().int().positive().optional(),
|
|
25
|
+
});
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Callback delivery — for API-triggered evaluations
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
const CallbackSchema = z.object({
|
|
30
|
+
headers: z.record(z.string(), z.string()).optional(),
|
|
31
|
+
url: z.string().url(),
|
|
32
|
+
});
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Pipeline Request — the universal invocation contract
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
export const PipelineRequestSchema = z.object({
|
|
37
|
+
allowedOrigins: z.array(z.string()).optional(),
|
|
38
|
+
backend: z.enum(["github-actions", "cloud-run"]).optional(),
|
|
39
|
+
areas: z.array(z.string()).optional(),
|
|
40
|
+
callback: CallbackSchema.optional(),
|
|
41
|
+
changedDocs: z.array(z.string()).optional(),
|
|
42
|
+
compare: z.boolean().optional(),
|
|
43
|
+
compareBaseline: z.string().optional(),
|
|
44
|
+
compareThreshold: z.number().min(0).optional(),
|
|
45
|
+
concurrency: z.number().int().positive().optional(),
|
|
46
|
+
dataset: z.string().optional(),
|
|
47
|
+
debug: z.union([z.boolean(), DebugOptionsSchema]).optional(),
|
|
48
|
+
discoveryReport: z.boolean().optional(),
|
|
49
|
+
gapAnalysis: z.boolean().optional(),
|
|
50
|
+
graderReplications: z.number().int().positive().optional(),
|
|
51
|
+
headers: z.record(z.string(), z.string()).optional(),
|
|
52
|
+
inlineTasks: z.array(SingleTaskSchema).optional(),
|
|
53
|
+
jobId: z.string().optional(),
|
|
54
|
+
mode: z.enum(["baseline", "agentic", "observed", "full"]).optional(),
|
|
55
|
+
noCache: z.boolean().optional(),
|
|
56
|
+
noRemoteCache: z.boolean().optional(),
|
|
57
|
+
perspective: z.string().optional(),
|
|
58
|
+
projectId: z.string().optional(),
|
|
59
|
+
publish: z.boolean().optional(),
|
|
60
|
+
publishTag: z.string().optional(),
|
|
61
|
+
readiness: z.boolean().optional(),
|
|
62
|
+
searchMode: z.enum(["off", "open", "origin-only"]).optional(),
|
|
63
|
+
source: z.string().optional(),
|
|
64
|
+
taskMode: z.enum(["content-lake", "yaml", "inline"]).optional(),
|
|
65
|
+
tasks: z.array(z.string()).optional(),
|
|
66
|
+
urls: z.array(z.string().url()).optional(),
|
|
67
|
+
});
|