@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,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* completion command — generate shell completion scripts.
|
|
3
|
+
*
|
|
4
|
+
* Walks the Commander program tree to produce completions that are
|
|
5
|
+
* always in sync with the actual CLI surface. Supports bash, zsh, and fish.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ailf completion bash # print bash completion script to stdout
|
|
9
|
+
* ailf completion zsh # print zsh completion script to stdout
|
|
10
|
+
* ailf completion fish # print fish completion script to stdout
|
|
11
|
+
*
|
|
12
|
+
* Install:
|
|
13
|
+
* ailf completion bash >> ~/.bashrc
|
|
14
|
+
* ailf completion zsh >> ~/.zshrc
|
|
15
|
+
* ailf completion fish > ~/.config/fish/completions/ailf.fish
|
|
16
|
+
*/
|
|
17
|
+
import { Command } from "commander";
|
|
18
|
+
export function createCompletionCommand(program) {
|
|
19
|
+
return new Command("completion")
|
|
20
|
+
.description("Generate shell completion scripts")
|
|
21
|
+
.argument("<shell>", "Shell type: bash, zsh, or fish")
|
|
22
|
+
.addHelpText("after", `
|
|
23
|
+
Examples:
|
|
24
|
+
ailf completion bash # print bash completions to stdout
|
|
25
|
+
ailf completion zsh # print zsh completions to stdout
|
|
26
|
+
ailf completion fish # print fish completions to stdout
|
|
27
|
+
|
|
28
|
+
# Install permanently:
|
|
29
|
+
ailf completion bash >> ~/.bashrc
|
|
30
|
+
ailf completion zsh >> ~/.zshrc
|
|
31
|
+
ailf completion fish > ~/.config/fish/completions/ailf.fish`)
|
|
32
|
+
.action((shell) => {
|
|
33
|
+
const commands = extractCommands(program);
|
|
34
|
+
switch (shell) {
|
|
35
|
+
case "bash":
|
|
36
|
+
process.stdout.write(generateBash(commands));
|
|
37
|
+
break;
|
|
38
|
+
case "fish":
|
|
39
|
+
process.stdout.write(generateFish(commands));
|
|
40
|
+
break;
|
|
41
|
+
case "zsh":
|
|
42
|
+
process.stdout.write(generateZsh(commands));
|
|
43
|
+
break;
|
|
44
|
+
default:
|
|
45
|
+
console.error(`Unknown shell: ${shell}. Supported: bash, zsh, fish`);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// Bash completion
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
function escapeFish(s) {
|
|
54
|
+
return s.replace(/'/g, "\\'");
|
|
55
|
+
}
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
// Zsh completion
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
function escapeZsh(s) {
|
|
60
|
+
return s.replace(/'/g, "'\\''").replace(/\[/g, "\\[").replace(/]/g, "\\]");
|
|
61
|
+
}
|
|
62
|
+
function extractCommands(cmd) {
|
|
63
|
+
return cmd.commands.map((sub) => ({
|
|
64
|
+
description: sub.description(),
|
|
65
|
+
name: sub.name(),
|
|
66
|
+
options: sub.options.map((opt) => ({
|
|
67
|
+
description: opt.description,
|
|
68
|
+
flags: opt.long
|
|
69
|
+
? opt.short
|
|
70
|
+
? [opt.short, opt.long]
|
|
71
|
+
: [opt.long]
|
|
72
|
+
: opt.short
|
|
73
|
+
? [opt.short]
|
|
74
|
+
: [],
|
|
75
|
+
})),
|
|
76
|
+
subcommands: extractCommands(sub),
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
// Fish completion
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
function generateBash(commands) {
|
|
83
|
+
const topLevelNames = commands.map((c) => c.name).join(" ");
|
|
84
|
+
// Build per-command option lists
|
|
85
|
+
const cases = [];
|
|
86
|
+
for (const cmd of commands) {
|
|
87
|
+
const opts = cmd.options.flatMap((o) => o.flags).join(" ");
|
|
88
|
+
if (cmd.subcommands.length > 0) {
|
|
89
|
+
const subNames = cmd.subcommands.map((s) => s.name).join(" ");
|
|
90
|
+
cases.push(` ${cmd.name})
|
|
91
|
+
COMPREPLY=( $(compgen -W "${subNames} ${opts}" -- "\${cur}") )
|
|
92
|
+
return 0
|
|
93
|
+
;;`);
|
|
94
|
+
for (const sub of cmd.subcommands) {
|
|
95
|
+
const subOpts = sub.options.flatMap((o) => o.flags).join(" ");
|
|
96
|
+
cases.push(` ${sub.name})
|
|
97
|
+
COMPREPLY=( $(compgen -W "${subOpts}" -- "\${cur}") )
|
|
98
|
+
return 0
|
|
99
|
+
;;`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
cases.push(` ${cmd.name})
|
|
104
|
+
COMPREPLY=( $(compgen -W "${opts}" -- "\${cur}") )
|
|
105
|
+
return 0
|
|
106
|
+
;;`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return `# bash completion for ailf
|
|
110
|
+
# Generated by: ailf completion bash
|
|
111
|
+
# Install: ailf completion bash >> ~/.bashrc && source ~/.bashrc
|
|
112
|
+
|
|
113
|
+
_ailf_completions() {
|
|
114
|
+
local cur prev commands
|
|
115
|
+
COMPREPLY=()
|
|
116
|
+
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
117
|
+
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
118
|
+
commands="${topLevelNames}"
|
|
119
|
+
|
|
120
|
+
# Determine which command we're in
|
|
121
|
+
local cmd=""
|
|
122
|
+
local subcmd=""
|
|
123
|
+
for ((i=1; i < COMP_CWORD; i++)); do
|
|
124
|
+
case "\${COMP_WORDS[i]}" in
|
|
125
|
+
-*)
|
|
126
|
+
;;
|
|
127
|
+
*)
|
|
128
|
+
if [ -z "$cmd" ]; then
|
|
129
|
+
cmd="\${COMP_WORDS[i]}"
|
|
130
|
+
elif [ -z "$subcmd" ]; then
|
|
131
|
+
subcmd="\${COMP_WORDS[i]}"
|
|
132
|
+
fi
|
|
133
|
+
;;
|
|
134
|
+
esac
|
|
135
|
+
done
|
|
136
|
+
|
|
137
|
+
# Complete subcommand or command-specific options
|
|
138
|
+
if [ -n "$subcmd" ]; then
|
|
139
|
+
case "$subcmd" in
|
|
140
|
+
${cases.join("\n")}
|
|
141
|
+
esac
|
|
142
|
+
elif [ -n "$cmd" ]; then
|
|
143
|
+
case "$cmd" in
|
|
144
|
+
${cases.join("\n")}
|
|
145
|
+
esac
|
|
146
|
+
else
|
|
147
|
+
COMPREPLY=( $(compgen -W "\${commands}" -- "\${cur}") )
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
return 0
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
complete -F _ailf_completions ailf
|
|
154
|
+
`;
|
|
155
|
+
}
|
|
156
|
+
function generateFish(commands) {
|
|
157
|
+
const lines = [
|
|
158
|
+
"# fish completion for ailf",
|
|
159
|
+
"# Generated by: ailf completion fish",
|
|
160
|
+
"# Install: ailf completion fish > ~/.config/fish/completions/ailf.fish",
|
|
161
|
+
"",
|
|
162
|
+
"# Disable file completions by default",
|
|
163
|
+
"complete -c ailf -f",
|
|
164
|
+
"",
|
|
165
|
+
"# Top-level commands",
|
|
166
|
+
];
|
|
167
|
+
for (const cmd of commands) {
|
|
168
|
+
lines.push(`complete -c ailf -n '__fish_use_subcommand' -a '${cmd.name}' -d '${escapeFish(cmd.description)}'`);
|
|
169
|
+
}
|
|
170
|
+
lines.push("");
|
|
171
|
+
for (const cmd of commands) {
|
|
172
|
+
if (cmd.subcommands.length > 0) {
|
|
173
|
+
lines.push(`# ${cmd.name} subcommands`);
|
|
174
|
+
for (const sub of cmd.subcommands) {
|
|
175
|
+
lines.push(`complete -c ailf -n '__fish_seen_subcommand_from ${cmd.name}' -a '${sub.name}' -d '${escapeFish(sub.description)}'`);
|
|
176
|
+
for (const opt of sub.options) {
|
|
177
|
+
const long = opt.flags.find((f) => f.startsWith("--"));
|
|
178
|
+
if (long) {
|
|
179
|
+
const name = long.replace(/^--/, "");
|
|
180
|
+
lines.push(`complete -c ailf -n '__fish_seen_subcommand_from ${sub.name}' -l '${name}' -d '${escapeFish(opt.description)}'`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
lines.push(`# ${cmd.name} options`);
|
|
187
|
+
for (const opt of cmd.options) {
|
|
188
|
+
const long = opt.flags.find((f) => f.startsWith("--"));
|
|
189
|
+
if (long) {
|
|
190
|
+
const name = long.replace(/^--/, "");
|
|
191
|
+
lines.push(`complete -c ailf -n '__fish_seen_subcommand_from ${cmd.name}' -l '${name}' -d '${escapeFish(opt.description)}'`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
lines.push("");
|
|
196
|
+
}
|
|
197
|
+
return lines.join("\n");
|
|
198
|
+
}
|
|
199
|
+
// ---------------------------------------------------------------------------
|
|
200
|
+
// Command factory
|
|
201
|
+
// ---------------------------------------------------------------------------
|
|
202
|
+
function generateZsh(commands) {
|
|
203
|
+
const cmdEntries = commands
|
|
204
|
+
.map((c) => ` '${c.name}:${escapeZsh(c.description)}'`)
|
|
205
|
+
.join("\n");
|
|
206
|
+
const subcases = [];
|
|
207
|
+
for (const cmd of commands) {
|
|
208
|
+
if (cmd.subcommands.length > 0) {
|
|
209
|
+
const subEntries = cmd.subcommands
|
|
210
|
+
.map((s) => ` '${s.name}:${escapeZsh(s.description)}'`)
|
|
211
|
+
.join("\n");
|
|
212
|
+
subcases.push(` ${cmd.name})
|
|
213
|
+
local -a subcmds
|
|
214
|
+
subcmds=(
|
|
215
|
+
${subEntries}
|
|
216
|
+
)
|
|
217
|
+
_describe 'subcommand' subcmds
|
|
218
|
+
;;`);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
const opts = cmd.options
|
|
222
|
+
.map((o) => {
|
|
223
|
+
const flag = o.flags[o.flags.length - 1]; // prefer long flag
|
|
224
|
+
return `'${flag}[${escapeZsh(o.description)}]'`;
|
|
225
|
+
})
|
|
226
|
+
.join(" \\\n ");
|
|
227
|
+
subcases.push(` ${cmd.name})
|
|
228
|
+
_arguments \\
|
|
229
|
+
${opts || "'*:file:_files'"}
|
|
230
|
+
;;`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return `#compdef ailf
|
|
234
|
+
# zsh completion for ailf
|
|
235
|
+
# Generated by: ailf completion zsh
|
|
236
|
+
# Install: ailf completion zsh >> ~/.zshrc && source ~/.zshrc
|
|
237
|
+
|
|
238
|
+
_ailf() {
|
|
239
|
+
local -a commands
|
|
240
|
+
commands=(
|
|
241
|
+
${cmdEntries}
|
|
242
|
+
)
|
|
243
|
+
|
|
244
|
+
_arguments '1:command:->cmd' '*::arg:->args'
|
|
245
|
+
|
|
246
|
+
case $state in
|
|
247
|
+
cmd)
|
|
248
|
+
_describe 'command' commands
|
|
249
|
+
;;
|
|
250
|
+
args)
|
|
251
|
+
case $words[1] in
|
|
252
|
+
${subcases.join("\n")}
|
|
253
|
+
esac
|
|
254
|
+
;;
|
|
255
|
+
esac
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
compdef _ailf ailf
|
|
259
|
+
`;
|
|
260
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* coverage-audit command — cross-references the product feature registry
|
|
3
|
+
* against task files to produce a documentation coverage audit.
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from "commander";
|
|
7
|
+
import { dirname, resolve } from "path";
|
|
8
|
+
import { fileURLToPath } from "url";
|
|
9
|
+
import { countReferencedDocs, formatCoverageConsole, formatCoverageMarkdown, runCoverageAudit, } from "../pipeline/coverage-audit.js";
|
|
10
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
|
+
const ROOT = resolve(__dirname, "..", "..");
|
|
12
|
+
export function createCoverageAuditCommand() {
|
|
13
|
+
return new Command("coverage-audit")
|
|
14
|
+
.description("Run documentation coverage audit against feature registry")
|
|
15
|
+
.option("--format <fmt>", "Output format: table, md, markdown")
|
|
16
|
+
.option("--json", "Output raw JSON", false)
|
|
17
|
+
.action(async (opts) => {
|
|
18
|
+
const report = runCoverageAudit(ROOT);
|
|
19
|
+
if (!report) {
|
|
20
|
+
console.error("❌ Coverage audit failed. Ensure config/features.yaml exists and is valid.");
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
if (opts.json) {
|
|
24
|
+
console.log(JSON.stringify(report, null, 2));
|
|
25
|
+
}
|
|
26
|
+
else if (opts.format === "md" || opts.format === "markdown") {
|
|
27
|
+
console.log(formatCoverageMarkdown(report));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
console.log(formatCoverageConsole(report));
|
|
31
|
+
}
|
|
32
|
+
// Print document utilization stats for non-JSON console output
|
|
33
|
+
if (!opts.json && opts.format !== "md" && opts.format !== "markdown") {
|
|
34
|
+
const docStats = countReferencedDocs(ROOT);
|
|
35
|
+
console.log("DOCUMENT UTILIZATION:");
|
|
36
|
+
console.log(` ${docStats.total} unique document slugs referenced across evaluation tasks`);
|
|
37
|
+
console.log("");
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* discovery-report command — generates an agent discoverability report
|
|
3
|
+
* from agentic mode retrieval metrics.
|
|
4
|
+
*
|
|
5
|
+
* Reads score-summary.json and produces a markdown report showing
|
|
6
|
+
* retrieval summary, per-area breakdown, invisible documents, and
|
|
7
|
+
* recommendations for improving discoverability.
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from "commander";
|
|
10
|
+
export declare function createDiscoveryReportCommand(): Command;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* discovery-report command — generates an agent discoverability report
|
|
3
|
+
* from agentic mode retrieval metrics.
|
|
4
|
+
*
|
|
5
|
+
* Reads score-summary.json and produces a markdown report showing
|
|
6
|
+
* retrieval summary, per-area breakdown, invisible documents, and
|
|
7
|
+
* recommendations for improving discoverability.
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from "commander";
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
11
|
+
import { dirname, join, resolve } from "path";
|
|
12
|
+
import { fileURLToPath } from "url";
|
|
13
|
+
import { formatDiscoveryMarkdown, generateDiscoveryReport, } from "../pipeline/discovery-report.js";
|
|
14
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
const ROOT = resolve(__dirname, "..", "..");
|
|
16
|
+
export function createDiscoveryReportCommand() {
|
|
17
|
+
return new Command("discovery-report")
|
|
18
|
+
.description("Generate agent discoverability report from retrieval metrics")
|
|
19
|
+
.option("-a, --area <areas>", "Filter by feature areas (comma-separated)")
|
|
20
|
+
.option("-o, --output <path>", "Write markdown to file instead of stdout")
|
|
21
|
+
.option("-i, --input <path>", "Path to score-summary.json", join(ROOT, "results", "latest", "score-summary.json"))
|
|
22
|
+
.action(async (opts) => {
|
|
23
|
+
const summaryPath = opts.input;
|
|
24
|
+
if (!existsSync(summaryPath)) {
|
|
25
|
+
console.error(`❌ Score summary not found: ${summaryPath}`);
|
|
26
|
+
console.error("Run an agentic evaluation first: pnpm pipeline -- --mode agentic");
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
const summary = JSON.parse(readFileSync(summaryPath, "utf-8"));
|
|
30
|
+
// Parse area filter
|
|
31
|
+
const areaFilter = opts.area
|
|
32
|
+
? opts.area.split(",").map((a) => a.trim())
|
|
33
|
+
: undefined;
|
|
34
|
+
const report = generateDiscoveryReport(summary, areaFilter);
|
|
35
|
+
const markdown = formatDiscoveryMarkdown(report);
|
|
36
|
+
if (opts.output) {
|
|
37
|
+
writeFileSync(opts.output, markdown, "utf-8");
|
|
38
|
+
console.log(`✅ Discovery report written to ${opts.output}`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log(markdown);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* eval command — run promptfoo evaluation directly (passthrough).
|
|
3
|
+
*
|
|
4
|
+
* This is a convenience command that forwards to `promptfoo eval`.
|
|
5
|
+
* For most use cases, prefer `ailf pipeline` which handles the full
|
|
6
|
+
* lifecycle (fetch → generate → eval → score → report).
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from "commander";
|
|
9
|
+
export declare function createEvalCommand(): Command;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* eval command — run promptfoo evaluation directly (passthrough).
|
|
3
|
+
*
|
|
4
|
+
* This is a convenience command that forwards to `promptfoo eval`.
|
|
5
|
+
* For most use cases, prefer `ailf pipeline` which handles the full
|
|
6
|
+
* lifecycle (fetch → generate → eval → score → report).
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from "commander";
|
|
9
|
+
export function createEvalCommand() {
|
|
10
|
+
return new Command("eval")
|
|
11
|
+
.description("Run Promptfoo evaluation directly (passthrough to promptfoo)")
|
|
12
|
+
.option("--config <path>", "Promptfoo config file", "promptfooconfig.yaml")
|
|
13
|
+
.option("--no-cache", "Disable Promptfoo caching")
|
|
14
|
+
.option("--filter-description <text>", "Filter tests by description")
|
|
15
|
+
.option("--filter-pattern <regex>", "Filter tests by regex")
|
|
16
|
+
.option("--filter-first-n <n>", "Run only first N tests")
|
|
17
|
+
.option("--filter-sample <n>", "Random sample of N tests")
|
|
18
|
+
.allowUnknownOption(true)
|
|
19
|
+
.allowExcessArguments(true)
|
|
20
|
+
.action(async () => {
|
|
21
|
+
const { execSync } = await import("child_process");
|
|
22
|
+
// Pass through all raw arguments after "eval" to promptfoo
|
|
23
|
+
const evalIdx = process.argv.indexOf("eval");
|
|
24
|
+
const passthroughArgs = evalIdx !== -1 ? process.argv.slice(evalIdx + 1) : [];
|
|
25
|
+
try {
|
|
26
|
+
execSync(`dotenv -e ../../.env -o -- promptfoo eval ${passthroughArgs.join(" ")}`, { stdio: "inherit" });
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
const code = err !== null && typeof err === "object" && "status" in err
|
|
30
|
+
? err.status
|
|
31
|
+
: 1;
|
|
32
|
+
process.exit(code);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Explain-handler.ts
|
|
3
|
+
*
|
|
4
|
+
* Handles the global --explain flag for any CLI command.
|
|
5
|
+
*
|
|
6
|
+
* Called from the Commander preAction hook in cli.ts. Inspects which
|
|
7
|
+
* command is about to run, builds the appropriate execution plan, and
|
|
8
|
+
* prints it. If --yes is also set, prompts the user to confirm execution.
|
|
9
|
+
*
|
|
10
|
+
* ## How it works
|
|
11
|
+
*
|
|
12
|
+
* Every command is registered in `EXPLAIN_REGISTRY` with either:
|
|
13
|
+
* - **Static metadata** — description, filesRead, filesCreated, steps
|
|
14
|
+
* - **A builder function** — for commands that need to inspect CLI options
|
|
15
|
+
* or perform async work (e.g., pipeline, init)
|
|
16
|
+
*
|
|
17
|
+
* Adding --explain support for a new command = adding one registry entry.
|
|
18
|
+
* Commands not in the registry fall back to a minimal generic plan.
|
|
19
|
+
*
|
|
20
|
+
* @see docs/exec-plans/active/execution-preview.md
|
|
21
|
+
*/
|
|
22
|
+
import type { Command } from "commander";
|
|
23
|
+
/**
|
|
24
|
+
* Handle the --explain flag for any command.
|
|
25
|
+
*
|
|
26
|
+
* Looks up the command in `EXPLAIN_REGISTRY`. Static entries are converted
|
|
27
|
+
* to a plan via `buildSimpleCommandPlan`. Builder functions are called
|
|
28
|
+
* directly. Commands not in the registry get a minimal generic plan.
|
|
29
|
+
*
|
|
30
|
+
* @param actionCommand - The Commander command about to execute
|
|
31
|
+
* @param confirmExecution - If true (--yes), prompt to proceed after showing the plan
|
|
32
|
+
* @param rootDir - Path to the eval package root (packages/eval)
|
|
33
|
+
*/
|
|
34
|
+
export declare function handleExplain(actionCommand: Command, confirmExecution: boolean, rootDir: string): Promise<void>;
|