oh-my-knowledge 0.31.0 → 0.33.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 +38 -847
- package/README.zh.md +49 -858
- package/dist/analysis/coverage-analyzer.d.ts.map +1 -0
- package/dist/analysis/coverage-analyzer.js.map +1 -0
- package/dist/analysis/failure-clusterer.d.ts.map +1 -0
- package/dist/analysis/failure-clusterer.js.map +1 -0
- package/dist/analysis/gap-analyzer.d.ts +121 -0
- package/dist/analysis/gap-analyzer.d.ts.map +1 -0
- package/dist/analysis/gap-analyzer.js +471 -0
- package/dist/analysis/gap-analyzer.js.map +1 -0
- package/dist/analysis/hedging-classifier.d.ts.map +1 -0
- package/dist/analysis/hedging-classifier.js.map +1 -0
- package/dist/analysis/report-diagnostics.d.ts +34 -0
- package/dist/analysis/report-diagnostics.d.ts.map +1 -0
- package/dist/analysis/report-diagnostics.js +753 -0
- package/dist/analysis/report-diagnostics.js.map +1 -0
- package/dist/analysis/sample-diagnostics.d.ts.map +1 -0
- package/dist/analysis/sample-diagnostics.js.map +1 -0
- package/dist/analysis/saturation.d.ts +93 -0
- package/dist/analysis/saturation.d.ts.map +1 -0
- package/dist/analysis/saturation.js +182 -0
- package/dist/analysis/saturation.js.map +1 -0
- package/dist/authoring/evolver.d.ts +143 -0
- package/dist/authoring/evolver.d.ts.map +1 -0
- package/dist/authoring/evolver.js +764 -0
- package/dist/authoring/evolver.js.map +1 -0
- package/dist/authoring/generator.d.ts +66 -0
- package/dist/authoring/generator.d.ts.map +1 -0
- package/dist/authoring/generator.js +833 -0
- package/dist/authoring/generator.js.map +1 -0
- package/dist/authoring/sample-fixer.d.ts.map +1 -0
- package/dist/authoring/sample-fixer.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +28 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +321 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/eval/gold/compare.d.ts.map +1 -0
- package/dist/cli/commands/eval/gold/compare.js.map +1 -0
- package/dist/cli/commands/eval/gold/index.d.ts.map +1 -0
- package/dist/cli/commands/eval/gold/index.js.map +1 -0
- package/dist/cli/commands/eval/gold/init.d.ts.map +1 -0
- package/dist/cli/commands/eval/gold/init.js.map +1 -0
- package/dist/cli/commands/eval/gold/validate.d.ts.map +1 -0
- package/dist/cli/commands/eval/gold/validate.js.map +1 -0
- package/dist/cli/commands/eval/index.d.ts.map +1 -0
- package/dist/cli/commands/eval/index.js +466 -0
- package/dist/cli/commands/eval/index.js.map +1 -0
- package/dist/cli/commands/evolve.d.ts +38 -0
- package/dist/cli/commands/evolve.d.ts.map +1 -0
- package/dist/cli/commands/evolve.js +299 -0
- package/dist/cli/commands/evolve.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/observe/inbox.d.ts.map +1 -0
- package/dist/cli/commands/observe/inbox.js +260 -0
- package/dist/cli/commands/observe/inbox.js.map +1 -0
- package/dist/cli/commands/observe/index.d.ts.map +1 -0
- package/dist/cli/commands/observe/index.js +122 -0
- package/dist/cli/commands/observe/index.js.map +1 -0
- package/dist/cli/commands/observe/ingest.d.ts.map +1 -0
- package/dist/cli/commands/observe/ingest.js +71 -0
- package/dist/cli/commands/observe/ingest.js.map +1 -0
- package/dist/cli/commands/observe/show.d.ts.map +1 -0
- package/dist/cli/commands/observe/show.js.map +1 -0
- package/dist/cli/commands/sample.d.ts +40 -0
- package/dist/cli/commands/sample.d.ts.map +1 -0
- package/dist/cli/commands/sample.js +579 -0
- package/dist/cli/commands/sample.js.map +1 -0
- package/dist/cli/commands/studio.d.ts.map +1 -0
- package/dist/cli/commands/studio.js +158 -0
- package/dist/cli/commands/studio.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lib/cli-exit.d.ts.map +1 -0
- package/dist/cli/lib/cli-exit.js.map +1 -0
- package/dist/cli/lib/cmd-flags.d.ts +229 -0
- package/dist/cli/lib/cmd-flags.d.ts.map +1 -0
- package/dist/cli/lib/cmd-flags.js.map +1 -0
- package/dist/cli/lib/i18n-dict/common.d.ts +4 -0
- package/dist/cli/lib/i18n-dict/common.d.ts.map +1 -0
- package/dist/cli/lib/i18n-dict/common.js +83 -0
- package/dist/cli/lib/i18n-dict/common.js.map +1 -0
- package/dist/cli/lib/i18n-dict/evolve.d.ts +4 -0
- package/dist/cli/lib/i18n-dict/evolve.d.ts.map +1 -0
- package/dist/cli/lib/i18n-dict/evolve.js +51 -0
- package/dist/cli/lib/i18n-dict/evolve.js.map +1 -0
- package/dist/cli/lib/i18n-dict/gen.d.ts +4 -0
- package/dist/cli/lib/i18n-dict/gen.d.ts.map +1 -0
- package/dist/cli/lib/i18n-dict/gen.js +63 -0
- package/dist/cli/lib/i18n-dict/gen.js.map +1 -0
- package/dist/cli/lib/i18n-dict/help.d.ts +4 -0
- package/dist/cli/lib/i18n-dict/help.d.ts.map +1 -0
- package/dist/cli/lib/i18n-dict/help.js +281 -0
- package/dist/cli/lib/i18n-dict/help.js.map +1 -0
- package/dist/cli/lib/i18n-dict/init.d.ts +4 -0
- package/dist/cli/lib/i18n-dict/init.d.ts.map +1 -0
- package/dist/cli/lib/i18n-dict/init.js +27 -0
- package/dist/cli/lib/i18n-dict/init.js.map +1 -0
- package/dist/cli/lib/i18n-dict/run.d.ts +4 -0
- package/dist/cli/lib/i18n-dict/run.d.ts.map +1 -0
- package/dist/cli/lib/i18n-dict/run.js +143 -0
- package/dist/cli/lib/i18n-dict/run.js.map +1 -0
- package/dist/cli/lib/i18n-dict/types.d.ts +5 -0
- package/dist/cli/lib/i18n-dict/types.d.ts.map +1 -0
- package/dist/cli/lib/i18n-dict/types.js +2 -0
- package/dist/cli/lib/i18n-dict/types.js.map +1 -0
- package/dist/cli/lib/i18n-dict.d.ts +63 -0
- package/dist/cli/lib/i18n-dict.d.ts.map +1 -0
- package/dist/cli/lib/i18n-dict.js +67 -0
- package/dist/cli/lib/i18n-dict.js.map +1 -0
- package/dist/cli/lib/i18n.d.ts.map +1 -0
- package/dist/cli/lib/i18n.js.map +1 -0
- package/dist/cli/lib/parse-run-config/judge-models.d.ts +24 -0
- package/dist/cli/lib/parse-run-config/judge-models.d.ts.map +1 -0
- package/dist/cli/lib/parse-run-config/judge-models.js +55 -0
- package/dist/cli/lib/parse-run-config/judge-models.js.map +1 -0
- package/dist/cli/lib/parse-run-config/samples-discovery.d.ts +19 -0
- package/dist/cli/lib/parse-run-config/samples-discovery.d.ts.map +1 -0
- package/dist/cli/lib/parse-run-config/samples-discovery.js +53 -0
- package/dist/cli/lib/parse-run-config/samples-discovery.js.map +1 -0
- package/dist/cli/lib/parse-run-config/variant-resolution.d.ts +23 -0
- package/dist/cli/lib/parse-run-config/variant-resolution.d.ts.map +1 -0
- package/dist/cli/lib/parse-run-config/variant-resolution.js +65 -0
- package/dist/cli/lib/parse-run-config/variant-resolution.js.map +1 -0
- package/dist/cli/lib/parse-run-config.d.ts +93 -0
- package/dist/cli/lib/parse-run-config.d.ts.map +1 -0
- package/dist/cli/lib/parse-run-config.js +157 -0
- package/dist/cli/lib/parse-run-config.js.map +1 -0
- package/dist/cli/lib/progress.d.ts.map +1 -0
- package/dist/cli/lib/progress.js.map +1 -0
- package/dist/cli/lib/resolve-skill-input.d.ts +8 -0
- package/dist/cli/lib/resolve-skill-input.d.ts.map +1 -0
- package/dist/cli/lib/resolve-skill-input.js +40 -0
- package/dist/cli/lib/resolve-skill-input.js.map +1 -0
- package/dist/cli/lib/run-tally.d.ts.map +1 -0
- package/dist/cli/lib/run-tally.js.map +1 -0
- package/dist/cli/lib/shared.d.ts.map +1 -0
- package/dist/cli/lib/shared.js.map +1 -0
- package/dist/cli/lib/update-check.d.ts +74 -0
- package/dist/cli/lib/update-check.d.ts.map +1 -0
- package/dist/cli/lib/update-check.js +302 -0
- package/dist/cli/lib/update-check.js.map +1 -0
- package/dist/cli/lib/update-fetch-worker.d.ts +2 -0
- package/dist/cli/lib/update-fetch-worker.d.ts.map +1 -0
- package/dist/cli/lib/update-fetch-worker.js +35 -0
- package/dist/cli/lib/update-fetch-worker.js.map +1 -0
- package/dist/cli/oclif/base-command.d.ts.map +1 -0
- package/dist/cli/oclif/base-command.js.map +1 -0
- package/dist/cli/oclif/help.d.ts.map +1 -0
- package/dist/cli/oclif/help.js.map +1 -0
- package/dist/cli/oclif/i18n.d.ts.map +1 -0
- package/dist/cli/oclif/i18n.js.map +1 -0
- package/dist/cli/oclif/parsers.d.ts.map +1 -0
- package/dist/cli/oclif/parsers.js.map +1 -0
- package/dist/cli/oclif/projection.d.ts.map +1 -0
- package/dist/cli/oclif/projection.js.map +1 -0
- package/dist/cli/oclif/run.d.ts.map +1 -0
- package/dist/cli/oclif/run.js +11 -0
- package/dist/cli/oclif/run.js.map +1 -0
- package/dist/diagnosis/observe-mapper.d.ts.map +1 -0
- package/dist/diagnosis/observe-mapper.js.map +1 -0
- package/dist/diagnosis/observe-producer.d.ts.map +1 -0
- package/dist/diagnosis/observe-producer.js +199 -0
- package/dist/diagnosis/observe-producer.js.map +1 -0
- package/dist/diagnosis/studio-projection.d.ts +7 -0
- package/dist/diagnosis/studio-projection.d.ts.map +1 -0
- package/dist/diagnosis/studio-projection.js.map +1 -0
- package/dist/diagnosis/types.d.ts +4 -0
- package/dist/diagnosis/types.d.ts.map +1 -0
- package/dist/diagnosis/types.js +20 -0
- package/dist/diagnosis/types.js.map +1 -0
- package/dist/doctor/fixer.d.ts.map +1 -0
- package/dist/doctor/fixer.js.map +1 -0
- package/dist/doctor/health/builtin-dimensions.d.ts.map +1 -0
- package/dist/doctor/health/builtin-dimensions.js.map +1 -0
- package/dist/doctor/health/composer.d.ts.map +1 -0
- package/dist/doctor/health/composer.js +296 -0
- package/dist/doctor/health/composer.js.map +1 -0
- package/dist/doctor/health/dimension-registry.d.ts.map +1 -0
- package/dist/doctor/health/dimension-registry.js.map +1 -0
- package/dist/doctor/health/dimension-spec.d.ts +47 -0
- package/dist/doctor/health/dimension-spec.d.ts.map +1 -0
- package/dist/doctor/health/dimension-spec.js.map +1 -0
- package/dist/doctor/health/load-custom-dimensions.d.ts +2 -0
- package/dist/doctor/health/load-custom-dimensions.d.ts.map +1 -0
- package/dist/doctor/health/load-custom-dimensions.js +31 -0
- package/dist/doctor/health/load-custom-dimensions.js.map +1 -0
- package/dist/doctor/health/parser.d.ts.map +1 -0
- package/dist/doctor/health/parser.js.map +1 -0
- package/dist/doctor/health/prompt-builder.d.ts.map +1 -0
- package/dist/doctor/health/prompt-builder.js.map +1 -0
- package/dist/doctor/health/register.d.ts.map +1 -0
- package/dist/doctor/health/register.js.map +1 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/messages.d.ts +21 -0
- package/dist/doctor/messages.d.ts.map +1 -0
- package/dist/doctor/messages.js +217 -0
- package/dist/doctor/messages.js.map +1 -0
- package/dist/doctor/preflight.d.ts.map +1 -0
- package/dist/doctor/preflight.js.map +1 -0
- package/dist/doctor/renderer.d.ts +17 -0
- package/dist/doctor/renderer.d.ts.map +1 -0
- package/dist/doctor/renderer.js +122 -0
- package/dist/doctor/renderer.js.map +1 -0
- package/dist/doctor/rules.d.ts.map +1 -0
- package/dist/doctor/rules.js +289 -0
- package/dist/doctor/rules.js.map +1 -0
- package/dist/eval-core/bootstrap.d.ts +80 -0
- package/dist/eval-core/bootstrap.d.ts.map +1 -0
- package/dist/eval-core/bootstrap.js +182 -0
- package/dist/eval-core/bootstrap.js.map +1 -0
- package/dist/eval-core/cache.d.ts.map +1 -0
- package/dist/eval-core/cache.js.map +1 -0
- package/dist/eval-core/comparability.d.ts.map +1 -0
- package/dist/eval-core/comparability.js.map +1 -0
- package/dist/eval-core/dependency-checker.d.ts +37 -0
- package/dist/eval-core/dependency-checker.d.ts.map +1 -0
- package/dist/eval-core/dependency-checker.js.map +1 -0
- package/dist/eval-core/evaluation-execution.d.ts.map +1 -0
- package/dist/eval-core/evaluation-execution.js.map +1 -0
- package/dist/eval-core/evaluation-job.d.ts.map +1 -0
- package/dist/eval-core/evaluation-job.js.map +1 -0
- package/dist/eval-core/evaluation-reporting.d.ts.map +1 -0
- package/dist/eval-core/evaluation-reporting.js +292 -0
- package/dist/eval-core/evaluation-reporting.js.map +1 -0
- package/dist/eval-core/execution-strategy.d.ts.map +1 -0
- package/dist/eval-core/execution-strategy.js +165 -0
- package/dist/eval-core/execution-strategy.js.map +1 -0
- package/dist/eval-core/fact-checker.d.ts.map +1 -0
- package/dist/eval-core/fact-checker.js.map +1 -0
- package/dist/eval-core/layer-gates.d.ts.map +1 -0
- package/dist/eval-core/layer-gates.js.map +1 -0
- package/dist/eval-core/mocks-runtime.d.ts.map +1 -0
- package/dist/eval-core/mocks-runtime.js +559 -0
- package/dist/eval-core/mocks-runtime.js.map +1 -0
- package/dist/eval-core/schema.d.ts.map +1 -0
- package/dist/eval-core/schema.js.map +1 -0
- package/dist/eval-core/statistics.d.ts.map +1 -0
- package/dist/eval-core/statistics.js.map +1 -0
- package/dist/eval-core/task-planner.d.ts.map +1 -0
- package/dist/eval-core/task-planner.js.map +1 -0
- package/dist/eval-core/verdict.d.ts +95 -0
- package/dist/eval-core/verdict.d.ts.map +1 -0
- package/dist/eval-core/verdict.js +372 -0
- package/dist/eval-core/verdict.js.map +1 -0
- package/dist/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -0
- package/dist/eval-workflows/batch-evaluation-workflow.js.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.d.ts +22 -0
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.d.ts.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.js +67 -0
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.js.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.d.ts +32 -0
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.d.ts.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.js +57 -0
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.js.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline/run-state.d.ts +60 -0
- package/dist/eval-workflows/evaluation-pipeline/run-state.d.ts.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline/run-state.js +88 -0
- package/dist/eval-workflows/evaluation-pipeline/run-state.js.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.d.ts +21 -0
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.d.ts.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.js +46 -0
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.js.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline.d.ts +97 -0
- package/dist/eval-workflows/evaluation-pipeline.d.ts.map +1 -0
- package/dist/eval-workflows/evaluation-pipeline.js +179 -0
- package/dist/eval-workflows/evaluation-pipeline.js.map +1 -0
- package/dist/eval-workflows/evaluation-preparation.d.ts.map +1 -0
- package/dist/eval-workflows/evaluation-preparation.js +105 -0
- package/dist/eval-workflows/evaluation-preparation.js.map +1 -0
- package/dist/eval-workflows/messages.d.ts +4 -0
- package/dist/eval-workflows/messages.d.ts.map +1 -0
- package/dist/eval-workflows/messages.js +30 -0
- package/dist/eval-workflows/messages.js.map +1 -0
- package/dist/eval-workflows/run-evaluation.d.ts +151 -0
- package/dist/eval-workflows/run-evaluation.d.ts.map +1 -0
- package/dist/eval-workflows/run-evaluation.js +528 -0
- package/dist/eval-workflows/run-evaluation.js.map +1 -0
- package/dist/executors/anthropic-api.d.ts.map +1 -0
- package/dist/executors/anthropic-api.js.map +1 -0
- package/dist/executors/claude-cli.d.ts.map +1 -0
- package/dist/executors/claude-cli.js.map +1 -0
- package/dist/executors/claude-sdk-trace.d.ts.map +1 -0
- package/dist/executors/claude-sdk-trace.js.map +1 -0
- package/dist/executors/claude-sdk.d.ts.map +1 -0
- package/dist/executors/claude-sdk.js.map +1 -0
- package/dist/executors/codex-cli-trace.d.ts.map +1 -0
- package/dist/executors/codex-cli-trace.js.map +1 -0
- package/dist/executors/codex-cli.d.ts.map +1 -0
- package/dist/executors/codex-cli.js.map +1 -0
- package/dist/executors/codex-sdk.d.ts.map +1 -0
- package/dist/executors/codex-sdk.js.map +1 -0
- package/dist/executors/gemini.d.ts.map +1 -0
- package/dist/executors/gemini.js.map +1 -0
- package/dist/executors/index.d.ts.map +1 -0
- package/dist/executors/index.js.map +1 -0
- package/dist/executors/openai-api.d.ts.map +1 -0
- package/dist/executors/openai-api.js.map +1 -0
- package/dist/executors/runtime-fingerprint.d.ts.map +1 -0
- package/dist/executors/runtime-fingerprint.js.map +1 -0
- package/dist/executors/script.d.ts.map +1 -0
- package/dist/executors/script.js.map +1 -0
- package/dist/executors/shared.d.ts +194 -0
- package/dist/executors/shared.d.ts.map +1 -0
- package/dist/executors/shared.js +253 -0
- package/dist/executors/shared.js.map +1 -0
- package/dist/grading/assertions.d.ts.map +1 -0
- package/dist/grading/assertions.js.map +1 -0
- package/dist/grading/debias-validate.d.ts.map +1 -0
- package/dist/grading/debias-validate.js.map +1 -0
- package/dist/grading/diagnostic.d.ts.map +1 -0
- package/dist/grading/diagnostic.js.map +1 -0
- package/dist/grading/gold-cli.d.ts.map +1 -0
- package/dist/grading/gold-cli.js.map +1 -0
- package/dist/grading/gold-dataset.d.ts.map +1 -0
- package/dist/grading/gold-dataset.js.map +1 -0
- package/dist/grading/human-gold.d.ts.map +1 -0
- package/dist/grading/human-gold.js.map +1 -0
- package/dist/grading/index.d.ts.map +1 -0
- package/dist/grading/index.js.map +1 -0
- package/dist/grading/judge.d.ts.map +1 -0
- package/dist/grading/judge.js.map +1 -0
- package/dist/grading/layered-scores.d.ts.map +1 -0
- package/dist/grading/layered-scores.js.map +1 -0
- package/dist/inputs/eval-config.d.ts.map +1 -0
- package/dist/inputs/eval-config.js +252 -0
- package/dist/inputs/eval-config.js.map +1 -0
- package/dist/inputs/load-samples.d.ts.map +1 -0
- package/dist/inputs/load-samples.js.map +1 -0
- package/dist/inputs/mcp-resolver.d.ts.map +1 -0
- package/dist/inputs/mcp-resolver.js.map +1 -0
- package/dist/inputs/skill-loader.d.ts +49 -0
- package/dist/inputs/skill-loader.d.ts.map +1 -0
- package/dist/inputs/skill-loader.js +420 -0
- package/dist/inputs/skill-loader.js.map +1 -0
- package/dist/inputs/url-fetcher.d.ts.map +1 -0
- package/dist/inputs/url-fetcher.js.map +1 -0
- package/dist/observability/experience-frontmatter.d.ts +37 -0
- package/dist/observability/experience-frontmatter.d.ts.map +1 -0
- package/dist/observability/experience-frontmatter.js +100 -0
- package/dist/observability/experience-frontmatter.js.map +1 -0
- package/dist/observability/experience.d.ts +23 -0
- package/dist/observability/experience.d.ts.map +1 -0
- package/dist/observability/experience.js +3438 -0
- package/dist/observability/experience.js.map +1 -0
- package/dist/observability/feedback-matchers.d.ts +37 -0
- package/dist/observability/feedback-matchers.d.ts.map +1 -0
- package/dist/observability/feedback-matchers.js +232 -0
- package/dist/observability/feedback-matchers.js.map +1 -0
- package/dist/observability/feedback-projection.d.ts +21 -0
- package/dist/observability/feedback-projection.d.ts.map +1 -0
- package/dist/observability/feedback-projection.js +20 -0
- package/dist/observability/feedback-projection.js.map +1 -0
- package/dist/observability/inbox-view-model.d.ts +43 -0
- package/dist/observability/inbox-view-model.d.ts.map +1 -0
- package/dist/observability/inbox-view-model.js +180 -0
- package/dist/observability/inbox-view-model.js.map +1 -0
- package/dist/observability/inbox.d.ts +28 -0
- package/dist/observability/inbox.d.ts.map +1 -0
- package/dist/observability/inbox.js +765 -0
- package/dist/observability/inbox.js.map +1 -0
- package/dist/observability/problem-patterns.d.ts +12 -0
- package/dist/observability/problem-patterns.d.ts.map +1 -0
- package/dist/observability/problem-patterns.js +244 -0
- package/dist/observability/problem-patterns.js.map +1 -0
- package/dist/observability/prompts/llm-enhanced-review.prompt.md +224 -0
- package/dist/observability/resolved-review.d.ts +37 -0
- package/dist/observability/resolved-review.d.ts.map +1 -0
- package/dist/observability/resolved-review.js +552 -0
- package/dist/observability/resolved-review.js.map +1 -0
- package/dist/observability/review-state.d.ts +20 -0
- package/dist/observability/review-state.d.ts.map +1 -0
- package/dist/observability/review-state.js.map +1 -0
- package/dist/observability/skill-chain-advisories.d.ts +16 -0
- package/dist/observability/skill-chain-advisories.d.ts.map +1 -0
- package/dist/observability/skill-chain-advisories.js.map +1 -0
- package/dist/observability/skill-chain.d.ts +7 -0
- package/dist/observability/skill-chain.d.ts.map +1 -0
- package/dist/observability/skill-chain.js +474 -0
- package/dist/observability/skill-chain.js.map +1 -0
- package/dist/observability/skill-health-analyzer.d.ts +96 -0
- package/dist/observability/skill-health-analyzer.d.ts.map +1 -0
- package/dist/observability/skill-health-analyzer.js +253 -0
- package/dist/observability/skill-health-analyzer.js.map +1 -0
- package/dist/observability/soft-standards/constants.d.ts +5 -0
- package/dist/observability/soft-standards/constants.d.ts.map +1 -0
- package/dist/observability/soft-standards/constants.js +10 -0
- package/dist/observability/soft-standards/constants.js.map +1 -0
- package/dist/observability/soft-standards/index.d.ts +16 -0
- package/dist/observability/soft-standards/index.d.ts.map +1 -0
- package/dist/observability/soft-standards/index.js +15 -0
- package/dist/observability/soft-standards/index.js.map +1 -0
- package/dist/observability/soft-standards/llm-extractor.d.ts +6 -0
- package/dist/observability/soft-standards/llm-extractor.d.ts.map +1 -0
- package/dist/observability/soft-standards/llm-extractor.js +692 -0
- package/dist/observability/soft-standards/llm-extractor.js.map +1 -0
- package/dist/observability/soft-standards/runtime-evaluator.d.ts +12 -0
- package/dist/observability/soft-standards/runtime-evaluator.d.ts.map +1 -0
- package/dist/observability/soft-standards/runtime-evaluator.js +385 -0
- package/dist/observability/soft-standards/runtime-evaluator.js.map +1 -0
- package/dist/observability/soft-standards/skill-standards-store.d.ts +11 -0
- package/dist/observability/soft-standards/skill-standards-store.d.ts.map +1 -0
- package/dist/observability/soft-standards/skill-standards-store.js +158 -0
- package/dist/observability/soft-standards/skill-standards-store.js.map +1 -0
- package/dist/observability/soft-standards/types.d.ts +212 -0
- package/dist/observability/soft-standards/types.d.ts.map +1 -0
- package/dist/observability/soft-standards/types.js +2 -0
- package/dist/observability/soft-standards/types.js.map +1 -0
- package/dist/observability/text-signals.d.ts +14 -0
- package/dist/observability/text-signals.d.ts.map +1 -0
- package/dist/observability/text-signals.js +116 -0
- package/dist/observability/text-signals.js.map +1 -0
- package/dist/observability/trace-adapter.d.ts.map +1 -0
- package/dist/observability/trace-adapter.js.map +1 -0
- package/dist/observability/trace-attribution.d.ts +56 -0
- package/dist/observability/trace-attribution.d.ts.map +1 -0
- package/dist/observability/trace-attribution.js +200 -0
- package/dist/observability/trace-attribution.js.map +1 -0
- package/dist/observability/trace-segmenter.d.ts +52 -0
- package/dist/observability/trace-segmenter.d.ts.map +1 -0
- package/dist/observability/trace-segmenter.js +322 -0
- package/dist/observability/trace-segmenter.js.map +1 -0
- package/dist/observability/trace-source.d.ts +92 -0
- package/dist/observability/trace-source.d.ts.map +1 -0
- package/dist/observability/trace-source.js +502 -0
- package/dist/observability/trace-source.js.map +1 -0
- package/dist/renderer/html-renderer.d.ts.map +1 -0
- package/dist/renderer/html-renderer.js.map +1 -0
- package/dist/renderer/layout.d.ts.map +1 -0
- package/dist/renderer/layout.js +776 -0
- package/dist/renderer/layout.js.map +1 -0
- package/dist/renderer/observation-inbox/helpers.d.ts +14 -0
- package/dist/renderer/observation-inbox/helpers.d.ts.map +1 -0
- package/dist/renderer/observation-inbox/helpers.js +75 -0
- package/dist/renderer/observation-inbox/helpers.js.map +1 -0
- package/dist/renderer/observation-inbox/styles.d.ts +2 -0
- package/dist/renderer/observation-inbox/styles.d.ts.map +1 -0
- package/dist/renderer/observation-inbox/styles.js +5184 -0
- package/dist/renderer/observation-inbox/styles.js.map +1 -0
- package/dist/renderer/observation-inbox-renderer.d.ts +5 -0
- package/dist/renderer/observation-inbox-renderer.d.ts.map +1 -0
- package/dist/renderer/observation-inbox-renderer.js +7182 -0
- package/dist/renderer/observation-inbox-renderer.js.map +1 -0
- package/dist/renderer/skill-detail-renderer.d.ts +13 -0
- package/dist/renderer/skill-detail-renderer.d.ts.map +1 -0
- package/dist/renderer/skill-detail-renderer.js +1323 -0
- package/dist/renderer/skill-detail-renderer.js.map +1 -0
- package/dist/renderer/skill-health-renderer.d.ts.map +1 -0
- package/dist/renderer/skill-health-renderer.js +282 -0
- package/dist/renderer/skill-health-renderer.js.map +1 -0
- package/dist/renderer/skill-list-renderer.d.ts +3 -0
- package/dist/renderer/skill-list-renderer.d.ts.map +1 -0
- package/dist/renderer/skill-list-renderer.js +346 -0
- package/dist/renderer/skill-list-renderer.js.map +1 -0
- package/dist/renderer/summary.d.ts +68 -0
- package/dist/renderer/summary.d.ts.map +1 -0
- package/dist/renderer/summary.js +1908 -0
- package/dist/renderer/summary.js.map +1 -0
- package/dist/renderer/table.d.ts.map +1 -0
- package/dist/renderer/table.js.map +1 -0
- package/dist/renderer/test-view.d.ts.map +1 -0
- package/dist/renderer/test-view.js.map +1 -0
- package/dist/renderer/trends.d.ts.map +1 -0
- package/dist/renderer/trends.js.map +1 -0
- package/dist/server/job-store.d.ts.map +1 -0
- package/dist/server/job-store.js.map +1 -0
- package/dist/server/report-server.d.ts.map +1 -0
- package/dist/server/report-server.js +899 -0
- package/dist/server/report-server.js.map +1 -0
- package/dist/server/report-store.d.ts.map +1 -0
- package/dist/server/report-store.js.map +1 -0
- package/dist/server/skill-index.d.ts +14 -0
- package/dist/server/skill-index.d.ts.map +1 -0
- package/dist/server/skill-index.js +384 -0
- package/dist/server/skill-index.js.map +1 -0
- package/dist/server/skill-insights.d.ts +32 -0
- package/dist/server/skill-insights.d.ts.map +1 -0
- package/dist/server/skill-insights.js +816 -0
- package/dist/server/skill-insights.js.map +1 -0
- package/dist/shared/hard-rules.d.ts.map +1 -0
- package/dist/shared/hard-rules.js.map +1 -0
- package/dist/shared/llm-prompts/index.d.ts +14 -0
- package/dist/shared/llm-prompts/index.d.ts.map +1 -0
- package/dist/shared/llm-prompts/index.js +22 -0
- package/dist/shared/llm-prompts/index.js.map +1 -0
- package/dist/shared/llm-prompts/skill-health.d.ts.map +1 -0
- package/dist/shared/llm-prompts/skill-health.js.map +1 -0
- package/dist/shared/time.d.ts.map +1 -0
- package/dist/shared/time.js.map +1 -0
- package/dist/shared/tool-search.d.ts.map +1 -0
- package/dist/shared/tool-search.js.map +1 -0
- package/dist/types/dependencies.d.ts +23 -0
- package/dist/types/dependencies.d.ts.map +1 -0
- package/dist/types/dependencies.js +2 -0
- package/dist/types/dependencies.js.map +1 -0
- package/dist/types/diagnosis.d.ts +88 -0
- package/dist/types/diagnosis.d.ts.map +1 -0
- package/dist/types/diagnosis.js +2 -0
- package/dist/types/diagnosis.js.map +1 -0
- package/dist/types/doctor.d.ts +157 -0
- package/dist/types/doctor.d.ts.map +1 -0
- package/dist/types/doctor.js.map +1 -0
- package/dist/types/eval.d.ts +378 -0
- package/dist/types/eval.d.ts.map +1 -0
- package/dist/types/eval.js.map +1 -0
- package/dist/types/executor.d.ts.map +1 -0
- package/dist/types/executor.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/judge.d.ts.map +1 -0
- package/dist/types/judge.js.map +1 -0
- package/dist/types/observability.d.ts +865 -0
- package/dist/types/observability.d.ts.map +1 -0
- package/dist/types/observability.js +14 -0
- package/dist/types/observability.js.map +1 -0
- package/dist/types/report.d.ts +560 -0
- package/dist/types/report.d.ts.map +1 -0
- package/dist/types/report.js.map +1 -0
- package/dist/types/shared.d.ts.map +1 -0
- package/dist/types/shared.js.map +1 -0
- package/dist/types/skill-index.d.ts +145 -0
- package/dist/types/skill-index.d.ts.map +1 -0
- package/dist/types/skill-index.js +2 -0
- package/dist/types/skill-index.js.map +1 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/util/safe-slice.d.ts +23 -0
- package/dist/util/safe-slice.d.ts.map +1 -0
- package/dist/util/safe-slice.js +33 -0
- package/dist/util/safe-slice.js.map +1 -0
- package/package.json +23 -16
- package/dist/src/analysis/coverage-analyzer.d.ts.map +0 -1
- package/dist/src/analysis/coverage-analyzer.js.map +0 -1
- package/dist/src/analysis/failure-clusterer.d.ts.map +0 -1
- package/dist/src/analysis/failure-clusterer.js.map +0 -1
- package/dist/src/analysis/gap-analyzer.d.ts +0 -121
- package/dist/src/analysis/gap-analyzer.d.ts.map +0 -1
- package/dist/src/analysis/gap-analyzer.js +0 -471
- package/dist/src/analysis/gap-analyzer.js.map +0 -1
- package/dist/src/analysis/hedging-classifier.d.ts.map +0 -1
- package/dist/src/analysis/hedging-classifier.js.map +0 -1
- package/dist/src/analysis/report-diagnostics.d.ts +0 -34
- package/dist/src/analysis/report-diagnostics.d.ts.map +0 -1
- package/dist/src/analysis/report-diagnostics.js +0 -753
- package/dist/src/analysis/report-diagnostics.js.map +0 -1
- package/dist/src/analysis/sample-diagnostics.d.ts.map +0 -1
- package/dist/src/analysis/sample-diagnostics.js.map +0 -1
- package/dist/src/analysis/saturation.d.ts +0 -85
- package/dist/src/analysis/saturation.d.ts.map +0 -1
- package/dist/src/analysis/saturation.js +0 -174
- package/dist/src/analysis/saturation.js.map +0 -1
- package/dist/src/authoring/evolver.d.ts +0 -102
- package/dist/src/authoring/evolver.d.ts.map +0 -1
- package/dist/src/authoring/evolver.js +0 -681
- package/dist/src/authoring/evolver.js.map +0 -1
- package/dist/src/authoring/generator.d.ts +0 -38
- package/dist/src/authoring/generator.d.ts.map +0 -1
- package/dist/src/authoring/generator.js +0 -720
- package/dist/src/authoring/generator.js.map +0 -1
- package/dist/src/authoring/sample-fixer.d.ts.map +0 -1
- package/dist/src/authoring/sample-fixer.js.map +0 -1
- package/dist/src/cli/commands/doctor.d.ts +0 -26
- package/dist/src/cli/commands/doctor.d.ts.map +0 -1
- package/dist/src/cli/commands/doctor.js +0 -283
- package/dist/src/cli/commands/doctor.js.map +0 -1
- package/dist/src/cli/commands/eval/gold/compare.d.ts.map +0 -1
- package/dist/src/cli/commands/eval/gold/compare.js.map +0 -1
- package/dist/src/cli/commands/eval/gold/index.d.ts.map +0 -1
- package/dist/src/cli/commands/eval/gold/index.js.map +0 -1
- package/dist/src/cli/commands/eval/gold/init.d.ts.map +0 -1
- package/dist/src/cli/commands/eval/gold/init.js.map +0 -1
- package/dist/src/cli/commands/eval/gold/validate.d.ts.map +0 -1
- package/dist/src/cli/commands/eval/gold/validate.js.map +0 -1
- package/dist/src/cli/commands/eval/index.d.ts.map +0 -1
- package/dist/src/cli/commands/eval/index.js +0 -465
- package/dist/src/cli/commands/eval/index.js.map +0 -1
- package/dist/src/cli/commands/evolve.d.ts +0 -37
- package/dist/src/cli/commands/evolve.d.ts.map +0 -1
- package/dist/src/cli/commands/evolve.js +0 -276
- package/dist/src/cli/commands/evolve.js.map +0 -1
- package/dist/src/cli/commands/init.d.ts.map +0 -1
- package/dist/src/cli/commands/init.js.map +0 -1
- package/dist/src/cli/commands/observe/inbox.d.ts.map +0 -1
- package/dist/src/cli/commands/observe/inbox.js +0 -258
- package/dist/src/cli/commands/observe/inbox.js.map +0 -1
- package/dist/src/cli/commands/observe/index.d.ts.map +0 -1
- package/dist/src/cli/commands/observe/index.js +0 -118
- package/dist/src/cli/commands/observe/index.js.map +0 -1
- package/dist/src/cli/commands/observe/ingest.d.ts.map +0 -1
- package/dist/src/cli/commands/observe/ingest.js +0 -69
- package/dist/src/cli/commands/observe/ingest.js.map +0 -1
- package/dist/src/cli/commands/observe/show.d.ts.map +0 -1
- package/dist/src/cli/commands/observe/show.js.map +0 -1
- package/dist/src/cli/commands/sample.d.ts +0 -38
- package/dist/src/cli/commands/sample.d.ts.map +0 -1
- package/dist/src/cli/commands/sample.js +0 -488
- package/dist/src/cli/commands/sample.js.map +0 -1
- package/dist/src/cli/commands/skill-extract.d.ts +0 -20
- package/dist/src/cli/commands/skill-extract.d.ts.map +0 -1
- package/dist/src/cli/commands/skill-extract.js +0 -84
- package/dist/src/cli/commands/skill-extract.js.map +0 -1
- package/dist/src/cli/commands/studio.d.ts.map +0 -1
- package/dist/src/cli/commands/studio.js +0 -158
- package/dist/src/cli/commands/studio.js.map +0 -1
- package/dist/src/cli/index.d.ts.map +0 -1
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/lib/cli-exit.d.ts.map +0 -1
- package/dist/src/cli/lib/cli-exit.js.map +0 -1
- package/dist/src/cli/lib/cmd-flags.d.ts +0 -236
- package/dist/src/cli/lib/cmd-flags.d.ts.map +0 -1
- package/dist/src/cli/lib/cmd-flags.js.map +0 -1
- package/dist/src/cli/lib/i18n-dict.d.ts +0 -54
- package/dist/src/cli/lib/i18n-dict.d.ts.map +0 -1
- package/dist/src/cli/lib/i18n-dict.js +0 -900
- package/dist/src/cli/lib/i18n-dict.js.map +0 -1
- package/dist/src/cli/lib/i18n.d.ts.map +0 -1
- package/dist/src/cli/lib/i18n.js.map +0 -1
- package/dist/src/cli/lib/parse-run-config.d.ts +0 -89
- package/dist/src/cli/lib/parse-run-config.d.ts.map +0 -1
- package/dist/src/cli/lib/parse-run-config.js +0 -252
- package/dist/src/cli/lib/parse-run-config.js.map +0 -1
- package/dist/src/cli/lib/progress.d.ts.map +0 -1
- package/dist/src/cli/lib/progress.js.map +0 -1
- package/dist/src/cli/lib/run-tally.d.ts.map +0 -1
- package/dist/src/cli/lib/run-tally.js.map +0 -1
- package/dist/src/cli/lib/shared.d.ts.map +0 -1
- package/dist/src/cli/lib/shared.js.map +0 -1
- package/dist/src/cli/lib/update-check.d.ts +0 -3
- package/dist/src/cli/lib/update-check.d.ts.map +0 -1
- package/dist/src/cli/lib/update-check.js +0 -37
- package/dist/src/cli/lib/update-check.js.map +0 -1
- package/dist/src/cli/oclif/base-command.d.ts.map +0 -1
- package/dist/src/cli/oclif/base-command.js.map +0 -1
- package/dist/src/cli/oclif/help.d.ts.map +0 -1
- package/dist/src/cli/oclif/help.js.map +0 -1
- package/dist/src/cli/oclif/i18n.d.ts.map +0 -1
- package/dist/src/cli/oclif/i18n.js.map +0 -1
- package/dist/src/cli/oclif/parsers.d.ts.map +0 -1
- package/dist/src/cli/oclif/parsers.js.map +0 -1
- package/dist/src/cli/oclif/projection.d.ts.map +0 -1
- package/dist/src/cli/oclif/projection.js.map +0 -1
- package/dist/src/cli/oclif/run.d.ts.map +0 -1
- package/dist/src/cli/oclif/run.js +0 -11
- package/dist/src/cli/oclif/run.js.map +0 -1
- package/dist/src/diagnosis/observe-mapper.d.ts.map +0 -1
- package/dist/src/diagnosis/observe-mapper.js.map +0 -1
- package/dist/src/diagnosis/observe-producer.d.ts.map +0 -1
- package/dist/src/diagnosis/observe-producer.js +0 -197
- package/dist/src/diagnosis/observe-producer.js.map +0 -1
- package/dist/src/diagnosis/studio-projection.d.ts +0 -14
- package/dist/src/diagnosis/studio-projection.d.ts.map +0 -1
- package/dist/src/diagnosis/studio-projection.js.map +0 -1
- package/dist/src/diagnosis/types.d.ts +0 -79
- package/dist/src/diagnosis/types.d.ts.map +0 -1
- package/dist/src/diagnosis/types.js +0 -20
- package/dist/src/diagnosis/types.js.map +0 -1
- package/dist/src/doctor/fixer.d.ts.map +0 -1
- package/dist/src/doctor/fixer.js.map +0 -1
- package/dist/src/doctor/health/builtin-dimensions.d.ts.map +0 -1
- package/dist/src/doctor/health/builtin-dimensions.js.map +0 -1
- package/dist/src/doctor/health/composer.d.ts.map +0 -1
- package/dist/src/doctor/health/composer.js +0 -296
- package/dist/src/doctor/health/composer.js.map +0 -1
- package/dist/src/doctor/health/dimension-registry.d.ts.map +0 -1
- package/dist/src/doctor/health/dimension-registry.js.map +0 -1
- package/dist/src/doctor/health/dimension-spec.d.ts +0 -47
- package/dist/src/doctor/health/dimension-spec.d.ts.map +0 -1
- package/dist/src/doctor/health/dimension-spec.js.map +0 -1
- package/dist/src/doctor/health/parser.d.ts.map +0 -1
- package/dist/src/doctor/health/parser.js.map +0 -1
- package/dist/src/doctor/health/prompt-builder.d.ts.map +0 -1
- package/dist/src/doctor/health/prompt-builder.js.map +0 -1
- package/dist/src/doctor/health/register.d.ts.map +0 -1
- package/dist/src/doctor/health/register.js.map +0 -1
- package/dist/src/doctor/html-renderer.d.ts +0 -20
- package/dist/src/doctor/html-renderer.d.ts.map +0 -1
- package/dist/src/doctor/html-renderer.js +0 -376
- package/dist/src/doctor/html-renderer.js.map +0 -1
- package/dist/src/doctor/index.d.ts.map +0 -1
- package/dist/src/doctor/index.js.map +0 -1
- package/dist/src/doctor/preflight.d.ts.map +0 -1
- package/dist/src/doctor/preflight.js.map +0 -1
- package/dist/src/doctor/renderer.d.ts +0 -17
- package/dist/src/doctor/renderer.d.ts.map +0 -1
- package/dist/src/doctor/renderer.js +0 -123
- package/dist/src/doctor/renderer.js.map +0 -1
- package/dist/src/doctor/rules.d.ts.map +0 -1
- package/dist/src/doctor/rules.js +0 -289
- package/dist/src/doctor/rules.js.map +0 -1
- package/dist/src/eval-core/bootstrap.d.ts +0 -72
- package/dist/src/eval-core/bootstrap.d.ts.map +0 -1
- package/dist/src/eval-core/bootstrap.js +0 -174
- package/dist/src/eval-core/bootstrap.js.map +0 -1
- package/dist/src/eval-core/cache.d.ts.map +0 -1
- package/dist/src/eval-core/cache.js.map +0 -1
- package/dist/src/eval-core/comparability.d.ts.map +0 -1
- package/dist/src/eval-core/comparability.js.map +0 -1
- package/dist/src/eval-core/dependency-checker.d.ts +0 -58
- package/dist/src/eval-core/dependency-checker.d.ts.map +0 -1
- package/dist/src/eval-core/dependency-checker.js.map +0 -1
- package/dist/src/eval-core/evaluation-execution.d.ts.map +0 -1
- package/dist/src/eval-core/evaluation-execution.js.map +0 -1
- package/dist/src/eval-core/evaluation-job.d.ts.map +0 -1
- package/dist/src/eval-core/evaluation-job.js.map +0 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts.map +0 -1
- package/dist/src/eval-core/evaluation-reporting.js +0 -292
- package/dist/src/eval-core/evaluation-reporting.js.map +0 -1
- package/dist/src/eval-core/execution-strategy.d.ts.map +0 -1
- package/dist/src/eval-core/execution-strategy.js +0 -165
- package/dist/src/eval-core/execution-strategy.js.map +0 -1
- package/dist/src/eval-core/fact-checker.d.ts.map +0 -1
- package/dist/src/eval-core/fact-checker.js.map +0 -1
- package/dist/src/eval-core/layer-gates.d.ts.map +0 -1
- package/dist/src/eval-core/layer-gates.js.map +0 -1
- package/dist/src/eval-core/mocks-runtime.d.ts.map +0 -1
- package/dist/src/eval-core/mocks-runtime.js +0 -559
- package/dist/src/eval-core/mocks-runtime.js.map +0 -1
- package/dist/src/eval-core/schema.d.ts.map +0 -1
- package/dist/src/eval-core/schema.js.map +0 -1
- package/dist/src/eval-core/statistics.d.ts.map +0 -1
- package/dist/src/eval-core/statistics.js.map +0 -1
- package/dist/src/eval-core/task-planner.d.ts.map +0 -1
- package/dist/src/eval-core/task-planner.js.map +0 -1
- package/dist/src/eval-core/verdict.d.ts +0 -77
- package/dist/src/eval-core/verdict.d.ts.map +0 -1
- package/dist/src/eval-core/verdict.js +0 -322
- package/dist/src/eval-core/verdict.js.map +0 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +0 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +0 -1
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts +0 -109
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +0 -1
- package/dist/src/eval-workflows/evaluation-pipeline.js +0 -373
- package/dist/src/eval-workflows/evaluation-pipeline.js.map +0 -1
- package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +0 -1
- package/dist/src/eval-workflows/evaluation-preparation.js +0 -77
- package/dist/src/eval-workflows/evaluation-preparation.js.map +0 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts +0 -151
- package/dist/src/eval-workflows/run-evaluation.d.ts.map +0 -1
- package/dist/src/eval-workflows/run-evaluation.js +0 -528
- package/dist/src/eval-workflows/run-evaluation.js.map +0 -1
- package/dist/src/executors/anthropic-api.d.ts.map +0 -1
- package/dist/src/executors/anthropic-api.js.map +0 -1
- package/dist/src/executors/claude-cli.d.ts.map +0 -1
- package/dist/src/executors/claude-cli.js.map +0 -1
- package/dist/src/executors/claude-sdk-trace.d.ts.map +0 -1
- package/dist/src/executors/claude-sdk-trace.js.map +0 -1
- package/dist/src/executors/claude-sdk.d.ts.map +0 -1
- package/dist/src/executors/claude-sdk.js.map +0 -1
- package/dist/src/executors/codex-cli-trace.d.ts.map +0 -1
- package/dist/src/executors/codex-cli-trace.js.map +0 -1
- package/dist/src/executors/codex-cli.d.ts.map +0 -1
- package/dist/src/executors/codex-cli.js.map +0 -1
- package/dist/src/executors/codex-sdk.d.ts.map +0 -1
- package/dist/src/executors/codex-sdk.js.map +0 -1
- package/dist/src/executors/gemini.d.ts.map +0 -1
- package/dist/src/executors/gemini.js.map +0 -1
- package/dist/src/executors/index.d.ts.map +0 -1
- package/dist/src/executors/index.js.map +0 -1
- package/dist/src/executors/openai-api.d.ts.map +0 -1
- package/dist/src/executors/openai-api.js.map +0 -1
- package/dist/src/executors/runtime-fingerprint.d.ts.map +0 -1
- package/dist/src/executors/runtime-fingerprint.js.map +0 -1
- package/dist/src/executors/script.d.ts.map +0 -1
- package/dist/src/executors/script.js.map +0 -1
- package/dist/src/executors/shared.d.ts +0 -194
- package/dist/src/executors/shared.d.ts.map +0 -1
- package/dist/src/executors/shared.js +0 -256
- package/dist/src/executors/shared.js.map +0 -1
- package/dist/src/grading/assertions.d.ts.map +0 -1
- package/dist/src/grading/assertions.js.map +0 -1
- package/dist/src/grading/debias-validate.d.ts.map +0 -1
- package/dist/src/grading/debias-validate.js.map +0 -1
- package/dist/src/grading/diagnostic.d.ts.map +0 -1
- package/dist/src/grading/diagnostic.js.map +0 -1
- package/dist/src/grading/gold-cli.d.ts.map +0 -1
- package/dist/src/grading/gold-cli.js.map +0 -1
- package/dist/src/grading/gold-dataset.d.ts.map +0 -1
- package/dist/src/grading/gold-dataset.js.map +0 -1
- package/dist/src/grading/human-gold.d.ts.map +0 -1
- package/dist/src/grading/human-gold.js.map +0 -1
- package/dist/src/grading/index.d.ts.map +0 -1
- package/dist/src/grading/index.js.map +0 -1
- package/dist/src/grading/judge.d.ts.map +0 -1
- package/dist/src/grading/judge.js.map +0 -1
- package/dist/src/grading/layered-scores.d.ts.map +0 -1
- package/dist/src/grading/layered-scores.js.map +0 -1
- package/dist/src/inputs/eval-config.d.ts.map +0 -1
- package/dist/src/inputs/eval-config.js +0 -251
- package/dist/src/inputs/eval-config.js.map +0 -1
- package/dist/src/inputs/load-samples.d.ts.map +0 -1
- package/dist/src/inputs/load-samples.js.map +0 -1
- package/dist/src/inputs/mcp-resolver.d.ts.map +0 -1
- package/dist/src/inputs/mcp-resolver.js.map +0 -1
- package/dist/src/inputs/skill-loader.d.ts +0 -27
- package/dist/src/inputs/skill-loader.d.ts.map +0 -1
- package/dist/src/inputs/skill-loader.js +0 -253
- package/dist/src/inputs/skill-loader.js.map +0 -1
- package/dist/src/inputs/url-fetcher.d.ts.map +0 -1
- package/dist/src/inputs/url-fetcher.js.map +0 -1
- package/dist/src/observability/experience.d.ts +0 -441
- package/dist/src/observability/experience.d.ts.map +0 -1
- package/dist/src/observability/experience.js +0 -2400
- package/dist/src/observability/experience.js.map +0 -1
- package/dist/src/observability/inbox-view-model.d.ts +0 -30
- package/dist/src/observability/inbox-view-model.d.ts.map +0 -1
- package/dist/src/observability/inbox-view-model.js +0 -144
- package/dist/src/observability/inbox-view-model.js.map +0 -1
- package/dist/src/observability/inbox.d.ts +0 -127
- package/dist/src/observability/inbox.d.ts.map +0 -1
- package/dist/src/observability/inbox.js +0 -755
- package/dist/src/observability/inbox.js.map +0 -1
- package/dist/src/observability/problem-patterns.d.ts +0 -52
- package/dist/src/observability/problem-patterns.d.ts.map +0 -1
- package/dist/src/observability/problem-patterns.js +0 -205
- package/dist/src/observability/problem-patterns.js.map +0 -1
- package/dist/src/observability/resolved-review.d.ts +0 -25
- package/dist/src/observability/resolved-review.d.ts.map +0 -1
- package/dist/src/observability/resolved-review.js +0 -231
- package/dist/src/observability/resolved-review.js.map +0 -1
- package/dist/src/observability/review-state.d.ts +0 -61
- package/dist/src/observability/review-state.d.ts.map +0 -1
- package/dist/src/observability/review-state.js.map +0 -1
- package/dist/src/observability/skill-chain-advisories.d.ts +0 -25
- package/dist/src/observability/skill-chain-advisories.d.ts.map +0 -1
- package/dist/src/observability/skill-chain-advisories.js.map +0 -1
- package/dist/src/observability/skill-chain.d.ts +0 -62
- package/dist/src/observability/skill-chain.d.ts.map +0 -1
- package/dist/src/observability/skill-chain.js +0 -270
- package/dist/src/observability/skill-chain.js.map +0 -1
- package/dist/src/observability/skill-health-analyzer.d.ts +0 -83
- package/dist/src/observability/skill-health-analyzer.d.ts.map +0 -1
- package/dist/src/observability/skill-health-analyzer.js +0 -238
- package/dist/src/observability/skill-health-analyzer.js.map +0 -1
- package/dist/src/observability/soft-standards.d.ts +0 -130
- package/dist/src/observability/soft-standards.d.ts.map +0 -1
- package/dist/src/observability/soft-standards.js +0 -426
- package/dist/src/observability/soft-standards.js.map +0 -1
- package/dist/src/observability/text-signals.d.ts +0 -14
- package/dist/src/observability/text-signals.d.ts.map +0 -1
- package/dist/src/observability/text-signals.js +0 -106
- package/dist/src/observability/text-signals.js.map +0 -1
- package/dist/src/observability/trace-adapter.d.ts.map +0 -1
- package/dist/src/observability/trace-adapter.js.map +0 -1
- package/dist/src/observability/trace-attribution.d.ts +0 -56
- package/dist/src/observability/trace-attribution.d.ts.map +0 -1
- package/dist/src/observability/trace-attribution.js +0 -200
- package/dist/src/observability/trace-attribution.js.map +0 -1
- package/dist/src/observability/trace-segmenter.d.ts +0 -52
- package/dist/src/observability/trace-segmenter.d.ts.map +0 -1
- package/dist/src/observability/trace-segmenter.js +0 -322
- package/dist/src/observability/trace-segmenter.js.map +0 -1
- package/dist/src/observability/trace-source.d.ts +0 -99
- package/dist/src/observability/trace-source.d.ts.map +0 -1
- package/dist/src/observability/trace-source.js +0 -502
- package/dist/src/observability/trace-source.js.map +0 -1
- package/dist/src/renderer/html-renderer.d.ts.map +0 -1
- package/dist/src/renderer/html-renderer.js.map +0 -1
- package/dist/src/renderer/layout.d.ts.map +0 -1
- package/dist/src/renderer/layout.js +0 -774
- package/dist/src/renderer/layout.js.map +0 -1
- package/dist/src/renderer/observation-inbox-renderer.d.ts +0 -4
- package/dist/src/renderer/observation-inbox-renderer.d.ts.map +0 -1
- package/dist/src/renderer/observation-inbox-renderer.js +0 -10366
- package/dist/src/renderer/observation-inbox-renderer.js.map +0 -1
- package/dist/src/renderer/skill-detail-renderer.d.ts +0 -15
- package/dist/src/renderer/skill-detail-renderer.d.ts.map +0 -1
- package/dist/src/renderer/skill-detail-renderer.js +0 -1244
- package/dist/src/renderer/skill-detail-renderer.js.map +0 -1
- package/dist/src/renderer/skill-health-renderer.d.ts.map +0 -1
- package/dist/src/renderer/skill-health-renderer.js +0 -253
- package/dist/src/renderer/skill-health-renderer.js.map +0 -1
- package/dist/src/renderer/skill-list-renderer.d.ts +0 -4
- package/dist/src/renderer/skill-list-renderer.d.ts.map +0 -1
- package/dist/src/renderer/skill-list-renderer.js +0 -334
- package/dist/src/renderer/skill-list-renderer.js.map +0 -1
- package/dist/src/renderer/summary.d.ts +0 -68
- package/dist/src/renderer/summary.d.ts.map +0 -1
- package/dist/src/renderer/summary.js +0 -1896
- package/dist/src/renderer/summary.js.map +0 -1
- package/dist/src/renderer/table.d.ts.map +0 -1
- package/dist/src/renderer/table.js.map +0 -1
- package/dist/src/renderer/test-view.d.ts.map +0 -1
- package/dist/src/renderer/test-view.js.map +0 -1
- package/dist/src/renderer/trends.d.ts.map +0 -1
- package/dist/src/renderer/trends.js.map +0 -1
- package/dist/src/server/job-store.d.ts.map +0 -1
- package/dist/src/server/job-store.js.map +0 -1
- package/dist/src/server/report-server.d.ts.map +0 -1
- package/dist/src/server/report-server.js +0 -894
- package/dist/src/server/report-server.js.map +0 -1
- package/dist/src/server/report-store.d.ts.map +0 -1
- package/dist/src/server/report-store.js.map +0 -1
- package/dist/src/server/skill-index.d.ts +0 -81
- package/dist/src/server/skill-index.d.ts.map +0 -1
- package/dist/src/server/skill-index.js +0 -377
- package/dist/src/server/skill-index.js.map +0 -1
- package/dist/src/server/skill-insights.d.ts +0 -101
- package/dist/src/server/skill-insights.d.ts.map +0 -1
- package/dist/src/server/skill-insights.js +0 -788
- package/dist/src/server/skill-insights.js.map +0 -1
- package/dist/src/shared/hard-rules.d.ts.map +0 -1
- package/dist/src/shared/hard-rules.js.map +0 -1
- package/dist/src/shared/llm-prompts/index.d.ts +0 -14
- package/dist/src/shared/llm-prompts/index.d.ts.map +0 -1
- package/dist/src/shared/llm-prompts/index.js +0 -35
- package/dist/src/shared/llm-prompts/index.js.map +0 -1
- package/dist/src/shared/llm-prompts/skill-health.d.ts.map +0 -1
- package/dist/src/shared/llm-prompts/skill-health.js.map +0 -1
- package/dist/src/shared/time.d.ts.map +0 -1
- package/dist/src/shared/time.js.map +0 -1
- package/dist/src/shared/tool-search.d.ts.map +0 -1
- package/dist/src/shared/tool-search.js.map +0 -1
- package/dist/src/types/doctor.d.ts +0 -157
- package/dist/src/types/doctor.d.ts.map +0 -1
- package/dist/src/types/doctor.js.map +0 -1
- package/dist/src/types/eval.d.ts +0 -377
- package/dist/src/types/eval.d.ts.map +0 -1
- package/dist/src/types/eval.js.map +0 -1
- package/dist/src/types/executor.d.ts.map +0 -1
- package/dist/src/types/executor.js.map +0 -1
- package/dist/src/types/index.d.ts +0 -8
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -8
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/judge.d.ts.map +0 -1
- package/dist/src/types/judge.js.map +0 -1
- package/dist/src/types/report.d.ts +0 -557
- package/dist/src/types/report.d.ts.map +0 -1
- package/dist/src/types/report.js.map +0 -1
- package/dist/src/types/shared.d.ts.map +0 -1
- package/dist/src/types/shared.js.map +0 -1
- package/dist/src/types/storage.d.ts.map +0 -1
- package/dist/src/types/storage.js.map +0 -1
- package/dist/src/util/safe-slice.d.ts +0 -23
- package/dist/src/util/safe-slice.d.ts.map +0 -1
- package/dist/src/util/safe-slice.js +0 -33
- package/dist/src/util/safe-slice.js.map +0 -1
- package/docs/prompts/llm-enhanced-review.prompt.md +0 -111
- /package/dist/{src/analysis → analysis}/coverage-analyzer.d.ts +0 -0
- /package/dist/{src/analysis → analysis}/coverage-analyzer.js +0 -0
- /package/dist/{src/analysis → analysis}/failure-clusterer.d.ts +0 -0
- /package/dist/{src/analysis → analysis}/failure-clusterer.js +0 -0
- /package/dist/{src/analysis → analysis}/hedging-classifier.d.ts +0 -0
- /package/dist/{src/analysis → analysis}/hedging-classifier.js +0 -0
- /package/dist/{src/analysis → analysis}/sample-diagnostics.d.ts +0 -0
- /package/dist/{src/analysis → analysis}/sample-diagnostics.js +0 -0
- /package/dist/{src/authoring → authoring}/sample-fixer.d.ts +0 -0
- /package/dist/{src/authoring → authoring}/sample-fixer.js +0 -0
- /package/dist/{src/cli → cli}/commands/eval/gold/compare.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/eval/gold/compare.js +0 -0
- /package/dist/{src/cli → cli}/commands/eval/gold/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/eval/gold/index.js +0 -0
- /package/dist/{src/cli → cli}/commands/eval/gold/init.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/eval/gold/init.js +0 -0
- /package/dist/{src/cli → cli}/commands/eval/gold/validate.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/eval/gold/validate.js +0 -0
- /package/dist/{src/cli → cli}/commands/eval/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/init.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/init.js +0 -0
- /package/dist/{src/cli → cli}/commands/observe/inbox.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/observe/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/observe/ingest.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/observe/show.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/observe/show.js +0 -0
- /package/dist/{src/cli → cli}/commands/studio.d.ts +0 -0
- /package/dist/{src/cli → cli}/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/index.js +0 -0
- /package/dist/{src/cli → cli}/lib/cli-exit.d.ts +0 -0
- /package/dist/{src/cli → cli}/lib/cli-exit.js +0 -0
- /package/dist/{src/cli → cli}/lib/cmd-flags.js +0 -0
- /package/dist/{src/cli → cli}/lib/i18n.d.ts +0 -0
- /package/dist/{src/cli → cli}/lib/i18n.js +0 -0
- /package/dist/{src/cli → cli}/lib/progress.d.ts +0 -0
- /package/dist/{src/cli → cli}/lib/progress.js +0 -0
- /package/dist/{src/cli → cli}/lib/run-tally.d.ts +0 -0
- /package/dist/{src/cli → cli}/lib/run-tally.js +0 -0
- /package/dist/{src/cli → cli}/lib/shared.d.ts +0 -0
- /package/dist/{src/cli → cli}/lib/shared.js +0 -0
- /package/dist/{src/cli → cli}/oclif/base-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/oclif/base-command.js +0 -0
- /package/dist/{src/cli → cli}/oclif/help.d.ts +0 -0
- /package/dist/{src/cli → cli}/oclif/help.js +0 -0
- /package/dist/{src/cli → cli}/oclif/i18n.d.ts +0 -0
- /package/dist/{src/cli → cli}/oclif/i18n.js +0 -0
- /package/dist/{src/cli → cli}/oclif/parsers.d.ts +0 -0
- /package/dist/{src/cli → cli}/oclif/parsers.js +0 -0
- /package/dist/{src/cli → cli}/oclif/projection.d.ts +0 -0
- /package/dist/{src/cli → cli}/oclif/projection.js +0 -0
- /package/dist/{src/cli → cli}/oclif/run.d.ts +0 -0
- /package/dist/{src/diagnosis → diagnosis}/observe-mapper.d.ts +0 -0
- /package/dist/{src/diagnosis → diagnosis}/observe-mapper.js +0 -0
- /package/dist/{src/diagnosis → diagnosis}/observe-producer.d.ts +0 -0
- /package/dist/{src/diagnosis → diagnosis}/studio-projection.js +0 -0
- /package/dist/{src/doctor → doctor}/fixer.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/fixer.js +0 -0
- /package/dist/{src/doctor → doctor}/health/builtin-dimensions.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/health/builtin-dimensions.js +0 -0
- /package/dist/{src/doctor → doctor}/health/composer.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/health/dimension-registry.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/health/dimension-registry.js +0 -0
- /package/dist/{src/doctor → doctor}/health/dimension-spec.js +0 -0
- /package/dist/{src/doctor → doctor}/health/parser.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/health/parser.js +0 -0
- /package/dist/{src/doctor → doctor}/health/prompt-builder.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/health/prompt-builder.js +0 -0
- /package/dist/{src/doctor → doctor}/health/register.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/health/register.js +0 -0
- /package/dist/{src/doctor → doctor}/index.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/index.js +0 -0
- /package/dist/{src/doctor → doctor}/preflight.d.ts +0 -0
- /package/dist/{src/doctor → doctor}/preflight.js +0 -0
- /package/dist/{src/doctor → doctor}/rules.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/cache.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/cache.js +0 -0
- /package/dist/{src/eval-core → eval-core}/comparability.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/comparability.js +0 -0
- /package/dist/{src/eval-core → eval-core}/dependency-checker.js +0 -0
- /package/dist/{src/eval-core → eval-core}/evaluation-execution.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/evaluation-execution.js +0 -0
- /package/dist/{src/eval-core → eval-core}/evaluation-job.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/evaluation-job.js +0 -0
- /package/dist/{src/eval-core → eval-core}/evaluation-reporting.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/execution-strategy.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/fact-checker.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/fact-checker.js +0 -0
- /package/dist/{src/eval-core → eval-core}/layer-gates.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/layer-gates.js +0 -0
- /package/dist/{src/eval-core → eval-core}/mock-hook.cjs +0 -0
- /package/dist/{src/eval-core → eval-core}/mocks-runtime.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/schema.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/schema.js +0 -0
- /package/dist/{src/eval-core → eval-core}/statistics.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/statistics.js +0 -0
- /package/dist/{src/eval-core → eval-core}/task-planner.d.ts +0 -0
- /package/dist/{src/eval-core → eval-core}/task-planner.js +0 -0
- /package/dist/{src/eval-workflows → eval-workflows}/batch-evaluation-workflow.d.ts +0 -0
- /package/dist/{src/eval-workflows → eval-workflows}/batch-evaluation-workflow.js +0 -0
- /package/dist/{src/eval-workflows → eval-workflows}/evaluation-preparation.d.ts +0 -0
- /package/dist/{src/executors → executors}/anthropic-api.d.ts +0 -0
- /package/dist/{src/executors → executors}/anthropic-api.js +0 -0
- /package/dist/{src/executors → executors}/claude-cli.d.ts +0 -0
- /package/dist/{src/executors → executors}/claude-cli.js +0 -0
- /package/dist/{src/executors → executors}/claude-sdk-trace.d.ts +0 -0
- /package/dist/{src/executors → executors}/claude-sdk-trace.js +0 -0
- /package/dist/{src/executors → executors}/claude-sdk.d.ts +0 -0
- /package/dist/{src/executors → executors}/claude-sdk.js +0 -0
- /package/dist/{src/executors → executors}/codex-cli-trace.d.ts +0 -0
- /package/dist/{src/executors → executors}/codex-cli-trace.js +0 -0
- /package/dist/{src/executors → executors}/codex-cli.d.ts +0 -0
- /package/dist/{src/executors → executors}/codex-cli.js +0 -0
- /package/dist/{src/executors → executors}/codex-sdk.d.ts +0 -0
- /package/dist/{src/executors → executors}/codex-sdk.js +0 -0
- /package/dist/{src/executors → executors}/gemini.d.ts +0 -0
- /package/dist/{src/executors → executors}/gemini.js +0 -0
- /package/dist/{src/executors → executors}/index.d.ts +0 -0
- /package/dist/{src/executors → executors}/index.js +0 -0
- /package/dist/{src/executors → executors}/openai-api.d.ts +0 -0
- /package/dist/{src/executors → executors}/openai-api.js +0 -0
- /package/dist/{src/executors → executors}/runtime-fingerprint.d.ts +0 -0
- /package/dist/{src/executors → executors}/runtime-fingerprint.js +0 -0
- /package/dist/{src/executors → executors}/script.d.ts +0 -0
- /package/dist/{src/executors → executors}/script.js +0 -0
- /package/dist/{src/grading → grading}/assertions.d.ts +0 -0
- /package/dist/{src/grading → grading}/assertions.js +0 -0
- /package/dist/{src/grading → grading}/debias-validate.d.ts +0 -0
- /package/dist/{src/grading → grading}/debias-validate.js +0 -0
- /package/dist/{src/grading → grading}/diagnostic.d.ts +0 -0
- /package/dist/{src/grading → grading}/diagnostic.js +0 -0
- /package/dist/{src/grading → grading}/gold-cli.d.ts +0 -0
- /package/dist/{src/grading → grading}/gold-cli.js +0 -0
- /package/dist/{src/grading → grading}/gold-dataset.d.ts +0 -0
- /package/dist/{src/grading → grading}/gold-dataset.js +0 -0
- /package/dist/{src/grading → grading}/human-gold.d.ts +0 -0
- /package/dist/{src/grading → grading}/human-gold.js +0 -0
- /package/dist/{src/grading → grading}/index.d.ts +0 -0
- /package/dist/{src/grading → grading}/index.js +0 -0
- /package/dist/{src/grading → grading}/judge.d.ts +0 -0
- /package/dist/{src/grading → grading}/judge.js +0 -0
- /package/dist/{src/grading → grading}/layered-scores.d.ts +0 -0
- /package/dist/{src/grading → grading}/layered-scores.js +0 -0
- /package/dist/{src/inputs → inputs}/eval-config.d.ts +0 -0
- /package/dist/{src/inputs → inputs}/load-samples.d.ts +0 -0
- /package/dist/{src/inputs → inputs}/load-samples.js +0 -0
- /package/dist/{src/inputs → inputs}/mcp-resolver.d.ts +0 -0
- /package/dist/{src/inputs → inputs}/mcp-resolver.js +0 -0
- /package/dist/{src/inputs → inputs}/url-fetcher.d.ts +0 -0
- /package/dist/{src/inputs → inputs}/url-fetcher.js +0 -0
- /package/dist/{src/observability → observability}/review-state.js +0 -0
- /package/dist/{src/observability → observability}/skill-chain-advisories.js +0 -0
- /package/dist/{src/observability → observability}/trace-adapter.d.ts +0 -0
- /package/dist/{src/observability → observability}/trace-adapter.js +0 -0
- /package/dist/{src/renderer → renderer}/html-renderer.d.ts +0 -0
- /package/dist/{src/renderer → renderer}/html-renderer.js +0 -0
- /package/dist/{src/renderer → renderer}/layout.d.ts +0 -0
- /package/dist/{src/renderer → renderer}/skill-health-renderer.d.ts +0 -0
- /package/dist/{src/renderer → renderer}/table.d.ts +0 -0
- /package/dist/{src/renderer → renderer}/table.js +0 -0
- /package/dist/{src/renderer → renderer}/test-view.d.ts +0 -0
- /package/dist/{src/renderer → renderer}/test-view.js +0 -0
- /package/dist/{src/renderer → renderer}/trends.d.ts +0 -0
- /package/dist/{src/renderer → renderer}/trends.js +0 -0
- /package/dist/{src/server → server}/job-store.d.ts +0 -0
- /package/dist/{src/server → server}/job-store.js +0 -0
- /package/dist/{src/server → server}/report-server.d.ts +0 -0
- /package/dist/{src/server → server}/report-store.d.ts +0 -0
- /package/dist/{src/server → server}/report-store.js +0 -0
- /package/dist/{src/shared → shared}/hard-rules.d.ts +0 -0
- /package/dist/{src/shared → shared}/hard-rules.js +0 -0
- /package/dist/{src/shared → shared}/llm-prompts/skill-health.d.ts +0 -0
- /package/dist/{src/shared → shared}/llm-prompts/skill-health.js +0 -0
- /package/dist/{src/shared → shared}/time.d.ts +0 -0
- /package/dist/{src/shared → shared}/time.js +0 -0
- /package/dist/{src/shared → shared}/tool-search.d.ts +0 -0
- /package/dist/{src/shared → shared}/tool-search.js +0 -0
- /package/dist/{src/types → types}/doctor.js +0 -0
- /package/dist/{src/types → types}/eval.js +0 -0
- /package/dist/{src/types → types}/executor.d.ts +0 -0
- /package/dist/{src/types → types}/executor.js +0 -0
- /package/dist/{src/types → types}/judge.d.ts +0 -0
- /package/dist/{src/types → types}/judge.js +0 -0
- /package/dist/{src/types → types}/report.js +0 -0
- /package/dist/{src/types → types}/shared.d.ts +0 -0
- /package/dist/{src/types → types}/shared.js +0 -0
- /package/dist/{src/types → types}/storage.d.ts +0 -0
- /package/dist/{src/types → types}/storage.js +0 -0
package/README.md
CHANGED
|
@@ -8,34 +8,32 @@
|
|
|
8
8
|
|
|
9
9
|
**English** | [简体中文](./README.zh.md)
|
|
10
10
|
|
|
11
|
-
**
|
|
12
|
-
|
|
11
|
+
**Did your prompt actually get better?**
|
|
12
|
+
A/B test your prompts and skills with statistical rigor — bootstrap CI and length-debias on by default, Krippendorff α the moment you add a gold set.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<a id="statistical-rigor"></a>
|
|
17
|
-
> Built-in: Bootstrap CI · Krippendorff α (judge ↔ human) · length-debias · saturation curves · construct-validity isolation. [Why these matter →](docs/statistical-rigor.md)
|
|
18
|
-
|
|
19
|
-

|
|
14
|
+

|
|
20
15
|
|
|
21
16
|
## Quick start
|
|
22
17
|
|
|
23
18
|
```bash
|
|
24
|
-
npm i oh-my-knowledge
|
|
25
|
-
omk init
|
|
26
|
-
|
|
27
|
-
omk eval --control code-review-v1 --treatment code-review-v2 # → HTML report with verdict in 5 minutes
|
|
19
|
+
npm i -g oh-my-knowledge
|
|
20
|
+
omk init demo && cd demo
|
|
21
|
+
omk eval --control code-review-v1 --treatment code-review-v2
|
|
28
22
|
```
|
|
29
23
|
|
|
24
|
+
That's it — no editing required. `omk init` scaffolds two skill variants and three sample cases; `omk eval` runs the controlled A/B and opens an HTML report with a one-line verdict in about five minutes.
|
|
25
|
+
|
|
26
|
+
> The CLI notifies you when a newer version is available (at most once per 20h); set `OMK_SKIP_UPDATE_CHECK=1` to silence it permanently.
|
|
27
|
+
|
|
30
28
|
Walkthrough: [5-minute quickstart guide](docs/quickstart-skill-eval.md) (recommended for first-time users).
|
|
31
29
|
|
|
32
|
-
Deeper: [
|
|
30
|
+
Deeper: [CLI reference](docs/reference/cli.md) · [how it works](docs/explanation/architecture.md) · [eval sample format](docs/reference/eval-sample-format.md) · [executors & artifact layout](docs/reference/executors.md)
|
|
33
31
|
|
|
34
32
|
## Use inside AI Coding Agents
|
|
35
33
|
|
|
36
34
|
### Use inside Claude Code
|
|
37
35
|
|
|
38
|
-
When the `omk` skill is available in Claude Code, you can invoke it directly
|
|
36
|
+
When the `omk` skill is available in Claude Code, you can invoke it directly:
|
|
39
37
|
|
|
40
38
|
```bash
|
|
41
39
|
/omk eval # evaluate the artifact(s) in the current project
|
|
@@ -43,11 +41,11 @@ When the `omk` skill is available in Claude Code, you can invoke it directly lik
|
|
|
43
41
|
/omk sample # generate or fill test cases
|
|
44
42
|
```
|
|
45
43
|
|
|
46
|
-
These slash commands are natural-language entry points — the agent reads the conversation context to figure out which skill to operate on
|
|
44
|
+
These slash commands are natural-language entry points — the agent reads the conversation context to figure out which skill to operate on. You can also just say "compare v1 vs v2 for me" or "improve this artifact" and omk picks the right command.
|
|
47
45
|
|
|
48
46
|
### Use inside Codex
|
|
49
47
|
|
|
50
|
-
Codex does not support Claude Code style `/omk ...` slash commands
|
|
48
|
+
Codex does not support Claude Code style `/omk ...` slash commands. Ask the agent to run the `omk` CLI directly:
|
|
51
49
|
|
|
52
50
|
```bash
|
|
53
51
|
omk eval
|
|
@@ -61,22 +59,12 @@ You can also describe the goal in natural language, such as "compare v1 vs v2" o
|
|
|
61
59
|
|
|
62
60
|
Teams doing knowledge engineering produce lots of knowledge artifacts (skills today, but also prompts, agents, workflows…). When someone asks "why is v2 better than v1", you need objective data instead of gut feeling. `oh-my-knowledge` solves this with controlled experiments: **same model, same test samples, only the knowledge artifact changes.**
|
|
63
61
|
|
|
64
|
-
## Key features
|
|
65
|
-
|
|
66
|
-
- **LLM health audit** — `omk doctor` runs a single LLM session that emits a multi-dimension report; 7 builtin dimensions (trigger & boundary / doc clarity / instruction precision / dependency / tool conventions / security & compliance / example completeness) each get a *healthy / sub-healthy / unhealthy / N-A* grade plus findings and suggestions; dimensions are extensible, and `--html` produces a visual report. Pass `--static-only` for an offline mode (CI nodes without an LLM, debugging without network) that runs the static checks only (readability / metadata / dependencies / samples contract). `omk eval` still runs static readability / metadata / dependency gates internally to protect eval quality (separation of roles: doctor = audit, eval = evaluate)
|
|
67
|
-
- **Controlled-variable offline eval** — fix the model and samples, vary only the artifact; works with Claude Code skills, CLAUDE.md prompts, RAG knowledge bases, or any markdown-based instruction
|
|
68
|
-
- **Six-dimension scoring** — separate signals for Fact / Behavior / LLM-judge / Cost / Efficiency / Stability, so a regression in one axis isn't hidden by gains in another
|
|
69
|
-
- **Production session observability** — parse Claude Code session JSONL traces, measure per-skill failure rate, latency, token cost, and knowledge-gap signals on real user sessions
|
|
70
|
-
- **Knowledge-gap detection** — severity-weighted signals (explicit markers / failed searches / hedging language / repeated failures) quantify risk exposure instead of claiming completeness
|
|
71
|
-
- **Pre-merge CI gate** — `omk eval` enforces three-layer all-pass (fact + behavior + llm-judge) semantics, catching single-layer regressions a composite score would hide
|
|
72
|
-
- **One-line ship/no-ship verdict** — `omk eval` aggregates bootstrap CI / three-layer ci-gate / saturation / human α into a six-tier verdict (PROGRESS / CAUTIOUS / REGRESS / NOISE / UNDERPOWERED / SOLO) plus an action recommendation; the exit code reflects whether to ship
|
|
73
|
-
|
|
74
62
|
## Why omk over alternatives
|
|
75
63
|
|
|
76
64
|
| | omk | promptfoo | DeepEval | LangSmith |
|
|
77
65
|
|--|--|--|--|--|
|
|
78
66
|
| Bootstrap CI | ✓ default | ✗ | ✗ | ✗ |
|
|
79
|
-
| Krippendorff α (judge ↔ human) | ✓
|
|
67
|
+
| Krippendorff α (judge ↔ human) | ✓ with gold set | ✗ | ✗ | ✗ |
|
|
80
68
|
| Length-debias judge prompt | ✓ default | ✗ | ✗ | ✗ |
|
|
81
69
|
| Saturation curve | ✓ | ✗ | ✗ | ✗ |
|
|
82
70
|
| Three-layer scoring isolation | ✓ | ✗ | partial | ✗ |
|
|
@@ -84,9 +72,9 @@ Teams doing knowledge engineering produce lots of knowledge artifacts (skills to
|
|
|
84
72
|
| Native Claude Code skill | ✓ | ✗ | ✗ | ✗ |
|
|
85
73
|
| Hosted SaaS dashboard | ✗ | ✗ | ✓ | ✓ |
|
|
86
74
|
|
|
87
|
-
omk's moat is **default-on safety net** — Bootstrap CI
|
|
75
|
+
omk's moat is **default-on safety net** — Bootstrap CI and length-debias aren't advanced flags; they're the default, and judge ↔ human α comes free the moment you add a gold set. Other tools let you opt into confidence intervals; omk makes them unavoidable. Need a hosted SaaS dashboard? Choose LangSmith. Want quick local prompt iteration without statistics? Choose promptfoo. **Shipping to production and someone will ask "why should I trust this number?" Choose omk.**
|
|
88
76
|
|
|
89
|
-
RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full comparison with 7 tools across 25+ dimensions: [docs/comparison.md](docs/comparison.md).
|
|
77
|
+
RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full comparison with 7 tools across 25+ dimensions: [docs/reference/comparison.md](docs/reference/comparison.md).
|
|
90
78
|
|
|
91
79
|
## Features
|
|
92
80
|
|
|
@@ -94,830 +82,33 @@ RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full compa
|
|
|
94
82
|
|---|---|
|
|
95
83
|
| **One-line verdict** | `omk eval` six-tier verdict + ship recommendation + exit-code routing; HTML pill shares the same rules |
|
|
96
84
|
| **Six-dim evaluation** | Fact / Behavior / LLM-judge / Cost / Efficiency / Stability shown independently |
|
|
97
|
-
| **Multi-executor** | Claude CLI / Claude SDK / Codex CLI / Codex SDK / OpenAI / Gemini / any custom command |
|
|
98
|
-
| **
|
|
99
|
-
| **Statistical rigor** | Bootstrap CI /
|
|
100
|
-
| **RAG metrics** | `faithfulness` / `answer_relevancy` / `context_recall` — anti-hallucination + answer relevance + context coverage
|
|
101
|
-
| **
|
|
102
|
-
| **
|
|
103
|
-
| **
|
|
85
|
+
| **Multi-executor** | Claude CLI / Claude SDK / Codex CLI / Codex SDK / OpenAI / Gemini / Anthropic API / any custom command |
|
|
86
|
+
| **30+ assertion types** | substring, regex, JSON Schema, ROUGE/BLEU/Levenshtein similarity, agent tool-call assertions, semantic similarity, custom JS |
|
|
87
|
+
| **Statistical rigor** | Bootstrap CI / length-debias / saturation curve on by default; Krippendorff α auto-computed with a gold set. [Details →](docs/explanation/statistical-rigor.md) |
|
|
88
|
+
| **RAG metrics** | `faithfulness` / `answer_relevancy` / `context_recall` — anti-hallucination + answer relevance + context coverage |
|
|
89
|
+
| **LLM health audit** | `omk doctor` grades 7 builtin dimensions; `--static-only` runs offline without an LLM |
|
|
90
|
+
| **Production observability** | parse Claude Code session JSONL traces; measure per-skill failure rate / latency / cost / knowledge-gap signals |
|
|
91
|
+
| **Knowledge-gap detection** | severity-weighted signals quantify risk exposure instead of claiming completeness |
|
|
92
|
+
| **Construct-validity isolation** | `--strict-baseline` (default ON) cuts three contamination channels so baseline doesn't silently see the skill it's being compared against |
|
|
93
|
+
| **Sample design science** | sample schema with `capability` / `difficulty` / `construct` / `provenance` metadata (HF Dataset Cards style); studio surfaces coverage breakdown plus `rubric_clarity_low` / `capability_thin` flags. [docs/specs/sample-design-spec.md](docs/specs/sample-design-spec.md) |
|
|
104
94
|
| **Multi-judge ensemble** | `--judge-models claude:opus,openai:gpt-4o` cross-vendor scoring + agreement metrics |
|
|
105
|
-
| **MCP URL fetching** | pull content from private-doc URLs via an MCP server (SSO-protected knowledge bases, etc.) |
|
|
106
95
|
| **Blind A/B** | `--blind` hides variant names; HTML report has a reveal button |
|
|
107
96
|
| **Multi-run variance** | `--repeat N` repeats the eval and computes mean / SD / CI / t-test |
|
|
108
|
-
| **
|
|
109
|
-
| **Assertion negation + composition** | universal `not: true` field + `assert-set` (any/all) with arbitrary nesting |
|
|
97
|
+
| **MCP URL fetching** | pull content from private-doc URLs via an MCP server (SSO-protected knowledge bases, etc.) |
|
|
110
98
|
| **Auto analysis** | detects low-discrimination assertions, flat scores, all-pass / all-fail, expensive samples |
|
|
111
99
|
| **Traceability** | reports carry CLI version, Node version, artifact version fingerprint, judge prompt hash |
|
|
112
100
|
| **EN / ZH switch** | one-click language toggle in the HTML report |
|
|
113
101
|
|
|
114
|
-
##
|
|
115
|
-
|
|
116
|
-
Core idea: **fix the model and the samples, vary only the artifact and runtime context**, use interleaved scheduling to cancel time drift, score via assertions + LLM judge (dual channel), then layer on knowledge-gap signals to quantify risk exposure.
|
|
117
|
-
|
|
118
|
-
```mermaid
|
|
119
|
-
flowchart TD
|
|
120
|
-
subgraph Input["① Input"]
|
|
121
|
-
S["eval-samples<br/>(JSON / YAML)"]
|
|
122
|
-
A["artifacts<br/>skills/*.md · SKILL.md<br/>baseline · git:name · @cwd"]
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
subgraph Prep["② Preprocess (resolve & fetch)"]
|
|
126
|
-
V["variant resolution<br/>variant → artifact + runtime context<br/>(cwd / project CLAUDE.md / local skills)"]
|
|
127
|
-
U["URL fetching<br/>URLs in prompt / context<br/>MCP Server(private docs) → HTTP"]
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
subgraph Schedule["③ Interleaved + concurrent scheduling"]
|
|
131
|
-
Q["s1-v1 → s1-v2 → s2-v1 → s2-v2 …<br/>--concurrency N · --repeat N"]
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
subgraph Exec["④ Executor (fixed model)"]
|
|
135
|
-
E["claude / claude-sdk / codex / openai / gemini<br/>anthropic-api / openai-api / custom"]
|
|
136
|
-
T["claude-sdk / codex extract<br/>turns / toolCalls trace"]
|
|
137
|
-
E -.-> T
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
subgraph Score["⑤ Dual-channel scoring"]
|
|
141
|
-
AS["assertions (18 types)<br/>content / structure / cost / latency<br/>agent: tools_called · turns_min …"]
|
|
142
|
-
LS["LLM judge<br/>rubric · dimensions (independent per-dim scores)"]
|
|
143
|
-
CS["composite score<br/>mean of assertion & LLM when both present"]
|
|
144
|
-
AS --> CS
|
|
145
|
-
LS --> CS
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
subgraph Analyze["⑥ Auto analysis + knowledge gaps"]
|
|
149
|
-
D["low-discrimination / flat scores / all-pass or all-fail<br/>expensive samples · variance · t-test"]
|
|
150
|
-
G["knowledge-gap signals<br/>(quantify risk exposure, not completeness proof)"]
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
subgraph Report["⑦ Report"]
|
|
154
|
-
R["Six dims: Fact / Behavior / LLM-judge / Cost / Efficiency / Stability<br/>JSON + HTML · top verdict pill · blind reveal<br/>CLI/Node/version fingerprint traceable"]
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
S --> U
|
|
158
|
-
A --> V
|
|
159
|
-
V --> Q
|
|
160
|
-
U --> Q
|
|
161
|
-
Q --> E
|
|
162
|
-
T --> AS
|
|
163
|
-
E --> AS
|
|
164
|
-
E --> LS
|
|
165
|
-
CS --> D
|
|
166
|
-
CS --> G
|
|
167
|
-
D --> R
|
|
168
|
-
G --> R
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**Key design choices:**
|
|
172
|
-
|
|
173
|
-
- **Interleaved scheduling** removes time drift: different variants of the same sample are dispatched alternately rather than "all of v1 then all of v2", so model load / network jitter can't be mis-attributed to the artifact.
|
|
174
|
-
- **variant = artifact + runtime context**: `name@cwd` lets control groups explicitly declare the "project directory" input, separating "project-level accumulated knowledge" from "explicit artifact injection".
|
|
175
|
-
- **Dual-channel scoring is complementary**: assertions catch deterministic defects (must call tool X, must contain field Y); the LLM judge catches subjective quality (readability, completeness). Mean is taken when both are present.
|
|
176
|
-
- **Knowledge-gap signals** are not part of the score — they are an independent tracking channel that tells you "how much risk exposure this evaluation covered", for convergence tracking, not as a completeness proof.
|
|
177
|
-
|
|
178
|
-
## Eval sample format
|
|
179
|
-
|
|
180
|
-
Supports JSON and YAML (`eval-samples.json`, `eval-samples.yaml`, `eval-samples.yml`).
|
|
181
|
-
|
|
182
|
-
```json
|
|
183
|
-
[
|
|
184
|
-
{
|
|
185
|
-
"sample_id": "s001",
|
|
186
|
-
"prompt": "Review this code for security issues",
|
|
187
|
-
"context": "function auth(u, p) { db.query('SELECT * FROM users WHERE name=' + u); }",
|
|
188
|
-
"rubric": "Should identify SQL injection risk and recommend parameterized queries",
|
|
189
|
-
"assertions": [
|
|
190
|
-
{ "type": "contains", "value": "SQL injection", "weight": 1 },
|
|
191
|
-
{ "type": "contains", "value": "parameterized", "weight": 1 },
|
|
192
|
-
{ "type": "not_contains", "value": "looks fine", "weight": 0.5 }
|
|
193
|
-
],
|
|
194
|
-
"dimensions": {
|
|
195
|
-
"security": "did it identify the injection vulnerability?",
|
|
196
|
-
"actionability": "did it give directly usable fix code?"
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
]
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
### Fields
|
|
203
|
-
|
|
204
|
-
| Field | Type | Required | Description |
|
|
205
|
-
|---|---|---|---|
|
|
206
|
-
| `sample_id` | `string` | **yes** | Unique sample ID |
|
|
207
|
-
| `prompt` | `string` | **yes** | User prompt sent to the model |
|
|
208
|
-
| `context` | `string` | no | Extra context (e.g. code). Wrapped in a code block and appended to the prompt. URLs are auto-fetched at runtime. |
|
|
209
|
-
| `rubric` | `string` | no | Scoring guideline for the LLM judge (1-5 scale) |
|
|
210
|
-
| `assertions` | `array` | no | Assertion checks; see [assertion types](#assertion-types) |
|
|
211
|
-
| `assertions[].type` | `string` | **yes** | Assertion type |
|
|
212
|
-
| `assertions[].value` | `string\|number` | depends | Check value (required for `contains`, `min_length`, `cost_max`, etc.) |
|
|
213
|
-
| `assertions[].values` | `array` | depends | String array (required for `contains_all`, `contains_any`) |
|
|
214
|
-
| `assertions[].pattern` | `string` | depends | Regex pattern (required for `regex`) |
|
|
215
|
-
| `assertions[].flags` | `string` | no | Regex flags (default `"i"`) |
|
|
216
|
-
| `assertions[].schema` | `object` | depends | JSON Schema object (required for `json_schema`, via [ajv](https://ajv.js.org/)) |
|
|
217
|
-
| `assertions[].reference` | `string` | depends | Reference text (required for `semantic_similarity`) |
|
|
218
|
-
| `assertions[].threshold` | `number` | no | Pass threshold for semantic similarity (default 3) |
|
|
219
|
-
| `assertions[].fn` | `string` | depends | Path to a custom assertion JS file (required for `custom`) |
|
|
220
|
-
| `assertions[].weight` | `number` | no | Weight (default 1) |
|
|
221
|
-
| `dimensions` | `object` | no | Multi-dimension scoring; key = dimension name, value = scoring guideline |
|
|
222
|
-
|
|
223
|
-
### URL auto-fetching
|
|
224
|
-
|
|
225
|
-
URLs in `prompt` and `context` are auto-fetched before evaluation and inlined into the text. Useful when referencing online docs, API references, etc.:
|
|
226
|
-
|
|
227
|
-
```json
|
|
228
|
-
{
|
|
229
|
-
"sample_id": "s001",
|
|
230
|
-
"prompt": "Generate test cases from this PRD: https://wiki.example.com/prd/feature-x"
|
|
231
|
-
}
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
At runtime, URLs are replaced with the actual content. Fetch order: MCP Server first for matching URLs (e.g. SSO-protected private docs), then plain HTTP for the rest. URLs already resolved by MCP are not re-fetched via HTTP.
|
|
235
|
-
|
|
236
|
-
**Private-doc URLs**: drop a `.mcp.json` config file into the project dir, or pass `--mcp-config <path>`:
|
|
237
|
-
|
|
238
|
-
```json
|
|
239
|
-
{
|
|
240
|
-
"mcpServers": {
|
|
241
|
-
"docs": {
|
|
242
|
-
"command": "npx",
|
|
243
|
-
"args": ["@example/docs-mcp-server"],
|
|
244
|
-
"env": { "DOCS_API_TOKEN": "xxx" },
|
|
245
|
-
"urlPatterns": ["docs.example.com"],
|
|
246
|
-
"fetchTool": {
|
|
247
|
-
"name": "fetch_doc",
|
|
248
|
-
"urlTransform": {
|
|
249
|
-
"regex": "docs\\.example\\.com/([^/]+/[^/]+)/([^/?#]+)",
|
|
250
|
-
"params": { "namespace": "$1", "slug": "$2" }
|
|
251
|
-
},
|
|
252
|
-
"contentExtract": "data.body"
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
**Public URLs**: fetched via plain HTTP. If they require auth, make sure the shell already has network access configured (VPN, proxy, etc.).
|
|
260
|
-
|
|
261
|
-
### Scoring strategy
|
|
262
|
-
|
|
263
|
-
#### 1. Assertion score
|
|
264
|
-
|
|
265
|
-
Rule-based local checks; each assertion yields pass/fail.
|
|
266
|
-
|
|
267
|
-
**Formula:**
|
|
268
|
-
|
|
269
|
-
- Pass rate = sum of passed assertion weights / total weight (0–1)
|
|
270
|
-
- Score = 1 + pass_rate × 4 (mapped to 1–5)
|
|
271
|
-
- Example: 3 assertions (weight 1 each), 2 pass → pass rate 2/3 → score = 1 + 0.67 × 4 = **3.67**
|
|
272
|
-
|
|
273
|
-
#### 2. Rubric / Dimensions score
|
|
274
|
-
|
|
275
|
-
The judge model (default `haiku`) scores 1–5 against the rubric. In `dimensions` mode, each dimension is scored independently and then averaged.
|
|
276
|
-
|
|
277
|
-
#### 3. Composite score
|
|
278
|
-
|
|
279
|
-
| Condition | Formula |
|
|
280
|
-
|---|---|
|
|
281
|
-
| Only assertions | `assertionScore` |
|
|
282
|
-
| Only LLM judge | `llmScore` |
|
|
283
|
-
| Both present | `(assertionScore + llmScore) / 2` |
|
|
284
|
-
| Neither | `0` |
|
|
285
|
-
|
|
286
|
-
### Assertion types
|
|
287
|
-
|
|
288
|
-
**Deterministic assertions (21+ total):**
|
|
289
|
-
|
|
290
|
-
| Type | Description |
|
|
291
|
-
|---|---|
|
|
292
|
-
| `contains` / `not_contains` | substring must / must-not appear |
|
|
293
|
-
| `regex` | regex match |
|
|
294
|
-
| `min_length` / `max_length` | length bounds |
|
|
295
|
-
| `json_valid` / `json_schema` | JSON validation |
|
|
296
|
-
| `starts_with` / `ends_with` | prefix / suffix |
|
|
297
|
-
| `equals` / `not_equals` | exact match |
|
|
298
|
-
| `word_count_min` / `word_count_max` | word-count bounds |
|
|
299
|
-
| `contains_all` / `contains_any` | multi-value match |
|
|
300
|
-
| `cost_max` / `latency_max` | cost / latency caps |
|
|
301
|
-
| `tools_called` / `tools_not_called` / `tools_count_min` / `tools_count_max` | agent tool-call assertions |
|
|
302
|
-
| `tool_output_contains` / `tool_input_contains` | match content of a tool's input or output |
|
|
303
|
-
| `turns_min` / `turns_max` | conversation-turn bounds |
|
|
304
|
-
| `rouge_n_min` | ROUGE-N recall ≥ threshold (`reference` field holds the gold text; `n` defaults to 1; `threshold` defaults to 0.5) |
|
|
305
|
-
| `levenshtein_max` | edit distance ≤ value (for "output should be near-identical to reference") |
|
|
306
|
-
| `bleu_min` | BLEU-4 ≥ threshold (unsmoothed; degenerates to 0 on short text) |
|
|
307
|
-
| `faithfulness` | output stays grounded in `sample.context` (anti-hallucination); LLM judge 1-5; threshold defaults to 3 |
|
|
308
|
-
| `answer_relevancy` | output directly answers `sample.prompt`; catches dodging, topic drift, verbosity; threshold defaults to 3 |
|
|
309
|
-
| `context_recall` | gold facts in `sample.context` are actually used in the output; `reference` may explicitly enumerate gold facts; threshold defaults to 3 |
|
|
310
|
-
| `semantic_similarity` | LLM-based holistic semantic similarity (complementary to the three RAG metrics above) |
|
|
311
|
-
| `custom` | custom JS function (30 s timeout) |
|
|
312
|
-
|
|
313
|
-
**Universal modifier:**
|
|
314
|
-
|
|
315
|
-
Any assertion takes `not: true` to invert (replaces paired `not_contains` / `not_equals` etc; legacy types remain as aliases):
|
|
316
|
-
|
|
317
|
-
```yaml
|
|
318
|
-
- type: regex
|
|
319
|
-
pattern: "TODO|FIXME"
|
|
320
|
-
not: true # output must NOT contain TODO/FIXME
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
**Composition (assert-set):**
|
|
324
|
-
|
|
325
|
-
`assert-set` combines child assertions with `any` (OR) or `all` (AND) and supports nesting:
|
|
326
|
-
|
|
327
|
-
```yaml
|
|
328
|
-
- type: assert-set
|
|
329
|
-
mode: any # at least one child must pass (mode: 'all' = all must pass)
|
|
330
|
-
children:
|
|
331
|
-
- { type: contains, value: "parameterized" }
|
|
332
|
-
- { type: contains, value: "prepared statement" }
|
|
333
|
-
- { type: regex, pattern: "bind\\(.*\\?" }
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
Children can independently use `not: true`; nested `assert-set`s can express any boolean shape.
|
|
337
|
-
|
|
338
|
-
### Custom assertion
|
|
339
|
-
|
|
340
|
-
```js
|
|
341
|
-
// my-assertion.mjs
|
|
342
|
-
export default function(output, { sample, assertion }) {
|
|
343
|
-
return { pass: output.includes('SQL'), message: 'checked for SQL keyword' };
|
|
344
|
-
}
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
## Six-dim evaluation
|
|
348
|
-
|
|
349
|
-
Reports display results across six independent dimensions. The three scoring layers — Fact / Behavior / LLM-judge — are shown separately so you see **which layer regressed** instead of a single composite number:
|
|
350
|
-
|
|
351
|
-
| Dimension | Metric | Description |
|
|
352
|
-
|---|---|---|
|
|
353
|
-
| 📋 **Fact** | fact-assertion pass rate | rule-verifiable assertions like `contains` / `json_schema` / `fact_check`, mapped to 1-5 |
|
|
354
|
-
| 🛠️ **Behavior** | behavior-assertion pass rate | execution-compliance assertions like `tools_called` / `tool_output_contains` / `turns_max` |
|
|
355
|
-
| 💬 **LLM-judge** | rubric score | 1-5 scored by the judge model against a predefined rubric; subjective, catches what rules miss |
|
|
356
|
-
| 💰 **Cost** | total cost, input/output tokens | API cost based on token usage and model pricing |
|
|
357
|
-
| ⚡ **Efficiency** | average latency (ms) | end-to-end latency from request to full response |
|
|
358
|
-
| 🛡️ **Stability** | CV (coefficient of variation) | score consistency across repeated runs (`--repeat ≥ 2`); single-run shows `—`, **honestly acknowledging what can't be measured** |
|
|
359
|
-
|
|
360
|
-
## CLI reference
|
|
361
|
-
|
|
362
|
-
omk exposes a workflow CLI for knowledge artifacts. Seven top-level commands cover the full loop: `init` (scaffold) · `doctor` (static check) · `eval` (offline A/B) · `observe` (online trace) · `evolve` (auto-iterate a skill) · `sample` (generate or fill test cases) · `studio` (local web UI for reports & analysis).
|
|
363
|
-
|
|
364
|
-
### `omk init`
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
omk init [dir]
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
<!-- omk:cli:init:flags:start -->
|
|
371
|
-
|
|
372
|
-
**Flags:**
|
|
373
|
-
|
|
374
|
-
```text
|
|
375
|
-
--lang <value> Output language zh|en. Priority: CLI > OMK_LANG env > zh.
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
For full descriptions: `omk init --help`.
|
|
379
|
-
|
|
380
|
-
<!-- omk:cli:init:flags:end -->
|
|
381
|
-
|
|
382
|
-
Scaffolds an evaluation project with two starter skill variants and an `eval-samples.json` file.
|
|
383
|
-
|
|
384
|
-
### `omk doctor`
|
|
385
|
-
|
|
386
|
-
```bash
|
|
387
|
-
omk doctor # audit current dir / ./skills
|
|
388
|
-
omk doctor skills/v1.md # audit one skill file
|
|
389
|
-
omk doctor skills/ --html report.html # produce a visual HTML report
|
|
390
|
-
omk doctor skills/ --json > r.json # JSON for CI / external tools
|
|
391
|
-
omk doctor --gate; echo $? # silent gate; exit 1 on fatal failures, warnings do not block
|
|
392
|
-
omk doctor --static-only # offline mode: static checks only, no LLM call
|
|
393
|
-
```
|
|
394
|
-
|
|
395
|
-
<!-- omk:cli:doctor:flags:start -->
|
|
396
|
-
|
|
397
|
-
**Flags:**
|
|
398
|
-
|
|
399
|
-
```text
|
|
400
|
-
--effort <value> LLM reasoning effort: low / medium / high / xhigh / max.
|
|
401
|
-
--executor <value> Executor name, default claude. Pass a test fixture path to use in tests.
|
|
402
|
-
--fix Interactive fix: use LLM agent to fix skill issues reported by doctor.
|
|
403
|
-
--gate Silent mode: only emit stderr summary on fail. Exit code carries the signal.
|
|
404
|
-
--html <value> HTML report output path. Coexists with --json / --gate.
|
|
405
|
-
--json JSON output to stdout, for CI / external script consumption.
|
|
406
|
-
--lang <value> Output language zh|en. Priority: CLI > OMK_LANG env > zh.
|
|
407
|
-
--model <value> LLM model name, default sonnet.
|
|
408
|
-
--samples <value> Samples file path (.json/.yaml). Auto-detects from target / cwd if omitted.
|
|
409
|
-
--static-only Offline static mode: only 4 static rules, no LLM call.
|
|
410
|
-
--timeout <value> Single-session LLM timeout sec, default 600 (10 min).
|
|
411
|
-
```
|
|
412
|
-
|
|
413
|
-
For full descriptions: `omk doctor --help`.
|
|
414
|
-
|
|
415
|
-
<!-- omk:cli:doctor:flags:end -->
|
|
416
|
-
|
|
417
|
-
LLM health audit: a single LLM session emits per-dimension grades, findings, and suggestions for the 7 builtin dimensions; the HTML report sorts dimensions fail→warn→pass→skipped with errors first within each dim. Dimensions are extensible — call `registerHealthDimension` in your own code and the new section is folded into the same LLM call's prompt and report (order = registration order).
|
|
418
|
-
|
|
419
|
-
Static-only mode (`--static-only`): for CI nodes without claude / codex installed, or local debugging without network — runs the four static rules (readability / metadata / dependencies / samples contract) with zero LLM calls and zero cost. Output goes through the same `DoctorReport` shape and combines with `--json` / `--gate` / `--html`.
|
|
420
|
-
|
|
421
|
-
`omk eval` still runs its own static readability / metadata / dependency / samples-contract gates internally to protect eval quality; that path is separate from this user-facing `omk doctor` command and the two roles do not overlap.
|
|
422
|
-
|
|
423
|
-
### `omk eval`
|
|
424
|
-
|
|
425
|
-
```bash
|
|
426
|
-
omk eval --control baseline --treatment my-skill # single-skill necessity test (baseline = reserved "no skill" variant)
|
|
427
|
-
omk eval --control code-review-v1 --treatment code-review-v2 # multi-variant A/B
|
|
428
|
-
omk eval --config eval.yaml
|
|
429
|
-
omk eval --batch
|
|
430
|
-
omk eval gold compare <report-id> --gold-dir gold-dataset
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
Runs the offline evaluation, applies the verdict gate, persists the report, and returns a ship/no-ship exit code. Bootstrap CI is enabled by default on this workflow.
|
|
434
|
-
|
|
435
|
-
<!-- omk:cli:eval:flags:start -->
|
|
436
|
-
|
|
437
|
-
**Flags:**
|
|
438
|
-
|
|
439
|
-
```text
|
|
440
|
-
--batch Batch mode: baseline vs each skill
|
|
441
|
-
--blind Blind judge mode
|
|
442
|
-
--bootstrap Add bootstrap CI
|
|
443
|
-
--bootstrap-samples <value> Bootstrap resamples, default 1000
|
|
444
|
-
--budget-per-sample-ms <value> Per-sample time cap ms (must be > 0; omit for no cap)
|
|
445
|
-
--budget-per-sample-usd <value> Per-sample budget cap USD (must be > 0; omit for no cap)
|
|
446
|
-
--budget-usd <value> Total budget cap USD (must be > 0; omit for no cap)
|
|
447
|
-
--concurrency <value> Concurrency, default 1
|
|
448
|
-
--config <value> eval.yaml path
|
|
449
|
-
--control <value> Control variant expr
|
|
450
|
-
--dry-run Plan only, no real exec
|
|
451
|
-
--effort <value> Executor LLM reasoning effort low/medium/high/xhigh/max (default low; reports across efforts not strictly comparable).
|
|
452
|
-
--executor <value> Executor: claude / claude-sdk / codex / codex-sdk / openai-api / gemini / custom (default claude).
|
|
453
|
-
--gold-dir <value> Gold dataset dir
|
|
454
|
-
--judge-models <value> Judge config: executor:model[,...]. e.g. claude:haiku or claude:opus,openai:gpt-4o (≥ 2 = ensemble). Default <executor>:haiku.
|
|
455
|
-
--judge-repeat <value> Judge each dim N times
|
|
456
|
-
--lang <value> Output language zh|en. Priority: CLI > OMK_LANG env > zh.
|
|
457
|
-
--layered-stats Emit layered stats
|
|
458
|
-
--mcp-config <value> MCP config path
|
|
459
|
-
--model <value> Evaluated model
|
|
460
|
-
--no-cache Skip executor cache
|
|
461
|
-
--no-debias-length Disable length-debias (default on)
|
|
462
|
-
--no-diagnostic Disable diagnostic LLM call (on by default; emits "what went wrong + how to fix" advice for failed samples).
|
|
463
|
-
--no-gate Disable verdict gate
|
|
464
|
-
--no-judge Skip LLM judge
|
|
465
|
-
--no-serve Do not start report server
|
|
466
|
-
--no-strict-baseline Disable baseline isolation
|
|
467
|
-
--output-dir <value> Report output dir
|
|
468
|
-
--repeat <value> Repeat each sample N times
|
|
469
|
-
--report-only Produce the report and print verdict, but always exit 0 (no CI gate).
|
|
470
|
-
--resume <value> Resume a previous failed run
|
|
471
|
-
--retry <value> Per-sample retry count
|
|
472
|
-
--samples <value> Samples file path. Defaults to eval-samples.json (also .yaml/.yml); auto-discovers <skill>/.omk/samples.json under --skill-dir.
|
|
473
|
-
--skill-dir <value> Skill dir, default skills
|
|
474
|
-
--skip-connectivity Skip LLM connectivity preflight
|
|
475
|
-
--skip-doctor Escape hatch: skip the doctor health-check gate (on by default). Use when sandbox mocks supply deps; caller owns garbage-in risk.
|
|
476
|
-
--strict-baseline Force baseline isolation (default true)
|
|
477
|
-
--threshold <value> Verdict threshold, default 3.5
|
|
478
|
-
--timeout <value> Per-sample timeout sec, default 120
|
|
479
|
-
--treatment <value> Treatment variants, comma-separated
|
|
480
|
-
--trivial-diff <value> Trivial diff tolerance; 0 disables tolerance
|
|
481
|
-
--verbose Verbose logging
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
For full descriptions: `omk eval --help`.
|
|
485
|
-
|
|
486
|
-
<!-- omk:cli:eval:flags:end -->
|
|
487
|
-
|
|
488
|
-
The HTML report has two tabs:
|
|
489
|
-
- **📊 Score view** — the verdict-driven A/B comparison (fact / behavior / judge layers, bootstrap CI, length-debias).
|
|
490
|
-
- **✅ Functional view** — each sample as a unit test: design (prompt / rubric / mocks / environment) + execution trace + assertion results + actionable diagnostic. Diagnostic emits root cause (skill_doc_unclear / llm_misread / sample_design / tripwire_intentional / ...), workflow checks (rubric step ✓/✗ with evidence), and failure-mode tags (工作流跳步 / 硬编码值 / 幻觉输出 / 工具误用 / 环境拦截 / 误读约束 / 其他). For the sandbox-mock semantics behind `mocks` / `environment` / `tripwire` / `mocksStrict`, see [docs/sample-design-spec.md §三](./docs/sample-design-spec.md).
|
|
491
|
-
|
|
492
|
-
### `omk observe`
|
|
493
|
-
|
|
494
|
-
`omk observe` ships two workflows: the default skill-health report, and the new observe inbox for human review.
|
|
495
|
-
|
|
496
|
-
#### A. Skill-health report (default)
|
|
497
|
-
|
|
498
|
-
```bash
|
|
499
|
-
omk observe ~/.claude/projects/-Users-you-Documents-my-project
|
|
500
|
-
omk observe ~/.claude/projects/my-project --last 7d
|
|
501
|
-
omk observe ~/.claude/projects/my-project --from 2026-04-01T00:00:00Z --to 2026-04-15T23:59:59Z
|
|
502
|
-
omk observe ~/.claude/projects/my-project --skills audit,polish
|
|
503
|
-
omk observe ~/.claude/projects/my-project --kb /path/to/project
|
|
504
|
-
```
|
|
505
|
-
|
|
506
|
-
<!-- omk:cli:observe:flags:start -->
|
|
507
|
-
|
|
508
|
-
**Flags:**
|
|
509
|
-
|
|
510
|
-
```text
|
|
511
|
-
--from <value> Start time ISO, overrides --last
|
|
512
|
-
--kb <value> KB root, enables KB-aware analysis
|
|
513
|
-
--lang <value> Output language zh|en. Priority: CLI > OMK_LANG env > zh.
|
|
514
|
-
--last <value> Time window (7d / 24h / 30m)
|
|
515
|
-
--output-dir <value> Analysis output directory
|
|
516
|
-
--skills <value> Filter to specific skills, comma-separated
|
|
517
|
-
--to <value> End time ISO
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
For full descriptions: `omk observe --help`.
|
|
521
|
-
|
|
522
|
-
<!-- omk:cli:observe:flags:end -->
|
|
523
|
-
|
|
524
|
-
Turns real Claude Code session traces into skill-health reports: knowledge usage, gap signals, execution stability, tokens, and latency. This is production observation, not production scoring.
|
|
525
|
-
|
|
526
|
-
#### B. observe inbox: reviewer loop
|
|
527
|
-
|
|
528
|
-
Parses, aggregates, and de-noises real session traces into a per-observation list a human can review. The whole pipeline is local-only and LLM-free.
|
|
529
|
-
|
|
530
|
-
```bash
|
|
531
|
-
# 1. Parse traces, aggregate signals, write to .omk/observations/
|
|
532
|
-
omk observe ingest ~/.claude/projects/my-project
|
|
533
|
-
omk observe ingest ~/.claude/projects/my-project --output-dir ./custom-dir
|
|
534
|
-
|
|
535
|
-
# 2. Read the inbox (default: top 20, sorted by severity / confidence / lastSeen)
|
|
536
|
-
omk observe inbox
|
|
537
|
-
omk observe inbox --limit 50
|
|
538
|
-
omk observe inbox --skill audit # filter by skill
|
|
539
|
-
omk observe inbox --by-skill # rollup view (one row per skill)
|
|
540
|
-
omk observe inbox --explore 10 # sample 10 long-tail items from medium/low
|
|
541
|
-
omk observe inbox --explore 10 --include-noise # explicitly include the noise bucket
|
|
542
|
-
omk observe inbox --llm-enhanced-review # run LLM enhanced chain review explicitly
|
|
543
|
-
omk observe inbox --json # JSON output for automation
|
|
544
|
-
|
|
545
|
-
# 3. Inspect a single observation with its event triplet (surrounding messages)
|
|
546
|
-
omk observe show <inbox_id>
|
|
547
|
-
```
|
|
548
|
-
|
|
549
|
-
Every observation carries:
|
|
550
|
-
|
|
551
|
-
- `confidence` and `attributionConfidence` — signal credibility plus skill-attribution credibility, displayed side by side
|
|
552
|
-
- `severityReasonCode` — stable structured reason code for the assigned severity; human-readable reasons are generated by CLI / studio rendering
|
|
553
|
-
- `messageWindow` — 3 messages before / trigger / 3 messages after, plus `resolutionAfter` (whether the agent recovered)
|
|
554
|
-
- `evidence.{messageIndex,messageUuid,toolUseId}` — anchors for round-tripping back to the original jsonl
|
|
555
|
-
|
|
556
|
-
Supported trace formats: Claude Code session JSONL (`.jsonl`), OpenClaw session JSONL (`.jsonl`), and markdown conversation logs (`.log`).
|
|
557
|
-
|
|
558
|
-
### `omk skill-extract`
|
|
559
|
-
|
|
560
|
-
```bash
|
|
561
|
-
omk skill-extract demo-create --review soft-xxx --status author_confirmed
|
|
562
|
-
omk skill-extract demo-create --review soft-xxx --status rejected --reason "not a real standard"
|
|
563
|
-
```
|
|
564
|
-
|
|
565
|
-
<!-- omk:cli:skill-extract:flags:start -->
|
|
566
|
-
|
|
567
|
-
**Flags:**
|
|
568
|
-
|
|
569
|
-
```text
|
|
570
|
-
--input-dir <value> Observation data directory
|
|
571
|
-
--json JSON output
|
|
572
|
-
--lang <value> Output language zh|en. Priority: CLI > OMK_LANG env > zh.
|
|
573
|
-
--reason <value> Manual review reason
|
|
574
|
-
--review <value> Soft standard id to review
|
|
575
|
-
--status <value> Review status: author_confirmed / rejected / pending_review (also accepts aliases: confirm / confirmed / reject / pending)
|
|
576
|
-
```
|
|
577
|
-
|
|
578
|
-
For full descriptions: `omk skill-extract --help`.
|
|
579
|
-
|
|
580
|
-
<!-- omk:cli:skill-extract:flags:end -->
|
|
581
|
-
|
|
582
|
-
### `omk evolve`
|
|
583
|
-
|
|
584
|
-
```bash
|
|
585
|
-
omk evolve <skill> # multi-round auto-iteration on a skill
|
|
586
|
-
omk evolve skills/foo.md --rounds 10 --target 4.5
|
|
587
|
-
```
|
|
588
|
-
|
|
589
|
-
<!-- omk:cli:evolve:flags:start -->
|
|
590
|
-
|
|
591
|
-
**Flags:**
|
|
592
|
-
|
|
593
|
-
```text
|
|
594
|
-
--auto-fix-samples Fix the skill, then fix samples, then evaluate the combined candidate
|
|
595
|
-
--concurrency <value> Eval concurrency, default 1
|
|
596
|
-
--effort <value> Reasoning effort: low/medium/high/xhigh/max
|
|
597
|
-
--executor <value> Executor name, default claude
|
|
598
|
-
--improve-mode <agent|rewrite> Improvement strategy (default: agent)
|
|
599
|
-
--improve-model <value> LLM that rewrites the skill, default sonnet
|
|
600
|
-
--judge-models <value> Judge model (single judge required), executor:model format. Default claude:haiku
|
|
601
|
-
--lang <value> Output language zh|en. Priority: CLI > OMK_LANG env > zh.
|
|
602
|
-
--model <value> Evaluated LLM, default sonnet
|
|
603
|
-
--no-diagnostic Disable diagnostic LLM call
|
|
604
|
-
--reuse-latest-eval Reuse the latest comparable eval report as round-0
|
|
605
|
-
--rounds <value> Max iteration rounds, default 5
|
|
606
|
-
--sample-fix-max-attempts <value>Max auto-fix attempts per sample (default: 2)
|
|
607
|
-
--samples <value> Samples file, default eval-samples.json
|
|
608
|
-
--skip-connectivity Skip LLM connectivity preflight
|
|
609
|
-
--skip-doctor Skip doctor gate (escape hatch; user takes garbage-in risk)
|
|
610
|
-
--stop-on-assertions-pass Stop early when normal samples pass assertions
|
|
611
|
-
--target <value> Target composite score; stop when reached. If omitted, runs all rounds.
|
|
612
|
-
--timeout <value> Per-sample timeout sec, default 120
|
|
613
|
-
```
|
|
614
|
-
|
|
615
|
-
For full descriptions: `omk evolve --help`.
|
|
616
|
-
|
|
617
|
-
<!-- omk:cli:evolve:flags:end -->
|
|
618
|
-
|
|
619
|
-
Auto-iterates a skill through repeated eval → judge → rewrite loops until it hits `--target` or exhausts `--rounds`. Cost scales with `rounds × samples × variants`; a typical run takes minutes to tens of minutes. Original skill files are versioned under `skills/evolve/*.r0.md`.
|
|
620
|
-
|
|
621
|
-
### `omk sample`
|
|
622
|
-
|
|
623
|
-
```bash
|
|
624
|
-
omk sample <skill> # generate or fill eval-samples test cases for one skill
|
|
625
|
-
omk sample --batch # generate for skills missing eval-samples
|
|
626
|
-
```
|
|
627
|
-
|
|
628
|
-
<!-- omk:cli:sample:flags:start -->
|
|
629
|
-
|
|
630
|
-
**Flags:**
|
|
631
|
-
|
|
632
|
-
```text
|
|
633
|
-
--batch Batch mode: scan --skill-dir, generate samples for any skill missing them.
|
|
634
|
-
--count <value> Number of samples to generate. Defaults to LLM auto-selection by skill type.
|
|
635
|
-
--fix Fix mode: auto-fix sample_design failures using the latest eval report.
|
|
636
|
-
--focus <value> Generation focus (NL hint). Steers LLM toward certain sample types.
|
|
637
|
-
--lang <value> Output language zh|en. Priority: CLI > OMK_LANG env > zh.
|
|
638
|
-
--model <value> Generation LLM model name, default opus.
|
|
639
|
-
--no-mock Skip mock generation; all tool calls execute for real during eval.
|
|
640
|
-
--reports-dir <value> Reports dir (fix mode), default ~/.oh-my-knowledge/reports.
|
|
641
|
-
--skill-dir <value> Skill root dir, default skills. Used by batch mode.
|
|
642
|
-
--treatment <value> Treatment name (fix mode), defaults to skill-path inference.
|
|
643
|
-
```
|
|
644
|
-
|
|
645
|
-
For full descriptions: `omk sample --help`.
|
|
646
|
-
|
|
647
|
-
<!-- omk:cli:sample:flags:end -->
|
|
648
|
-
|
|
649
|
-
One-shot generation. Auto-stamps `provenance` on generated cases. Generated assertions use English, numbers, or code tokens so they compare cleanly across bilingual outputs.
|
|
650
|
-
|
|
651
|
-
### `omk studio`
|
|
652
|
-
|
|
653
|
-
```bash
|
|
654
|
-
omk studio
|
|
655
|
-
omk studio --port 7799
|
|
656
|
-
omk studio --host 0.0.0.0 # LAN access (default: 127.0.0.1)
|
|
657
|
-
omk studio --reports-dir ~/.oh-my-knowledge/reports
|
|
658
|
-
omk studio --observations-dir .omk/observations # observe inbox data directory
|
|
659
|
-
omk studio --no-open
|
|
660
|
-
```
|
|
661
|
-
|
|
662
|
-
<!-- omk:cli:studio:flags:start -->
|
|
663
|
-
|
|
664
|
-
**Flags:**
|
|
665
|
-
|
|
666
|
-
```text
|
|
667
|
-
--analyses-dir <value> Analyses dir (optional)
|
|
668
|
-
--dev Dev mode: child process with hot reload
|
|
669
|
-
--host <value> Listen host, default localhost. Use 0.0.0.0 to expose to LAN
|
|
670
|
-
--lang <value> Output language zh|en. Priority: CLI > OMK_LANG env > zh.
|
|
671
|
-
--no-open Do not auto-open browser
|
|
672
|
-
--observations-dir <value> Observations dir (optional)
|
|
673
|
-
--port <value> Listen port, default 7799. Pass 0 for OS-assigned
|
|
674
|
-
--reports-dir <value> Reports dir, default ~/.oh-my-knowledge/reports
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
For full descriptions: `omk studio --help`.
|
|
678
|
-
|
|
679
|
-
<!-- omk:cli:studio:flags:end -->
|
|
680
|
-
|
|
681
|
-
Starts the local knowledge workbench for browsing reports and observation analyses. Verdict, sample diffs, regressions, saturation curves, and per-sample drill-downs all live in the studio UI — there is no CLI export / analysis subcommand. For CI gates, use `omk eval`'s exit code (0 on `PROGRESS`, non-zero otherwise) or `jq` over the report JSON.
|
|
682
|
-
|
|
683
|
-
Studio is skill-centric — the list page (`/`) shows skill cards with health band / 0-100 reference score / open-issue count / trend; the detail page (`/skills/<name>`) puts a prioritized issue checklist on the left (skill issues / sample issues / tool advisories), and a chart.js health trend plus three compact stage cards (doctor / eval / observe) on the right, with modals for deeper drill-down. The legacy run list moved to `/runs`. Visit `/observations/inbox` for the observe inbox dashboard: per-skill rollup view, reviewer action list, observability funnel, and a per-observation detail panel with the event triplet (surrounding messages).
|
|
684
|
-
|
|
685
|
-
## Executors
|
|
686
|
-
|
|
687
|
-
### Built-in executors
|
|
688
|
-
|
|
689
|
-
| Executor | When to use | Description |
|
|
690
|
-
|---|---|---|
|
|
691
|
-
| `claude` | default | invokes `claude -p` via Claude CLI |
|
|
692
|
-
| `claude-sdk` | structured output | uses Claude Agent SDK — no stdout parsing, avoids buffer truncation |
|
|
693
|
-
| `codex` | OpenAI agent CLI | invokes `codex exec --json` (`@openai/codex` npm); best-effort tool trace; **costUSD not reported** (codex CLI does not emit USD; check usage externally) |
|
|
694
|
-
| `codex-sdk` | OpenAI agent SDK | uses `@openai/codex-sdk` with its bundled `@openai/codex` binary and streamed SDK events; **costUSD not reported** |
|
|
695
|
-
| `gemini` | cross-vendor comparison | invokes `gemini` CLI |
|
|
696
|
-
| `anthropic-api` | no CLI needed | calls Anthropic HTTP API directly (needs `ANTHROPIC_API_KEY`) |
|
|
697
|
-
| `openai-api` | no CLI needed | calls OpenAI HTTP API directly (needs `OPENAI_API_KEY`) |
|
|
698
|
-
|
|
699
|
-
API-direct executors support custom base URLs via env: `ANTHROPIC_BASE_URL`, `OPENAI_BASE_URL`.
|
|
700
|
-
|
|
701
|
-
Codex construct-validity notes: (1) `codex` uses the `codex` binary on `PATH`; `codex-sdk` uses the bundled `@openai/codex` binary resolved by `@openai/codex-sdk`. Reports persist per-variant `meta.executorRuntimes`, `meta.executorRuntime`, and per-judge `meta.judgeModels[].runtime` fingerprints (binary or SDK version + capability snapshot), and strict comparability checks warn when runtime fingerprints cannot be audited. If runtime fingerprints differ, treat results as an executor-runtime comparison, not only prompt/template behavior. (2) Both executors isolate user-level config: `codex` passes `--ephemeral` + `--ignore-user-config`; `codex-sdk` redirects `$CODEX_HOME` to a per-process tmp dir (auth.json symlinked through). User-level `~/.codex/config.toml` does not leak into eval runs in either case.
|
|
702
|
-
|
|
703
|
-
### Custom executor
|
|
704
|
-
|
|
705
|
-
Any shell command can serve as an executor, communicating via stdin/stdout JSON:
|
|
706
|
-
|
|
707
|
-
```bash
|
|
708
|
-
omk eval --executor "python my_provider.py"
|
|
709
|
-
omk eval --executor "./my-executor.sh"
|
|
710
|
-
```
|
|
711
|
-
|
|
712
|
-
**Protocol:**
|
|
713
|
-
|
|
714
|
-
- **input** (stdin): JSON `{"model":"...","system":"...","prompt":"..."}`
|
|
715
|
-
- **output** (stdout): JSON `{"output":"model reply","inputTokens":0,"outputTokens":0,"costUSD":0}`
|
|
716
|
-
- stdout only needs to return the fields you care about; others default to 0. Plain-text output (no tokens/cost parsing) is also fine.
|
|
717
|
-
- non-zero exit code counts as failure
|
|
718
|
-
|
|
719
|
-
### Artifact directory layout
|
|
720
|
-
|
|
721
|
-
The built-in executors (claude / openai / gemini) support two artifact layouts, mixable in the same run:
|
|
722
|
-
|
|
723
|
-
```
|
|
724
|
-
skills/
|
|
725
|
-
├── v1.md # option 1: plain .md file
|
|
726
|
-
└── my-skill/ # option 2: full artifact dir
|
|
727
|
-
├── SKILL.md # this file is auto-loaded as system prompt
|
|
728
|
-
├── config.json # other files don't participate in eval, kept for completeness
|
|
729
|
-
└── scripts/
|
|
730
|
-
```
|
|
731
|
-
|
|
732
|
-
**Variant resolution rules:**
|
|
733
|
-
|
|
734
|
-
`variant` is the experiment-group expression. After resolution, OMK produces an `artifact` plus an optional `runtime context` (currently mainly `cwd`).
|
|
735
|
-
|
|
736
|
-
| Format | Meaning |
|
|
737
|
-
|---|---|
|
|
738
|
-
| `name` | looks up `name.md` or `name/SKILL.md` in the artifact dir, resolves to one artifact |
|
|
739
|
-
| `baseline` | empty artifact, no system prompt — think "nothing at all" |
|
|
740
|
-
| `project-env@/path/to/project` | empty artifact, but run in the specified project dir — observe project-level runtime context alone |
|
|
741
|
-
| `git:name` | reads the last-committed version of an artifact from git HEAD |
|
|
742
|
-
| `git:ref:name` | reads an artifact from a specific commit |
|
|
743
|
-
| `./path/to/file.md` | path with `/`: read the file directly as an artifact |
|
|
744
|
-
| `variant@/path/to/project` | attach a run dir to any variant; supports `name@cwd`, `git:name@cwd`, `/file.md@cwd` |
|
|
745
|
-
|
|
746
|
-
When both `--control` and `--treatment` are omitted, use `--config eval.yaml` or `--batch`. With `--batch`, `baseline` is auto-added as control and every discovered artifact becomes a treatment.
|
|
747
|
-
|
|
748
|
-
```bash
|
|
749
|
-
# explicit: one control, one or more treatments
|
|
750
|
-
omk eval --control v1 --treatment v2
|
|
751
|
-
omk eval --control baseline --treatment v1,v2,v3
|
|
752
|
-
|
|
753
|
-
# compare empty artifact vs explicit artifact
|
|
754
|
-
omk eval --control baseline --treatment my-skill
|
|
755
|
-
|
|
756
|
-
# observe project-level runtime context in isolation (use a self-describing label)
|
|
757
|
-
omk eval --control baseline --treatment project-env@/path/to/target-project
|
|
758
|
-
|
|
759
|
-
# compare "project-level runtime context" vs "explicit artifact injection"
|
|
760
|
-
omk eval \
|
|
761
|
-
--control project-env@/path/to/target-project \
|
|
762
|
-
--treatment /path/to/target-project/.claude/skills/prd/SKILL.md@/path/to/target-project
|
|
763
|
-
|
|
764
|
-
# before vs after (old version read from git history)
|
|
765
|
-
omk eval --control git:my-skill --treatment my-skill
|
|
766
|
-
|
|
767
|
-
# direct file paths
|
|
768
|
-
omk eval --control ./old-skill.md --treatment ./new-skill.md
|
|
769
|
-
|
|
770
|
-
# config-file driven (evaluation-as-code)
|
|
771
|
-
omk eval --config eval.yaml
|
|
772
|
-
```
|
|
773
|
-
|
|
774
|
-
**Prerequisites:**
|
|
775
|
-
|
|
776
|
-
- **claude**: install [Claude Code](https://claude.ai/code) and authenticate
|
|
777
|
-
- **claude-sdk**: install [Claude Code](https://claude.ai/code) and authenticate (uses Agent SDK, no CLI stdout parsing)
|
|
778
|
-
- **anthropic-api**: set the `ANTHROPIC_API_KEY` env var
|
|
779
|
-
- **openai**: `pip install openai` and set `OPENAI_API_KEY`
|
|
780
|
-
- **openai-api**: set the `OPENAI_API_KEY` env var
|
|
781
|
-
- **gemini**: `npm i -g @google/gemini-cli` and authenticate
|
|
782
|
-
|
|
783
|
-
### Agent evaluation and project-level runtime context
|
|
784
|
-
|
|
785
|
-
When the executor is `claude-sdk`, OMK supports a first pass of agent-aware evaluation.
|
|
786
|
-
|
|
787
|
-
A few concepts worth keeping separate:
|
|
788
|
-
|
|
789
|
-
- `artifact`: the thing being evaluated — baseline, skill, prompt, agent
|
|
790
|
-
- `variant`: the CLI expression for an experiment group
|
|
791
|
-
- `runtime context`: the runtime environment; currently mainly `cwd`. In project-type agent scenarios it includes the project dir, its `CLAUDE.md`, local skills, and any other environmental factors that affect behavior
|
|
792
|
-
|
|
793
|
-
In OMK, `agent` is not a catch-all term and neither is `skill`. A cleaner phrasing: **you are comparing how different artifacts behave under different runtime contexts.**
|
|
794
|
-
|
|
795
|
-
- auto-extracts turns / toolCalls traces
|
|
796
|
-
- supports assertions on tool-call behavior
|
|
797
|
-
- supports running under a specified `cwd`, so Claude Code auto-loads the project's `CLAUDE.md`, skills, and local runtime context
|
|
798
|
-
|
|
799
|
-
#### Recommended executor
|
|
800
|
-
|
|
801
|
-
```bash
|
|
802
|
-
omk eval --executor claude-sdk
|
|
803
|
-
```
|
|
804
|
-
|
|
805
|
-
#### Agent-related assertions
|
|
806
|
-
|
|
807
|
-
| Assertion | Meaning |
|
|
808
|
-
|---|---|
|
|
809
|
-
| `tools_called` | must call the specified tool(s) |
|
|
810
|
-
| `tools_not_called` | must not call the specified tool(s) |
|
|
811
|
-
| `tools_count_min` / `tools_count_max` | tool-call-count bounds |
|
|
812
|
-
| `tool_output_contains` | output of a specific tool must contain given content |
|
|
813
|
-
| `turns_min` / `turns_max` | turn-count bounds |
|
|
814
|
-
|
|
815
|
-
#### Three common control setups
|
|
816
|
-
|
|
817
|
-
**1. Bare-model baseline**
|
|
818
|
-
|
|
819
|
-
No system prompt and no knowledge-carrying project dir. Requires at least one treatment to compare against:
|
|
820
|
-
|
|
821
|
-
```bash
|
|
822
|
-
omk eval \
|
|
823
|
-
--executor claude-sdk \
|
|
824
|
-
--control baseline \
|
|
825
|
-
--treatment my-skill
|
|
826
|
-
```
|
|
827
|
-
|
|
828
|
-
**2. Empty artifact + project-level runtime context**
|
|
829
|
-
|
|
830
|
-
No system prompt, but runs inside a project dir. This is **not** a strict "bare baseline" — it is "empty artifact + project-level runtime context".
|
|
831
|
-
|
|
832
|
-
```bash
|
|
833
|
-
omk eval \
|
|
834
|
-
--executor claude-sdk \
|
|
835
|
-
--control baseline \
|
|
836
|
-
--treatment project-env@/path/to/target-project
|
|
837
|
-
```
|
|
838
|
-
|
|
839
|
-
**3. Explicit artifact injection**
|
|
840
|
-
|
|
841
|
-
Inject an external `SKILL.md` as the artifact while also keeping the project dir. Good for contrasting "project-level runtime context" vs "explicit single-artifact injection".
|
|
842
|
-
|
|
843
|
-
```bash
|
|
844
|
-
omk eval \
|
|
845
|
-
--executor claude-sdk \
|
|
846
|
-
--control project-env@/path/to/target-project \
|
|
847
|
-
--treatment /path/to/target-project/.claude/skills/prd/SKILL.md@/path/to/target-project
|
|
848
|
-
```
|
|
849
|
-
|
|
850
|
-
#### Recommended first-round design
|
|
851
|
-
|
|
852
|
-
For PRD / complex business-knowledge scenarios, start with:
|
|
853
|
-
|
|
854
|
-
```bash
|
|
855
|
-
omk eval \
|
|
856
|
-
--executor claude-sdk \
|
|
857
|
-
--samples skills/evaluate-review/eval-samples.yaml \
|
|
858
|
-
--control baseline \
|
|
859
|
-
--treatment /path/to/target-project/.claude/skills/prd/SKILL.md@/path/to/target-project
|
|
860
|
-
```
|
|
861
|
-
|
|
862
|
-
If you want to prove whether "the knowledge sitting inside the project directory" is effective on its own, add a second treatment:
|
|
863
|
-
|
|
864
|
-
```bash
|
|
865
|
-
omk eval \
|
|
866
|
-
--executor claude-sdk \
|
|
867
|
-
--samples skills/evaluate-review/eval-samples.yaml \
|
|
868
|
-
--control baseline \
|
|
869
|
-
--treatment project-env@/path/to/target-project,/path/to/target-project/.claude/skills/prd/SKILL.md@/path/to/target-project
|
|
870
|
-
```
|
|
871
|
-
|
|
872
|
-
#### Design tips
|
|
873
|
-
|
|
874
|
-
- **Always start with `--dry-run`** to confirm samples, variants, and `cwd` are parsed correctly
|
|
875
|
-
- **Project-level controls must differ in `cwd`**: the same prompt under different project dirs hits different runtime contexts
|
|
876
|
-
- **Try PRD scenarios first**: compared to pure coding, they make it easier to validate knowledge completeness, impact-area detection, and business correctness
|
|
877
|
-
|
|
878
|
-
### Common model configurations
|
|
879
|
-
|
|
880
|
-
**Don't have Claude?** Most Chinese LLMs (GLM, Qwen, Moonshot, DeepSeek, etc.) are OpenAI-API compatible — use the `openai-api` executor directly:
|
|
881
|
-
|
|
882
|
-
```bash
|
|
883
|
-
# GLM (Zhipu)
|
|
884
|
-
export OPENAI_API_KEY="your Zhipu API key"
|
|
885
|
-
export OPENAI_BASE_URL="https://open.bigmodel.cn/api/paas/v4"
|
|
886
|
-
omk eval --executor openai-api --model glm-4-plus \
|
|
887
|
-
--judge-models openai-api:glm-4-plus --no-cache
|
|
888
|
-
|
|
889
|
-
# Qwen (Alibaba)
|
|
890
|
-
export OPENAI_API_KEY="your Qwen API key"
|
|
891
|
-
export OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
|
|
892
|
-
omk eval --executor openai-api --model qwen-plus \
|
|
893
|
-
--judge-models openai-api:qwen-plus
|
|
894
|
-
|
|
895
|
-
# DeepSeek
|
|
896
|
-
export OPENAI_API_KEY="your DeepSeek API key"
|
|
897
|
-
export OPENAI_BASE_URL="https://api.deepseek.com"
|
|
898
|
-
omk eval --executor openai-api --model deepseek-chat \
|
|
899
|
-
--judge-models openai-api:deepseek-chat
|
|
900
|
-
|
|
901
|
-
# Moonshot (Kimi)
|
|
902
|
-
export OPENAI_API_KEY="your Moonshot API key"
|
|
903
|
-
export OPENAI_BASE_URL="https://api.moonshot.cn/v1"
|
|
904
|
-
omk eval --executor openai-api --model moonshot-v1-8k \
|
|
905
|
-
--judge-models openai-api:moonshot-v1-8k
|
|
906
|
-
```
|
|
907
|
-
|
|
908
|
-
**Ollama local model:**
|
|
909
|
-
|
|
910
|
-
```bash
|
|
911
|
-
omk eval --executor "python examples/custom-executor/ollama-executor.py" \
|
|
912
|
-
--model llama3 --no-judge
|
|
913
|
-
```
|
|
914
|
-
|
|
915
|
-
**About the judge:**
|
|
102
|
+
## Documentation
|
|
916
103
|
|
|
917
|
-
-
|
|
918
|
-
-
|
|
919
|
-
-
|
|
920
|
-
-
|
|
104
|
+
- **[How it works](docs/explanation/architecture.md)** — interleaved scheduling, variant resolution, dual-channel scoring, six-dim report
|
|
105
|
+
- **[Eval sample format](docs/reference/eval-sample-format.md)** — sample schema, scoring formulas, 30+ assertion types, custom JS assertions
|
|
106
|
+
- **[CLI reference](docs/reference/cli.md)** — all seven commands with bash examples and flag tables
|
|
107
|
+
- **[Executors & artifact layout](docs/reference/executors.md)** — built-in / custom executors, agent evaluation, common model configs (Claude / OpenAI / GLM / Qwen / DeepSeek / Moonshot / Ollama)
|
|
108
|
+
- **[Quickstart](docs/quickstart-skill-eval.md)** — first-time five-minute walkthrough
|
|
109
|
+
- **[Sample design spec](docs/specs/sample-design-spec.md)** — capability / construct / provenance metadata; industry-gap mapping
|
|
110
|
+
- **[Statistical rigor](docs/explanation/statistical-rigor.md)** — why bootstrap CI / α / length-debias / saturation matter
|
|
111
|
+
- **[Comparison with 7 tools](docs/reference/comparison.md)** — 25+ dimensions across promptfoo / DeepEval / LangSmith / Langfuse / Braintrust etc.
|
|
921
112
|
|
|
922
113
|
## Environment variables
|
|
923
114
|
|
|
@@ -928,9 +119,9 @@ omk eval --executor "python examples/custom-executor/ollama-executor.py" \
|
|
|
928
119
|
|
|
929
120
|
## Requirements
|
|
930
121
|
|
|
931
|
-
- Node.js >=
|
|
122
|
+
- Node.js >= 22
|
|
932
123
|
- `claude` CLI (for the default executor and LLM judge; see [Claude Code](https://claude.ai/code))
|
|
933
|
-
- not needed if you use other executors (openai / gemini) with `--no-judge`
|
|
124
|
+
- not needed if you use other executors (openai-api / anthropic-api / gemini) with `--no-judge`
|
|
934
125
|
|
|
935
126
|
## Security notice
|
|
936
127
|
|