oh-my-knowledge 0.32.0 → 0.34.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 +29 -14
- package/README.zh.md +32 -17
- package/dist/analysis/coverage-analyzer.d.ts +0 -1
- package/dist/analysis/coverage-analyzer.js +0 -1
- package/dist/analysis/failure-clusterer.d.ts +0 -1
- package/dist/analysis/failure-clusterer.js +0 -1
- package/dist/analysis/gap-analyzer.d.ts +0 -1
- package/dist/analysis/gap-analyzer.js +0 -1
- package/dist/analysis/hedging-classifier.d.ts +0 -1
- package/dist/analysis/hedging-classifier.js +1 -2
- package/dist/analysis/report-diagnostics.d.ts +0 -1
- package/dist/analysis/report-diagnostics.js +0 -1
- package/dist/analysis/sample-diagnostics.d.ts +1 -2
- package/dist/analysis/sample-diagnostics.js +18 -19
- package/dist/analysis/saturation.d.ts +8 -1
- package/dist/analysis/saturation.js +12 -5
- package/dist/assets/agent-skills/omk/SKILL.md +197 -0
- package/dist/assets/agent-skills/omk/references/commands.md +547 -0
- package/dist/authoring/evolver.d.ts +169 -4
- package/dist/authoring/evolver.js +287 -15
- package/dist/authoring/generator.d.ts +29 -2
- package/dist/authoring/generator.js +113 -1
- package/dist/authoring/sample-fixer.d.ts +0 -1
- package/dist/authoring/sample-fixer.js +0 -1
- package/dist/cli/commands/doctor.d.ts +2 -1
- package/dist/cli/commands/doctor.js +24 -6
- package/dist/cli/commands/eval/gold/compare.d.ts +0 -1
- package/dist/cli/commands/eval/gold/compare.js +0 -1
- package/dist/cli/commands/eval/gold/index.d.ts +0 -1
- package/dist/cli/commands/eval/gold/index.js +0 -1
- package/dist/cli/commands/eval/gold/init.d.ts +0 -1
- package/dist/cli/commands/eval/gold/init.js +0 -1
- package/dist/cli/commands/eval/gold/validate.d.ts +0 -1
- package/dist/cli/commands/eval/gold/validate.js +0 -1
- package/dist/cli/commands/eval/index.d.ts +2 -1
- package/dist/cli/commands/eval/index.js +23 -11
- package/dist/cli/commands/evolve.d.ts +7 -1
- package/dist/cli/commands/evolve.js +93 -6
- package/dist/cli/commands/init.d.ts +0 -1
- package/dist/cli/commands/init.js +0 -1
- package/dist/cli/commands/install.d.ts +22 -0
- package/dist/cli/commands/install.js +411 -0
- package/dist/cli/commands/observe/inbox.d.ts +0 -1
- package/dist/cli/commands/observe/inbox.js +0 -1
- package/dist/cli/commands/observe/index.d.ts +0 -1
- package/dist/cli/commands/observe/index.js +6 -3
- package/dist/cli/commands/observe/ingest.d.ts +0 -1
- package/dist/cli/commands/observe/ingest.js +0 -1
- package/dist/cli/commands/observe/show.d.ts +0 -1
- package/dist/cli/commands/observe/show.js +0 -1
- package/dist/cli/commands/sample.d.ts +2 -1
- package/dist/cli/commands/sample.js +100 -9
- package/dist/cli/commands/studio.d.ts +0 -1
- package/dist/cli/commands/studio.js +0 -1
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js +1 -2
- package/dist/cli/lib/cli-exit.d.ts +0 -1
- package/dist/cli/lib/cli-exit.js +0 -1
- package/dist/cli/lib/cmd-flags.d.ts +11 -1
- package/dist/cli/lib/cmd-flags.js +0 -1
- package/dist/cli/lib/i18n-dict/common.d.ts +1 -2
- package/dist/cli/lib/i18n-dict/common.js +18 -3
- package/dist/cli/lib/i18n-dict/evolve.d.ts +1 -2
- package/dist/cli/lib/i18n-dict/evolve.js +24 -1
- package/dist/cli/lib/i18n-dict/gen.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/gen.js +0 -1
- package/dist/cli/lib/i18n-dict/help.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/help.js +0 -1
- package/dist/cli/lib/i18n-dict/init.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/init.js +0 -1
- package/dist/cli/lib/i18n-dict/install.d.ts +3 -0
- package/dist/cli/lib/i18n-dict/install.js +90 -0
- package/dist/cli/lib/i18n-dict/run.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/run.js +0 -1
- package/dist/cli/lib/i18n-dict/types.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/types.js +0 -1
- package/dist/cli/lib/i18n-dict.d.ts +2 -2
- package/dist/cli/lib/i18n-dict.js +2 -1
- package/dist/cli/lib/i18n.d.ts +0 -1
- package/dist/cli/lib/i18n.js +0 -1
- package/dist/cli/lib/parse-run-config/judge-models.d.ts +0 -1
- package/dist/cli/lib/parse-run-config/judge-models.js +0 -1
- package/dist/cli/lib/parse-run-config/samples-discovery.d.ts +0 -1
- package/dist/cli/lib/parse-run-config/samples-discovery.js +1 -4
- package/dist/cli/lib/parse-run-config/variant-resolution.d.ts +8 -4
- package/dist/cli/lib/parse-run-config/variant-resolution.js +46 -14
- package/dist/cli/lib/parse-run-config.d.ts +0 -1
- package/dist/cli/lib/parse-run-config.js +1 -2
- package/dist/cli/lib/progress.d.ts +0 -1
- package/dist/cli/lib/progress.js +0 -1
- package/dist/cli/lib/resolve-skill-input.d.ts +0 -1
- package/dist/cli/lib/resolve-skill-input.js +7 -6
- package/dist/cli/lib/run-tally.d.ts +0 -1
- package/dist/cli/lib/run-tally.js +1 -2
- package/dist/cli/lib/shared.d.ts +0 -1
- package/dist/cli/lib/shared.js +1 -2
- package/dist/cli/lib/update-check.d.ts +65 -1
- package/dist/cli/lib/update-check.js +220 -32
- package/dist/cli/lib/update-fetch-worker.d.ts +1 -0
- package/dist/cli/lib/update-fetch-worker.js +34 -0
- package/dist/cli/oclif/base-command.d.ts +0 -1
- package/dist/cli/oclif/base-command.js +0 -1
- package/dist/cli/oclif/help.d.ts +0 -1
- package/dist/cli/oclif/help.js +0 -1
- package/dist/cli/oclif/i18n.d.ts +0 -1
- package/dist/cli/oclif/i18n.js +0 -1
- package/dist/cli/oclif/parsers.d.ts +0 -1
- package/dist/cli/oclif/parsers.js +0 -1
- package/dist/cli/oclif/projection.d.ts +0 -1
- package/dist/cli/oclif/projection.js +0 -1
- package/dist/cli/oclif/run.d.ts +0 -1
- package/dist/cli/oclif/run.js +0 -1
- package/dist/diagnosis/observe-mapper.d.ts +2 -3
- package/dist/diagnosis/observe-mapper.js +6 -7
- package/dist/diagnosis/observe-producer.d.ts +0 -1
- package/dist/diagnosis/observe-producer.js +3 -4
- package/dist/diagnosis/studio-projection.d.ts +0 -1
- package/dist/diagnosis/studio-projection.js +0 -1
- package/dist/diagnosis/types.d.ts +0 -1
- package/dist/diagnosis/types.js +0 -1
- package/dist/doctor/fixer.d.ts +0 -1
- package/dist/doctor/fixer.js +0 -1
- package/dist/doctor/health/builtin-dimensions.d.ts +0 -1
- package/dist/doctor/health/builtin-dimensions.js +0 -1
- package/dist/doctor/health/composer.d.ts +0 -1
- package/dist/doctor/health/composer.js +1 -2
- package/dist/doctor/health/dimension-registry.d.ts +0 -1
- package/dist/doctor/health/dimension-registry.js +0 -1
- package/dist/doctor/health/dimension-spec.d.ts +0 -1
- package/dist/doctor/health/dimension-spec.js +0 -1
- package/dist/doctor/health/load-custom-dimensions.d.ts +1 -0
- package/dist/doctor/health/load-custom-dimensions.js +30 -0
- package/dist/doctor/health/parser.d.ts +0 -1
- package/dist/doctor/health/parser.js +0 -1
- package/dist/doctor/health/prompt-builder.d.ts +0 -1
- package/dist/doctor/health/prompt-builder.js +0 -1
- package/dist/doctor/health/register.d.ts +0 -1
- package/dist/doctor/health/register.js +0 -1
- package/dist/doctor/index.d.ts +0 -1
- package/dist/doctor/index.js +1 -2
- package/dist/doctor/messages.d.ts +0 -1
- package/dist/doctor/messages.js +1 -2
- package/dist/doctor/preflight.d.ts +0 -1
- package/dist/doctor/preflight.js +0 -1
- package/dist/doctor/renderer.d.ts +0 -1
- package/dist/doctor/renderer.js +0 -1
- package/dist/doctor/rules.d.ts +0 -1
- package/dist/doctor/rules.js +0 -1
- package/dist/eval-core/bootstrap.d.ts +8 -1
- package/dist/eval-core/bootstrap.js +11 -4
- package/dist/eval-core/cache.d.ts +0 -1
- package/dist/eval-core/cache.js +0 -1
- package/dist/eval-core/comparability.d.ts +0 -1
- package/dist/eval-core/comparability.js +3 -4
- package/dist/eval-core/dependency-checker.d.ts +0 -1
- package/dist/eval-core/dependency-checker.js +2 -2
- package/dist/eval-core/evaluation-execution.d.ts +0 -1
- package/dist/eval-core/evaluation-execution.js +0 -1
- package/dist/eval-core/evaluation-job.d.ts +0 -1
- package/dist/eval-core/evaluation-job.js +0 -1
- package/dist/eval-core/evaluation-reporting.d.ts +0 -1
- package/dist/eval-core/evaluation-reporting.js +9 -8
- package/dist/eval-core/execution-strategy.d.ts +0 -1
- package/dist/eval-core/execution-strategy.js +6 -3
- package/dist/eval-core/fact-checker.d.ts +0 -1
- package/dist/eval-core/fact-checker.js +0 -1
- package/dist/eval-core/layer-gates.d.ts +0 -1
- package/dist/eval-core/layer-gates.js +0 -1
- package/dist/eval-core/mocks-runtime.d.ts +0 -1
- package/dist/eval-core/mocks-runtime.js +0 -1
- package/dist/eval-core/schema.d.ts +0 -1
- package/dist/eval-core/schema.js +0 -1
- package/dist/eval-core/statistics.d.ts +0 -1
- package/dist/eval-core/statistics.js +0 -1
- package/dist/eval-core/task-planner.d.ts +0 -1
- package/dist/eval-core/task-planner.js +0 -1
- package/dist/eval-core/verdict.d.ts +21 -4
- package/dist/eval-core/verdict.js +54 -5
- package/dist/eval-workflows/batch-evaluation-workflow.d.ts +18 -3
- package/dist/eval-workflows/batch-evaluation-workflow.js +31 -15
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.js +0 -1
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.js +0 -1
- package/dist/eval-workflows/evaluation-pipeline/run-state.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline/run-state.js +0 -1
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.js +0 -1
- package/dist/eval-workflows/evaluation-pipeline.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline.js +0 -1
- package/dist/eval-workflows/evaluation-preparation.d.ts +1 -5
- package/dist/eval-workflows/evaluation-preparation.js +20 -16
- package/dist/eval-workflows/messages.d.ts +0 -1
- package/dist/eval-workflows/messages.js +0 -1
- package/dist/eval-workflows/run-evaluation.d.ts +4 -9
- package/dist/eval-workflows/run-evaluation.js +16 -26
- package/dist/executors/anthropic-api.d.ts +0 -1
- package/dist/executors/anthropic-api.js +1 -2
- package/dist/executors/claude-cli.d.ts +0 -1
- package/dist/executors/claude-cli.js +0 -1
- package/dist/executors/claude-sdk-trace.d.ts +0 -1
- package/dist/executors/claude-sdk-trace.js +0 -1
- package/dist/executors/claude-sdk.d.ts +0 -1
- package/dist/executors/claude-sdk.js +0 -1
- package/dist/executors/codex-cli-trace.d.ts +0 -1
- package/dist/executors/codex-cli-trace.js +0 -1
- package/dist/executors/codex-cli.d.ts +0 -1
- package/dist/executors/codex-cli.js +0 -1
- package/dist/executors/codex-sdk.d.ts +0 -1
- package/dist/executors/codex-sdk.js +0 -1
- package/dist/executors/gemini.d.ts +0 -1
- package/dist/executors/gemini.js +0 -1
- package/dist/executors/index.d.ts +0 -1
- package/dist/executors/index.js +0 -1
- package/dist/executors/openai-api.d.ts +0 -1
- package/dist/executors/openai-api.js +0 -1
- package/dist/executors/runtime-fingerprint.d.ts +0 -1
- package/dist/executors/runtime-fingerprint.js +2 -3
- package/dist/executors/script.d.ts +0 -1
- package/dist/executors/script.js +0 -1
- package/dist/executors/shared.d.ts +0 -2
- package/dist/executors/shared.js +0 -1
- package/dist/grading/assertions.d.ts +0 -1
- package/dist/grading/assertions.js +0 -1
- package/dist/grading/debias-validate.d.ts +0 -1
- package/dist/grading/debias-validate.js +0 -1
- package/dist/grading/diagnostic.d.ts +0 -1
- package/dist/grading/diagnostic.js +0 -1
- package/dist/grading/gold-cli.d.ts +0 -1
- package/dist/grading/gold-cli.js +0 -1
- package/dist/grading/gold-dataset.d.ts +0 -1
- package/dist/grading/gold-dataset.js +0 -1
- package/dist/grading/human-gold.d.ts +0 -1
- package/dist/grading/human-gold.js +0 -1
- package/dist/grading/index.d.ts +0 -1
- package/dist/grading/index.js +0 -1
- package/dist/grading/judge.d.ts +0 -1
- package/dist/grading/judge.js +0 -1
- package/dist/grading/layered-scores.d.ts +0 -1
- package/dist/grading/layered-scores.js +0 -1
- package/dist/inputs/eval-config.d.ts +0 -1
- package/dist/inputs/eval-config.js +3 -2
- package/dist/inputs/load-samples.d.ts +0 -1
- package/dist/inputs/load-samples.js +0 -1
- package/dist/inputs/mcp-resolver.d.ts +0 -1
- package/dist/inputs/mcp-resolver.js +0 -1
- package/dist/inputs/skill-loader.d.ts +99 -7
- package/dist/inputs/skill-loader.js +325 -45
- package/dist/inputs/source-resolver.d.ts +28 -0
- package/dist/inputs/source-resolver.js +125 -0
- package/dist/inputs/url-fetcher.d.ts +0 -1
- package/dist/inputs/url-fetcher.js +0 -1
- package/dist/managed/index.d.ts +5 -0
- package/dist/managed/index.js +5 -0
- package/dist/managed/store.d.ts +76 -0
- package/dist/managed/store.js +260 -0
- package/dist/observability/experience-frontmatter.d.ts +0 -1
- package/dist/observability/experience-frontmatter.js +0 -1
- package/dist/observability/experience.d.ts +1 -2
- package/dist/observability/experience.js +1 -2
- package/dist/observability/feedback-matchers.d.ts +0 -1
- package/dist/observability/feedback-matchers.js +0 -1
- package/dist/observability/feedback-projection.d.ts +0 -1
- package/dist/observability/feedback-projection.js +0 -1
- package/dist/observability/inbox-view-model.d.ts +0 -1
- package/dist/observability/inbox-view-model.js +0 -1
- package/dist/observability/inbox.d.ts +0 -1
- package/dist/observability/inbox.js +2 -3
- package/dist/observability/problem-patterns.d.ts +0 -1
- package/dist/observability/problem-patterns.js +0 -1
- package/dist/observability/resolved-review.d.ts +0 -1
- package/dist/observability/resolved-review.js +4 -5
- package/dist/observability/review-state.d.ts +0 -1
- package/dist/observability/review-state.js +3 -4
- package/dist/observability/skill-chain-advisories.d.ts +0 -1
- package/dist/observability/skill-chain-advisories.js +0 -1
- package/dist/observability/skill-chain.d.ts +0 -1
- package/dist/observability/skill-chain.js +5 -6
- package/dist/observability/skill-health-analyzer.d.ts +13 -1
- package/dist/observability/skill-health-analyzer.js +17 -3
- package/dist/observability/soft-standards/constants.d.ts +0 -1
- package/dist/observability/soft-standards/constants.js +0 -1
- package/dist/observability/soft-standards/index.d.ts +0 -1
- package/dist/observability/soft-standards/index.js +0 -1
- package/dist/observability/soft-standards/llm-extractor.d.ts +0 -1
- package/dist/observability/soft-standards/llm-extractor.js +7 -8
- package/dist/observability/soft-standards/runtime-evaluator.d.ts +0 -1
- package/dist/observability/soft-standards/runtime-evaluator.js +2 -3
- package/dist/observability/soft-standards/skill-standards-store.d.ts +0 -1
- package/dist/observability/soft-standards/skill-standards-store.js +5 -6
- package/dist/observability/soft-standards/types.d.ts +10 -11
- package/dist/observability/soft-standards/types.js +0 -1
- package/dist/observability/text-signals.d.ts +0 -1
- package/dist/observability/text-signals.js +0 -1
- package/dist/observability/trace-adapter.d.ts +0 -1
- package/dist/observability/trace-adapter.js +0 -1
- package/dist/observability/trace-attribution.d.ts +0 -1
- package/dist/observability/trace-attribution.js +0 -1
- package/dist/observability/trace-segmenter.d.ts +0 -1
- package/dist/observability/trace-segmenter.js +0 -1
- package/dist/observability/trace-source.d.ts +0 -1
- package/dist/observability/trace-source.js +0 -1
- package/dist/renderer/html-renderer.d.ts +0 -1
- package/dist/renderer/html-renderer.js +4 -5
- package/dist/renderer/layout.d.ts +0 -1
- package/dist/renderer/layout.js +2 -1
- package/dist/renderer/observation-inbox/helpers.d.ts +0 -1
- package/dist/renderer/observation-inbox/helpers.js +0 -1
- package/dist/renderer/observation-inbox/styles.d.ts +0 -1
- package/dist/renderer/observation-inbox/styles.js +0 -1
- package/dist/renderer/observation-inbox-renderer.d.ts +0 -1
- package/dist/renderer/observation-inbox-renderer.js +13 -14
- package/dist/renderer/skill-detail-renderer.d.ts +0 -1
- package/dist/renderer/skill-detail-renderer.js +101 -23
- package/dist/renderer/skill-health-renderer.d.ts +0 -1
- package/dist/renderer/skill-health-renderer.js +33 -5
- package/dist/renderer/skill-list-renderer.d.ts +0 -1
- package/dist/renderer/skill-list-renderer.js +18 -7
- package/dist/renderer/summary.d.ts +0 -1
- package/dist/renderer/summary.js +21 -10
- package/dist/renderer/table.d.ts +0 -1
- package/dist/renderer/table.js +0 -1
- package/dist/renderer/test-view.d.ts +0 -1
- package/dist/renderer/test-view.js +0 -1
- package/dist/renderer/trends.d.ts +0 -1
- package/dist/renderer/trends.js +0 -1
- package/dist/server/job-store.d.ts +0 -1
- package/dist/server/job-store.js +0 -1
- package/dist/server/report-server.d.ts +0 -1
- package/dist/server/report-server.js +10 -4
- package/dist/server/report-store.d.ts +1 -2
- package/dist/server/report-store.js +6 -7
- package/dist/server/skill-index.d.ts +0 -1
- package/dist/server/skill-index.js +7 -5
- package/dist/server/skill-insights.d.ts +0 -1
- package/dist/server/skill-insights.js +41 -14
- package/dist/shared/hard-rules.d.ts +0 -1
- package/dist/shared/hard-rules.js +0 -1
- package/dist/shared/llm-prompts/index.d.ts +0 -1
- package/dist/shared/llm-prompts/index.js +0 -1
- package/dist/shared/llm-prompts/skill-health.d.ts +0 -1
- package/dist/shared/llm-prompts/skill-health.js +0 -1
- package/dist/shared/time.d.ts +0 -1
- package/dist/shared/time.js +0 -1
- package/dist/shared/tool-search.d.ts +0 -1
- package/dist/shared/tool-search.js +0 -1
- package/dist/types/dependencies.d.ts +0 -1
- package/dist/types/dependencies.js +0 -1
- package/dist/types/diagnosis.d.ts +0 -1
- package/dist/types/diagnosis.js +0 -1
- package/dist/types/doctor.d.ts +4 -5
- package/dist/types/doctor.js +2 -3
- package/dist/types/eval.d.ts +2 -1
- package/dist/types/eval.js +0 -1
- package/dist/types/executor.d.ts +1 -2
- package/dist/types/executor.js +0 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/judge.d.ts +0 -1
- package/dist/types/judge.js +0 -1
- package/dist/types/managed.d.ts +85 -0
- package/dist/types/managed.js +1 -0
- package/dist/types/observability.d.ts +5 -6
- package/dist/types/observability.js +0 -1
- package/dist/types/report.d.ts +2 -3
- package/dist/types/report.js +0 -1
- package/dist/types/shared.d.ts +0 -1
- package/dist/types/shared.js +0 -1
- package/dist/types/skill-index.d.ts +3 -1
- package/dist/types/skill-index.js +0 -1
- package/dist/types/storage.d.ts +0 -1
- package/dist/types/storage.js +0 -1
- package/dist/util/safe-slice.d.ts +0 -1
- package/dist/util/safe-slice.js +0 -1
- package/package.json +10 -5
- package/dist/analysis/coverage-analyzer.d.ts.map +0 -1
- package/dist/analysis/coverage-analyzer.js.map +0 -1
- package/dist/analysis/failure-clusterer.d.ts.map +0 -1
- package/dist/analysis/failure-clusterer.js.map +0 -1
- package/dist/analysis/gap-analyzer.d.ts.map +0 -1
- package/dist/analysis/gap-analyzer.js.map +0 -1
- package/dist/analysis/hedging-classifier.d.ts.map +0 -1
- package/dist/analysis/hedging-classifier.js.map +0 -1
- package/dist/analysis/report-diagnostics.d.ts.map +0 -1
- package/dist/analysis/report-diagnostics.js.map +0 -1
- package/dist/analysis/sample-diagnostics.d.ts.map +0 -1
- package/dist/analysis/sample-diagnostics.js.map +0 -1
- package/dist/analysis/saturation.d.ts.map +0 -1
- package/dist/analysis/saturation.js.map +0 -1
- package/dist/authoring/evolver.d.ts.map +0 -1
- package/dist/authoring/evolver.js.map +0 -1
- package/dist/authoring/generator.d.ts.map +0 -1
- package/dist/authoring/generator.js.map +0 -1
- package/dist/authoring/sample-fixer.d.ts.map +0 -1
- package/dist/authoring/sample-fixer.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/eval/gold/compare.d.ts.map +0 -1
- package/dist/cli/commands/eval/gold/compare.js.map +0 -1
- package/dist/cli/commands/eval/gold/index.d.ts.map +0 -1
- package/dist/cli/commands/eval/gold/index.js.map +0 -1
- package/dist/cli/commands/eval/gold/init.d.ts.map +0 -1
- package/dist/cli/commands/eval/gold/init.js.map +0 -1
- package/dist/cli/commands/eval/gold/validate.d.ts.map +0 -1
- package/dist/cli/commands/eval/gold/validate.js.map +0 -1
- package/dist/cli/commands/eval/index.d.ts.map +0 -1
- package/dist/cli/commands/eval/index.js.map +0 -1
- package/dist/cli/commands/evolve.d.ts.map +0 -1
- package/dist/cli/commands/evolve.js.map +0 -1
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/observe/inbox.d.ts.map +0 -1
- package/dist/cli/commands/observe/inbox.js.map +0 -1
- package/dist/cli/commands/observe/index.d.ts.map +0 -1
- package/dist/cli/commands/observe/index.js.map +0 -1
- package/dist/cli/commands/observe/ingest.d.ts.map +0 -1
- package/dist/cli/commands/observe/ingest.js.map +0 -1
- package/dist/cli/commands/observe/show.d.ts.map +0 -1
- package/dist/cli/commands/observe/show.js.map +0 -1
- package/dist/cli/commands/sample.d.ts.map +0 -1
- package/dist/cli/commands/sample.js.map +0 -1
- package/dist/cli/commands/studio.d.ts.map +0 -1
- package/dist/cli/commands/studio.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/lib/cli-exit.d.ts.map +0 -1
- package/dist/cli/lib/cli-exit.js.map +0 -1
- package/dist/cli/lib/cmd-flags.d.ts.map +0 -1
- package/dist/cli/lib/cmd-flags.js.map +0 -1
- package/dist/cli/lib/i18n-dict/common.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/common.js.map +0 -1
- package/dist/cli/lib/i18n-dict/evolve.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/evolve.js.map +0 -1
- package/dist/cli/lib/i18n-dict/gen.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/gen.js.map +0 -1
- package/dist/cli/lib/i18n-dict/help.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/help.js.map +0 -1
- package/dist/cli/lib/i18n-dict/init.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/init.js.map +0 -1
- package/dist/cli/lib/i18n-dict/run.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/run.js.map +0 -1
- package/dist/cli/lib/i18n-dict/types.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/types.js.map +0 -1
- package/dist/cli/lib/i18n-dict.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict.js.map +0 -1
- package/dist/cli/lib/i18n.d.ts.map +0 -1
- package/dist/cli/lib/i18n.js.map +0 -1
- package/dist/cli/lib/parse-run-config/judge-models.d.ts.map +0 -1
- package/dist/cli/lib/parse-run-config/judge-models.js.map +0 -1
- package/dist/cli/lib/parse-run-config/samples-discovery.d.ts.map +0 -1
- package/dist/cli/lib/parse-run-config/samples-discovery.js.map +0 -1
- package/dist/cli/lib/parse-run-config/variant-resolution.d.ts.map +0 -1
- package/dist/cli/lib/parse-run-config/variant-resolution.js.map +0 -1
- package/dist/cli/lib/parse-run-config.d.ts.map +0 -1
- package/dist/cli/lib/parse-run-config.js.map +0 -1
- package/dist/cli/lib/progress.d.ts.map +0 -1
- package/dist/cli/lib/progress.js.map +0 -1
- package/dist/cli/lib/resolve-skill-input.d.ts.map +0 -1
- package/dist/cli/lib/resolve-skill-input.js.map +0 -1
- package/dist/cli/lib/run-tally.d.ts.map +0 -1
- package/dist/cli/lib/run-tally.js.map +0 -1
- package/dist/cli/lib/shared.d.ts.map +0 -1
- package/dist/cli/lib/shared.js.map +0 -1
- package/dist/cli/lib/update-check.d.ts.map +0 -1
- package/dist/cli/lib/update-check.js.map +0 -1
- package/dist/cli/oclif/base-command.d.ts.map +0 -1
- package/dist/cli/oclif/base-command.js.map +0 -1
- package/dist/cli/oclif/help.d.ts.map +0 -1
- package/dist/cli/oclif/help.js.map +0 -1
- package/dist/cli/oclif/i18n.d.ts.map +0 -1
- package/dist/cli/oclif/i18n.js.map +0 -1
- package/dist/cli/oclif/parsers.d.ts.map +0 -1
- package/dist/cli/oclif/parsers.js.map +0 -1
- package/dist/cli/oclif/projection.d.ts.map +0 -1
- package/dist/cli/oclif/projection.js.map +0 -1
- package/dist/cli/oclif/run.d.ts.map +0 -1
- package/dist/cli/oclif/run.js.map +0 -1
- package/dist/diagnosis/observe-mapper.d.ts.map +0 -1
- package/dist/diagnosis/observe-mapper.js.map +0 -1
- package/dist/diagnosis/observe-producer.d.ts.map +0 -1
- package/dist/diagnosis/observe-producer.js.map +0 -1
- package/dist/diagnosis/studio-projection.d.ts.map +0 -1
- package/dist/diagnosis/studio-projection.js.map +0 -1
- package/dist/diagnosis/types.d.ts.map +0 -1
- package/dist/diagnosis/types.js.map +0 -1
- package/dist/doctor/fixer.d.ts.map +0 -1
- package/dist/doctor/fixer.js.map +0 -1
- package/dist/doctor/health/builtin-dimensions.d.ts.map +0 -1
- package/dist/doctor/health/builtin-dimensions.js.map +0 -1
- package/dist/doctor/health/composer.d.ts.map +0 -1
- package/dist/doctor/health/composer.js.map +0 -1
- package/dist/doctor/health/dimension-registry.d.ts.map +0 -1
- package/dist/doctor/health/dimension-registry.js.map +0 -1
- package/dist/doctor/health/dimension-spec.d.ts.map +0 -1
- package/dist/doctor/health/dimension-spec.js.map +0 -1
- package/dist/doctor/health/parser.d.ts.map +0 -1
- package/dist/doctor/health/parser.js.map +0 -1
- package/dist/doctor/health/prompt-builder.d.ts.map +0 -1
- package/dist/doctor/health/prompt-builder.js.map +0 -1
- package/dist/doctor/health/register.d.ts.map +0 -1
- package/dist/doctor/health/register.js.map +0 -1
- package/dist/doctor/index.d.ts.map +0 -1
- package/dist/doctor/index.js.map +0 -1
- package/dist/doctor/messages.d.ts.map +0 -1
- package/dist/doctor/messages.js.map +0 -1
- package/dist/doctor/preflight.d.ts.map +0 -1
- package/dist/doctor/preflight.js.map +0 -1
- package/dist/doctor/renderer.d.ts.map +0 -1
- package/dist/doctor/renderer.js.map +0 -1
- package/dist/doctor/rules.d.ts.map +0 -1
- package/dist/doctor/rules.js.map +0 -1
- package/dist/eval-core/bootstrap.d.ts.map +0 -1
- package/dist/eval-core/bootstrap.js.map +0 -1
- package/dist/eval-core/cache.d.ts.map +0 -1
- package/dist/eval-core/cache.js.map +0 -1
- package/dist/eval-core/comparability.d.ts.map +0 -1
- package/dist/eval-core/comparability.js.map +0 -1
- package/dist/eval-core/dependency-checker.d.ts.map +0 -1
- package/dist/eval-core/dependency-checker.js.map +0 -1
- package/dist/eval-core/evaluation-execution.d.ts.map +0 -1
- package/dist/eval-core/evaluation-execution.js.map +0 -1
- package/dist/eval-core/evaluation-job.d.ts.map +0 -1
- package/dist/eval-core/evaluation-job.js.map +0 -1
- package/dist/eval-core/evaluation-reporting.d.ts.map +0 -1
- package/dist/eval-core/evaluation-reporting.js.map +0 -1
- package/dist/eval-core/execution-strategy.d.ts.map +0 -1
- package/dist/eval-core/execution-strategy.js.map +0 -1
- package/dist/eval-core/fact-checker.d.ts.map +0 -1
- package/dist/eval-core/fact-checker.js.map +0 -1
- package/dist/eval-core/layer-gates.d.ts.map +0 -1
- package/dist/eval-core/layer-gates.js.map +0 -1
- package/dist/eval-core/mocks-runtime.d.ts.map +0 -1
- package/dist/eval-core/mocks-runtime.js.map +0 -1
- package/dist/eval-core/schema.d.ts.map +0 -1
- package/dist/eval-core/schema.js.map +0 -1
- package/dist/eval-core/statistics.d.ts.map +0 -1
- package/dist/eval-core/statistics.js.map +0 -1
- package/dist/eval-core/task-planner.d.ts.map +0 -1
- package/dist/eval-core/task-planner.js.map +0 -1
- package/dist/eval-core/verdict.d.ts.map +0 -1
- package/dist/eval-core/verdict.js.map +0 -1
- package/dist/eval-workflows/batch-evaluation-workflow.d.ts.map +0 -1
- package/dist/eval-workflows/batch-evaluation-workflow.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/run-state.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/run-state.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline.js.map +0 -1
- package/dist/eval-workflows/evaluation-preparation.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-preparation.js.map +0 -1
- package/dist/eval-workflows/messages.d.ts.map +0 -1
- package/dist/eval-workflows/messages.js.map +0 -1
- package/dist/eval-workflows/run-evaluation.d.ts.map +0 -1
- package/dist/eval-workflows/run-evaluation.js.map +0 -1
- package/dist/executors/anthropic-api.d.ts.map +0 -1
- package/dist/executors/anthropic-api.js.map +0 -1
- package/dist/executors/claude-cli.d.ts.map +0 -1
- package/dist/executors/claude-cli.js.map +0 -1
- package/dist/executors/claude-sdk-trace.d.ts.map +0 -1
- package/dist/executors/claude-sdk-trace.js.map +0 -1
- package/dist/executors/claude-sdk.d.ts.map +0 -1
- package/dist/executors/claude-sdk.js.map +0 -1
- package/dist/executors/codex-cli-trace.d.ts.map +0 -1
- package/dist/executors/codex-cli-trace.js.map +0 -1
- package/dist/executors/codex-cli.d.ts.map +0 -1
- package/dist/executors/codex-cli.js.map +0 -1
- package/dist/executors/codex-sdk.d.ts.map +0 -1
- package/dist/executors/codex-sdk.js.map +0 -1
- package/dist/executors/gemini.d.ts.map +0 -1
- package/dist/executors/gemini.js.map +0 -1
- package/dist/executors/index.d.ts.map +0 -1
- package/dist/executors/index.js.map +0 -1
- package/dist/executors/openai-api.d.ts.map +0 -1
- package/dist/executors/openai-api.js.map +0 -1
- package/dist/executors/runtime-fingerprint.d.ts.map +0 -1
- package/dist/executors/runtime-fingerprint.js.map +0 -1
- package/dist/executors/script.d.ts.map +0 -1
- package/dist/executors/script.js.map +0 -1
- package/dist/executors/shared.d.ts.map +0 -1
- package/dist/executors/shared.js.map +0 -1
- package/dist/grading/assertions.d.ts.map +0 -1
- package/dist/grading/assertions.js.map +0 -1
- package/dist/grading/debias-validate.d.ts.map +0 -1
- package/dist/grading/debias-validate.js.map +0 -1
- package/dist/grading/diagnostic.d.ts.map +0 -1
- package/dist/grading/diagnostic.js.map +0 -1
- package/dist/grading/gold-cli.d.ts.map +0 -1
- package/dist/grading/gold-cli.js.map +0 -1
- package/dist/grading/gold-dataset.d.ts.map +0 -1
- package/dist/grading/gold-dataset.js.map +0 -1
- package/dist/grading/human-gold.d.ts.map +0 -1
- package/dist/grading/human-gold.js.map +0 -1
- package/dist/grading/index.d.ts.map +0 -1
- package/dist/grading/index.js.map +0 -1
- package/dist/grading/judge.d.ts.map +0 -1
- package/dist/grading/judge.js.map +0 -1
- package/dist/grading/layered-scores.d.ts.map +0 -1
- package/dist/grading/layered-scores.js.map +0 -1
- package/dist/inputs/eval-config.d.ts.map +0 -1
- package/dist/inputs/eval-config.js.map +0 -1
- package/dist/inputs/load-samples.d.ts.map +0 -1
- package/dist/inputs/load-samples.js.map +0 -1
- package/dist/inputs/mcp-resolver.d.ts.map +0 -1
- package/dist/inputs/mcp-resolver.js.map +0 -1
- package/dist/inputs/skill-loader.d.ts.map +0 -1
- package/dist/inputs/skill-loader.js.map +0 -1
- package/dist/inputs/url-fetcher.d.ts.map +0 -1
- package/dist/inputs/url-fetcher.js.map +0 -1
- package/dist/observability/experience-frontmatter.d.ts.map +0 -1
- package/dist/observability/experience-frontmatter.js.map +0 -1
- package/dist/observability/experience.d.ts.map +0 -1
- package/dist/observability/experience.js.map +0 -1
- package/dist/observability/feedback-matchers.d.ts.map +0 -1
- package/dist/observability/feedback-matchers.js.map +0 -1
- package/dist/observability/feedback-projection.d.ts.map +0 -1
- package/dist/observability/feedback-projection.js.map +0 -1
- package/dist/observability/inbox-view-model.d.ts.map +0 -1
- package/dist/observability/inbox-view-model.js.map +0 -1
- package/dist/observability/inbox.d.ts.map +0 -1
- package/dist/observability/inbox.js.map +0 -1
- package/dist/observability/problem-patterns.d.ts.map +0 -1
- package/dist/observability/problem-patterns.js.map +0 -1
- package/dist/observability/resolved-review.d.ts.map +0 -1
- package/dist/observability/resolved-review.js.map +0 -1
- package/dist/observability/review-state.d.ts.map +0 -1
- package/dist/observability/review-state.js.map +0 -1
- package/dist/observability/skill-chain-advisories.d.ts.map +0 -1
- package/dist/observability/skill-chain-advisories.js.map +0 -1
- package/dist/observability/skill-chain.d.ts.map +0 -1
- package/dist/observability/skill-chain.js.map +0 -1
- package/dist/observability/skill-health-analyzer.d.ts.map +0 -1
- package/dist/observability/skill-health-analyzer.js.map +0 -1
- package/dist/observability/soft-standards/constants.d.ts.map +0 -1
- package/dist/observability/soft-standards/constants.js.map +0 -1
- package/dist/observability/soft-standards/index.d.ts.map +0 -1
- package/dist/observability/soft-standards/index.js.map +0 -1
- package/dist/observability/soft-standards/llm-extractor.d.ts.map +0 -1
- package/dist/observability/soft-standards/llm-extractor.js.map +0 -1
- package/dist/observability/soft-standards/runtime-evaluator.d.ts.map +0 -1
- package/dist/observability/soft-standards/runtime-evaluator.js.map +0 -1
- package/dist/observability/soft-standards/skill-standards-store.d.ts.map +0 -1
- package/dist/observability/soft-standards/skill-standards-store.js.map +0 -1
- package/dist/observability/soft-standards/types.d.ts.map +0 -1
- package/dist/observability/soft-standards/types.js.map +0 -1
- package/dist/observability/text-signals.d.ts.map +0 -1
- package/dist/observability/text-signals.js.map +0 -1
- package/dist/observability/trace-adapter.d.ts.map +0 -1
- package/dist/observability/trace-adapter.js.map +0 -1
- package/dist/observability/trace-attribution.d.ts.map +0 -1
- package/dist/observability/trace-attribution.js.map +0 -1
- package/dist/observability/trace-segmenter.d.ts.map +0 -1
- package/dist/observability/trace-segmenter.js.map +0 -1
- package/dist/observability/trace-source.d.ts.map +0 -1
- package/dist/observability/trace-source.js.map +0 -1
- package/dist/renderer/html-renderer.d.ts.map +0 -1
- package/dist/renderer/html-renderer.js.map +0 -1
- package/dist/renderer/layout.d.ts.map +0 -1
- package/dist/renderer/layout.js.map +0 -1
- package/dist/renderer/observation-inbox/helpers.d.ts.map +0 -1
- package/dist/renderer/observation-inbox/helpers.js.map +0 -1
- package/dist/renderer/observation-inbox/styles.d.ts.map +0 -1
- package/dist/renderer/observation-inbox/styles.js.map +0 -1
- package/dist/renderer/observation-inbox-renderer.d.ts.map +0 -1
- package/dist/renderer/observation-inbox-renderer.js.map +0 -1
- package/dist/renderer/skill-detail-renderer.d.ts.map +0 -1
- package/dist/renderer/skill-detail-renderer.js.map +0 -1
- package/dist/renderer/skill-health-renderer.d.ts.map +0 -1
- package/dist/renderer/skill-health-renderer.js.map +0 -1
- package/dist/renderer/skill-list-renderer.d.ts.map +0 -1
- package/dist/renderer/skill-list-renderer.js.map +0 -1
- package/dist/renderer/summary.d.ts.map +0 -1
- package/dist/renderer/summary.js.map +0 -1
- package/dist/renderer/table.d.ts.map +0 -1
- package/dist/renderer/table.js.map +0 -1
- package/dist/renderer/test-view.d.ts.map +0 -1
- package/dist/renderer/test-view.js.map +0 -1
- package/dist/renderer/trends.d.ts.map +0 -1
- package/dist/renderer/trends.js.map +0 -1
- package/dist/server/job-store.d.ts.map +0 -1
- package/dist/server/job-store.js.map +0 -1
- package/dist/server/report-server.d.ts.map +0 -1
- package/dist/server/report-server.js.map +0 -1
- package/dist/server/report-store.d.ts.map +0 -1
- package/dist/server/report-store.js.map +0 -1
- package/dist/server/skill-index.d.ts.map +0 -1
- package/dist/server/skill-index.js.map +0 -1
- package/dist/server/skill-insights.d.ts.map +0 -1
- package/dist/server/skill-insights.js.map +0 -1
- package/dist/shared/hard-rules.d.ts.map +0 -1
- package/dist/shared/hard-rules.js.map +0 -1
- package/dist/shared/llm-prompts/index.d.ts.map +0 -1
- package/dist/shared/llm-prompts/index.js.map +0 -1
- package/dist/shared/llm-prompts/skill-health.d.ts.map +0 -1
- package/dist/shared/llm-prompts/skill-health.js.map +0 -1
- package/dist/shared/time.d.ts.map +0 -1
- package/dist/shared/time.js.map +0 -1
- package/dist/shared/tool-search.d.ts.map +0 -1
- package/dist/shared/tool-search.js.map +0 -1
- package/dist/types/dependencies.d.ts.map +0 -1
- package/dist/types/dependencies.js.map +0 -1
- package/dist/types/diagnosis.d.ts.map +0 -1
- package/dist/types/diagnosis.js.map +0 -1
- package/dist/types/doctor.d.ts.map +0 -1
- package/dist/types/doctor.js.map +0 -1
- package/dist/types/eval.d.ts.map +0 -1
- package/dist/types/eval.js.map +0 -1
- package/dist/types/executor.d.ts.map +0 -1
- package/dist/types/executor.js.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/judge.d.ts.map +0 -1
- package/dist/types/judge.js.map +0 -1
- package/dist/types/observability.d.ts.map +0 -1
- package/dist/types/observability.js.map +0 -1
- package/dist/types/report.d.ts.map +0 -1
- package/dist/types/report.js.map +0 -1
- package/dist/types/shared.d.ts.map +0 -1
- package/dist/types/shared.js.map +0 -1
- package/dist/types/skill-index.d.ts.map +0 -1
- package/dist/types/skill-index.js.map +0 -1
- package/dist/types/storage.d.ts.map +0 -1
- package/dist/types/storage.js.map +0 -1
- package/dist/util/safe-slice.d.ts.map +0 -1
- package/dist/util/safe-slice.js.map +0 -1
|
@@ -39,12 +39,12 @@ export function createFileStore(dir) {
|
|
|
39
39
|
if (!data || typeof data !== 'object')
|
|
40
40
|
return null;
|
|
41
41
|
const record = data;
|
|
42
|
-
if (record.
|
|
42
|
+
if (record.reportKind === 'evaluation') {
|
|
43
43
|
if (!record.meta || !record.summary || !Array.isArray(record.results))
|
|
44
44
|
return null;
|
|
45
45
|
return { ...record, id: typeof record.id === 'string' && record.id ? record.id : fallbackId };
|
|
46
46
|
}
|
|
47
|
-
if (record.
|
|
47
|
+
if (record.reportKind === 'batch-evaluation') {
|
|
48
48
|
if (!record.meta || !Array.isArray(record.items))
|
|
49
49
|
return null;
|
|
50
50
|
return { ...record, id: typeof record.id === 'string' && record.id ? record.id : fallbackId };
|
|
@@ -57,14 +57,14 @@ export function createFileStore(dir) {
|
|
|
57
57
|
&& Array.isArray(record.results)) {
|
|
58
58
|
return {
|
|
59
59
|
...record,
|
|
60
|
-
|
|
60
|
+
reportKind: 'evaluation',
|
|
61
61
|
id: typeof record.id === 'string' && record.id ? record.id : fallbackId,
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
64
|
return null;
|
|
65
65
|
}
|
|
66
66
|
function isEvaluationReport(report) {
|
|
67
|
-
return report.
|
|
67
|
+
return report.reportKind === 'evaluation';
|
|
68
68
|
}
|
|
69
69
|
// Studio 每个 / 和 /skills/<name> 请求都调 list(),里面对每个 .json 同步 readFile +
|
|
70
70
|
// JSON.parse。报告数上来后这是主性能瓶颈。缓存策略:fingerprint = dir mtime + 文件名
|
|
@@ -217,9 +217,9 @@ export async function queryJob(jobStore, id) {
|
|
|
217
217
|
export async function queryRunList(reportStore) {
|
|
218
218
|
return (await reportStore.list()).map((report) => ({
|
|
219
219
|
id: report.id,
|
|
220
|
-
|
|
220
|
+
reportKind: report.reportKind,
|
|
221
221
|
meta: report.meta,
|
|
222
|
-
...(report.
|
|
222
|
+
...(report.reportKind === 'evaluation' ? { summary: report.summary } : { items: report.items }),
|
|
223
223
|
}));
|
|
224
224
|
}
|
|
225
225
|
export async function queryRun(reportStore, id) {
|
|
@@ -247,4 +247,3 @@ export async function queryTrend(reportStore, variantName) {
|
|
|
247
247
|
runs,
|
|
248
248
|
};
|
|
249
249
|
}
|
|
250
|
-
//# sourceMappingURL=report-store.js.map
|
|
@@ -11,4 +11,3 @@ export declare function _resetSkillIndexCache(): void;
|
|
|
11
11
|
export declare function buildSkillIndex(reports: ReportDocument[], analysesDir: string, doctorsDir: string, observationsDir?: string): SkillIndex;
|
|
12
12
|
/** 单 skill 详情查询(用于 /skills/<name> 详情页)— 复用 buildSkillIndex 的扫描结果。 */
|
|
13
13
|
export declare function getSkillEntry(idx: SkillIndex, skillName: string): SkillIndexEntry | null;
|
|
14
|
-
//# sourceMappingURL=skill-index.d.ts.map
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
19
19
|
import { join, isAbsolute, basename, dirname } from 'node:path';
|
|
20
|
+
import { confidenceOf } from '../observability/skill-health-analyzer.js';
|
|
20
21
|
import { computeVerdict } from '../eval-core/verdict.js';
|
|
21
22
|
import { detectInsights } from './skill-insights.js';
|
|
22
23
|
import { DEFAULT_OBSERVATIONS_DIR, loadLatestObservationInboxReports } from '../observability/inbox.js';
|
|
@@ -68,7 +69,7 @@ function buildIndexFingerprint(reports, analysesDir, doctorsDir, observationsDir
|
|
|
68
69
|
// 每一段的 right-hand-side 从旧的 "{dir-mtime}-{file-count}" 双标量升级成
|
|
69
70
|
// safeDirJsonContentFingerprint 返回的 "{dir-mtime}|{file1}:{m}:{s},..."
|
|
70
71
|
// content-aware 字符串。
|
|
71
|
-
const reportIds = reports.map((r) => `${r.id}:${r.meta?.timestamp ?? ''}:${r.
|
|
72
|
+
const reportIds = reports.map((r) => `${r.id}:${r.meta?.timestamp ?? ''}:${r.reportKind === 'evaluation' ? r.meta.evolve?.skillName ?? '' : ''}`).join(',');
|
|
72
73
|
const doctorsFp = safeDirJsonContentFingerprint(doctorsDir);
|
|
73
74
|
const analysesFp = safeDirJsonContentFingerprint(analysesDir);
|
|
74
75
|
const observationsFp = safeDirJsonContentFingerprint(observationsDir);
|
|
@@ -222,7 +223,7 @@ function scanDoctorReports(dir) {
|
|
|
222
223
|
continue;
|
|
223
224
|
try {
|
|
224
225
|
const data = JSON.parse(readFileSync(join(dir, file), 'utf-8'));
|
|
225
|
-
if (data?.
|
|
226
|
+
if (data?.reportKind !== 'doctor' || !Array.isArray(data.skills))
|
|
226
227
|
continue;
|
|
227
228
|
const ts = data.timestamp;
|
|
228
229
|
for (const sr of data.skills) {
|
|
@@ -259,7 +260,7 @@ export function buildSkillIndex(reports, analysesDir, doctorsDir, observationsDi
|
|
|
259
260
|
// ── eval 聚合(历史 list)─────────────────────────────────
|
|
260
261
|
const evalBy = {};
|
|
261
262
|
for (const r of reports) {
|
|
262
|
-
if (r.
|
|
263
|
+
if (r.reportKind !== 'evaluation')
|
|
263
264
|
continue;
|
|
264
265
|
const variants = r.meta.variants || [];
|
|
265
266
|
for (const v of variants) {
|
|
@@ -295,6 +296,8 @@ export function buildSkillIndex(reports, analysesDir, doctorsDir, observationsDi
|
|
|
295
296
|
failureRate: h.toolFailureRate,
|
|
296
297
|
segmentCount: h.segmentCount,
|
|
297
298
|
gapRate: h.gap?.weightedGapRate ?? 0,
|
|
299
|
+
// Legacy reports (pre-confidence) fall back to deriving from segmentCount.
|
|
300
|
+
confidence: h.confidence ?? confidenceOf(h.segmentCount),
|
|
298
301
|
};
|
|
299
302
|
if (!observeBy[skill])
|
|
300
303
|
observeBy[skill] = [];
|
|
@@ -344,7 +347,7 @@ export function buildSkillIndex(reports, analysesDir, doctorsDir, observationsDi
|
|
|
344
347
|
// list 页对每个 entry 跑 detectInsights 的 CPU 开销迁移到这里,只 miss 时算一次。
|
|
345
348
|
const insightsBySkill = new Map();
|
|
346
349
|
for (const ent of entries) {
|
|
347
|
-
const evalReport = ent.eval ? reports.find((r) => r.id === ent.eval.reportId && r.
|
|
350
|
+
const evalReport = ent.eval ? reports.find((r) => r.id === ent.eval.reportId && r.reportKind === 'evaluation') : undefined;
|
|
348
351
|
insightsBySkill.set(ent.skillName, detectInsights(ent, evalReport ?? null, {
|
|
349
352
|
diagnostics: diagnosisBundle.bySkill[ent.skillName] ?? [],
|
|
350
353
|
}));
|
|
@@ -378,4 +381,3 @@ export function buildSkillIndex(reports, analysesDir, doctorsDir, observationsDi
|
|
|
378
381
|
export function getSkillEntry(idx, skillName) {
|
|
379
382
|
return idx.entries.find((e) => e.skillName === skillName) ?? null;
|
|
380
383
|
}
|
|
381
|
-
//# sourceMappingURL=skill-index.js.map
|
|
@@ -29,4 +29,3 @@ export declare function flattenRecommendations(insights: Insight[]): InsightReco
|
|
|
29
29
|
/** 按 audience 分桶 — UI 拆区用。 */
|
|
30
30
|
export declare function groupInsightsByAudience(insights: Insight[]): Record<InsightAudience, Insight[]>;
|
|
31
31
|
export type _SkillEvalSnapshotForInsight = SkillEvalSnapshot;
|
|
32
|
-
//# sourceMappingURL=skill-insights.d.ts.map
|
|
@@ -64,7 +64,7 @@ function getFailedSamples(report, variant) {
|
|
|
64
64
|
* 各 detector 内部一般也用 `>= 2` 作为 cluster 阈值(详情参考各 detector 注释)。
|
|
65
65
|
*
|
|
66
66
|
* 采样不足提醒:单 skill < 2 个非诱错 sample 时不会触发任何 cluster-based insight,
|
|
67
|
-
* 这是设计行为(没数据不下结论),用户层面应该看到"用例数 < 5
|
|
67
|
+
* 这是设计行为(没数据不下结论),用户层面应该看到"用例数 < 5,建议补用例"提示
|
|
68
68
|
* (在 detail page 空态有,list 页面 todo)。
|
|
69
69
|
*/
|
|
70
70
|
function severityOfCount(n) {
|
|
@@ -74,6 +74,23 @@ function severityOfCount(n) {
|
|
|
74
74
|
return 'medium';
|
|
75
75
|
return 'low';
|
|
76
76
|
}
|
|
77
|
+
/** Cap an observe-derived severity by sample-size confidence: an underpowered snapshot
|
|
78
|
+
* (very few segments) must not raise a hard high-severity insight — the gap / failure
|
|
79
|
+
* rate is real but the sample is too small to act on as a high-priority signal. */
|
|
80
|
+
function capByObserveConfidence(severity, observe) {
|
|
81
|
+
if (observe?.confidence === 'underpowered')
|
|
82
|
+
return severity === 'high' ? 'low' : severity;
|
|
83
|
+
return severity;
|
|
84
|
+
}
|
|
85
|
+
/** Evidence caveat appended to underpowered observe insights (null when N is sufficient). */
|
|
86
|
+
function underpoweredCaveat(observe) {
|
|
87
|
+
if (observe?.confidence !== 'underpowered')
|
|
88
|
+
return null;
|
|
89
|
+
return {
|
|
90
|
+
perspective: 'observe', status: 'silent',
|
|
91
|
+
message: `样本量仅 ${observe.segmentCount} 段(underpowered) — 以下为低置信参考信号,需累积更多真实使用 trace 才能下结论`,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
77
94
|
function pickIllustrations(samples, n = 2) {
|
|
78
95
|
return samples.slice(0, n).map((s) => ({
|
|
79
96
|
sampleId: s.sampleId,
|
|
@@ -100,7 +117,7 @@ function detectEnvironmentBlocked(evalReport, variantName) {
|
|
|
100
117
|
id: 'environment-blocked-mocks',
|
|
101
118
|
category: 'environment-blocked-mocks',
|
|
102
119
|
audience: 'sample-author',
|
|
103
|
-
title: `${blocked.length}
|
|
120
|
+
title: `${blocked.length} 条评测用例因 mock 没盖到 LLM 想调的工具而 fail`,
|
|
104
121
|
description: 'LLM 行为正确但工具调用被 mock-strict 拦截 — 这是 sample 设计问题,不是 skill 问题。要么 mock 列表漏写,要么 command_glob/file_path 写得太严没匹配到 LLM 真实调用。',
|
|
105
122
|
severity: severityOfCount(blocked.length),
|
|
106
123
|
affectedCount: blocked.length,
|
|
@@ -175,7 +192,7 @@ function detectSkillDocGap(doctor, evalReport, observe, variantName) {
|
|
|
175
192
|
if (failedDocSamples.length > 0) {
|
|
176
193
|
evidence.push({
|
|
177
194
|
perspective: 'eval-functional', status: 'flagged',
|
|
178
|
-
message: `${failedDocSamples.length}
|
|
195
|
+
message: `${failedDocSamples.length} 条评测用例失败,LLM 没找到该读哪段文档(${failedDocSamples.map((f) => f.sampleId).join(', ')})`,
|
|
179
196
|
ref: failedDocSamples[0].sampleId,
|
|
180
197
|
illustrations: pickIllustrations(failedDocSamples, 2),
|
|
181
198
|
});
|
|
@@ -237,7 +254,7 @@ function detectSkillDocGap(doctor, evalReport, observe, variantName) {
|
|
|
237
254
|
category: 'skill-doc-gap',
|
|
238
255
|
audience: failedDocSamples.length > 0 ? 'skill-author' : 'sample-author',
|
|
239
256
|
title: failedDocSamples.length > 0
|
|
240
|
-
? `LLM 漏读 skill 引用的文件,导致 ${failedDocSamples.length}
|
|
257
|
+
? `LLM 漏读 skill 引用的文件,导致 ${failedDocSamples.length} 条用例失败`
|
|
241
258
|
: 'skill 引用了文件但没声明在 sample.environment 里',
|
|
242
259
|
description: 'skill 文档提到某些前置文件,但 sample 没标"已就绪"。LLM 看 prompt 时会试图先探测/Read 这些文件,在 mocks-strict 环境下被拦,流程在第一步就停。',
|
|
243
260
|
severity,
|
|
@@ -341,7 +358,7 @@ NAMESPACE=$(<your-cli> auth status -o json | jq -r '.username')
|
|
|
341
358
|
id: `failure-mode-skill:${topMode}`,
|
|
342
359
|
category: 'failure-mode-skill',
|
|
343
360
|
audience: 'skill-author',
|
|
344
|
-
title: `${topSamples.length}
|
|
361
|
+
title: `${topSamples.length} 条用例踩同一个写法坑:${topMode}`,
|
|
345
362
|
description: MODE_USERFACING_DESC[topMode] ?? `多 sample 共享 failureMode 「${topMode}」,skill 文档对此没抑制`,
|
|
346
363
|
severity: severityOfCount(topSamples.length),
|
|
347
364
|
affectedCount: topSamples.length,
|
|
@@ -379,13 +396,15 @@ function detectProductionInstability(doctor, observe) {
|
|
|
379
396
|
return null;
|
|
380
397
|
const depRule = doctor?.results.find((r) => r.ruleId === 'dependencies_present'
|
|
381
398
|
&& (r.status === 'warn' || r.status === 'fail'));
|
|
399
|
+
const severity = capByObserveConfidence('high', observe);
|
|
400
|
+
const caveat = underpoweredCaveat(observe);
|
|
382
401
|
return {
|
|
383
402
|
id: 'production-instability',
|
|
384
403
|
category: 'production-instability',
|
|
385
404
|
audience: 'skill-author',
|
|
386
405
|
title: `生产环境跑这个 skill 时,工具失败率 ${(observe.failureRate * 100).toFixed(0)}%`,
|
|
387
406
|
description: '真实用户用这个 skill,LLM 调出去的工具经常报错。可能是凭证/网络/上游 SLA 问题,也可能是 skill 教错了用什么工具/参数。',
|
|
388
|
-
severity
|
|
407
|
+
severity,
|
|
389
408
|
affectedCount: Math.round(observe.segmentCount * observe.failureRate),
|
|
390
409
|
stageRefs: {
|
|
391
410
|
observeRefs: ['high-failure-rate'],
|
|
@@ -408,11 +427,12 @@ function detectProductionInstability(doctor, observe) {
|
|
|
408
427
|
? 'doctor 没警告依赖,失败可能在 CLI/凭证/上游 API 层(skill 自身可能没错)'
|
|
409
428
|
: '没跑 doctor,无法对照',
|
|
410
429
|
},
|
|
430
|
+
...(caveat ? [caveat] : []),
|
|
411
431
|
],
|
|
412
432
|
recommendations: [
|
|
413
433
|
{
|
|
414
434
|
action: '排查产线工具失败原因:CLI 安装 / 凭证有效期 / 网络 / 上游 API SLA',
|
|
415
|
-
priority:
|
|
435
|
+
priority: severity,
|
|
416
436
|
},
|
|
417
437
|
...(depRule ? [{
|
|
418
438
|
action: '依据 doctor 警告补依赖声明 / 改 skill 引用',
|
|
@@ -454,7 +474,7 @@ function detectCoverageGap(evalReport, observe, variantName) {
|
|
|
454
474
|
if (evalUncovered.length > 0) {
|
|
455
475
|
evidence.push({
|
|
456
476
|
perspective: 'eval-functional', status: 'flagged',
|
|
457
|
-
message:
|
|
477
|
+
message: `评测用例也漏覆盖 ${evalUncovered.length} 个文件:${evalUncovered.slice(0, 3).join(', ')}${evalUncovered.length > 3 ? '...' : ''}`,
|
|
458
478
|
});
|
|
459
479
|
}
|
|
460
480
|
else {
|
|
@@ -463,8 +483,10 @@ function detectCoverageGap(evalReport, observe, variantName) {
|
|
|
463
483
|
message: '评测覆盖率 OK,gap 主要来自生产用法跟 sample 设计有差距',
|
|
464
484
|
});
|
|
465
485
|
}
|
|
466
|
-
const
|
|
467
|
-
|
|
486
|
+
const caveat = underpoweredCaveat(observe);
|
|
487
|
+
if (caveat)
|
|
488
|
+
evidence.push(caveat);
|
|
489
|
+
const severity = capByObserveConfidence(observe.gapRate >= 0.4 ? 'high' : observe.gapRate >= 0.2 ? 'medium' : 'low', observe);
|
|
468
490
|
return {
|
|
469
491
|
id: 'coverage-gap',
|
|
470
492
|
category: 'coverage-gap',
|
|
@@ -515,14 +537,20 @@ function detectSkillTooLong(doctor, observe) {
|
|
|
515
537
|
perspective: 'observe', status: 'flagged',
|
|
516
538
|
message: `生产 gap ${(observe.gapRate * 100).toFixed(0)}% — 长 skill 让 LLM 找不到段落,跟 doctor 警告印证`,
|
|
517
539
|
});
|
|
540
|
+
const caveat = underpoweredCaveat(observe);
|
|
541
|
+
if (caveat)
|
|
542
|
+
evidence.push(caveat);
|
|
518
543
|
}
|
|
544
|
+
// doctor warn 是主信号;只有当 observe gap 高且样本量足够时才升到 medium。underpowered 的高 gap
|
|
545
|
+
// 不足以把严重度抬上去 —— 跟 detectProductionInstability / detectCoverageGap 的 confidence 口径一致。
|
|
546
|
+
const observeBump = observe != null && observe.gapRate >= 0.3 && observe.confidence !== 'underpowered';
|
|
519
547
|
return {
|
|
520
548
|
id: 'skill-too-long',
|
|
521
549
|
category: 'skill-too-long',
|
|
522
550
|
audience: 'skill-author',
|
|
523
551
|
title: 'skill 文档太长,LLM 容易漏读',
|
|
524
552
|
description: 'skill 内容超过推荐上限。长 skill 在 LLM 上下文里会被压缩注意力,LLM 跟着前几段走,后面的关键约束容易漏读。',
|
|
525
|
-
severity:
|
|
553
|
+
severity: observeBump ? 'medium' : 'low',
|
|
526
554
|
affectedCount: 1,
|
|
527
555
|
stageRefs: {
|
|
528
556
|
doctorRuleIds: ['skill_readable'],
|
|
@@ -585,7 +613,7 @@ function detectOmkDoctorBlindspot(doctor, evalReport, variantName) {
|
|
|
585
613
|
evidence: [
|
|
586
614
|
{
|
|
587
615
|
perspective: 'eval-functional', status: 'flagged',
|
|
588
|
-
message: `${candidates.length}
|
|
616
|
+
message: `${candidates.length} 条用例因 ${observedModes.join(' / ')} 失败,doctor 全 pass`,
|
|
589
617
|
ref: candidates[0].sampleId,
|
|
590
618
|
},
|
|
591
619
|
{
|
|
@@ -606,7 +634,7 @@ function detectOmkDoctorBlindspot(doctor, evalReport, variantName) {
|
|
|
606
634
|
snippet: `// omk 仓库新增 composer rule(omk 维护者负责,非 skill 开发者职责)
|
|
607
635
|
export const skillAntiPatternComposer: ComposerRule = {
|
|
608
636
|
id: 'skill_anti_patterns',
|
|
609
|
-
|
|
637
|
+
ruleKind: 'composer',
|
|
610
638
|
severity: 'warn',
|
|
611
639
|
labelKey: 'doctor.skill_anti_patterns.label',
|
|
612
640
|
async checkAll(ctx): Promise<ComposerOutcome[]> {
|
|
@@ -785,4 +813,3 @@ export function groupInsightsByAudience(insights) {
|
|
|
785
813
|
out[ins.audience].push(ins);
|
|
786
814
|
return out;
|
|
787
815
|
}
|
|
788
|
-
//# sourceMappingURL=skill-insights.js.map
|
|
@@ -39,4 +39,3 @@ export declare function extractSkillHardRules(content: string): SkillHardRule[];
|
|
|
39
39
|
export declare function validateSkillWorkflows(content: string): SkillWorkflowsValidationResult;
|
|
40
40
|
export declare function extractSkillWorkflows(content: string): SkillWorkflow[];
|
|
41
41
|
export declare function extractMarkdownStepWorkflows(content: string): SkillWorkflow[];
|
|
42
|
-
//# sourceMappingURL=hard-rules.d.ts.map
|
package/dist/shared/time.d.ts
CHANGED
package/dist/shared/time.js
CHANGED
|
@@ -6,4 +6,3 @@ export declare function toolCallQuery(tc: ToolCallInfo): {
|
|
|
6
6
|
export declare function bashSearchOrProbeCommand(command: string): boolean;
|
|
7
7
|
export declare function isSearchToolCall(tc: ToolCallInfo): boolean;
|
|
8
8
|
export declare function isFailedSearchToolCall(tc: ToolCallInfo): boolean;
|
|
9
|
-
//# sourceMappingURL=tool-search.d.ts.map
|
package/dist/types/diagnosis.js
CHANGED
package/dist/types/doctor.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type DoctorSkillStatus = 'pass' | 'warn' | 'fail';
|
|
|
10
10
|
export type DoctorOutcome = 'passed' | 'warnings_only' | 'failed';
|
|
11
11
|
/** Bumped whenever DoctorReport schema changes in a way CI consumers should
|
|
12
12
|
* be able to detect. CI can pin/check this when parsing the JSON. */
|
|
13
|
-
export declare const DOCTOR_REPORT_SCHEMA_VERSION = "
|
|
13
|
+
export declare const DOCTOR_REPORT_SCHEMA_VERSION = "2.0.0";
|
|
14
14
|
export interface DoctorRuleResult {
|
|
15
15
|
ruleId: string;
|
|
16
16
|
severity: DoctorSeverity;
|
|
@@ -41,11 +41,11 @@ export interface ComposerOutcome extends DoctorRuleCheckOutcome {
|
|
|
41
41
|
severity?: DoctorSeverity;
|
|
42
42
|
}
|
|
43
43
|
/** 复合 rule:一次 checkAll() 产出多条 result,适合"单次 LLM 调用 → N 个维度结果"
|
|
44
|
-
* 这类场景。doctor engine 检测
|
|
44
|
+
* 这类场景。doctor engine 检测 ruleKind === 'composer' 时把数组结果展开,每条共享
|
|
45
45
|
* 同一个 groupId(= composer.id)以便 renderer 分组。 */
|
|
46
46
|
export interface ComposerRule {
|
|
47
47
|
id: string;
|
|
48
|
-
|
|
48
|
+
ruleKind: 'composer';
|
|
49
49
|
/** 默认 severity(子 outcome 未指定时用)。 */
|
|
50
50
|
severity: DoctorSeverity;
|
|
51
51
|
/** 默认 labelKey(子 outcome 未指定时用,通常是 composer 整体的标签)。 */
|
|
@@ -94,7 +94,7 @@ export interface DoctorSkillReport {
|
|
|
94
94
|
status: DoctorSkillStatus;
|
|
95
95
|
}
|
|
96
96
|
export interface DoctorReport {
|
|
97
|
-
|
|
97
|
+
reportKind: 'doctor';
|
|
98
98
|
/** Schema version the JSON consumer can pin/check. Bumped on any
|
|
99
99
|
* user-visible change to this report's shape. See DOCTOR_REPORT_SCHEMA_VERSION. */
|
|
100
100
|
schemaVersion: string;
|
|
@@ -154,4 +154,3 @@ export interface DoctorRunOptions {
|
|
|
154
154
|
runHealthCheck?: boolean;
|
|
155
155
|
effort?: 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
156
156
|
}
|
|
157
|
-
//# sourceMappingURL=doctor.d.ts.map
|
package/dist/types/doctor.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/** Bumped whenever DoctorReport schema changes in a way CI consumers should
|
|
2
2
|
* be able to detect. CI can pin/check this when parsing the JSON. */
|
|
3
|
-
export const DOCTOR_REPORT_SCHEMA_VERSION = '
|
|
3
|
+
export const DOCTOR_REPORT_SCHEMA_VERSION = '2.0.0';
|
|
4
4
|
export function isComposerRule(r) {
|
|
5
|
-
return r.
|
|
5
|
+
return r.ruleKind === 'composer';
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=doctor.js.map
|
package/dist/types/eval.d.ts
CHANGED
|
@@ -164,6 +164,8 @@ export interface VariantSpec {
|
|
|
164
164
|
name: string;
|
|
165
165
|
role: ExperimentRole;
|
|
166
166
|
expr: string;
|
|
167
|
+
cwd?: string;
|
|
168
|
+
allowedSkills?: string[];
|
|
167
169
|
}
|
|
168
170
|
export interface EvalConfigVariant {
|
|
169
171
|
name: string;
|
|
@@ -374,4 +376,3 @@ export interface Task {
|
|
|
374
376
|
cwd: string | null;
|
|
375
377
|
_sample: Sample;
|
|
376
378
|
}
|
|
377
|
-
//# sourceMappingURL=eval.d.ts.map
|
package/dist/types/eval.js
CHANGED
package/dist/types/executor.d.ts
CHANGED
|
@@ -142,10 +142,9 @@ export interface ExecutorRuntimeBinary {
|
|
|
142
142
|
export interface ExecutorRuntimeFingerprint {
|
|
143
143
|
executor: string;
|
|
144
144
|
model: string;
|
|
145
|
-
|
|
145
|
+
runtimeKind: ExecutorRuntimeKind;
|
|
146
146
|
fingerprint: string;
|
|
147
147
|
binary?: ExecutorRuntimeBinary;
|
|
148
148
|
sdk?: ExecutorRuntimePackage;
|
|
149
149
|
capabilities: ExecutorRuntimeCapabilities;
|
|
150
150
|
}
|
|
151
|
-
//# sourceMappingURL=executor.d.ts.map
|
package/dist/types/executor.js
CHANGED
package/dist/types/index.d.ts
CHANGED
package/dist/types/index.js
CHANGED
package/dist/types/judge.d.ts
CHANGED
package/dist/types/judge.js
CHANGED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { ArtifactKind } from './eval.js';
|
|
2
|
+
/**
|
|
3
|
+
* 受管 artifact 记录(managed record)——证据门控管理的最小持久单元。
|
|
4
|
+
*
|
|
5
|
+
* 设计原则(见 docs/specs/evidence-gated-management.md §5/§6):**只落盘事实与指针**。
|
|
6
|
+
* verdict / 可比性 / underpowered 是从 Report 推导出来的,不是这里的持久列;生命周期标签
|
|
7
|
+
* (installed / measurable / stale)也是读时推导(见 `deriveManagedState`),不持久 ——
|
|
8
|
+
* 持久一个会随源文件漂移而过期的标签等于让记录"撒谎"。需要"状态随时间"时持久化
|
|
9
|
+
* append-only 事件(installedAt、未来的 promote/reject/rollback 决定),而非可变标签。
|
|
10
|
+
*
|
|
11
|
+
* 判别字命名:外层 `recordKind` / 决定的 `decisionKind` 都是限定名;唯一的裸 `kind` 是
|
|
12
|
+
* `ManagedArtifactRecord.kind: ArtifactKind`——这正是裸 kind 该有的语义(知识 artifact 类型)。
|
|
13
|
+
*/
|
|
14
|
+
/** 一次分发落点的事实(把 skill 拷进某个 agent 工具 skill 目录)。 */
|
|
15
|
+
export interface ManagedDistributionTarget {
|
|
16
|
+
/** 目标标签,如 'Claude Code' / 'Codex/AGENTS' / 'custom'。 */
|
|
17
|
+
label: string;
|
|
18
|
+
/** 实际写入的绝对路径({skillsDir}/{name} 或 {skillsDir}/{name}.md)。 */
|
|
19
|
+
path: string;
|
|
20
|
+
/** 拷到此目标的内容 hash(= 安装时源 hash)。 */
|
|
21
|
+
contentHash: string;
|
|
22
|
+
copiedAt: string;
|
|
23
|
+
}
|
|
24
|
+
/** 指向一份 Report 的引用——不是 verdict 本体。install 时为空,eval/promote 追加。 */
|
|
25
|
+
export interface ManagedEvidenceRef {
|
|
26
|
+
reportId: string;
|
|
27
|
+
/** 该 report 测的是哪份内容(artifact contentHash)。读时只把与记录当前 contentHash 匹配的
|
|
28
|
+
* evidence 算作当前有效证据——重装到新内容后旧证据保留供回滚,但不让新内容显得已测。 */
|
|
29
|
+
contentHash: string;
|
|
30
|
+
recordedAt: string;
|
|
31
|
+
}
|
|
32
|
+
export type ManagedDecisionKind = 'promote' | 'reject' | 'rollback';
|
|
33
|
+
/** 一次人工管理决定。install 时为空,promote/reject/rollback 追加。 */
|
|
34
|
+
export interface ManagedDecision {
|
|
35
|
+
decisionKind: ManagedDecisionKind;
|
|
36
|
+
actor: string;
|
|
37
|
+
decidedAt: string;
|
|
38
|
+
reason?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ManagedArtifactSource {
|
|
41
|
+
/** 源类型(限定判别字,非裸 kind)。`file`=本地路径;`git`=当前仓库的某个 ref。 */
|
|
42
|
+
sourceKind: 'file' | 'git';
|
|
43
|
+
/** 源身份,按 sourceKind 分义:
|
|
44
|
+
* - file:本地重哈根(目录-skill 为根目录、文件-skill 为 .md),`hashArtifactSource(locator, isDirectorySkill)` 直接 round-trip;
|
|
45
|
+
* - git:`git:<ref>:<name>`(非临时物化路径),drift 由 resolver 重物化重哈 —— mutable ref 给真实漂移、SHA 给不可变。 */
|
|
46
|
+
locator: string;
|
|
47
|
+
/** git 来源的 ref(file 源无)。 */
|
|
48
|
+
ref?: string;
|
|
49
|
+
/** 目录-skill(SKILL.md + assets)还是裸 .md 文件-skill。 */
|
|
50
|
+
isDirectorySkill: boolean;
|
|
51
|
+
}
|
|
52
|
+
/** 一条记录一个文件 `.omk/managed/<id>.json`,自带 recordKind + schemaVersion 便于单独迁移。 */
|
|
53
|
+
export interface ManagedArtifactRecord {
|
|
54
|
+
recordKind: 'managed-artifact';
|
|
55
|
+
/** v2 起 source 带 sourceKind(多源化)。v1(仅 #211)无,按去兼容直接判脏丢弃、不迁移。 */
|
|
56
|
+
schemaVersion: 2;
|
|
57
|
+
/** 稳定身份 = hash(kind, name);源路径是可变属性、不进 id——挪动源文件不孤儿化记录。 */
|
|
58
|
+
id: string;
|
|
59
|
+
name: string;
|
|
60
|
+
kind: ArtifactKind;
|
|
61
|
+
source: ManagedArtifactSource;
|
|
62
|
+
/** 安装时的源内容 hash——drift baseline。 */
|
|
63
|
+
contentHash: string;
|
|
64
|
+
/** 首次纳管时间("under management since");per-target 时效看 distribution[].copiedAt。 */
|
|
65
|
+
installedAt: string;
|
|
66
|
+
distribution: ManagedDistributionTarget[];
|
|
67
|
+
evidence: ManagedEvidenceRef[];
|
|
68
|
+
decisions: ManagedDecision[];
|
|
69
|
+
}
|
|
70
|
+
/** 读时推导的生命周期标签——不持久(见文件头说明)。 */
|
|
71
|
+
export type ManagedLifecycleLabel = 'discovered' | 'installed' | 'measurable' | 'stale';
|
|
72
|
+
export interface DerivedManagedState {
|
|
73
|
+
label: ManagedLifecycleLabel;
|
|
74
|
+
/** 当前源 hash 与记录的 contentHash 不一致(或源已不在)。 */
|
|
75
|
+
drifted: boolean;
|
|
76
|
+
hasEvidence: boolean;
|
|
77
|
+
}
|
|
78
|
+
/** 推导所需、但不在记录里的当前事实(源文件现状、doctor/samples 状态)。 */
|
|
79
|
+
export interface DeriveManagedStateInput {
|
|
80
|
+
record: ManagedArtifactRecord;
|
|
81
|
+
/** 源文件当前内容 hash;undefined = 源已不在。 */
|
|
82
|
+
currentContentHash?: string;
|
|
83
|
+
/** 是否已有 samples / doctor 通过(用于 measurable);install 不传。 */
|
|
84
|
+
hasSamplesOrDoctorPass?: boolean;
|
|
85
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -43,7 +43,7 @@ export interface ObservationReviewStateEntry {
|
|
|
43
43
|
snippet?: string;
|
|
44
44
|
}
|
|
45
45
|
export interface ObservationReviewState {
|
|
46
|
-
|
|
46
|
+
reportKind: 'observe-review-state';
|
|
47
47
|
schemaVersion: 1;
|
|
48
48
|
updatedAt: string;
|
|
49
49
|
entries: Record<string, ObservationReviewStateEntry>;
|
|
@@ -184,7 +184,7 @@ export interface ObservationSessionTimeRange {
|
|
|
184
184
|
durationMs?: number;
|
|
185
185
|
}
|
|
186
186
|
export interface ObservationInboxReport {
|
|
187
|
-
|
|
187
|
+
reportKind: 'observe-inbox';
|
|
188
188
|
schemaVersion: 1;
|
|
189
189
|
meta: {
|
|
190
190
|
tracePath: string;
|
|
@@ -735,7 +735,7 @@ export interface ExperienceSkillSummary {
|
|
|
735
735
|
relatedObservationIds: string[];
|
|
736
736
|
}
|
|
737
737
|
export interface ObservationExperienceReport {
|
|
738
|
-
|
|
738
|
+
reportKind: 'observe-experience';
|
|
739
739
|
schemaVersion: 1;
|
|
740
740
|
scope: 'evidence-only';
|
|
741
741
|
generatedAt: string;
|
|
@@ -753,7 +753,7 @@ export interface ObservationExperienceReport {
|
|
|
753
753
|
}
|
|
754
754
|
export type ObservationRuntimeCheckStatus = 'passed' | 'attention' | 'manual_review';
|
|
755
755
|
export interface ObservationRuntimeCheck {
|
|
756
|
-
|
|
756
|
+
nodeKind: 'hardRule' | 'workflowNode';
|
|
757
757
|
id: string;
|
|
758
758
|
title: string;
|
|
759
759
|
expectation: string;
|
|
@@ -770,7 +770,7 @@ export interface SkillRuntimeEvidencePackRef extends Pick<ExperienceEvidenceRef,
|
|
|
770
770
|
}
|
|
771
771
|
export interface SkillRuntimeEvidencePackNode {
|
|
772
772
|
nodeId: string;
|
|
773
|
-
|
|
773
|
+
nodeKind: 'workflowNode' | 'hardRule';
|
|
774
774
|
title: string;
|
|
775
775
|
expectation: string;
|
|
776
776
|
deterministicStatus: ObservationRuntimeCheckStatus;
|
|
@@ -862,4 +862,3 @@ export interface ObservationSkillChain {
|
|
|
862
862
|
evidencePack?: SkillRuntimeEvidencePack;
|
|
863
863
|
};
|
|
864
864
|
}
|
|
865
|
-
//# sourceMappingURL=observability.d.ts.map
|
package/dist/types/report.d.ts
CHANGED
|
@@ -341,7 +341,7 @@ export interface SampleSnapshot {
|
|
|
341
341
|
tripwire?: boolean;
|
|
342
342
|
}
|
|
343
343
|
export interface EvaluationReport {
|
|
344
|
-
|
|
344
|
+
reportKind: 'evaluation';
|
|
345
345
|
id: string;
|
|
346
346
|
meta: ReportMeta;
|
|
347
347
|
summary: Record<string, VariantSummary>;
|
|
@@ -394,7 +394,7 @@ export interface BatchEvaluationItem {
|
|
|
394
394
|
variance?: VarianceData;
|
|
395
395
|
}
|
|
396
396
|
export interface BatchEvaluationReport {
|
|
397
|
-
|
|
397
|
+
reportKind: 'batch-evaluation';
|
|
398
398
|
id: string;
|
|
399
399
|
mode: 'skill';
|
|
400
400
|
meta: BatchEvaluationMeta;
|
|
@@ -557,4 +557,3 @@ export interface SaturationData {
|
|
|
557
557
|
reason: string;
|
|
558
558
|
}>;
|
|
559
559
|
}
|
|
560
|
-
//# sourceMappingURL=report.d.ts.map
|