@dommaker/harness 0.16.6 → 0.16.8
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/CHANGELOG.md +15 -0
- package/README.md +54 -14
- package/bin/harness.js +56 -96
- package/dist/architecture/constraint-engine.d.ts.map +1 -1
- package/dist/architecture/constraint-engine.js +0 -4
- package/dist/architecture/constraint-engine.js.map +1 -1
- package/dist/architecture/cross-project-checker.d.ts.map +1 -1
- package/dist/architecture/cross-project-checker.js +5 -25
- package/dist/architecture/cross-project-checker.js.map +1 -1
- package/dist/cli/commands/analyze-sessions.d.ts +2 -0
- package/dist/cli/commands/analyze-sessions.d.ts.map +1 -1
- package/dist/cli/commands/analyze-sessions.js +25 -181
- package/dist/cli/commands/analyze-sessions.js.map +1 -1
- package/dist/cli/commands/check.d.ts +1 -0
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +24 -216
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/doc-freshness-check.d.ts.map +1 -1
- package/dist/cli/commands/doc-freshness-check.js +14 -28
- package/dist/cli/commands/doc-freshness-check.js.map +1 -1
- package/dist/cli/commands/flow.d.ts.map +1 -1
- package/dist/cli/commands/flow.js +2 -1
- package/dist/cli/commands/flow.js.map +1 -1
- package/dist/cli/commands/init.js +2 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/posteval-plan.d.ts.map +1 -1
- package/dist/cli/commands/posteval-plan.js +0 -1
- package/dist/cli/commands/posteval-plan.js.map +1 -1
- package/dist/cli/commands/release.js +1 -1
- package/dist/cli/commands/release.js.map +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +2 -0
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/spec-baseline-check.d.ts.map +1 -1
- package/dist/cli/commands/spec-baseline-check.js +12 -23
- package/dist/cli/commands/spec-baseline-check.js.map +1 -1
- package/dist/cli/commands/sync-docs/agents-syncer.d.ts +19 -0
- package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -0
- package/dist/cli/commands/sync-docs/agents-syncer.js +288 -0
- package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -0
- package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +37 -0
- package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -0
- package/dist/cli/commands/sync-docs/capabilities-syncer.js +235 -0
- package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -0
- package/dist/cli/commands/sync-docs/context-syncer.d.ts +17 -0
- package/dist/cli/commands/sync-docs/context-syncer.d.ts.map +1 -0
- package/dist/cli/commands/sync-docs/context-syncer.js +143 -0
- package/dist/cli/commands/sync-docs/context-syncer.js.map +1 -0
- package/dist/cli/commands/{sync-docs.d.ts → sync-docs/index.d.ts} +9 -2
- package/dist/cli/commands/sync-docs/index.d.ts.map +1 -0
- package/dist/cli/commands/sync-docs/index.js +338 -0
- package/dist/cli/commands/sync-docs/index.js.map +1 -0
- package/dist/cli/commands/sync-docs/preserve-block.d.ts +24 -0
- package/dist/cli/commands/sync-docs/preserve-block.d.ts.map +1 -0
- package/dist/cli/commands/sync-docs/preserve-block.js +55 -0
- package/dist/cli/commands/sync-docs/preserve-block.js.map +1 -0
- package/dist/cli/commands/sync-docs/project-reader.d.ts +41 -0
- package/dist/cli/commands/sync-docs/project-reader.d.ts.map +1 -0
- package/dist/cli/commands/sync-docs/project-reader.js +183 -0
- package/dist/cli/commands/sync-docs/project-reader.js.map +1 -0
- package/dist/cli/commands/update-user-model.d.ts +2 -0
- package/dist/cli/commands/update-user-model.d.ts.map +1 -1
- package/dist/cli/commands/update-user-model.js +19 -90
- package/dist/cli/commands/update-user-model.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +3 -0
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +6 -39
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/session-mining/corrections.d.ts +17 -0
- package/dist/cli/session-mining/corrections.d.ts.map +1 -0
- package/dist/cli/session-mining/corrections.js +58 -0
- package/dist/cli/session-mining/corrections.js.map +1 -0
- package/dist/cli/session-mining/index.d.ts +13 -0
- package/dist/cli/session-mining/index.d.ts.map +1 -0
- package/dist/{core/spec → cli/session-mining}/index.js +9 -3
- package/dist/cli/session-mining/index.js.map +1 -0
- package/dist/cli/session-mining/text.d.ts +31 -0
- package/dist/cli/session-mining/text.d.ts.map +1 -0
- package/dist/cli/session-mining/text.js +126 -0
- package/dist/cli/session-mining/text.js.map +1 -0
- package/dist/cli/session-mining/transcript.d.ts +28 -0
- package/dist/cli/session-mining/transcript.d.ts.map +1 -0
- package/dist/cli/session-mining/transcript.js +123 -0
- package/dist/cli/session-mining/transcript.js.map +1 -0
- package/dist/constraints/lifecycle-runner.d.ts +1 -1
- package/dist/constraints/lifecycle-runner.d.ts.map +1 -1
- package/dist/context/compaction.d.ts.map +1 -1
- package/dist/context/compaction.js +2 -3
- package/dist/context/compaction.js.map +1 -1
- package/dist/context/knowledge-injector.d.ts.map +1 -1
- package/dist/context/tool-output-budget.d.ts +1 -1
- package/dist/context/tool-output-budget.d.ts.map +1 -1
- package/dist/context/tool-output-budget.js +1 -1
- package/dist/context/tool-output-budget.js.map +1 -1
- package/dist/core/constraints/capabilities-parser.d.ts +24 -0
- package/dist/core/constraints/capabilities-parser.d.ts.map +1 -0
- package/dist/core/constraints/capabilities-parser.js +95 -0
- package/dist/core/constraints/capabilities-parser.js.map +1 -0
- package/dist/core/constraints/checker.d.ts +37 -100
- package/dist/core/constraints/checker.d.ts.map +1 -1
- package/dist/core/constraints/checker.js +150 -737
- package/dist/core/constraints/checker.js.map +1 -1
- package/dist/core/constraints/checkers/always-pass.d.ts +17 -0
- package/dist/core/constraints/checkers/always-pass.d.ts.map +1 -0
- package/dist/core/constraints/checkers/always-pass.js +23 -0
- package/dist/core/constraints/checkers/always-pass.js.map +1 -0
- package/dist/core/constraints/checkers/capability-sync.d.ts +10 -0
- package/dist/core/constraints/checkers/capability-sync.d.ts.map +1 -0
- package/dist/core/constraints/checkers/capability-sync.js +60 -0
- package/dist/core/constraints/checkers/capability-sync.js.map +1 -0
- package/dist/core/constraints/checkers/context-doc-sync.d.ts +6 -0
- package/dist/core/constraints/checkers/context-doc-sync.d.ts.map +1 -0
- package/dist/core/constraints/checkers/context-doc-sync.js +35 -0
- package/dist/core/constraints/checkers/context-doc-sync.js.map +1 -0
- package/dist/core/constraints/checkers/docs-freshness.d.ts +10 -0
- package/dist/core/constraints/checkers/docs-freshness.d.ts.map +1 -0
- package/dist/core/constraints/checkers/docs-freshness.js +111 -0
- package/dist/core/constraints/checkers/docs-freshness.js.map +1 -0
- package/dist/core/constraints/checkers/guideline-flags.d.ts +9 -0
- package/dist/core/constraints/checkers/guideline-flags.d.ts.map +1 -0
- package/dist/core/constraints/checkers/guideline-flags.js +13 -0
- package/dist/core/constraints/checkers/guideline-flags.js.map +1 -0
- package/dist/core/constraints/checkers/index.d.ts +17 -0
- package/dist/core/constraints/checkers/index.d.ts.map +1 -0
- package/dist/core/constraints/checkers/index.js +82 -0
- package/dist/core/constraints/checkers/index.js.map +1 -0
- package/dist/core/constraints/checkers/iron-flags.d.ts +14 -0
- package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -0
- package/dist/core/constraints/checkers/iron-flags.js +24 -0
- package/dist/core/constraints/checkers/iron-flags.js.map +1 -0
- package/dist/core/constraints/checkers/no-any-type.d.ts +6 -0
- package/dist/core/constraints/checkers/no-any-type.d.ts.map +1 -0
- package/dist/core/constraints/checkers/no-any-type.js +42 -0
- package/dist/core/constraints/checkers/no-any-type.js.map +1 -0
- package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts +6 -0
- package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts.map +1 -0
- package/dist/core/constraints/checkers/no-bypass-checkpoint.js +40 -0
- package/dist/core/constraints/checkers/no-bypass-checkpoint.js.map +1 -0
- package/dist/core/constraints/checkers/no-excuse-patterns.d.ts +6 -0
- package/dist/core/constraints/checkers/no-excuse-patterns.d.ts.map +1 -0
- package/dist/core/constraints/checkers/no-excuse-patterns.js +25 -0
- package/dist/core/constraints/checkers/no-excuse-patterns.js.map +1 -0
- package/dist/core/constraints/checkers/no-fuzzy-completion-claim.d.ts +6 -0
- package/dist/core/constraints/checkers/no-fuzzy-completion-claim.d.ts.map +1 -0
- package/dist/core/constraints/checkers/no-fuzzy-completion-claim.js +34 -0
- package/dist/core/constraints/checkers/no-fuzzy-completion-claim.js.map +1 -0
- package/dist/core/constraints/checkers/no-performative-agreement.d.ts +8 -0
- package/dist/core/constraints/checkers/no-performative-agreement.d.ts.map +1 -0
- package/dist/core/constraints/checkers/no-performative-agreement.js +23 -0
- package/dist/core/constraints/checkers/no-performative-agreement.js.map +1 -0
- package/dist/core/constraints/checkers/no-simplification-without-approval.d.ts +6 -0
- package/dist/core/constraints/checkers/no-simplification-without-approval.d.ts.map +1 -0
- package/dist/core/constraints/checkers/no-simplification-without-approval.js +30 -0
- package/dist/core/constraints/checkers/no-simplification-without-approval.js.map +1 -0
- package/dist/core/constraints/checkers/no-test-simplification.d.ts +6 -0
- package/dist/core/constraints/checkers/no-test-simplification.d.ts.map +1 -0
- package/dist/core/constraints/checkers/no-test-simplification.js +29 -0
- package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -0
- package/dist/core/constraints/checkers/test-coverage.d.ts +6 -0
- package/dist/core/constraints/checkers/test-coverage.d.ts.map +1 -0
- package/dist/core/constraints/checkers/test-coverage.js +33 -0
- package/dist/core/constraints/checkers/test-coverage.js.map +1 -0
- package/dist/core/constraints/checkers/types.d.ts +43 -0
- package/dist/core/constraints/checkers/types.d.ts.map +1 -0
- package/dist/core/constraints/checkers/types.js +23 -0
- package/dist/core/constraints/checkers/types.js.map +1 -0
- package/dist/core/constraints/checkers/yagni.d.ts +8 -0
- package/dist/core/constraints/checkers/yagni.d.ts.map +1 -0
- package/dist/core/constraints/checkers/yagni.js +96 -0
- package/dist/core/constraints/checkers/yagni.js.map +1 -0
- package/dist/core/constraints/context-builder.d.ts +67 -0
- package/dist/core/constraints/context-builder.d.ts.map +1 -0
- package/dist/core/constraints/context-builder.js +294 -0
- package/dist/core/constraints/context-builder.js.map +1 -0
- package/dist/core/constraints/definitions/guidelines.d.ts +7 -0
- package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -0
- package/dist/core/constraints/definitions/guidelines.js +641 -0
- package/dist/core/constraints/definitions/guidelines.js.map +1 -0
- package/dist/core/constraints/definitions/iron-laws.d.ts +7 -0
- package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -0
- package/dist/core/constraints/definitions/iron-laws.js +322 -0
- package/dist/core/constraints/definitions/iron-laws.js.map +1 -0
- package/dist/core/constraints/definitions/tips.d.ts +7 -0
- package/dist/core/constraints/definitions/tips.d.ts.map +1 -0
- package/dist/core/constraints/definitions/tips.js +62 -0
- package/dist/core/constraints/definitions/tips.js.map +1 -0
- package/dist/core/constraints/definitions.d.ts +8 -21
- package/dist/core/constraints/definitions.d.ts.map +1 -1
- package/dist/core/constraints/definitions.js +15 -1048
- package/dist/core/constraints/definitions.js.map +1 -1
- package/dist/core/constraints/doc-freshness/runner.d.ts.map +1 -1
- package/dist/core/constraints/doc-freshness/runner.js +0 -1
- package/dist/core/constraints/doc-freshness/runner.js.map +1 -1
- package/dist/core/constraints/index.d.ts +4 -5
- package/dist/core/constraints/index.d.ts.map +1 -1
- package/dist/core/constraints/index.js +1 -16
- package/dist/core/constraints/index.js.map +1 -1
- package/dist/core/constraints/interceptor.d.ts.map +1 -1
- package/dist/core/constraints/interceptor.js.map +1 -1
- package/dist/core/index.js +0 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/project-config-loader.d.ts +6 -4
- package/dist/core/project-config-loader.d.ts.map +1 -1
- package/dist/core/project-config-loader.js +46 -13
- package/dist/core/project-config-loader.js.map +1 -1
- package/dist/core/validators/check-handlers/command.d.ts +7 -0
- package/dist/core/validators/check-handlers/command.d.ts.map +1 -0
- package/dist/core/validators/check-handlers/command.js +58 -0
- package/dist/core/validators/check-handlers/command.js.map +1 -0
- package/dist/core/validators/check-handlers/file.d.ts +10 -0
- package/dist/core/validators/check-handlers/file.d.ts.map +1 -0
- package/dist/core/validators/check-handlers/file.js +128 -0
- package/dist/core/validators/check-handlers/file.js.map +1 -0
- package/dist/core/validators/check-handlers/http.d.ts +7 -0
- package/dist/core/validators/check-handlers/http.d.ts.map +1 -0
- package/dist/core/validators/check-handlers/http.js +88 -0
- package/dist/core/validators/check-handlers/http.js.map +1 -0
- package/dist/core/validators/check-handlers/output.d.ts +15 -0
- package/dist/core/validators/check-handlers/output.d.ts.map +1 -0
- package/dist/core/validators/check-handlers/output.js +152 -0
- package/dist/core/validators/check-handlers/output.js.map +1 -0
- package/dist/core/validators/checkpoint.d.ts +4 -72
- package/dist/core/validators/checkpoint.d.ts.map +1 -1
- package/dist/core/validators/checkpoint.js +21 -400
- package/dist/core/validators/checkpoint.js.map +1 -1
- package/dist/core/validators/cso.js +1 -1
- package/dist/core/validators/cso.js.map +1 -1
- package/dist/core/validators/passes-gate.js +2 -2
- package/dist/core/validators/passes-gate.js.map +1 -1
- package/dist/dashboard/stats.d.ts.map +1 -1
- package/dist/dashboard/types.d.ts.map +1 -1
- package/dist/evolution/auto-evolve.d.ts +1 -2
- package/dist/evolution/auto-evolve.d.ts.map +1 -1
- package/dist/evolution/auto-evolve.js +2 -1
- package/dist/evolution/auto-evolve.js.map +1 -1
- package/dist/failure/types.d.ts +5 -85
- package/dist/failure/types.d.ts.map +1 -1
- package/dist/failure/types.js +19 -115
- package/dist/failure/types.js.map +1 -1
- package/dist/gates/contract.d.ts.map +1 -1
- package/dist/gates/contract.js.map +1 -1
- package/dist/gates/index.d.ts.map +1 -1
- package/dist/gates/index.js.map +1 -1
- package/dist/gates/performance.js +1 -1
- package/dist/gates/performance.js.map +1 -1
- package/dist/gates/security.d.ts.map +1 -1
- package/dist/gates/security.js +1 -1
- package/dist/gates/security.js.map +1 -1
- package/dist/hooks/bootstrap.d.ts.map +1 -1
- package/dist/hooks/bootstrap.js +6 -48
- package/dist/hooks/bootstrap.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/knowledge/audit.d.ts.map +1 -1
- package/dist/knowledge/doctor.d.ts.map +1 -1
- package/dist/knowledge/doctor.js.map +1 -1
- package/dist/knowledge/import.d.ts.map +1 -1
- package/dist/knowledge/import.js +1 -1
- package/dist/knowledge/import.js.map +1 -1
- package/dist/knowledge/index-generator.d.ts.map +1 -1
- package/dist/knowledge/index-generator.js +0 -1
- package/dist/knowledge/index-generator.js.map +1 -1
- package/dist/knowledge/ingest.d.ts.map +1 -1
- package/dist/knowledge/ingest.js +1 -1
- package/dist/knowledge/ingest.js.map +1 -1
- package/dist/knowledge/lint.d.ts +1 -1
- package/dist/knowledge/lint.d.ts.map +1 -1
- package/dist/knowledge/lint.js +2 -2
- package/dist/knowledge/lint.js.map +1 -1
- package/dist/knowledge/primitives/code-structure.d.ts.map +1 -1
- package/dist/knowledge/primitives/code-structure.js +29 -12
- package/dist/knowledge/primitives/code-structure.js.map +1 -1
- package/dist/knowledge/query.d.ts.map +1 -1
- package/dist/knowledge/query.js.map +1 -1
- package/dist/knowledge/store.d.ts.map +1 -1
- package/dist/llm/adapter.d.ts +3 -3
- package/dist/llm/adapter.d.ts.map +1 -1
- package/dist/llm/adapter.js +3 -3
- package/dist/llm/adapter.js.map +1 -1
- package/dist/monitoring/analyzer-base.d.ts +50 -0
- package/dist/monitoring/analyzer-base.d.ts.map +1 -0
- package/dist/monitoring/analyzer-base.js +146 -0
- package/dist/monitoring/analyzer-base.js.map +1 -0
- package/dist/monitoring/constraint-doctor.d.ts +3 -46
- package/dist/monitoring/constraint-doctor.d.ts.map +1 -1
- package/dist/monitoring/constraint-doctor.js +11 -113
- package/dist/monitoring/constraint-doctor.js.map +1 -1
- package/dist/monitoring/constraint-evolver.d.ts +9 -63
- package/dist/monitoring/constraint-evolver.d.ts.map +1 -1
- package/dist/monitoring/constraint-evolver.js +8 -10
- package/dist/monitoring/constraint-evolver.js.map +1 -1
- package/dist/monitoring/diagnosis-rules.d.ts +18 -0
- package/dist/monitoring/diagnosis-rules.d.ts.map +1 -0
- package/dist/monitoring/diagnosis-rules.js +119 -0
- package/dist/monitoring/diagnosis-rules.js.map +1 -0
- package/dist/monitoring/knowledge-doctor.d.ts.map +1 -1
- package/dist/monitoring/knowledge-doctor.js.map +1 -1
- package/dist/monitoring/performance-analyzer.d.ts +0 -12
- package/dist/monitoring/performance-analyzer.d.ts.map +1 -1
- package/dist/monitoring/performance-analyzer.js +13 -93
- package/dist/monitoring/performance-analyzer.js.map +1 -1
- package/dist/monitoring/performance-collector.d.ts +0 -8
- package/dist/monitoring/performance-collector.d.ts.map +1 -1
- package/dist/monitoring/performance-collector.js +0 -21
- package/dist/monitoring/performance-collector.js.map +1 -1
- package/dist/monitoring/trace-analyzer.d.ts +0 -8
- package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
- package/dist/monitoring/trace-analyzer.js +9 -91
- package/dist/monitoring/trace-analyzer.js.map +1 -1
- package/dist/presets/index.d.ts +1 -1
- package/dist/presets/index.d.ts.map +1 -1
- package/dist/presets/index.js +1 -4
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/standard.d.ts +0 -9
- package/dist/presets/standard.d.ts.map +1 -1
- package/dist/presets/standard.js +1 -16
- package/dist/presets/standard.js.map +1 -1
- package/dist/safety/output-guardrail.d.ts +0 -1
- package/dist/safety/output-guardrail.d.ts.map +1 -1
- package/dist/safety/output-guardrail.js +0 -3
- package/dist/safety/output-guardrail.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/types/constraint.d.ts +5 -59
- package/dist/types/constraint.d.ts.map +1 -1
- package/dist/types/constraint.js +1 -39
- package/dist/types/constraint.js.map +1 -1
- package/dist/types/failure.d.ts +89 -0
- package/dist/types/failure.d.ts.map +1 -0
- package/dist/types/failure.js +121 -0
- package/dist/types/failure.js.map +1 -0
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +7 -6
- package/dist/types/index.js.map +1 -1
- package/dist/types/monitoring-types.d.ts +114 -0
- package/dist/types/monitoring-types.d.ts.map +1 -0
- package/dist/types/monitoring-types.js +10 -0
- package/dist/types/monitoring-types.js.map +1 -0
- package/dist/utils/detect-source-roots.js.map +1 -1
- package/dist/utils/file-walk.d.ts +33 -0
- package/dist/utils/file-walk.d.ts.map +1 -0
- package/dist/utils/file-walk.js +89 -0
- package/dist/utils/file-walk.js.map +1 -0
- package/dist/verification/rules-based.d.ts.map +1 -1
- package/dist/verification/rules-based.js.map +1 -1
- package/package.json +3 -7
- package/src/__tests__/checker-extra.test.ts +0 -30
- package/src/__tests__/checker.test.ts +0 -33
- package/src/__tests__/checkpoint.test.ts +46 -46
- package/src/__tests__/constraint-evolver.test.ts +22 -21
- package/src/__tests__/doctor-evolver.test.ts +3 -3
- package/src/__tests__/iron-laws.test.ts +0 -27
- package/src/__tests__/presets.test.ts +1 -40
- package/src/architecture/constraint-engine.ts +0 -5
- package/src/architecture/cross-project-checker.ts +6 -24
- package/src/cli/commands/__tests__/check.test.ts +3 -1
- package/src/cli/commands/__tests__/sync-docs.test.ts +77 -0
- package/src/cli/commands/__tests__/validate.test.ts +5 -0
- package/src/cli/commands/analyze-sessions.ts +31 -185
- package/src/cli/commands/check.ts +26 -225
- package/src/cli/commands/doc-freshness-check.ts +14 -25
- package/src/cli/commands/flow.ts +5 -3
- package/src/cli/commands/init.ts +3 -3
- package/src/cli/commands/posteval-plan.ts +0 -1
- package/src/cli/commands/release.ts +1 -1
- package/src/cli/commands/report.ts +2 -0
- package/src/cli/commands/spec-baseline-check.ts +12 -19
- package/src/cli/commands/sync-docs/agents-syncer.ts +280 -0
- package/src/cli/commands/sync-docs/capabilities-syncer.ts +229 -0
- package/src/cli/commands/sync-docs/context-syncer.ts +108 -0
- package/src/cli/commands/sync-docs/index.ts +355 -0
- package/src/cli/commands/sync-docs/preserve-block.ts +59 -0
- package/src/cli/commands/sync-docs/project-reader.ts +163 -0
- package/src/cli/commands/update-user-model.ts +23 -87
- package/src/cli/commands/validate.ts +6 -40
- package/src/cli/session-mining/corrections.ts +56 -0
- package/src/cli/session-mining/index.ts +13 -0
- package/src/cli/session-mining/text.ts +117 -0
- package/src/cli/session-mining/transcript.ts +107 -0
- package/src/constraints/__tests__/lifecycle-runner.test.ts +1 -1
- package/src/constraints/lifecycle-runner.ts +1 -1
- package/src/context/compaction.ts +2 -3
- package/src/context/knowledge-injector.ts +1 -1
- package/src/context/tool-output-budget.ts +1 -1
- package/src/core/constraints/capabilities-parser.ts +70 -0
- package/src/core/constraints/checker.ts +170 -779
- package/src/core/constraints/checkers/always-pass.ts +22 -0
- package/src/core/constraints/checkers/capability-sync.ts +71 -0
- package/src/core/constraints/checkers/context-doc-sync.ts +36 -0
- package/src/core/constraints/checkers/docs-freshness.ts +116 -0
- package/src/core/constraints/checkers/guideline-flags.ts +30 -0
- package/src/core/constraints/checkers/index.ts +114 -0
- package/src/core/constraints/checkers/iron-flags.ts +62 -0
- package/src/core/constraints/checkers/no-any-type.ts +42 -0
- package/src/core/constraints/checkers/no-bypass-checkpoint.ts +40 -0
- package/src/core/constraints/checkers/no-excuse-patterns.ts +24 -0
- package/src/core/constraints/checkers/no-fuzzy-completion-claim.ts +33 -0
- package/src/core/constraints/checkers/no-performative-agreement.ts +22 -0
- package/src/core/constraints/checkers/no-simplification-without-approval.ts +29 -0
- package/src/core/constraints/checkers/no-test-simplification.ts +28 -0
- package/src/core/constraints/checkers/test-coverage.ts +35 -0
- package/src/core/constraints/checkers/types.ts +54 -0
- package/src/core/constraints/checkers/yagni.ts +65 -0
- package/src/core/constraints/context-builder.ts +262 -0
- package/src/core/constraints/definitions/guidelines.ts +668 -0
- package/src/core/constraints/definitions/iron-laws.ts +333 -0
- package/src/core/constraints/definitions/tips.ts +63 -0
- package/src/core/constraints/definitions.ts +9 -1086
- package/src/core/constraints/doc-freshness/runner.ts +2 -3
- package/src/core/constraints/index.ts +1 -27
- package/src/core/constraints/interceptor.ts +0 -2
- package/src/core/index.ts +1 -1
- package/src/core/project-config-loader.ts +49 -13
- package/src/core/validators/check-handlers/command.ts +58 -0
- package/src/core/validators/check-handlers/file.ts +104 -0
- package/src/core/validators/check-handlers/http.ts +88 -0
- package/src/core/validators/check-handlers/output.ts +165 -0
- package/src/core/validators/checkpoint.ts +32 -407
- package/src/core/validators/cso.ts +1 -1
- package/src/core/validators/passes-gate.ts +2 -2
- package/src/dashboard/stats.ts +1 -1
- package/src/dashboard/types.ts +1 -1
- package/src/evolution/__tests__/auto-evolve.test.ts +1 -2
- package/src/evolution/auto-evolve.ts +3 -3
- package/src/failure/types.ts +5 -161
- package/src/gates/contract.ts +0 -1
- package/src/gates/index.ts +0 -2
- package/src/gates/performance.ts +1 -1
- package/src/gates/security.ts +1 -3
- package/src/hooks/bootstrap.ts +6 -16
- package/src/index.ts +4 -1
- package/src/knowledge/__tests__/lifecycle.test.ts +4 -1
- package/src/knowledge/audit.ts +1 -1
- package/src/knowledge/doctor.ts +0 -1
- package/src/knowledge/import.ts +2 -2
- package/src/knowledge/index-generator.ts +0 -1
- package/src/knowledge/ingest.ts +1 -2
- package/src/knowledge/lint.ts +2 -2
- package/src/knowledge/primitives/__tests__/code-structure-degrade.test.ts +24 -0
- package/src/knowledge/primitives/code-structure.ts +36 -12
- package/src/knowledge/query.ts +0 -3
- package/src/knowledge/store.ts +1 -1
- package/src/llm/adapter.ts +3 -3
- package/src/monitoring/analyzer-base.ts +112 -0
- package/src/monitoring/constraint-doctor.ts +14 -175
- package/src/monitoring/constraint-evolver.ts +20 -92
- package/src/monitoring/diagnosis-rules.ts +132 -0
- package/src/monitoring/knowledge-doctor.ts +0 -1
- package/src/monitoring/performance-analyzer.ts +22 -72
- package/src/monitoring/performance-collector.ts +0 -22
- package/src/monitoring/trace-analyzer.ts +17 -73
- package/src/presets/__tests__/standard.test.ts +2 -17
- package/src/presets/index.ts +1 -3
- package/src/presets/standard.ts +1 -26
- package/src/safety/output-guardrail.ts +0 -4
- package/src/tools/registry.ts +1 -1
- package/src/types/__tests__/types.test.ts +1 -33
- package/src/types/constraint.ts +6 -75
- package/src/types/failure.ts +165 -0
- package/src/types/index.ts +7 -5
- package/src/types/monitoring-types.ts +150 -0
- package/src/utils/detect-source-roots.ts +1 -1
- package/src/utils/file-walk.ts +78 -0
- package/src/verification/rules-based.ts +0 -1
- package/bin/harness-knowledge-capture.js +0 -99
- package/bin/harness-knowledge-check.js +0 -164
- package/bin/harness-knowledge-track.js +0 -118
- package/dist/cli/commands/sync-docs.d.ts.map +0 -1
- package/dist/cli/commands/sync-docs.js +0 -1074
- package/dist/cli/commands/sync-docs.js.map +0 -1
- package/dist/constraints/index.d.ts +0 -4
- package/dist/constraints/index.d.ts.map +0 -1
- package/dist/constraints/index.js +0 -20
- package/dist/constraints/index.js.map +0 -1
- package/dist/core/constraints/doc-freshness/auto-fix.d.ts +0 -23
- package/dist/core/constraints/doc-freshness/auto-fix.d.ts.map +0 -1
- package/dist/core/constraints/doc-freshness/auto-fix.js +0 -59
- package/dist/core/constraints/doc-freshness/auto-fix.js.map +0 -1
- package/dist/core/constraints/prompt-injection.d.ts +0 -16
- package/dist/core/constraints/prompt-injection.d.ts.map +0 -1
- package/dist/core/constraints/prompt-injection.js +0 -69
- package/dist/core/constraints/prompt-injection.js.map +0 -1
- package/dist/core/spec/index.d.ts +0 -7
- package/dist/core/spec/index.d.ts.map +0 -1
- package/dist/core/spec/index.js.map +0 -1
- package/dist/governance/executor.d.ts +0 -45
- package/dist/governance/executor.d.ts.map +0 -1
- package/dist/governance/executor.js +0 -243
- package/dist/governance/executor.js.map +0 -1
- package/dist/governance/index.d.ts +0 -9
- package/dist/governance/index.d.ts.map +0 -1
- package/dist/governance/index.js +0 -13
- package/dist/governance/index.js.map +0 -1
- package/dist/governance/types.d.ts +0 -46
- package/dist/governance/types.d.ts.map +0 -1
- package/dist/governance/types.js +0 -9
- package/dist/governance/types.js.map +0 -1
- package/dist/tools/definitions/definitions/core/code/fingerprint.sh +0 -273
- package/dist/tools/definitions/definitions/core/code/fingerprint.yml +0 -72
- package/dist/tools/definitions/definitions/core/code/parse.yml +0 -68
- package/dist/tools/definitions/definitions/core/code/register-language.sh +0 -475
- package/dist/tools/definitions/definitions/core/code/register-language.yml +0 -74
- package/dist/tools/definitions/definitions/core/docker/build.yml +0 -73
- package/dist/tools/definitions/definitions/core/docker/run.yml +0 -81
- package/dist/tools/definitions/definitions/core/file/copy.yml +0 -88
- package/dist/tools/definitions/definitions/core/file/read.yml +0 -69
- package/dist/tools/definitions/definitions/core/file/write.yml +0 -75
- package/dist/tools/definitions/definitions/core/git/branch.yml +0 -61
- package/dist/tools/definitions/definitions/core/git/cleanup-worktree.yml +0 -50
- package/dist/tools/definitions/definitions/core/git/clone.yml +0 -69
- package/dist/tools/definitions/definitions/core/git/commit.yml +0 -65
- package/dist/tools/definitions/definitions/core/git/push.yml +0 -79
- package/dist/tools/definitions/definitions/core/git/worktree.yml +0 -96
- package/dist/tools/definitions/definitions/core/notification/notify.sh +0 -152
- package/dist/tools/definitions/definitions/core/notification/notify.yml +0 -60
- package/dist/tools/definitions/definitions/core/npm/build.yml +0 -75
- package/dist/tools/definitions/definitions/core/npm/install.yml +0 -58
- package/dist/tools/definitions/definitions/core/npm/test.yml +0 -75
- package/dist/tools/definitions/definitions/core/validation/check-reuse.yml +0 -170
- package/dist/tools/definitions/definitions/core/validation/validate-handlers.yml +0 -118
- package/dist/tools/definitions/definitions/core/validation/validate-readme-stats.yml +0 -155
- package/dist/tools/definitions/definitions/core/validation/validate-yaml-syntax.yml +0 -134
- package/dist/tools/definitions/definitions/ext/browser/browser-automate.sh +0 -255
- package/dist/tools/definitions/definitions/ext/browser/browser-automate.yml +0 -166
- package/dist/tools/definitions/definitions/ext/browser/browser-close.sh +0 -104
- package/dist/tools/definitions/definitions/ext/browser/browser-close.yml +0 -55
- package/dist/tools/definitions/definitions/ext/browser/browser-mcp-debug.sh +0 -682
- package/dist/tools/definitions/definitions/ext/browser/browser-mcp-debug.yml +0 -167
- package/dist/tools/definitions/definitions/ext/browser/browser-start.sh +0 -101
- package/dist/tools/definitions/definitions/ext/browser/browser-start.yml +0 -62
- package/dist/tools/definitions/definitions/registry.json +0 -795
- package/dist/tools/definitions/definitions/std/README.md +0 -350
- package/dist/tools/definitions/definitions/std/analysis/analyze-codebase.yml +0 -72
- package/dist/tools/definitions/definitions/std/analysis/analyze-diff.yml +0 -182
- package/dist/tools/definitions/definitions/std/analysis/analyze-git-diff.yml +0 -70
- package/dist/tools/definitions/definitions/std/analysis/analyze-impact.yml +0 -78
- package/dist/tools/definitions/definitions/std/analysis/analyze-requirements.yml +0 -105
- package/dist/tools/definitions/definitions/std/analysis/brainstorm-options.yml +0 -106
- package/dist/tools/definitions/definitions/std/analysis/build-graph.yml +0 -154
- package/dist/tools/definitions/definitions/std/analysis/clarify-requirements.yml +0 -90
- package/dist/tools/definitions/definitions/std/analysis/detect-context.yml +0 -109
- package/dist/tools/definitions/definitions/std/analysis/detect-layers.yml +0 -125
- package/dist/tools/definitions/definitions/std/analysis/generate-tour.yml +0 -102
- package/dist/tools/definitions/definitions/std/analysis/search-enhance.yml +0 -105
- package/dist/tools/definitions/definitions/std/backlog/add.yml +0 -51
- package/dist/tools/definitions/definitions/std/backlog/decide.yml +0 -39
- package/dist/tools/definitions/definitions/std/backlog/github-sync.yml +0 -161
- package/dist/tools/definitions/definitions/std/backlog/list.yml +0 -53
- package/dist/tools/definitions/definitions/std/backlog/load.yml +0 -46
- package/dist/tools/definitions/definitions/std/backlog/resolve.yml +0 -37
- package/dist/tools/definitions/definitions/std/backlog/update.yml +0 -42
- package/dist/tools/definitions/definitions/std/bugfix/diagnose.yml +0 -68
- package/dist/tools/definitions/definitions/std/bugfix/fix.yml +0 -66
- package/dist/tools/definitions/definitions/std/bugfix/verify.yml +0 -69
- package/dist/tools/definitions/definitions/std/constraint/check-decomposition.yml +0 -103
- package/dist/tools/definitions/definitions/std/constraint/check-feature-list.yml +0 -77
- package/dist/tools/definitions/definitions/std/constraint/check-progress.yml +0 -97
- package/dist/tools/definitions/definitions/std/constraint/generate-report.yml +0 -147
- package/dist/tools/definitions/definitions/std/deploy/commit-push.yml +0 -33
- package/dist/tools/definitions/definitions/std/deploy/deploy-backend.yml +0 -37
- package/dist/tools/definitions/definitions/std/deploy/deploy-frontend.yml +0 -37
- package/dist/tools/definitions/definitions/std/deploy/rollback.yml +0 -148
- package/dist/tools/definitions/definitions/std/design/analyze-architecture-impact.yml +0 -113
- package/dist/tools/definitions/definitions/std/design/design-api.yml +0 -55
- package/dist/tools/definitions/definitions/std/design/design-architecture.yml +0 -97
- package/dist/tools/definitions/definitions/std/design/design-db.yml +0 -81
- package/dist/tools/definitions/definitions/std/design/generate-spec.yml +0 -182
- package/dist/tools/definitions/definitions/std/development/develop-api.yml +0 -85
- package/dist/tools/definitions/definitions/std/development/develop-backend.yml +0 -88
- package/dist/tools/definitions/definitions/std/development/develop-frontend.yml +0 -87
- package/dist/tools/definitions/definitions/std/development/develop-shared-types.yml +0 -74
- package/dist/tools/definitions/definitions/std/development/develop-task.yml +0 -122
- package/dist/tools/definitions/definitions/std/development/develop-tests.yml +0 -76
- package/dist/tools/definitions/definitions/std/development/execute-batch.yml +0 -152
- package/dist/tools/definitions/definitions/std/development/fix-issues.yml +0 -100
- package/dist/tools/definitions/definitions/std/development/implement-task.yml +0 -124
- package/dist/tools/definitions/definitions/std/development/review-fix-cycle.yml +0 -232
- package/dist/tools/definitions/definitions/std/evolution/implement.yml +0 -125
- package/dist/tools/definitions/definitions/std/evolution/prioritize.yml +0 -112
- package/dist/tools/definitions/definitions/std/evolution/report-gap.yml +0 -166
- package/dist/tools/definitions/definitions/std/file/read.yml +0 -21
- package/dist/tools/definitions/definitions/std/governance/aggregate-opinions.sh +0 -201
- package/dist/tools/definitions/definitions/std/governance/aggregate-opinions.yml +0 -79
- package/dist/tools/definitions/definitions/std/governance/audit-task.yml +0 -178
- package/dist/tools/definitions/definitions/std/governance/cast-vote.yml +0 -129
- package/dist/tools/definitions/definitions/std/governance/collect-issues.yml +0 -16
- package/dist/tools/definitions/definitions/std/governance/create-signed-document.yml +0 -23
- package/dist/tools/definitions/definitions/std/governance/create-voting-session.yml +0 -101
- package/dist/tools/definitions/definitions/std/governance/define-stance.sh +0 -243
- package/dist/tools/definitions/definitions/std/governance/define-stance.yml +0 -82
- package/dist/tools/definitions/definitions/std/governance/generate-review-report.yml +0 -23
- package/dist/tools/definitions/definitions/std/governance/impeach.yml +0 -179
- package/dist/tools/definitions/definitions/std/governance/multi-stance-review.yml +0 -154
- package/dist/tools/definitions/definitions/std/governance/prepare-artifact.yml +0 -20
- package/dist/tools/definitions/definitions/std/governance/review-spec-approval.yml +0 -262
- package/dist/tools/definitions/definitions/std/governance/rollback.yml +0 -186
- package/dist/tools/definitions/definitions/std/governance/stance-review.yml +0 -149
- package/dist/tools/definitions/definitions/std/governance/track-effect.yml +0 -199
- package/dist/tools/definitions/definitions/std/governance/vote-tally.yml +0 -144
- package/dist/tools/definitions/definitions/std/patch/execute.yml +0 -51
- package/dist/tools/definitions/definitions/std/planning/generate-tasks.yml +0 -36
- package/dist/tools/definitions/definitions/std/planning/load-tasks.yml +0 -44
- package/dist/tools/definitions/definitions/std/planning/split-batch.yml +0 -481
- package/dist/tools/definitions/definitions/std/planning/split-tasks.yml +0 -359
- package/dist/tools/definitions/definitions/std/planning/update-tasks.yml +0 -51
- package/dist/tools/definitions/definitions/std/planning/validate-tasks.yml +0 -46
- package/dist/tools/definitions/definitions/std/project/decide-next-workflow.yml +0 -38
- package/dist/tools/definitions/definitions/std/project/load-state.yml +0 -31
- package/dist/tools/definitions/definitions/std/project/save-state.yml +0 -32
- package/dist/tools/definitions/definitions/std/quality/check-quality.yml +0 -241
- package/dist/tools/definitions/definitions/std/quality/debug-systematic.yml +0 -163
- package/dist/tools/definitions/definitions/std/quality/handle-feedback.yml +0 -108
- package/dist/tools/definitions/definitions/std/quality/review-code.yml +0 -128
- package/dist/tools/definitions/definitions/std/quality/review-spec.yml +0 -140
- package/dist/tools/definitions/definitions/std/quality/review-task.yml +0 -190
- package/dist/tools/definitions/definitions/std/quality/run-tests.yml +0 -80
- package/dist/tools/definitions/definitions/std/quick/analyze.yml +0 -56
- package/dist/tools/definitions/definitions/std/quick/implement.yml +0 -67
- package/dist/tools/definitions/definitions/std/quick/verify.yml +0 -71
- package/dist/tools/definitions/definitions/std/verification/verify_completion.yml +0 -113
- package/dist/tools/definitions/definitions/std/verification/wait-condition.yml +0 -107
- package/dist/types/iron-law.d.ts +0 -25
- package/dist/types/iron-law.d.ts.map +0 -1
- package/dist/types/iron-law.js +0 -16
- package/dist/types/iron-law.js.map +0 -1
- package/src/cli/commands/sync-docs.ts +0 -1175
- package/src/constraints/index.ts +0 -3
- package/src/core/constraints/__tests__/prompt-injection.test.ts +0 -89
- package/src/core/constraints/doc-freshness/auto-fix.ts +0 -69
- package/src/core/constraints/prompt-injection.ts +0 -73
- package/src/core/spec/index.ts +0 -7
- package/src/governance/CONTEXT.md +0 -22
- package/src/governance/__tests__/executor.test.ts +0 -249
- package/src/governance/executor.ts +0 -229
- package/src/governance/index.ts +0 -13
- package/src/governance/types.ts +0 -53
- package/src/tools/core/package.json +0 -7
- package/src/tools/core/pnpm-lock.yaml +0 -232
- package/src/types/iron-law.ts +0 -50
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
6
6
|
|
|
7
|
+
## [0.16.8] - 2026-08-08
|
|
8
|
+
|
|
9
|
+
### Changes
|
|
10
|
+
- fix(sync-docs): CAPABILITIES 幽灵条目全路径清扫 + docs_freshness 报出缺失文件名
|
|
11
|
+
- docs(readme): 深度重构后 README 刷新 (#16)
|
|
12
|
+
- docs(changelog): 补 0.16.7 条目——修复 changelog_version 版本漂移门控
|
|
13
|
+
|
|
14
|
+
## [0.16.7] - 2026-08-07
|
|
15
|
+
|
|
16
|
+
### Changes
|
|
17
|
+
- **深度重构**:constraints definitions 拆分为 iron-laws/guidelines/tips 三层;checker 规则拆至 checkers/ 目录;checkpoint 校验拆至 validators/check-handlers/;sync-docs 拆为 sync-docs/ 模块族;会话挖掘收拢至 cli/session-mining/
|
|
18
|
+
- **死代码清理**:删除 governance executor、prompt-injection 别名、knowledge 孤儿脚本等(-12000+ 行)
|
|
19
|
+
- fix(checkpoint): output_* 检查行为修复;validate 门控失败时返回退出码 1
|
|
20
|
+
- refactor(monitoring): constraint-doctor 诊断规则数据化(diagnosis-rules)
|
|
21
|
+
|
|
7
22
|
## [0.16.6] - 2026-07-29
|
|
8
23
|
|
|
9
24
|
### Changes
|
package/README.md
CHANGED
|
@@ -54,11 +54,11 @@ const meta = await import('child_process').then(cp =>
|
|
|
54
54
|
|
|
55
55
|
| 层级 | 严重性 | 数量 | 行为 |
|
|
56
56
|
|------|:--:|:--:|------|
|
|
57
|
-
| **Iron Law** | error |
|
|
58
|
-
| **Guideline** | warning |
|
|
57
|
+
| **Iron Law** | error | 12 | 阻断执行。拦截率 <5% 时自动降为 guideline |
|
|
58
|
+
| **Guideline** | warning | 28 | 注入 Agent context。拦截率 <30% 时降为 tip |
|
|
59
59
|
| **Tip** | info | 2 | 信息性提示。拦截率 <10% 时标记废弃 |
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
约束定义按层级维护在数据文件中(`src/core/constraints/definitions/{iron-laws,guidelines,tips}.ts`),检查逻辑在 `checkers/` 目录按规则独立实现。完整约束列表见 [CAPABILITIES.md](CAPABILITIES.md)。
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
@@ -85,16 +85,42 @@ active → 拦截率低于阈值 → degrade → deprecated → 写入 Knowledge
|
|
|
85
85
|
## CLI
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
|
|
89
|
-
harness
|
|
90
|
-
harness
|
|
91
|
-
harness
|
|
92
|
-
harness status
|
|
93
|
-
harness
|
|
94
|
-
harness report
|
|
88
|
+
# 核心
|
|
89
|
+
harness check # 约束检查(pre-commit hook 用)
|
|
90
|
+
harness validate # 检查点验证(失败退出码 1,可用于 CI 门控)
|
|
91
|
+
harness init # 初始化 .harness/ 目录(不覆盖已有运行时配置)
|
|
92
|
+
harness status # 项目健康状态、统计、异常检测
|
|
93
|
+
harness constraints # 约束元数据(版本/hash/计数/文本大小)
|
|
94
|
+
harness report # 生成检查报告
|
|
95
|
+
harness flow # 一键执行诊断 + 提案流程
|
|
96
|
+
|
|
97
|
+
# 门禁
|
|
98
|
+
harness passes-gate # 测试门控(别名 pg)
|
|
99
|
+
harness acceptance # 验收标准门控
|
|
100
|
+
harness performance # 性能门控
|
|
101
|
+
harness security # 安全门控
|
|
102
|
+
harness contract # API 契约门控(OpenAPI Schema)
|
|
103
|
+
harness review # 代码审查门控
|
|
104
|
+
harness command # 命令黑名单检查
|
|
105
|
+
|
|
106
|
+
# 知识与演化
|
|
107
|
+
harness knowledge # 知识库管理(list/search/import/decay/stats/audit)
|
|
108
|
+
harness failure # 失败记录管理(list/stats/clear)
|
|
109
|
+
harness analyze-sessions # 挖掘会话中的纠正模式,生成规则候选
|
|
110
|
+
harness update-user-model # 增量更新用户思维模型
|
|
111
|
+
|
|
112
|
+
# 文档与 Spec
|
|
113
|
+
harness sync-docs # 同步 CAPABILITIES.md + CONTEXT.md + AGENTS.md
|
|
114
|
+
harness doc-freshness-check # 文档声明新鲜度检查
|
|
115
|
+
harness spec # Spec 验证
|
|
116
|
+
harness spec-baseline-check # Spec 前置条件验证
|
|
117
|
+
harness sdd # SDD 索引管理
|
|
118
|
+
|
|
119
|
+
# 发布
|
|
120
|
+
harness release # npm 发布流水线(tsc → dist 验证 → version → push → publish → gh release)
|
|
95
121
|
```
|
|
96
122
|
|
|
97
|
-
|
|
123
|
+
完整参数见各命令 `--help`,能力清单见 [CAPABILITIES.md](CAPABILITIES.md)。
|
|
98
124
|
|
|
99
125
|
---
|
|
100
126
|
|
|
@@ -115,12 +141,26 @@ preset: standard # strict | standard | relaxed
|
|
|
115
141
|
| 知识引擎 | 约束退化 → KnowledgeStore 沉淀,可检索、可追溯 |
|
|
116
142
|
| 门禁系统 | 8 种门禁:测试/验收/性能/安全/契约/审查/命令/检查点 |
|
|
117
143
|
| 安全护栏 | Input/Output/Tool Guardrail + Sandbox (L1-L4) |
|
|
118
|
-
| Hook
|
|
144
|
+
| Hook 管线 | 通用 before/after/around hook:注册 → 排序 → 错误隔离 → 采样执行 |
|
|
119
145
|
| 上下文/监控 | Token 预算 + 会话压缩 + Trace 诊断 + 约束进化 |
|
|
120
146
|
|
|
121
|
-
|
|
147
|
+
### 代码结构
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
src/
|
|
151
|
+
├── core/constraints/ # 约束定义(iron-laws/guidelines/tips)+ checkers/
|
|
152
|
+
├── core/validators/ # 检查点校验器(check-handlers/)
|
|
153
|
+
├── cli/ # CLI 命令实现(sync-docs/ 模块族等)
|
|
154
|
+
├── constraints/ # ConstraintRegistry + 生命周期执行器
|
|
155
|
+
├── knowledge/ # 知识引擎(存储/检索/衰减/诊断)
|
|
156
|
+
├── gates/ # 各类门禁实现
|
|
157
|
+
├── safety/ # 护栏与沙箱
|
|
158
|
+
├── evolution/ # 约束自动演化
|
|
159
|
+
└── monitoring/ # Trace 分析与诊断(规则数据化)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
各目录的 `CONTEXT.md` 是权威模块文档。变更历史见 [CHANGELOG.md](CHANGELOG.md)。
|
|
122
163
|
|
|
123
164
|
## 许可证
|
|
124
165
|
|
|
125
166
|
MIT
|
|
126
|
-
# force CI re-run
|
package/bin/harness.js
CHANGED
|
@@ -8,54 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
const { Command } = require('commander');
|
|
10
10
|
const { version } = require('../package.json');
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
status,
|
|
20
|
-
flow,
|
|
21
|
-
specValidate,
|
|
22
|
-
listSpecTypes,
|
|
23
|
-
acceptance,
|
|
24
|
-
listAcceptanceCriteria,
|
|
25
|
-
performance,
|
|
26
|
-
security,
|
|
27
|
-
auditDetails,
|
|
28
|
-
contract,
|
|
29
|
-
validateSchema,
|
|
30
|
-
review,
|
|
31
|
-
reviewStatus,
|
|
32
|
-
executeCommand,
|
|
33
|
-
syncDocs,
|
|
34
|
-
knowledgeList,
|
|
35
|
-
knowledgeSearch,
|
|
36
|
-
knowledgeImport,
|
|
37
|
-
knowledgeDecay,
|
|
38
|
-
knowledgeStats,
|
|
39
|
-
knowledgeUpsert,
|
|
40
|
-
knowledgeSyncStatus,
|
|
41
|
-
knowledgeSyncRag,
|
|
42
|
-
knowledgeAudit,
|
|
43
|
-
knowledgeSnapshot,
|
|
44
|
-
knowledgeMigrate,
|
|
45
|
-
knowledgeHealth,
|
|
46
|
-
knowledgeIndex,
|
|
47
|
-
failureList,
|
|
48
|
-
failureStats,
|
|
49
|
-
failureClear,
|
|
50
|
-
postevalPlan,
|
|
51
|
-
analyzeSessions,
|
|
52
|
-
updateUserModel,
|
|
53
|
-
release,
|
|
54
|
-
constraints,
|
|
55
|
-
docFreshnessCheck,
|
|
56
|
-
specBaselineCheck,
|
|
57
|
-
sddIndex,
|
|
58
|
-
} = require('../dist/cli/commands/index');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 懒加载命令实现(工单 17):只在 .action 执行时 require 命令桶,
|
|
14
|
+
* --version/--help 等不触发命令体的调用不再加载全部实现。
|
|
15
|
+
*/
|
|
16
|
+
function cmd(name) {
|
|
17
|
+
return require('../dist/cli/commands/index')[name];
|
|
18
|
+
}
|
|
59
19
|
|
|
60
20
|
const program = new Command();
|
|
61
21
|
|
|
@@ -77,9 +37,9 @@ program
|
|
|
77
37
|
.option('--list', '列出所有铁律')
|
|
78
38
|
.action(async (options) => {
|
|
79
39
|
if (options.list) {
|
|
80
|
-
listLaws();
|
|
40
|
+
cmd('listLaws')();
|
|
81
41
|
} else {
|
|
82
|
-
await check(options);
|
|
42
|
+
await cmd('check')(options);
|
|
83
43
|
}
|
|
84
44
|
});
|
|
85
45
|
|
|
@@ -93,7 +53,7 @@ program
|
|
|
93
53
|
.option('-p, --project-path <path>', '项目路径')
|
|
94
54
|
.option('--strict', '严格模式(任何失败都退出)', false)
|
|
95
55
|
.action(async (options) => {
|
|
96
|
-
await validate(options);
|
|
56
|
+
await cmd('validate')(options);
|
|
97
57
|
});
|
|
98
58
|
|
|
99
59
|
// ========================================
|
|
@@ -112,11 +72,11 @@ program
|
|
|
112
72
|
.action(async (options) => {
|
|
113
73
|
if (options.coverage) {
|
|
114
74
|
const threshold = parseInt(options.coverageThreshold, 10);
|
|
115
|
-
await runPassesGate(options);
|
|
75
|
+
await cmd('runPassesGate')(options);
|
|
116
76
|
const projectPath = options.projectPath || process.cwd();
|
|
117
|
-
await checkCoverage(projectPath, threshold);
|
|
77
|
+
await cmd('checkCoverage')(projectPath, threshold);
|
|
118
78
|
} else {
|
|
119
|
-
await runPassesGate(options);
|
|
79
|
+
await cmd('runPassesGate')(options);
|
|
120
80
|
}
|
|
121
81
|
});
|
|
122
82
|
|
|
@@ -134,7 +94,7 @@ program
|
|
|
134
94
|
.option('--no-github-actions', '不创建 GitHub Actions')
|
|
135
95
|
.option('--print-snippets', '只输出代码片段,不创建文件')
|
|
136
96
|
.action(async (options) => {
|
|
137
|
-
await init(options);
|
|
97
|
+
await cmd('init')(options);
|
|
138
98
|
});
|
|
139
99
|
|
|
140
100
|
// ========================================
|
|
@@ -147,7 +107,7 @@ program
|
|
|
147
107
|
.option('-f, --format <format>', '输出格式 (json/markdown/html)', 'markdown')
|
|
148
108
|
.option('-p, --project-path <path>', '项目路径')
|
|
149
109
|
.action(async (options) => {
|
|
150
|
-
await report(options);
|
|
110
|
+
await cmd('report')(options);
|
|
151
111
|
});
|
|
152
112
|
|
|
153
113
|
// ========================================
|
|
@@ -161,7 +121,7 @@ program
|
|
|
161
121
|
.option('-a, --anomalies', '只显示异常', false)
|
|
162
122
|
.option('--hours <n>', '分析最近 N 小时', '24')
|
|
163
123
|
.action(async (options) => {
|
|
164
|
-
await status({
|
|
124
|
+
await cmd('status')({
|
|
165
125
|
projectPath: options.projectPath,
|
|
166
126
|
detail: options.detail,
|
|
167
127
|
anomalies: options.anomalies,
|
|
@@ -180,7 +140,7 @@ program
|
|
|
180
140
|
.option('--auto-apply', '自动应用低风险提案', false)
|
|
181
141
|
.option('--hours <n>', '分析最近 N 小时', '24')
|
|
182
142
|
.action(async (options) => {
|
|
183
|
-
await flow({
|
|
143
|
+
await cmd('flow')({
|
|
184
144
|
projectPath: options.projectPath,
|
|
185
145
|
from: options.from,
|
|
186
146
|
autoApply: options.autoApply,
|
|
@@ -201,10 +161,10 @@ program
|
|
|
201
161
|
.option('-v, --verbose', '详细输出', false)
|
|
202
162
|
.action(async (subcommand, options, command) => {
|
|
203
163
|
if (subcommand === 'list') {
|
|
204
|
-
listSpecTypes();
|
|
164
|
+
cmd('listSpecTypes')();
|
|
205
165
|
} else {
|
|
206
166
|
// 默认执行 validate
|
|
207
|
-
await specValidate({
|
|
167
|
+
await cmd('specValidate')({
|
|
208
168
|
schema: options.schema,
|
|
209
169
|
staged: options.staged,
|
|
210
170
|
file: options.file || (subcommand && !subcommand.startsWith('-') ? subcommand : undefined),
|
|
@@ -228,9 +188,9 @@ program
|
|
|
228
188
|
.option('--run-e2e', '运行 E2E 测试', false)
|
|
229
189
|
.action(async (subcommand, options, command) => {
|
|
230
190
|
if (subcommand === 'list') {
|
|
231
|
-
await listAcceptanceCriteria(options);
|
|
191
|
+
await cmd('listAcceptanceCriteria')(options);
|
|
232
192
|
} else {
|
|
233
|
-
await acceptance(options);
|
|
193
|
+
await cmd('acceptance')(options);
|
|
234
194
|
}
|
|
235
195
|
});
|
|
236
196
|
|
|
@@ -249,7 +209,7 @@ program
|
|
|
249
209
|
.option('--benchmark', '运行基准测试', false)
|
|
250
210
|
.option('--benchmark-timeout <n>', '基准测试超时(秒)', '60')
|
|
251
211
|
.action(async (options) => {
|
|
252
|
-
await performance({
|
|
212
|
+
await cmd('performance')({
|
|
253
213
|
projectPath: options.projectPath,
|
|
254
214
|
coverage: options.coverage,
|
|
255
215
|
coverageThreshold: parseInt(options.coverageThreshold, 10),
|
|
@@ -274,9 +234,9 @@ program
|
|
|
274
234
|
.option('--scan-command <cmd>', '自定义扫描命令')
|
|
275
235
|
.action(async (subcommand, options, command) => {
|
|
276
236
|
if (subcommand === 'audit') {
|
|
277
|
-
await auditDetails(options);
|
|
237
|
+
await cmd('auditDetails')(options);
|
|
278
238
|
} else {
|
|
279
|
-
await security(options);
|
|
239
|
+
await cmd('security')(options);
|
|
280
240
|
}
|
|
281
241
|
});
|
|
282
242
|
|
|
@@ -292,9 +252,9 @@ program
|
|
|
292
252
|
.option('--allow-breaking', '允许破坏性变更', false)
|
|
293
253
|
.action(async (subcommand, options, command) => {
|
|
294
254
|
if (subcommand === 'validate') {
|
|
295
|
-
await validateSchema(options);
|
|
255
|
+
await cmd('validateSchema')(options);
|
|
296
256
|
} else {
|
|
297
|
-
await contract(options);
|
|
257
|
+
await cmd('contract')(options);
|
|
298
258
|
}
|
|
299
259
|
});
|
|
300
260
|
|
|
@@ -311,9 +271,9 @@ program
|
|
|
311
271
|
.option('--allowed-reviewers <list>', '允许的审查者(逗号分隔)')
|
|
312
272
|
.action(async (subcommand, options, command) => {
|
|
313
273
|
if (subcommand === 'status') {
|
|
314
|
-
await reviewStatus(options);
|
|
274
|
+
await cmd('reviewStatus')(options);
|
|
315
275
|
} else {
|
|
316
|
-
await review({
|
|
276
|
+
await cmd('review')({
|
|
317
277
|
projectPath: options.projectPath,
|
|
318
278
|
minReviewers: parseInt(options.minReviewers, 10),
|
|
319
279
|
requireApproval: options.requireApproval,
|
|
@@ -334,8 +294,8 @@ program
|
|
|
334
294
|
.option('--list', '列出所有黑名单规则')
|
|
335
295
|
.option('--json', 'JSON 格式输出')
|
|
336
296
|
.option('--strict', '严格模式(warn 也阻止)')
|
|
337
|
-
.action(async (
|
|
338
|
-
await executeCommand(
|
|
297
|
+
.action(async (cmdArg, options) => {
|
|
298
|
+
await cmd('executeCommand')(cmdArg, options);
|
|
339
299
|
});
|
|
340
300
|
|
|
341
301
|
// ========================================
|
|
@@ -349,7 +309,7 @@ program
|
|
|
349
309
|
.option('--json', '输出 JSON 格式(供 LLM 消费)', false)
|
|
350
310
|
.option('--agents', '同步 AGENTS.md(agent 导读;PRESERVE 标记段重新生成时保留)', false)
|
|
351
311
|
.action(async (options) => {
|
|
352
|
-
const ok = await syncDocs(options);
|
|
312
|
+
const ok = await cmd('syncDocs')(options);
|
|
353
313
|
if (!ok && options.check) {
|
|
354
314
|
process.exit(1);
|
|
355
315
|
}
|
|
@@ -384,35 +344,35 @@ program
|
|
|
384
344
|
switch (subcommand) {
|
|
385
345
|
case 'list':
|
|
386
346
|
case 'ls':
|
|
387
|
-
await knowledgeList({ ...opts, type: options.type, maturity: options.maturity, tag: options.tag });
|
|
347
|
+
await cmd('knowledgeList')({ ...opts, type: options.type, maturity: options.maturity, tag: options.tag });
|
|
388
348
|
break;
|
|
389
349
|
case 'search':
|
|
390
350
|
case 's':
|
|
391
351
|
if (!arg) { console.error('请提供搜索关键词'); process.exit(1); }
|
|
392
|
-
await knowledgeSearch(arg, { ...opts, limit: parseInt(options.limit, 10) });
|
|
352
|
+
await cmd('knowledgeSearch')(arg, { ...opts, limit: parseInt(options.limit, 10) });
|
|
393
353
|
break;
|
|
394
354
|
case 'import':
|
|
395
355
|
case 'i':
|
|
396
|
-
await knowledgeImport({ ...opts, sources: options.sources, reset: options.reset });
|
|
356
|
+
await cmd('knowledgeImport')({ ...opts, sources: options.sources, reset: options.reset });
|
|
397
357
|
break;
|
|
398
358
|
case 'decay':
|
|
399
359
|
case 'd':
|
|
400
|
-
await knowledgeDecay(opts);
|
|
360
|
+
await cmd('knowledgeDecay')(opts);
|
|
401
361
|
break;
|
|
402
362
|
case 'stats':
|
|
403
363
|
case 'st':
|
|
404
|
-
await knowledgeStats(opts);
|
|
364
|
+
await cmd('knowledgeStats')(opts);
|
|
405
365
|
break;
|
|
406
366
|
case 'sync-rag':
|
|
407
|
-
await knowledgeSyncRag(opts);
|
|
367
|
+
await cmd('knowledgeSyncRag')(opts);
|
|
408
368
|
break;
|
|
409
369
|
case 'sync-status':
|
|
410
370
|
case 'sync':
|
|
411
|
-
await knowledgeSyncStatus(opts);
|
|
371
|
+
await cmd('knowledgeSyncStatus')(opts);
|
|
412
372
|
break;
|
|
413
373
|
case 'upsert':
|
|
414
374
|
case 'up':
|
|
415
|
-
await knowledgeUpsert({
|
|
375
|
+
await cmd('knowledgeUpsert')({
|
|
416
376
|
scope: options.scope || '',
|
|
417
377
|
title: options.title || '',
|
|
418
378
|
content: options.content || '',
|
|
@@ -423,7 +383,7 @@ program
|
|
|
423
383
|
break;
|
|
424
384
|
case 'audit':
|
|
425
385
|
case 'a':
|
|
426
|
-
await knowledgeAudit({
|
|
386
|
+
await cmd('knowledgeAudit')({
|
|
427
387
|
...opts,
|
|
428
388
|
fix: options.fix,
|
|
429
389
|
dryRun: options.dryRun,
|
|
@@ -432,18 +392,18 @@ program
|
|
|
432
392
|
});
|
|
433
393
|
break;
|
|
434
394
|
case 'snapshot':
|
|
435
|
-
knowledgeSnapshot({ ...opts, dir: options.dir });
|
|
395
|
+
cmd('knowledgeSnapshot')({ ...opts, dir: options.dir });
|
|
436
396
|
break;
|
|
437
397
|
case 'migrate':
|
|
438
|
-
knowledgeMigrate({ ...opts, dir: options.dir });
|
|
398
|
+
cmd('knowledgeMigrate')({ ...opts, dir: options.dir });
|
|
439
399
|
break;
|
|
440
400
|
case 'index':
|
|
441
401
|
case 'idx':
|
|
442
|
-
knowledgeIndex({ ...opts, dir: options.dir });
|
|
402
|
+
cmd('knowledgeIndex')({ ...opts, dir: options.dir });
|
|
443
403
|
break;
|
|
444
404
|
case 'health':
|
|
445
405
|
case 'h':
|
|
446
|
-
await knowledgeHealth({ ...opts, dir: options.dir });
|
|
406
|
+
await cmd('knowledgeHealth')({ ...opts, dir: options.dir });
|
|
447
407
|
break;
|
|
448
408
|
default:
|
|
449
409
|
// 无子命令时显示帮助
|
|
@@ -470,7 +430,7 @@ program
|
|
|
470
430
|
switch (subcommand) {
|
|
471
431
|
case 'index':
|
|
472
432
|
case 'idx':
|
|
473
|
-
sddIndex({ ...opts, dir: options.dir });
|
|
433
|
+
cmd('sddIndex')({ ...opts, dir: options.dir });
|
|
474
434
|
break;
|
|
475
435
|
default:
|
|
476
436
|
if (!subcommand) {
|
|
@@ -498,14 +458,14 @@ program
|
|
|
498
458
|
switch (subcommand) {
|
|
499
459
|
case 'list':
|
|
500
460
|
case 'ls':
|
|
501
|
-
await failureList({ ...opts, limit: parseInt(options.limit, 10), type: options.type, level: options.level });
|
|
461
|
+
await cmd('failureList')({ ...opts, limit: parseInt(options.limit, 10), type: options.type, level: options.level });
|
|
502
462
|
break;
|
|
503
463
|
case 'stats':
|
|
504
464
|
case 'st':
|
|
505
|
-
await failureStats(opts);
|
|
465
|
+
await cmd('failureStats')(opts);
|
|
506
466
|
break;
|
|
507
467
|
case 'clear':
|
|
508
|
-
await failureClear(opts);
|
|
468
|
+
await cmd('failureClear')(opts);
|
|
509
469
|
break;
|
|
510
470
|
default:
|
|
511
471
|
if (!subcommand) {
|
|
@@ -524,7 +484,7 @@ program
|
|
|
524
484
|
.command('posteval-plan <planPath>')
|
|
525
485
|
.description('验证 plan 文件的 checklist items 是否都有对应的 staged diff')
|
|
526
486
|
.action(async (planPath) => {
|
|
527
|
-
await postevalPlan({ planPath });
|
|
487
|
+
await cmd('postevalPlan')({ planPath });
|
|
528
488
|
});
|
|
529
489
|
|
|
530
490
|
// ========================================
|
|
@@ -537,7 +497,7 @@ program
|
|
|
537
497
|
.option('--json', 'JSON 格式输出', false)
|
|
538
498
|
.option('--dry-run', '只显示变化,不更新状态', false)
|
|
539
499
|
.action(async (options) => {
|
|
540
|
-
await updateUserModel({ json: options.json, dryRun: options.dryRun });
|
|
500
|
+
await cmd('updateUserModel')({ json: options.json, dryRun: options.dryRun });
|
|
541
501
|
});
|
|
542
502
|
|
|
543
503
|
// ========================================
|
|
@@ -549,7 +509,7 @@ program
|
|
|
549
509
|
.option('--bump <type>', '版本递增类型', 'patch')
|
|
550
510
|
.option('--dry-run <bool>', '仅模拟执行', 'false')
|
|
551
511
|
.action(async (options) => {
|
|
552
|
-
await release({ bumpType: options.bump, dryRun: options.dryRun });
|
|
512
|
+
await cmd('release')({ bumpType: options.bump, dryRun: options.dryRun });
|
|
553
513
|
});
|
|
554
514
|
|
|
555
515
|
// ========================================
|
|
@@ -562,7 +522,7 @@ program
|
|
|
562
522
|
.option('-d, --days <n>', '分析最近 N 天的会话', '7')
|
|
563
523
|
.option('--json', 'JSON 格式输出', false)
|
|
564
524
|
.action(async (options) => {
|
|
565
|
-
await analyzeSessions({
|
|
525
|
+
await cmd('analyzeSessions')({
|
|
566
526
|
days: parseInt(options.days, 10),
|
|
567
527
|
json: options.json,
|
|
568
528
|
});
|
|
@@ -576,7 +536,7 @@ program
|
|
|
576
536
|
.description('输出约束集合元数据(版本、hash、计数、文本大小)')
|
|
577
537
|
.option('--json', '输出 JSON 格式', false)
|
|
578
538
|
.action(async (options) => {
|
|
579
|
-
await constraints(options);
|
|
539
|
+
await cmd('constraints')(options);
|
|
580
540
|
});
|
|
581
541
|
|
|
582
542
|
// ========================================
|
|
@@ -589,7 +549,7 @@ program
|
|
|
589
549
|
.option('--format <format>', '输出格式 (table/json)', 'table')
|
|
590
550
|
.option('-p, --project-path <path>', '项目路径')
|
|
591
551
|
.action(async (docPath, options) => {
|
|
592
|
-
await docFreshnessCheck(docPath, {
|
|
552
|
+
await cmd('docFreshnessCheck')(docPath, {
|
|
593
553
|
changedFiles: options.changedFiles,
|
|
594
554
|
format: options.format,
|
|
595
555
|
projectPath: options.projectPath,
|
|
@@ -605,7 +565,7 @@ program
|
|
|
605
565
|
.option('-p, --project-path <path>', '项目路径')
|
|
606
566
|
.option('--json', '输出 JSON 格式', false)
|
|
607
567
|
.action(async (specPath, options) => {
|
|
608
|
-
await specBaselineCheck(specPath, {
|
|
568
|
+
await cmd('specBaselineCheck')(specPath, {
|
|
609
569
|
projectPath: options.projectPath,
|
|
610
570
|
json: options.json,
|
|
611
571
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-engine.d.ts","sourceRoot":"","sources":["../../src/architecture/constraint-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,GAAG,YAAY,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,gBAAgB,EAAE;IAEvC,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAcxD,SAAS;IAgBvB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,mBAAmB;IAiC3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,SAAS;CA+BlB;AAGD,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgB3F;
|
|
1
|
+
{"version":3,"file":"constraint-engine.d.ts","sourceRoot":"","sources":["../../src/architecture/constraint-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,GAAG,YAAY,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,gBAAgB,EAAE;IAEvC,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAcxD,SAAS;IAgBvB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,mBAAmB;IAiC3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,SAAS;CA+BlB;AAGD,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgB3F;AA4DD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAI7B"}
|
|
@@ -238,14 +238,11 @@ function parseSimpleYaml(content) {
|
|
|
238
238
|
const result = { rules: [] };
|
|
239
239
|
let currentRule = null;
|
|
240
240
|
let currentArray = null;
|
|
241
|
-
let indentLevel = 0;
|
|
242
241
|
for (const line of lines) {
|
|
243
242
|
const trimmed = line.trim();
|
|
244
243
|
// 跳过注释和空行
|
|
245
244
|
if (!trimmed || trimmed.startsWith('#'))
|
|
246
245
|
continue;
|
|
247
|
-
// 检测缩进级别
|
|
248
|
-
const leadingSpace = line.length - line.trimStart().length;
|
|
249
246
|
// 新规则开始
|
|
250
247
|
if (trimmed.startsWith('- id:')) {
|
|
251
248
|
if (currentRule && result.rules) {
|
|
@@ -253,7 +250,6 @@ function parseSimpleYaml(content) {
|
|
|
253
250
|
}
|
|
254
251
|
currentRule = { id: trimmed.replace('- id:', '').trim() };
|
|
255
252
|
currentArray = null;
|
|
256
|
-
indentLevel = leadingSpace;
|
|
257
253
|
}
|
|
258
254
|
// 规则属性
|
|
259
255
|
else if (currentRule && trimmed.includes(':')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-engine.js","sourceRoot":"","sources":["../../src/architecture/constraint-engine.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsQH,sDAgBC;
|
|
1
|
+
{"version":3,"file":"constraint-engine.js","sourceRoot":"","sources":["../../src/architecture/constraint-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-project-checker.d.ts","sourceRoot":"","sources":["../../src/architecture/cross-project-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"cross-project-checker.d.ts","sourceRoot":"","sources":["../../src/architecture/cross-project-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,cAAc,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,wBAAwB,CAAC;IAC1F,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACjD;AAgDD;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAclC;AAsHD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA4ClC"}
|
|
@@ -44,6 +44,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
44
44
|
exports.checkCrossProjectContracts = checkCrossProjectContracts;
|
|
45
45
|
exports.checkDocCodeConsistency = checkDocCodeConsistency;
|
|
46
46
|
const exec_1 = require("../utils/exec");
|
|
47
|
+
const file_walk_1 = require("../utils/file-walk");
|
|
47
48
|
const fs_1 = require("fs");
|
|
48
49
|
const path = __importStar(require("path"));
|
|
49
50
|
/**
|
|
@@ -137,7 +138,7 @@ async function checkApiSync(context, config) {
|
|
|
137
138
|
*/
|
|
138
139
|
async function checkTypeConsistency(context, config) {
|
|
139
140
|
const violations = [];
|
|
140
|
-
for (const [pair
|
|
141
|
+
for (const [pair] of Object.entries(config.contractLocations)) {
|
|
141
142
|
const [from, to] = pair.split('-');
|
|
142
143
|
if (!context.changedProjects.includes(from) && !context.changedProjects.includes(to)) {
|
|
143
144
|
continue;
|
|
@@ -271,27 +272,6 @@ function getDependents(project, config) {
|
|
|
271
272
|
.map(([name, _]) => name);
|
|
272
273
|
}
|
|
273
274
|
// ============ 辅助函数实现 ============
|
|
274
|
-
/**
|
|
275
|
-
* 递归查找目录中的 .ts 文件(排除 node_modules/__tests__/dist/.d.ts)
|
|
276
|
-
*/
|
|
277
|
-
function findTsFiles(dir) {
|
|
278
|
-
if (!(0, fs_1.existsSync)(dir))
|
|
279
|
-
return [];
|
|
280
|
-
const results = [];
|
|
281
|
-
const entries = (0, fs_1.readdirSync)(dir, { withFileTypes: true });
|
|
282
|
-
for (const entry of entries) {
|
|
283
|
-
const fullPath = path.join(dir, entry.name);
|
|
284
|
-
if (entry.isDirectory()) {
|
|
285
|
-
if (entry.name === 'node_modules' || entry.name === '__tests__' || entry.name === 'dist')
|
|
286
|
-
continue;
|
|
287
|
-
results.push(...findTsFiles(fullPath));
|
|
288
|
-
}
|
|
289
|
-
else if (entry.name.endsWith('.ts') && !entry.name.endsWith('.d.ts')) {
|
|
290
|
-
results.push(fullPath);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
return results;
|
|
294
|
-
}
|
|
295
275
|
function extractApiName(file) {
|
|
296
276
|
return path.basename(file, '.ts');
|
|
297
277
|
}
|
|
@@ -325,7 +305,7 @@ async function detectChangeType(file, baseBranch) {
|
|
|
325
305
|
function extractExportedTypes(project) {
|
|
326
306
|
const projectPath = resolveProjectPath(project);
|
|
327
307
|
const srcDir = path.join(projectPath, 'src');
|
|
328
|
-
const files =
|
|
308
|
+
const files = (0, file_walk_1.findTsSourceFiles)(srcDir);
|
|
329
309
|
const types = new Set();
|
|
330
310
|
for (const file of files) {
|
|
331
311
|
try {
|
|
@@ -345,7 +325,7 @@ function extractExportedTypes(project) {
|
|
|
345
325
|
function extractTypeUsage(project, types) {
|
|
346
326
|
const projectPath = resolveProjectPath(project);
|
|
347
327
|
const srcDir = path.join(projectPath, 'src');
|
|
348
|
-
const files =
|
|
328
|
+
const files = (0, file_walk_1.findTsSourceFiles)(srcDir);
|
|
349
329
|
const result = {};
|
|
350
330
|
for (const typeName of types) {
|
|
351
331
|
let importedIn = false;
|
|
@@ -417,7 +397,7 @@ function parseDocInterfaces(docPath) {
|
|
|
417
397
|
function extractExportedApis(project) {
|
|
418
398
|
const projectPath = resolveProjectPath(project);
|
|
419
399
|
const srcDir = path.join(projectPath, 'src');
|
|
420
|
-
const files =
|
|
400
|
+
const files = (0, file_walk_1.findTsSourceFiles)(srcDir);
|
|
421
401
|
const apis = [];
|
|
422
402
|
const seen = new Set();
|
|
423
403
|
for (const file of files) {
|