oh-my-knowledge 0.29.0 → 0.31.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 +204 -25
- package/README.zh.md +204 -25
- package/dist/src/analysis/report-diagnostics.js +2 -0
- package/dist/src/analysis/report-diagnostics.js.map +1 -1
- package/dist/src/authoring/evolver.d.ts +32 -2
- package/dist/src/authoring/evolver.d.ts.map +1 -1
- package/dist/src/authoring/evolver.js +416 -52
- package/dist/src/authoring/evolver.js.map +1 -1
- package/dist/src/authoring/generator.d.ts +24 -23
- package/dist/src/authoring/generator.d.ts.map +1 -1
- package/dist/src/authoring/generator.js +637 -40
- package/dist/src/authoring/generator.js.map +1 -1
- package/dist/src/authoring/sample-fixer.d.ts +51 -0
- package/dist/src/authoring/sample-fixer.d.ts.map +1 -0
- package/dist/src/authoring/sample-fixer.js +213 -0
- package/dist/src/authoring/sample-fixer.js.map +1 -0
- package/dist/src/cli/commands/doctor.d.ts +25 -1
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +233 -124
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/eval/gold/compare.d.ts +17 -0
- package/dist/src/cli/commands/eval/gold/compare.d.ts.map +1 -0
- package/dist/src/cli/commands/eval/gold/compare.js +91 -0
- package/dist/src/cli/commands/eval/gold/compare.js.map +1 -0
- package/dist/src/cli/commands/eval/gold/index.d.ts +9 -0
- package/dist/src/cli/commands/eval/gold/index.d.ts.map +1 -0
- package/dist/src/cli/commands/eval/gold/index.js +34 -0
- package/dist/src/cli/commands/eval/gold/index.js.map +1 -0
- package/dist/src/cli/commands/eval/gold/init.d.ts +11 -0
- package/dist/src/cli/commands/eval/gold/init.d.ts.map +1 -0
- package/dist/src/cli/commands/eval/gold/init.js +51 -0
- package/dist/src/cli/commands/eval/gold/init.js.map +1 -0
- package/dist/src/cli/commands/eval/gold/validate.d.ts +12 -0
- package/dist/src/cli/commands/eval/gold/validate.d.ts.map +1 -0
- package/dist/src/cli/commands/eval/gold/validate.js +46 -0
- package/dist/src/cli/commands/eval/gold/validate.js.map +1 -0
- package/dist/src/cli/commands/eval/index.d.ts +54 -0
- package/dist/src/cli/commands/eval/index.d.ts.map +1 -0
- package/dist/src/cli/commands/{eval-runner.js → eval/index.js} +216 -50
- package/dist/src/cli/commands/eval/index.js.map +1 -0
- package/dist/src/cli/commands/evolve.d.ts +36 -1
- package/dist/src/cli/commands/evolve.d.ts.map +1 -1
- package/dist/src/cli/commands/evolve.js +202 -41
- package/dist/src/cli/commands/evolve.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts +15 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +70 -28
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/observe/inbox.d.ts +23 -0
- package/dist/src/cli/commands/observe/inbox.d.ts.map +1 -0
- package/dist/src/cli/commands/observe/inbox.js +258 -0
- package/dist/src/cli/commands/observe/inbox.js.map +1 -0
- package/dist/src/cli/commands/observe/index.d.ts +22 -0
- package/dist/src/cli/commands/observe/index.d.ts.map +1 -0
- package/dist/src/cli/commands/observe/index.js +118 -0
- package/dist/src/cli/commands/observe/index.js.map +1 -0
- package/dist/src/cli/commands/observe/ingest.d.ts +13 -0
- package/dist/src/cli/commands/observe/ingest.d.ts.map +1 -0
- package/dist/src/cli/commands/observe/ingest.js +69 -0
- package/dist/src/cli/commands/observe/ingest.js.map +1 -0
- package/dist/src/cli/commands/observe/show.d.ts +13 -0
- package/dist/src/cli/commands/observe/show.d.ts.map +1 -0
- package/dist/src/cli/commands/observe/show.js +49 -0
- package/dist/src/cli/commands/observe/show.js.map +1 -0
- package/dist/src/cli/commands/sample.d.ts +37 -1
- package/dist/src/cli/commands/sample.d.ts.map +1 -1
- package/dist/src/cli/commands/sample.js +402 -35
- package/dist/src/cli/commands/sample.js.map +1 -1
- package/dist/src/cli/commands/skill-extract.d.ts +20 -0
- package/dist/src/cli/commands/skill-extract.d.ts.map +1 -0
- package/dist/src/cli/commands/skill-extract.js +84 -0
- package/dist/src/cli/commands/skill-extract.js.map +1 -0
- package/dist/src/cli/commands/studio.d.ts +22 -1
- package/dist/src/cli/commands/studio.d.ts.map +1 -1
- package/dist/src/cli/commands/studio.js +111 -37
- package/dist/src/cli/commands/studio.js.map +1 -1
- package/dist/src/cli/index.js +15 -47
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/lib/cli-exit.d.ts +16 -0
- package/dist/src/cli/lib/cli-exit.d.ts.map +1 -0
- package/dist/src/cli/lib/cli-exit.js +20 -0
- package/dist/src/cli/lib/cli-exit.js.map +1 -0
- package/dist/src/cli/lib/cmd-flags.d.ts +236 -0
- package/dist/src/cli/lib/cmd-flags.d.ts.map +1 -0
- package/dist/src/cli/lib/cmd-flags.js +46 -0
- package/dist/src/cli/lib/cmd-flags.js.map +1 -0
- package/dist/src/cli/{i18n-dict.d.ts → lib/i18n-dict.d.ts} +1 -1
- package/dist/src/cli/lib/i18n-dict.d.ts.map +1 -0
- package/dist/src/cli/{i18n-dict.js → lib/i18n-dict.js} +93 -260
- package/dist/src/cli/lib/i18n-dict.js.map +1 -0
- package/dist/src/cli/{i18n.d.ts → lib/i18n.d.ts} +11 -6
- package/dist/src/cli/lib/i18n.d.ts.map +1 -0
- package/dist/src/cli/{i18n.js → lib/i18n.js} +12 -7
- package/dist/src/cli/lib/i18n.js.map +1 -0
- package/dist/src/cli/{parse-run-config.d.ts → lib/parse-run-config.d.ts} +19 -8
- package/dist/src/cli/lib/parse-run-config.d.ts.map +1 -0
- package/dist/src/cli/{parse-run-config.js → lib/parse-run-config.js} +60 -58
- package/dist/src/cli/lib/parse-run-config.js.map +1 -0
- package/dist/src/cli/lib/progress.d.ts.map +1 -0
- package/dist/src/cli/lib/progress.js.map +1 -0
- package/dist/src/cli/{run-tally.d.ts → lib/run-tally.d.ts} +1 -1
- package/dist/src/cli/lib/run-tally.d.ts.map +1 -0
- package/dist/src/cli/lib/run-tally.js.map +1 -0
- package/dist/src/cli/{commands/_shared.d.ts → lib/shared.d.ts} +2 -2
- package/dist/src/cli/lib/shared.d.ts.map +1 -0
- package/dist/src/cli/{commands/_shared.js → lib/shared.js} +3 -3
- package/dist/src/cli/lib/shared.js.map +1 -0
- package/dist/src/cli/lib/update-check.d.ts.map +1 -0
- package/dist/src/cli/lib/update-check.js.map +1 -0
- package/dist/src/cli/oclif/base-command.d.ts +8 -0
- package/dist/src/cli/oclif/base-command.d.ts.map +1 -0
- package/dist/src/cli/oclif/base-command.js +27 -0
- package/dist/src/cli/oclif/base-command.js.map +1 -0
- package/dist/src/cli/oclif/help.d.ts +16 -0
- package/dist/src/cli/oclif/help.d.ts.map +1 -0
- package/dist/src/cli/oclif/help.js +33 -0
- package/dist/src/cli/oclif/help.js.map +1 -0
- package/dist/src/cli/oclif/i18n.d.ts +16 -0
- package/dist/src/cli/oclif/i18n.d.ts.map +1 -0
- package/dist/src/cli/oclif/i18n.js +62 -0
- package/dist/src/cli/oclif/i18n.js.map +1 -0
- package/dist/src/cli/oclif/parsers.d.ts +10 -0
- package/dist/src/cli/oclif/parsers.d.ts.map +1 -0
- package/dist/src/cli/oclif/parsers.js +102 -0
- package/dist/src/cli/oclif/parsers.js.map +1 -0
- package/dist/src/cli/oclif/projection.d.ts +23 -0
- package/dist/src/cli/oclif/projection.d.ts.map +1 -0
- package/dist/src/cli/oclif/projection.js +52 -0
- package/dist/src/cli/oclif/projection.js.map +1 -0
- package/dist/src/cli/oclif/run.d.ts +2 -0
- package/dist/src/cli/oclif/run.d.ts.map +1 -0
- package/dist/src/cli/oclif/run.js +11 -0
- package/dist/src/cli/oclif/run.js.map +1 -0
- package/dist/src/diagnosis/observe-mapper.d.ts +68 -0
- package/dist/src/diagnosis/observe-mapper.d.ts.map +1 -0
- package/dist/src/diagnosis/observe-mapper.js +276 -0
- package/dist/src/diagnosis/observe-mapper.js.map +1 -0
- package/dist/src/diagnosis/observe-producer.d.ts +9 -0
- package/dist/src/diagnosis/observe-producer.d.ts.map +1 -0
- package/dist/src/diagnosis/observe-producer.js +197 -0
- package/dist/src/diagnosis/observe-producer.js.map +1 -0
- package/dist/src/diagnosis/studio-projection.d.ts +14 -0
- package/dist/src/diagnosis/studio-projection.d.ts.map +1 -0
- package/dist/src/diagnosis/studio-projection.js +84 -0
- package/dist/src/diagnosis/studio-projection.js.map +1 -0
- package/dist/src/diagnosis/types.d.ts +79 -0
- package/dist/src/diagnosis/types.d.ts.map +1 -0
- package/dist/src/diagnosis/types.js +20 -0
- package/dist/src/diagnosis/types.js.map +1 -0
- package/dist/src/doctor/fixer.d.ts +12 -0
- package/dist/src/doctor/fixer.d.ts.map +1 -0
- package/dist/src/doctor/fixer.js +326 -0
- package/dist/src/doctor/fixer.js.map +1 -0
- package/dist/src/doctor/health/builtin-dimensions.d.ts.map +1 -1
- package/dist/src/doctor/health/builtin-dimensions.js +20 -23
- package/dist/src/doctor/health/builtin-dimensions.js.map +1 -1
- package/dist/src/doctor/health/composer.d.ts.map +1 -1
- package/dist/src/doctor/health/composer.js +14 -7
- package/dist/src/doctor/health/composer.js.map +1 -1
- package/dist/src/doctor/health/dimension-spec.d.ts +1 -0
- package/dist/src/doctor/health/dimension-spec.d.ts.map +1 -1
- package/dist/src/doctor/health/parser.d.ts +0 -1
- package/dist/src/doctor/health/parser.d.ts.map +1 -1
- package/dist/src/doctor/health/parser.js +38 -0
- package/dist/src/doctor/health/parser.js.map +1 -1
- package/dist/src/doctor/health/prompt-builder.d.ts +2 -21
- package/dist/src/doctor/health/prompt-builder.d.ts.map +1 -1
- package/dist/src/doctor/health/prompt-builder.js +1 -161
- package/dist/src/doctor/health/prompt-builder.js.map +1 -1
- package/dist/src/doctor/html-renderer.d.ts +1 -1
- package/dist/src/doctor/html-renderer.d.ts.map +1 -1
- package/dist/src/doctor/html-renderer.js +78 -68
- package/dist/src/doctor/html-renderer.js.map +1 -1
- package/dist/src/doctor/index.d.ts.map +1 -1
- package/dist/src/doctor/index.js +1 -0
- package/dist/src/doctor/index.js.map +1 -1
- package/dist/src/doctor/renderer.d.ts +1 -1
- package/dist/src/doctor/renderer.d.ts.map +1 -1
- package/dist/src/doctor/renderer.js +2 -2
- package/dist/src/doctor/renderer.js.map +1 -1
- package/dist/src/doctor/rules.d.ts.map +1 -1
- package/dist/src/doctor/rules.js +33 -1
- package/dist/src/doctor/rules.js.map +1 -1
- package/dist/src/eval-core/cache.d.ts +16 -2
- package/dist/src/eval-core/cache.d.ts.map +1 -1
- package/dist/src/eval-core/cache.js +86 -15
- package/dist/src/eval-core/cache.js.map +1 -1
- package/dist/src/eval-core/evaluation-execution.d.ts +11 -1
- package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-execution.js +78 -6
- package/dist/src/eval-core/evaluation-execution.js.map +1 -1
- package/dist/src/eval-core/evaluation-job.d.ts +2 -1
- package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-job.js +2 -1
- package/dist/src/eval-core/evaluation-job.js.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts +7 -0
- package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.js +19 -2
- package/dist/src/eval-core/evaluation-reporting.js.map +1 -1
- package/dist/src/eval-core/execution-strategy.d.ts +1 -1
- package/dist/src/eval-core/execution-strategy.d.ts.map +1 -1
- package/dist/src/eval-core/execution-strategy.js +12 -1
- package/dist/src/eval-core/execution-strategy.js.map +1 -1
- package/dist/src/eval-core/mock-hook.cjs +215 -0
- package/dist/src/eval-core/mocks-runtime.d.ts +100 -0
- package/dist/src/eval-core/mocks-runtime.d.ts.map +1 -0
- package/dist/src/eval-core/mocks-runtime.js +559 -0
- package/dist/src/eval-core/mocks-runtime.js.map +1 -0
- package/dist/src/eval-core/schema.d.ts.map +1 -1
- package/dist/src/eval-core/schema.js +18 -5
- package/dist/src/eval-core/schema.js.map +1 -1
- package/dist/src/eval-core/task-planner.d.ts +9 -1
- package/dist/src/eval-core/task-planner.d.ts.map +1 -1
- package/dist/src/eval-core/task-planner.js +40 -1
- package/dist/src/eval-core/task-planner.js.map +1 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts +5 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.js +2 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts +23 -2
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.js +40 -13
- package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.d.ts +5 -0
- package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.js +3 -1
- package/dist/src/eval-workflows/evaluation-preparation.js.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts +12 -2
- package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.js +18 -6
- package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
- package/dist/src/executors/claude-cli.d.ts +1 -1
- package/dist/src/executors/claude-cli.d.ts.map +1 -1
- package/dist/src/executors/claude-cli.js +59 -6
- package/dist/src/executors/claude-cli.js.map +1 -1
- package/dist/src/executors/claude-sdk-trace.d.ts.map +1 -1
- package/dist/src/executors/claude-sdk-trace.js +10 -4
- package/dist/src/executors/claude-sdk-trace.js.map +1 -1
- package/dist/src/executors/claude-sdk.d.ts +1 -1
- package/dist/src/executors/claude-sdk.d.ts.map +1 -1
- package/dist/src/executors/claude-sdk.js +25 -2
- package/dist/src/executors/claude-sdk.js.map +1 -1
- package/dist/src/executors/shared.d.ts +1 -1
- package/dist/src/executors/shared.d.ts.map +1 -1
- package/dist/src/executors/shared.js +6 -1
- package/dist/src/executors/shared.js.map +1 -1
- package/dist/src/grading/assertions.d.ts +5 -0
- package/dist/src/grading/assertions.d.ts.map +1 -1
- package/dist/src/grading/assertions.js +27 -1
- package/dist/src/grading/assertions.js.map +1 -1
- package/dist/src/grading/diagnostic.d.ts +40 -0
- package/dist/src/grading/diagnostic.d.ts.map +1 -0
- package/dist/src/grading/diagnostic.js +450 -0
- package/dist/src/grading/diagnostic.js.map +1 -0
- package/dist/src/grading/index.d.ts +5 -0
- package/dist/src/grading/index.d.ts.map +1 -1
- package/dist/src/grading/judge.d.ts.map +1 -1
- package/dist/src/grading/judge.js +54 -2
- package/dist/src/grading/judge.js.map +1 -1
- package/dist/src/grading/layered-scores.d.ts.map +1 -1
- package/dist/src/grading/layered-scores.js +1 -0
- package/dist/src/grading/layered-scores.js.map +1 -1
- package/dist/src/inputs/eval-config.js +19 -0
- package/dist/src/inputs/eval-config.js.map +1 -1
- package/dist/src/inputs/load-samples.d.ts +22 -2
- package/dist/src/inputs/load-samples.d.ts.map +1 -1
- package/dist/src/inputs/load-samples.js +193 -22
- package/dist/src/inputs/load-samples.js.map +1 -1
- package/dist/src/inputs/skill-loader.d.ts.map +1 -1
- package/dist/src/inputs/skill-loader.js +11 -3
- package/dist/src/inputs/skill-loader.js.map +1 -1
- package/dist/src/observability/experience.d.ts +441 -0
- package/dist/src/observability/experience.d.ts.map +1 -0
- package/dist/src/observability/experience.js +2400 -0
- package/dist/src/observability/experience.js.map +1 -0
- package/dist/src/observability/inbox-view-model.d.ts +14 -1
- package/dist/src/observability/inbox-view-model.d.ts.map +1 -1
- package/dist/src/observability/inbox-view-model.js +85 -3
- package/dist/src/observability/inbox-view-model.js.map +1 -1
- package/dist/src/observability/inbox.d.ts +29 -2
- package/dist/src/observability/inbox.d.ts.map +1 -1
- package/dist/src/observability/inbox.js +62 -10
- package/dist/src/observability/inbox.js.map +1 -1
- package/dist/src/observability/problem-patterns.d.ts +52 -0
- package/dist/src/observability/problem-patterns.d.ts.map +1 -0
- package/dist/src/observability/problem-patterns.js +205 -0
- package/dist/src/observability/problem-patterns.js.map +1 -0
- package/dist/src/observability/resolved-review.d.ts +25 -0
- package/dist/src/observability/resolved-review.d.ts.map +1 -0
- package/dist/src/observability/resolved-review.js +231 -0
- package/dist/src/observability/resolved-review.js.map +1 -0
- package/dist/src/observability/review-state.d.ts +61 -0
- package/dist/src/observability/review-state.d.ts.map +1 -0
- package/dist/src/observability/review-state.js +169 -0
- package/dist/src/observability/review-state.js.map +1 -0
- package/dist/src/observability/skill-chain-advisories.d.ts +25 -0
- package/dist/src/observability/skill-chain-advisories.d.ts.map +1 -0
- package/dist/src/observability/skill-chain-advisories.js +69 -0
- package/dist/src/observability/skill-chain-advisories.js.map +1 -0
- package/dist/src/observability/skill-chain.d.ts +62 -0
- package/dist/src/observability/skill-chain.d.ts.map +1 -0
- package/dist/src/observability/skill-chain.js +270 -0
- package/dist/src/observability/skill-chain.js.map +1 -0
- package/dist/src/observability/soft-standards.d.ts +130 -0
- package/dist/src/observability/soft-standards.d.ts.map +1 -0
- package/dist/src/observability/soft-standards.js +426 -0
- package/dist/src/observability/soft-standards.js.map +1 -0
- package/dist/src/observability/text-signals.d.ts +14 -0
- package/dist/src/observability/text-signals.d.ts.map +1 -0
- package/dist/src/observability/text-signals.js +106 -0
- package/dist/src/observability/text-signals.js.map +1 -0
- package/dist/src/observability/trace-adapter.d.ts +1 -1
- package/dist/src/observability/trace-adapter.d.ts.map +1 -1
- package/dist/src/observability/trace-adapter.js +1 -1
- package/dist/src/observability/trace-adapter.js.map +1 -1
- package/dist/src/observability/trace-attribution.d.ts +29 -1
- package/dist/src/observability/trace-attribution.d.ts.map +1 -1
- package/dist/src/observability/trace-attribution.js +106 -10
- package/dist/src/observability/trace-attribution.js.map +1 -1
- package/dist/src/observability/trace-segmenter.d.ts +11 -1
- package/dist/src/observability/trace-segmenter.d.ts.map +1 -1
- package/dist/src/observability/trace-segmenter.js +121 -30
- package/dist/src/observability/trace-segmenter.js.map +1 -1
- package/dist/src/observability/trace-source.d.ts +28 -1
- package/dist/src/observability/trace-source.d.ts.map +1 -1
- package/dist/src/observability/trace-source.js +366 -6
- package/dist/src/observability/trace-source.js.map +1 -1
- package/dist/src/renderer/html-renderer.d.ts.map +1 -1
- package/dist/src/renderer/html-renderer.js +229 -171
- package/dist/src/renderer/html-renderer.js.map +1 -1
- package/dist/src/renderer/layout.d.ts.map +1 -1
- package/dist/src/renderer/layout.js +108 -61
- package/dist/src/renderer/layout.js.map +1 -1
- package/dist/src/renderer/observation-inbox-renderer.d.ts.map +1 -1
- package/dist/src/renderer/observation-inbox-renderer.js +9551 -85
- package/dist/src/renderer/observation-inbox-renderer.js.map +1 -1
- package/dist/src/renderer/skill-detail-renderer.d.ts +15 -0
- package/dist/src/renderer/skill-detail-renderer.d.ts.map +1 -0
- package/dist/src/renderer/skill-detail-renderer.js +1244 -0
- package/dist/src/renderer/skill-detail-renderer.js.map +1 -0
- package/dist/src/renderer/skill-list-renderer.d.ts +4 -0
- package/dist/src/renderer/skill-list-renderer.d.ts.map +1 -0
- package/dist/src/renderer/skill-list-renderer.js +334 -0
- package/dist/src/renderer/skill-list-renderer.js.map +1 -0
- package/dist/src/renderer/summary.d.ts.map +1 -1
- package/dist/src/renderer/summary.js +78 -50
- package/dist/src/renderer/summary.js.map +1 -1
- package/dist/src/renderer/table.d.ts.map +1 -1
- package/dist/src/renderer/table.js +213 -167
- package/dist/src/renderer/table.js.map +1 -1
- package/dist/src/renderer/test-view.d.ts +66 -0
- package/dist/src/renderer/test-view.d.ts.map +1 -0
- package/dist/src/renderer/test-view.js +905 -0
- package/dist/src/renderer/test-view.js.map +1 -0
- package/dist/src/server/report-server.d.ts +4 -1
- package/dist/src/server/report-server.d.ts.map +1 -1
- package/dist/src/server/report-server.js +242 -4
- package/dist/src/server/report-server.js.map +1 -1
- package/dist/src/server/report-store.d.ts.map +1 -1
- package/dist/src/server/report-store.js +33 -1
- package/dist/src/server/report-store.js.map +1 -1
- package/dist/src/server/skill-index.d.ts +81 -0
- package/dist/src/server/skill-index.d.ts.map +1 -0
- package/dist/src/server/skill-index.js +377 -0
- package/dist/src/server/skill-index.js.map +1 -0
- package/dist/src/server/skill-insights.d.ts +101 -0
- package/dist/src/server/skill-insights.d.ts.map +1 -0
- package/dist/src/server/skill-insights.js +788 -0
- package/dist/src/server/skill-insights.js.map +1 -0
- package/dist/src/shared/hard-rules.d.ts +42 -0
- package/dist/src/shared/hard-rules.d.ts.map +1 -0
- package/dist/src/shared/hard-rules.js +242 -0
- package/dist/src/shared/hard-rules.js.map +1 -0
- package/dist/src/shared/llm-prompts/index.d.ts +14 -0
- package/dist/src/shared/llm-prompts/index.d.ts.map +1 -0
- package/dist/src/shared/llm-prompts/index.js +35 -0
- package/dist/src/shared/llm-prompts/index.js.map +1 -0
- package/dist/src/shared/llm-prompts/skill-health.d.ts +22 -0
- package/dist/src/shared/llm-prompts/skill-health.d.ts.map +1 -0
- package/dist/src/shared/llm-prompts/skill-health.js +170 -0
- package/dist/src/shared/llm-prompts/skill-health.js.map +1 -0
- package/dist/src/shared/time.d.ts +2 -0
- package/dist/src/shared/time.d.ts.map +1 -0
- package/dist/src/shared/time.js +10 -0
- package/dist/src/shared/time.js.map +1 -0
- package/dist/src/types/doctor.d.ts +2 -0
- package/dist/src/types/doctor.d.ts.map +1 -1
- package/dist/src/types/eval.d.ts +88 -0
- package/dist/src/types/eval.d.ts.map +1 -1
- package/dist/src/types/executor.d.ts +43 -0
- package/dist/src/types/executor.d.ts.map +1 -1
- package/dist/src/types/judge.d.ts +76 -0
- package/dist/src/types/judge.d.ts.map +1 -1
- package/dist/src/types/judge.js +3 -1
- package/dist/src/types/judge.js.map +1 -1
- package/dist/src/types/report.d.ts +69 -3
- package/dist/src/types/report.d.ts.map +1 -1
- package/dist/src/util/safe-slice.d.ts +23 -0
- package/dist/src/util/safe-slice.d.ts.map +1 -0
- package/dist/src/util/safe-slice.js +33 -0
- package/dist/src/util/safe-slice.js.map +1 -0
- package/docs/prompts/llm-enhanced-review.prompt.md +111 -0
- package/package.json +33 -7
- package/dist/src/cli/cli-exit.d.ts +0 -15
- package/dist/src/cli/cli-exit.d.ts.map +0 -1
- package/dist/src/cli/cli-exit.js +0 -19
- package/dist/src/cli/cli-exit.js.map +0 -1
- package/dist/src/cli/commands/_shared.d.ts.map +0 -1
- package/dist/src/cli/commands/_shared.js.map +0 -1
- package/dist/src/cli/commands/eval-gold.d.ts +0 -2
- package/dist/src/cli/commands/eval-gold.d.ts.map +0 -1
- package/dist/src/cli/commands/eval-gold.js +0 -137
- package/dist/src/cli/commands/eval-gold.js.map +0 -1
- package/dist/src/cli/commands/eval-runner.d.ts +0 -2
- package/dist/src/cli/commands/eval-runner.d.ts.map +0 -1
- package/dist/src/cli/commands/eval-runner.js.map +0 -1
- package/dist/src/cli/commands/eval.d.ts +0 -2
- package/dist/src/cli/commands/eval.d.ts.map +0 -1
- package/dist/src/cli/commands/eval.js +0 -11
- package/dist/src/cli/commands/eval.js.map +0 -1
- package/dist/src/cli/commands/observe.d.ts +0 -2
- package/dist/src/cli/commands/observe.d.ts.map +0 -1
- package/dist/src/cli/commands/observe.js +0 -246
- package/dist/src/cli/commands/observe.js.map +0 -1
- package/dist/src/cli/commands/registry.d.ts +0 -11
- package/dist/src/cli/commands/registry.d.ts.map +0 -1
- package/dist/src/cli/commands/registry.js +0 -32
- package/dist/src/cli/commands/registry.js.map +0 -1
- package/dist/src/cli/i18n-dict.d.ts.map +0 -1
- package/dist/src/cli/i18n-dict.js.map +0 -1
- package/dist/src/cli/i18n.d.ts.map +0 -1
- package/dist/src/cli/i18n.js.map +0 -1
- package/dist/src/cli/parse-run-config.d.ts.map +0 -1
- package/dist/src/cli/parse-run-config.js.map +0 -1
- package/dist/src/cli/parse-strict.d.ts +0 -7
- package/dist/src/cli/parse-strict.d.ts.map +0 -1
- package/dist/src/cli/parse-strict.js +0 -26
- package/dist/src/cli/parse-strict.js.map +0 -1
- package/dist/src/cli/progress.d.ts.map +0 -1
- package/dist/src/cli/progress.js.map +0 -1
- package/dist/src/cli/run-tally.d.ts.map +0 -1
- package/dist/src/cli/run-tally.js.map +0 -1
- package/dist/src/cli/update-check.d.ts.map +0 -1
- package/dist/src/cli/update-check.js.map +0 -1
- /package/dist/src/cli/{progress.d.ts → lib/progress.d.ts} +0 -0
- /package/dist/src/cli/{progress.js → lib/progress.js} +0 -0
- /package/dist/src/cli/{run-tally.js → lib/run-tally.js} +0 -0
- /package/dist/src/cli/{update-check.d.ts → lib/update-check.d.ts} +0 -0
- /package/dist/src/cli/{update-check.js → lib/update-check.js} +0 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type SkillHardRule, type SkillWorkflow } from '../shared/hard-rules.js';
|
|
2
|
+
import type { SkillChainAdvisoryCode } from './skill-chain-advisories.js';
|
|
3
|
+
import type { ObservationExperienceReport } from './experience.js';
|
|
4
|
+
export type ObservationRuntimeCheckStatus = 'passed' | 'attention' | 'manual_review';
|
|
5
|
+
export interface ObservationRuntimeCheck {
|
|
6
|
+
kind: 'hardRule' | 'workflowNode';
|
|
7
|
+
id: string;
|
|
8
|
+
title: string;
|
|
9
|
+
expectation: string;
|
|
10
|
+
status: ObservationRuntimeCheckStatus;
|
|
11
|
+
reason: string;
|
|
12
|
+
evidenceCount: number;
|
|
13
|
+
evidenceSnippets: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface ObservationSkillChain {
|
|
16
|
+
skillName: string;
|
|
17
|
+
definition: {
|
|
18
|
+
found: boolean;
|
|
19
|
+
path?: string;
|
|
20
|
+
content?: string;
|
|
21
|
+
truncated?: boolean;
|
|
22
|
+
};
|
|
23
|
+
healthCheck: {
|
|
24
|
+
source: 'doctor-static-rules';
|
|
25
|
+
hardRules: {
|
|
26
|
+
declared: boolean;
|
|
27
|
+
valid: boolean;
|
|
28
|
+
count: number;
|
|
29
|
+
rules: SkillHardRule[];
|
|
30
|
+
errors: string[];
|
|
31
|
+
advisoryCode?: SkillChainAdvisoryCode;
|
|
32
|
+
};
|
|
33
|
+
workflows: {
|
|
34
|
+
declared: boolean;
|
|
35
|
+
valid: boolean;
|
|
36
|
+
branchCount: number;
|
|
37
|
+
nodeCount: number;
|
|
38
|
+
workflows: SkillWorkflow[];
|
|
39
|
+
errors: string[];
|
|
40
|
+
source: 'frontmatter' | 'markdown_headings' | 'none';
|
|
41
|
+
advisoryCode?: SkillChainAdvisoryCode;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
runtime: {
|
|
45
|
+
supported: true;
|
|
46
|
+
mode: 'deterministic-no-llm';
|
|
47
|
+
message: string;
|
|
48
|
+
summary: {
|
|
49
|
+
invocationCount: number;
|
|
50
|
+
toolCallCount: number;
|
|
51
|
+
toolFailureCount: number;
|
|
52
|
+
passedCount: number;
|
|
53
|
+
attentionCount: number;
|
|
54
|
+
manualReviewCount: number;
|
|
55
|
+
};
|
|
56
|
+
hardRules: ObservationRuntimeCheck[];
|
|
57
|
+
workflowNodes: ObservationRuntimeCheck[];
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export declare function buildObservationSkillChains(skillNames: string[], cwd?: string, experienceReports?: ObservationExperienceReport[]): Record<string, ObservationSkillChain>;
|
|
61
|
+
export declare function buildObservationSkillChain(skillName: string, cwd?: string, experienceReports?: ObservationExperienceReport[]): ObservationSkillChain;
|
|
62
|
+
//# sourceMappingURL=skill-chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-chain.d.ts","sourceRoot":"","sources":["../../../src/observability/skill-chain.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAiD,MAAM,iBAAiB,CAAC;AAElH,MAAM,MAAM,6BAA6B,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,CAAC;AAErF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,6BAA6B,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,WAAW,EAAE;QACX,MAAM,EAAE,qBAAqB,CAAC;QAC9B,SAAS,EAAE;YACT,QAAQ,EAAE,OAAO,CAAC;YAClB,KAAK,EAAE,OAAO,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,aAAa,EAAE,CAAC;YACvB,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,YAAY,CAAC,EAAE,sBAAsB,CAAC;SACvC,CAAC;QACF,SAAS,EAAE;YACT,QAAQ,EAAE,OAAO,CAAC;YAClB,KAAK,EAAE,OAAO,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,aAAa,EAAE,CAAC;YAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,MAAM,EAAE,aAAa,GAAG,mBAAmB,GAAG,MAAM,CAAC;YACrD,YAAY,CAAC,EAAE,sBAAsB,CAAC;SACvC,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,SAAS,EAAE,IAAI,CAAC;QAChB,IAAI,EAAE,sBAAsB,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,eAAe,EAAE,MAAM,CAAC;YACxB,aAAa,EAAE,MAAM,CAAC;YACtB,gBAAgB,EAAE,MAAM,CAAC;YACzB,WAAW,EAAE,MAAM,CAAC;YACpB,cAAc,EAAE,MAAM,CAAC;YACvB,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC;QACF,SAAS,EAAE,uBAAuB,EAAE,CAAC;QACrC,aAAa,EAAE,uBAAuB,EAAE,CAAC;KAC1C,CAAC;CACH;AAID,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,SAAgB,EAAE,iBAAiB,GAAE,2BAA2B,EAAO,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAGnL;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAgB,EAAE,iBAAiB,GAAE,2BAA2B,EAAO,GAAG,qBAAqB,CA2C/J"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { extractMarkdownStepWorkflows, validateSkillHardRules, validateSkillWorkflows, } from '../shared/hard-rules.js';
|
|
5
|
+
const MAX_SKILL_DEFINITION_CHARS = 12000;
|
|
6
|
+
export function buildObservationSkillChains(skillNames, cwd = process.cwd(), experienceReports = []) {
|
|
7
|
+
const uniqueSkillNames = Array.from(new Set(skillNames.filter(Boolean))).sort();
|
|
8
|
+
return Object.fromEntries(uniqueSkillNames.map((skillName) => [skillName, buildObservationSkillChain(skillName, cwd, experienceReports)]));
|
|
9
|
+
}
|
|
10
|
+
export function buildObservationSkillChain(skillName, cwd = process.cwd(), experienceReports = []) {
|
|
11
|
+
const path = findSkillMdPath(skillName, cwd);
|
|
12
|
+
if (!path)
|
|
13
|
+
return emptySkillChain(skillName, experienceReports);
|
|
14
|
+
const content = readFileSync(path, 'utf-8');
|
|
15
|
+
const hardRules = validateSkillHardRules(content);
|
|
16
|
+
const workflows = validateSkillWorkflows(content);
|
|
17
|
+
const markdownWorkflows = workflows.workflows.length > 0 ? [] : extractMarkdownStepWorkflows(content);
|
|
18
|
+
const effectiveWorkflows = workflows.workflows.length > 0 ? workflows.workflows : markdownWorkflows;
|
|
19
|
+
const workflowSource = workflows.workflows.length > 0 ? 'frontmatter' : markdownWorkflows.length > 0 ? 'markdown_headings' : 'none';
|
|
20
|
+
const nodeCount = effectiveWorkflows.reduce((sum, workflow) => sum + workflow.nodes.length, 0);
|
|
21
|
+
const truncated = content.length > MAX_SKILL_DEFINITION_CHARS;
|
|
22
|
+
const runtime = buildRuntimeChecks(skillName, hardRules.rules, effectiveWorkflows, experienceReports);
|
|
23
|
+
return {
|
|
24
|
+
skillName,
|
|
25
|
+
definition: {
|
|
26
|
+
found: true,
|
|
27
|
+
path,
|
|
28
|
+
content: truncated ? content.slice(0, MAX_SKILL_DEFINITION_CHARS) : content,
|
|
29
|
+
truncated,
|
|
30
|
+
},
|
|
31
|
+
healthCheck: {
|
|
32
|
+
source: 'doctor-static-rules',
|
|
33
|
+
hardRules: {
|
|
34
|
+
declared: hardRules.declared,
|
|
35
|
+
valid: hardRules.ok,
|
|
36
|
+
count: hardRules.rules.length,
|
|
37
|
+
rules: hardRules.rules,
|
|
38
|
+
errors: hardRules.errors,
|
|
39
|
+
...(hardRules.declared ? {} : { advisoryCode: 'hardrules_not_declared' }),
|
|
40
|
+
},
|
|
41
|
+
workflows: {
|
|
42
|
+
declared: workflows.declared,
|
|
43
|
+
valid: workflows.ok,
|
|
44
|
+
branchCount: effectiveWorkflows.length,
|
|
45
|
+
nodeCount,
|
|
46
|
+
workflows: effectiveWorkflows,
|
|
47
|
+
errors: workflows.errors,
|
|
48
|
+
source: workflowSource,
|
|
49
|
+
...(workflows.declared ? {} : { advisoryCode: 'workflows_not_declared' }),
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
runtime,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function emptySkillChain(skillName, experienceReports = []) {
|
|
56
|
+
return {
|
|
57
|
+
skillName,
|
|
58
|
+
definition: { found: false },
|
|
59
|
+
healthCheck: {
|
|
60
|
+
source: 'doctor-static-rules',
|
|
61
|
+
hardRules: { declared: false, valid: true, count: 0, rules: [], errors: [], advisoryCode: 'hardrules_not_declared' },
|
|
62
|
+
workflows: { declared: false, valid: true, branchCount: 0, nodeCount: 0, workflows: [], errors: [], source: 'none', advisoryCode: 'workflows_not_declared' },
|
|
63
|
+
},
|
|
64
|
+
runtime: buildRuntimeChecks(skillName, [], [], experienceReports),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function buildRuntimeChecks(skillName, hardRules, workflows, experienceReports) {
|
|
68
|
+
const invocations = experienceReports.flatMap((report) => report.invocations.filter((invocation) => invocation.skillName === skillName));
|
|
69
|
+
const evidence = runtimeEvidence(invocations);
|
|
70
|
+
const hardRuleChecks = hardRules.map((rule) => evaluateRuntimeText({
|
|
71
|
+
kind: 'hardRule',
|
|
72
|
+
id: rule.id,
|
|
73
|
+
title: rule.rule,
|
|
74
|
+
expectation: rule.expectedBehavior,
|
|
75
|
+
}, evidence));
|
|
76
|
+
const workflowChecks = workflows.flatMap((workflow) => workflow.nodes.map((node) => evaluateRuntimeText({
|
|
77
|
+
kind: 'workflowNode',
|
|
78
|
+
id: `${workflow.id}.${node.id}`,
|
|
79
|
+
title: node.action || `${workflow.id} / ${node.id}`,
|
|
80
|
+
expectation: node.action,
|
|
81
|
+
}, evidence)));
|
|
82
|
+
const all = [...hardRuleChecks, ...workflowChecks];
|
|
83
|
+
return {
|
|
84
|
+
supported: true,
|
|
85
|
+
mode: 'deterministic-no-llm',
|
|
86
|
+
message: '仅做非 LLM 的运行时证据检查:只看工具调用、路径、命令、上传等明确证据;抽象语义规则只展开证据,不自动下结论。',
|
|
87
|
+
summary: {
|
|
88
|
+
invocationCount: invocations.length,
|
|
89
|
+
toolCallCount: evidence.toolCallCount,
|
|
90
|
+
toolFailureCount: evidence.toolFailureCount,
|
|
91
|
+
passedCount: all.filter((check) => check.status === 'passed').length,
|
|
92
|
+
attentionCount: all.filter((check) => check.status === 'attention').length,
|
|
93
|
+
manualReviewCount: all.filter((check) => check.status === 'manual_review').length,
|
|
94
|
+
},
|
|
95
|
+
hardRules: hardRuleChecks,
|
|
96
|
+
workflowNodes: workflowChecks,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function runtimeEvidence(invocations) {
|
|
100
|
+
const toolCounts = {};
|
|
101
|
+
const events = invocations.flatMap((invocation) => invocation.timeline ?? []);
|
|
102
|
+
for (const invocation of invocations) {
|
|
103
|
+
for (const [tool, count] of Object.entries(invocation.toolCounts ?? {})) {
|
|
104
|
+
toolCounts[tool] = (toolCounts[tool] ?? 0) + count;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
toolCounts,
|
|
109
|
+
toolCallCount: invocations.reduce((sum, invocation) => sum + invocation.indicators.toolCallCount, 0),
|
|
110
|
+
toolFailureCount: invocations.reduce((sum, invocation) => sum + invocation.indicators.toolFailureCount, 0),
|
|
111
|
+
events,
|
|
112
|
+
assistantToolUseIds: new Set(events
|
|
113
|
+
.filter((event) => event.kind === 'tool_use' && event.role === 'assistant' && event.toolUseId)
|
|
114
|
+
.map((event) => event.toolUseId)),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function evaluateRuntimeText(base, evidence) {
|
|
118
|
+
const text = `${base.title}\n${base.expectation}`;
|
|
119
|
+
const lower = text.toLowerCase();
|
|
120
|
+
const forbidden = /不要|禁止|不得|不能|不允许|避免|do not|must not|never|forbid/.test(lower);
|
|
121
|
+
const observable = observableSignals(lower);
|
|
122
|
+
if (observable.length === 0) {
|
|
123
|
+
return {
|
|
124
|
+
...base,
|
|
125
|
+
status: 'manual_review',
|
|
126
|
+
reason: '这条规则偏语义或质量要求;当前不引入 LLM,只展开证据,不自动判断。',
|
|
127
|
+
evidenceCount: 0,
|
|
128
|
+
evidenceSnippets: [],
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const matched = observable.filter((signal) => signalSeen(signal, evidence));
|
|
132
|
+
const snippets = matched.flatMap((signal) => evidenceSnippetsForSignal(signal, evidence)).slice(0, 5);
|
|
133
|
+
if (forbidden) {
|
|
134
|
+
return {
|
|
135
|
+
...base,
|
|
136
|
+
status: matched.length > 0 ? 'attention' : 'passed',
|
|
137
|
+
reason: matched.length > 0
|
|
138
|
+
? `观察到规则禁止的证据:${matched.map(signalLabel).join('、')},需要关注。`
|
|
139
|
+
: `未观察到规则禁止的运行时证据:${observable.map(signalLabel).join('、')}。`,
|
|
140
|
+
evidenceCount: matched.length,
|
|
141
|
+
evidenceSnippets: snippets,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
...base,
|
|
146
|
+
status: matched.length > 0 ? 'passed' : 'attention',
|
|
147
|
+
reason: matched.length > 0
|
|
148
|
+
? `观察到规则要求的证据:${matched.map(signalLabel).join('、')}。`
|
|
149
|
+
: `未观察到规则要求的证据:${observable.map(signalLabel).join('、')},需要关注。`,
|
|
150
|
+
evidenceCount: matched.length,
|
|
151
|
+
evidenceSnippets: snippets,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function observableSignals(lower) {
|
|
155
|
+
const signals = new Set();
|
|
156
|
+
if (/\bread\b|读取|必读|查阅|阅读|参考|领域知识|知识库/.test(lower))
|
|
157
|
+
signals.add('Read');
|
|
158
|
+
if (/\bgrep\b|\brg\b|搜索|查找|检索/.test(lower))
|
|
159
|
+
signals.add('Grep');
|
|
160
|
+
if (/\bbash\b|\bshell\b|命令|执行脚本/.test(lower))
|
|
161
|
+
signals.add('Bash');
|
|
162
|
+
if (/\bedit\b|修改|编辑/.test(lower))
|
|
163
|
+
signals.add('Edit');
|
|
164
|
+
if (/\bwrite\b|写入|生成文件|保存文件/.test(lower) || isGenerationWorkflowText(lower))
|
|
165
|
+
signals.add('Write');
|
|
166
|
+
if (/\btodo\b|待办|计划/.test(lower))
|
|
167
|
+
signals.add('TodoWrite');
|
|
168
|
+
if (/上传|upload|artifacts\/upload|preview_url/.test(lower))
|
|
169
|
+
signals.add('upload');
|
|
170
|
+
if (/git pull|同步知识库|更新知识库/.test(lower))
|
|
171
|
+
signals.add('git_pull');
|
|
172
|
+
if (/askuserquestion|向用户提问|反问用户|用户确认|确认用户|ask user/.test(lower))
|
|
173
|
+
signals.add('ask_user');
|
|
174
|
+
if (/截图|截屏|验证|预览|浏览器|页面检查|playwright|screenshot/.test(lower))
|
|
175
|
+
signals.add('playwright');
|
|
176
|
+
return Array.from(signals);
|
|
177
|
+
}
|
|
178
|
+
function signalSeen(signal, evidence) {
|
|
179
|
+
if (evidence.events.some((event) => eventMatchesSignal(event, signal, evidence)))
|
|
180
|
+
return true;
|
|
181
|
+
if (evidence.events.length === 0 && isDirectToolSignal(signal) && (evidence.toolCounts[signal] ?? 0) > 0)
|
|
182
|
+
return true;
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
function signalLabel(signal) {
|
|
186
|
+
const labels = {
|
|
187
|
+
Read: '读取文件',
|
|
188
|
+
Grep: '搜索/检索',
|
|
189
|
+
Bash: '执行命令',
|
|
190
|
+
Edit: '编辑文件',
|
|
191
|
+
Write: '写入文件',
|
|
192
|
+
TodoWrite: '记录待办',
|
|
193
|
+
upload: '上传产物',
|
|
194
|
+
git_pull: '同步知识库',
|
|
195
|
+
ask_user: '向用户确认',
|
|
196
|
+
playwright: '页面验证/截图',
|
|
197
|
+
};
|
|
198
|
+
return labels[signal];
|
|
199
|
+
}
|
|
200
|
+
function evidenceSnippetsForSignal(signal, evidence) {
|
|
201
|
+
return evidence.events
|
|
202
|
+
.filter((event) => eventMatchesSignal(event, signal, evidence))
|
|
203
|
+
.map((event) => `${event.label ?? event.kind}: ${event.snippet ?? event.fullText ?? ''}`.trim())
|
|
204
|
+
.filter(Boolean);
|
|
205
|
+
}
|
|
206
|
+
function isGenerationWorkflowText(lower) {
|
|
207
|
+
if (/生成前|创建前/.test(lower))
|
|
208
|
+
return false;
|
|
209
|
+
return /(?:生成|创建|产出|输出|写出|保存).*(?:文件|页面|demo|prd|文档|代码|产物|结果)|(?:文件|页面|demo|prd|文档|代码|产物|结果).*(?:生成|创建|输出|保存)|\b(?:generate|create|write)\b/.test(lower);
|
|
210
|
+
}
|
|
211
|
+
function isDirectToolSignal(signal) {
|
|
212
|
+
return signal === 'Read' || signal === 'Grep' || signal === 'Bash' || signal === 'Edit' || signal === 'Write' || signal === 'TodoWrite';
|
|
213
|
+
}
|
|
214
|
+
function eventMatchesSignal(event, signal, evidence) {
|
|
215
|
+
const toolName = (event.toolName ?? '').toLowerCase();
|
|
216
|
+
const text = eventRuntimeText(event);
|
|
217
|
+
if (signal === 'Read')
|
|
218
|
+
return toolName === 'read' && !isSkillMdSelfRead(text);
|
|
219
|
+
if (signal === 'Grep')
|
|
220
|
+
return toolName === 'grep' || toolName === 'glob' || /\brg\b|\bgrep\b|搜索|查找|检索/.test(text);
|
|
221
|
+
if (signal === 'Bash')
|
|
222
|
+
return toolName === 'bash';
|
|
223
|
+
if (signal === 'Edit')
|
|
224
|
+
return toolName === 'edit' || toolName === 'multiedit';
|
|
225
|
+
if (signal === 'Write')
|
|
226
|
+
return toolName === 'write';
|
|
227
|
+
if (signal === 'TodoWrite')
|
|
228
|
+
return toolName === 'todowrite';
|
|
229
|
+
if (signal === 'upload')
|
|
230
|
+
return isAssistantAuthoredUploadEvent(event, evidence, text);
|
|
231
|
+
if (signal === 'git_pull')
|
|
232
|
+
return /git pull|同步知识库/.test(text);
|
|
233
|
+
if (signal === 'ask_user')
|
|
234
|
+
return /askuserquestion|ask user|是否需要|请确认|确认一下/.test(text);
|
|
235
|
+
if (signal === 'playwright')
|
|
236
|
+
return toolName === 'bash' && /playwright|screenshot|截图|截屏|chromium|浏览器|页面验证/.test(text);
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
function eventRuntimeText(event) {
|
|
240
|
+
return `${event.toolName ?? ''}\n${event.label ?? ''}\n${event.snippet ?? ''}\n${event.fullText ?? ''}`.toLowerCase();
|
|
241
|
+
}
|
|
242
|
+
function isAssistantAuthoredUploadEvent(event, evidence, text) {
|
|
243
|
+
if (!/artifacts\/upload|preview_url|上传成功|\bupload\b/.test(text))
|
|
244
|
+
return false;
|
|
245
|
+
if (event.kind === 'tool_use' && event.role === 'assistant')
|
|
246
|
+
return true;
|
|
247
|
+
if (event.kind === 'tool_result' && event.role === 'tool' && event.toolUseId && evidence.assistantToolUseIds.has(event.toolUseId))
|
|
248
|
+
return true;
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
function isSkillMdSelfRead(text) {
|
|
252
|
+
return /(?:^|[/"'\\])(?:\.claude|\.codex|\.agents|\.openclaw|workspace)?[/"'\\]*(?:workspace[/"'\\])?skills[/"'\\][^/"'\\]+[/"'\\]skill\.md\b/.test(text)
|
|
253
|
+
|| /(?:^|[/"'\\])skills[/"'\\][^/"'\\]+[/"'\\]skill\.md\b/.test(text);
|
|
254
|
+
}
|
|
255
|
+
function findSkillMdPath(skillName, cwd) {
|
|
256
|
+
if (!/^[A-Za-z0-9_.-]+$/.test(skillName))
|
|
257
|
+
return undefined;
|
|
258
|
+
const candidates = [
|
|
259
|
+
join(cwd, '.claude', 'skills', skillName, 'SKILL.md'),
|
|
260
|
+
join(cwd, '.openclaw', 'workspace', 'skills', skillName, 'SKILL.md'),
|
|
261
|
+
join(cwd, 'workspace', 'skills', skillName, 'SKILL.md'),
|
|
262
|
+
join(cwd, 'skills', skillName, 'SKILL.md'),
|
|
263
|
+
join(homedir(), '.openclaw', 'workspace', 'skills', skillName, 'SKILL.md'),
|
|
264
|
+
join(homedir(), '.claude', 'skills', skillName, 'SKILL.md'),
|
|
265
|
+
join(homedir(), '.codex', 'skills', skillName, 'SKILL.md'),
|
|
266
|
+
join(homedir(), '.agents', 'skills', skillName, 'SKILL.md'),
|
|
267
|
+
];
|
|
268
|
+
return candidates.find((candidate) => existsSync(candidate));
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=skill-chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-chain.js","sourceRoot":"","sources":["../../../src/observability/skill-chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { ExecutorFn } from '../types/index.js';
|
|
2
|
+
import { type ObservationSkillChain } from './skill-chain.js';
|
|
3
|
+
export declare const SOFT_STANDARD_PROMPT_ID = "llm-enhanced-review";
|
|
4
|
+
export declare const SOFT_STANDARD_PROMPT_VERSION = "2026-05-18.v1";
|
|
5
|
+
export declare const DEFAULT_SOFT_STANDARD_MODEL = "sonnet";
|
|
6
|
+
export type SkillDerivedStandardStatus = 'pending_review' | 'author_confirmed' | 'rejected' | 'stale';
|
|
7
|
+
export type SkillDerivedStandardKind = 'hard_rule_candidate' | 'workflow_candidate';
|
|
8
|
+
export interface SkillDerivedStandard {
|
|
9
|
+
id: string;
|
|
10
|
+
kind: SkillDerivedStandardKind;
|
|
11
|
+
status: SkillDerivedStandardStatus;
|
|
12
|
+
title: string;
|
|
13
|
+
body: string;
|
|
14
|
+
source: 'llm_soft_standard';
|
|
15
|
+
confidence: 'low' | 'medium' | 'high';
|
|
16
|
+
evidence: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface SkillDerivedStandards {
|
|
19
|
+
kind: 'observe-skill-derived-standards';
|
|
20
|
+
schemaVersion: 1;
|
|
21
|
+
skillName: string;
|
|
22
|
+
sourceSkillPath?: string;
|
|
23
|
+
sourceHash?: string;
|
|
24
|
+
generatedAt: string;
|
|
25
|
+
model: string;
|
|
26
|
+
executor: string;
|
|
27
|
+
promptId: typeof SOFT_STANDARD_PROMPT_ID;
|
|
28
|
+
promptVersion: typeof SOFT_STANDARD_PROMPT_VERSION;
|
|
29
|
+
promptHash?: string;
|
|
30
|
+
runtimeEvidenceHash?: string;
|
|
31
|
+
enhancedReview?: SkillLlmEnhancedReviewSections;
|
|
32
|
+
standards: SkillDerivedStandard[];
|
|
33
|
+
}
|
|
34
|
+
export interface SkillLlmEnhancedRuntimeEvidence {
|
|
35
|
+
goalSlices: Array<{
|
|
36
|
+
id?: string;
|
|
37
|
+
sessionId?: string;
|
|
38
|
+
inferredUserGoal?: string;
|
|
39
|
+
userMessages?: string[];
|
|
40
|
+
}>;
|
|
41
|
+
userMessages: string[];
|
|
42
|
+
assistantMessages: string[];
|
|
43
|
+
artifactCandidates: string[];
|
|
44
|
+
toolCalls: string[];
|
|
45
|
+
findings: string[];
|
|
46
|
+
}
|
|
47
|
+
export type LlmEnhancedSkillType = 'router' | 'delegation' | 'executor' | 'advisory' | 'unknown';
|
|
48
|
+
export type LlmEnhancedVerdict = 'passed' | 'failed' | 'unknown';
|
|
49
|
+
export type LlmEnhancedUserFeeling = 'positive' | 'neutral' | 'negative' | 'frustrated';
|
|
50
|
+
export interface SkillLlmEnhancedReviewSections {
|
|
51
|
+
skillType?: LlmEnhancedSkillType;
|
|
52
|
+
extractedStandards?: {
|
|
53
|
+
hardrules: Array<Omit<SkillDerivedStandard, 'id' | 'kind' | 'status' | 'source'>>;
|
|
54
|
+
workflows: Array<Omit<SkillDerivedStandard, 'id' | 'kind' | 'status' | 'source'>>;
|
|
55
|
+
completionCriteria: Array<Omit<SkillDerivedStandard, 'id' | 'kind' | 'status' | 'source'>>;
|
|
56
|
+
artifactCriteria: Array<Omit<SkillDerivedStandard, 'id' | 'kind' | 'status' | 'source'>>;
|
|
57
|
+
};
|
|
58
|
+
userGoal?: {
|
|
59
|
+
summary?: string;
|
|
60
|
+
slots: string[];
|
|
61
|
+
expectedOutcome?: string;
|
|
62
|
+
};
|
|
63
|
+
skillDeclaredGoal?: {
|
|
64
|
+
summary?: string;
|
|
65
|
+
keywords: string[];
|
|
66
|
+
expectedOutcomes: string[];
|
|
67
|
+
};
|
|
68
|
+
runtimeAssessment?: {
|
|
69
|
+
goalSatisfaction?: LlmEnhancedVerdict;
|
|
70
|
+
declaredBehaviorFit?: LlmEnhancedVerdict;
|
|
71
|
+
artifactGoalMatch?: LlmEnhancedVerdict;
|
|
72
|
+
userFeeling?: LlmEnhancedUserFeeling;
|
|
73
|
+
};
|
|
74
|
+
userExperienceSignals?: {
|
|
75
|
+
useful?: LlmEnhancedVerdict;
|
|
76
|
+
followUp?: LlmEnhancedVerdict;
|
|
77
|
+
correction?: LlmEnhancedVerdict;
|
|
78
|
+
negativeFeedback?: LlmEnhancedVerdict;
|
|
79
|
+
interruption?: LlmEnhancedVerdict;
|
|
80
|
+
frustration?: LlmEnhancedVerdict;
|
|
81
|
+
};
|
|
82
|
+
reviewerSummary?: string;
|
|
83
|
+
ownerSuggestions?: Array<{
|
|
84
|
+
title?: string;
|
|
85
|
+
body?: string;
|
|
86
|
+
evidence?: string[];
|
|
87
|
+
acceptanceCriteria?: string;
|
|
88
|
+
}>;
|
|
89
|
+
}
|
|
90
|
+
export type ResolvedSkillStandardSource = 'frontmatter' | 'confirmed_soft' | 'pending_soft';
|
|
91
|
+
export type ResolvedSkillStandardKind = 'hard_rule' | 'workflow';
|
|
92
|
+
export interface ResolvedSkillStandard {
|
|
93
|
+
id: string;
|
|
94
|
+
kind: ResolvedSkillStandardKind;
|
|
95
|
+
title: string;
|
|
96
|
+
body: string;
|
|
97
|
+
source: ResolvedSkillStandardSource;
|
|
98
|
+
status?: SkillDerivedStandardStatus;
|
|
99
|
+
confidence?: SkillDerivedStandard['confidence'];
|
|
100
|
+
evidence?: string[];
|
|
101
|
+
}
|
|
102
|
+
export interface ResolvedSkillStandards {
|
|
103
|
+
skillName: string;
|
|
104
|
+
active: ResolvedSkillStandard[];
|
|
105
|
+
candidates: ResolvedSkillStandard[];
|
|
106
|
+
sourcePriority: ['frontmatter', 'confirmed_soft', 'pending_soft'];
|
|
107
|
+
}
|
|
108
|
+
export interface ExtractSkillSoftStandardsOptions {
|
|
109
|
+
observationsDir: string;
|
|
110
|
+
skillChain: ObservationSkillChain;
|
|
111
|
+
runtimeEvidence?: SkillLlmEnhancedRuntimeEvidence;
|
|
112
|
+
model?: string;
|
|
113
|
+
executorName?: string;
|
|
114
|
+
refresh?: boolean;
|
|
115
|
+
now?: string;
|
|
116
|
+
executor?: ExecutorFn;
|
|
117
|
+
}
|
|
118
|
+
export interface ResolveSkillStandardsOptions {
|
|
119
|
+
observationsDir: string;
|
|
120
|
+
cwd?: string;
|
|
121
|
+
skillChain?: ObservationSkillChain;
|
|
122
|
+
derivedStandards?: SkillDerivedStandards | Record<string, SkillDerivedStandards>;
|
|
123
|
+
}
|
|
124
|
+
export declare function skillDerivedStandardsDir(observationsDir: string): string;
|
|
125
|
+
export declare function skillDerivedStandardsPath(observationsDir: string, skillName: string): string;
|
|
126
|
+
export declare function loadSkillDerivedStandards(observationsDir: string): Record<string, SkillDerivedStandards>;
|
|
127
|
+
export declare function updateSkillDerivedStandardStatus(observationsDir: string, skillName: string, standardId: string, status: SkillDerivedStandardStatus, now?: string): SkillDerivedStandards;
|
|
128
|
+
export declare function resolveSkillStandards(skillName: string, options: ResolveSkillStandardsOptions): ResolvedSkillStandards;
|
|
129
|
+
export declare function extractSkillSoftStandards(options: ExtractSkillSoftStandardsOptions): Promise<SkillDerivedStandards>;
|
|
130
|
+
//# sourceMappingURL=soft-standards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soft-standards.d.ts","sourceRoot":"","sources":["../../../src/observability/soft-standards.ts"],"names":[],"mappings":"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"}
|