@dommaker/harness 1.9.0 → 1.11.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/CHANGELOG.md +17 -0
- package/README.md +9 -12
- package/dist/cli/commands/check.d.ts +3 -3
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +41 -78
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/constraints-report.d.ts +2 -10
- package/dist/cli/commands/constraints-report.d.ts.map +1 -1
- package/dist/cli/commands/constraints-report.js +4 -57
- package/dist/cli/commands/constraints-report.js.map +1 -1
- package/dist/cli/commands/constraints-retire.d.ts +9 -23
- package/dist/cli/commands/constraints-retire.d.ts.map +1 -1
- package/dist/cli/commands/constraints-retire.js +39 -121
- package/dist/cli/commands/constraints-retire.js.map +1 -1
- package/dist/cli/commands/constraints.d.ts +3 -8
- package/dist/cli/commands/constraints.d.ts.map +1 -1
- package/dist/cli/commands/constraints.js +8 -23
- package/dist/cli/commands/constraints.js.map +1 -1
- package/dist/cli/commands/definitions.d.ts.map +1 -1
- package/dist/cli/commands/definitions.js +7 -12
- package/dist/cli/commands/definitions.js.map +1 -1
- package/dist/cli/commands/init.d.ts +0 -32
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +7 -149
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +14 -17
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/scaffold-templates.d.ts +1 -3
- package/dist/cli/commands/scaffold-templates.d.ts.map +1 -1
- package/dist/cli/commands/scaffold-templates.js +2 -53
- package/dist/cli/commands/scaffold-templates.js.map +1 -1
- package/dist/cli/commands/scaffold.d.ts +0 -2
- package/dist/cli/commands/scaffold.d.ts.map +1 -1
- package/dist/cli/commands/scaffold.js +0 -10
- package/dist/cli/commands/scaffold.js.map +1 -1
- package/dist/cli/commands/status.js +10 -10
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/sync-docs/agents-syncer.d.ts +0 -2
- package/dist/cli/commands/sync-docs/agents-syncer.d.ts.map +1 -1
- package/dist/cli/commands/sync-docs/agents-syncer.js +4 -23
- package/dist/cli/commands/sync-docs/agents-syncer.js.map +1 -1
- package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
- package/dist/core/constraints/capabilities-parser.js +16 -4
- package/dist/core/constraints/capabilities-parser.js.map +1 -1
- package/dist/core/constraints/checker.d.ts +15 -24
- package/dist/core/constraints/checker.d.ts.map +1 -1
- package/dist/core/constraints/checker.js +33 -72
- package/dist/core/constraints/checker.js.map +1 -1
- package/dist/core/constraints/checkers/docs-freshness.js +1 -1
- package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
- package/dist/core/constraints/checkers/governance-presence.d.ts +2 -1
- package/dist/core/constraints/checkers/governance-presence.d.ts.map +1 -1
- package/dist/core/constraints/checkers/governance-presence.js +4 -3
- package/dist/core/constraints/checkers/governance-presence.js.map +1 -1
- package/dist/core/constraints/checkers/index.d.ts +1 -1
- package/dist/core/constraints/checkers/index.d.ts.map +1 -1
- package/dist/core/constraints/checkers/index.js +4 -8
- package/dist/core/constraints/checkers/index.js.map +1 -1
- package/dist/core/constraints/checkers/iron-flags.d.ts +3 -4
- package/dist/core/constraints/checkers/iron-flags.d.ts.map +1 -1
- package/dist/core/constraints/checkers/iron-flags.js +4 -5
- package/dist/core/constraints/checkers/iron-flags.js.map +1 -1
- package/dist/core/constraints/checkers/no-test-simplification.js +1 -1
- package/dist/core/constraints/checkers/no-test-simplification.js.map +1 -1
- package/dist/core/constraints/checkers/types.d.ts +1 -1
- package/dist/core/constraints/checkers/types.js +1 -1
- package/dist/core/constraints/definitions/guidelines.d.ts +4 -4
- package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
- package/dist/core/constraints/definitions/guidelines.js +9 -25
- package/dist/core/constraints/definitions/guidelines.js.map +1 -1
- package/dist/core/constraints/definitions/iron-laws.d.ts +4 -4
- package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -1
- package/dist/core/constraints/definitions/iron-laws.js +10 -81
- package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
- package/dist/core/constraints/definitions.d.ts +7 -9
- package/dist/core/constraints/definitions.d.ts.map +1 -1
- package/dist/core/constraints/definitions.js +13 -16
- package/dist/core/constraints/definitions.js.map +1 -1
- package/dist/core/constraints/index.d.ts +2 -5
- package/dist/core/constraints/index.d.ts.map +1 -1
- package/dist/core/constraints/index.js +3 -13
- package/dist/core/constraints/index.js.map +1 -1
- package/dist/core/constraints/injection-writer.d.ts +10 -38
- package/dist/core/constraints/injection-writer.d.ts.map +1 -1
- package/dist/core/constraints/injection-writer.js +17 -54
- package/dist/core/constraints/injection-writer.js.map +1 -1
- package/dist/core/constraints/run-env.d.ts +1 -10
- package/dist/core/constraints/run-env.d.ts.map +1 -1
- package/dist/core/constraints/run-env.js +1 -22
- package/dist/core/constraints/run-env.js.map +1 -1
- package/dist/core/constraints/usage-report.d.ts +6 -8
- package/dist/core/constraints/usage-report.d.ts.map +1 -1
- package/dist/core/constraints/usage-report.js +6 -11
- package/dist/core/constraints/usage-report.js.map +1 -1
- package/dist/core/effective-constraints.d.ts +12 -22
- package/dist/core/effective-constraints.d.ts.map +1 -1
- package/dist/core/effective-constraints.js +13 -30
- package/dist/core/effective-constraints.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -9
- package/dist/core/index.js.map +1 -1
- package/dist/core/project-config-loader.d.ts +4 -42
- package/dist/core/project-config-loader.d.ts.map +1 -1
- package/dist/core/project-config-loader.js +16 -125
- package/dist/core/project-config-loader.js.map +1 -1
- package/dist/core/validators/passes-gate.d.ts +2 -2
- package/dist/core/validators/passes-gate.js +6 -6
- package/dist/core/validators/passes-gate.js.map +1 -1
- package/dist/index.d.ts +9 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -18
- package/dist/index.js.map +1 -1
- package/dist/knowledge/lint.d.ts +17 -0
- package/dist/knowledge/lint.d.ts.map +1 -1
- package/dist/knowledge/lint.js +52 -0
- package/dist/knowledge/lint.js.map +1 -1
- package/dist/knowledge/store.d.ts +7 -0
- package/dist/knowledge/store.d.ts.map +1 -1
- package/dist/knowledge/store.js +48 -13
- package/dist/knowledge/store.js.map +1 -1
- package/dist/knowledge/types.d.ts +5 -1
- package/dist/knowledge/types.d.ts.map +1 -1
- package/dist/knowledge/types.js +5 -1
- package/dist/knowledge/types.js.map +1 -1
- package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
- package/dist/monitoring/trace-analyzer.js +11 -12
- package/dist/monitoring/trace-analyzer.js.map +1 -1
- package/dist/monitoring/traces.d.ts +4 -4
- package/dist/monitoring/traces.d.ts.map +1 -1
- package/dist/monitoring/traces.js +8 -8
- package/dist/monitoring/traces.js.map +1 -1
- package/dist/presets/standard.d.ts +8 -10
- package/dist/presets/standard.d.ts.map +1 -1
- package/dist/presets/standard.js +10 -16
- package/dist/presets/standard.js.map +1 -1
- package/dist/types/constraint.d.ts +24 -35
- package/dist/types/constraint.d.ts.map +1 -1
- package/dist/types/constraint.js +8 -7
- package/dist/types/constraint.js.map +1 -1
- package/dist/types/passes-gate.d.ts +5 -5
- package/dist/types/passes-gate.d.ts.map +1 -1
- package/dist/types/project-config.d.ts +8 -66
- package/dist/types/project-config.d.ts.map +1 -1
- package/dist/types/project-config.js +3 -2
- package/dist/types/project-config.js.map +1 -1
- package/dist/types/trace.d.ts +8 -10
- package/dist/types/trace.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/CONTEXT.md +2 -2
- package/src/__tests__/checker-extra.test.ts +37 -61
- package/src/__tests__/checker.test.ts +10 -115
- package/src/__tests__/effective-constraints.test.ts +18 -83
- package/src/__tests__/iron-laws.test.ts +71 -90
- package/src/__tests__/passes-gate-check.test.ts +2 -2
- package/src/__tests__/project-config-loader-extra.test.ts +22 -123
- package/src/__tests__/project-config-loader.test.ts +5 -33
- package/src/__tests__/public-exports.test.ts +8 -7
- package/src/__tests__/public-type-surface.test.ts +7 -5
- package/src/__tests__/public-value-surface.test.ts +1 -7
- package/src/__tests__/skip-semantics.test.ts +21 -37
- package/src/__tests__/trace-analyzer-extra.test.ts +14 -14
- package/src/__tests__/trace-analyzer.test.ts +21 -21
- package/src/__tests__/trace-collector.test.ts +22 -22
- package/src/__tests__/traces.test.ts +27 -28
- package/src/__tests__/usage-report-public-export.test.ts +21 -0
- package/src/cli/commands/CONTEXT.md +12 -12
- package/src/cli/commands/__tests__/check-read-count.test.ts +4 -15
- package/src/cli/commands/__tests__/check-skip-output.test.ts +14 -14
- package/src/cli/commands/__tests__/check.test.ts +14 -31
- package/src/cli/commands/__tests__/constraints-report-json-flag.test.ts +101 -0
- package/src/cli/commands/__tests__/constraints-report.test.ts +12 -80
- package/src/cli/commands/__tests__/constraints-retire.test.ts +42 -231
- package/src/cli/commands/__tests__/init-governance-io.test.ts +12 -58
- package/src/cli/commands/__tests__/init-ondisk.test.ts +13 -21
- package/src/cli/commands/__tests__/init.test.ts +1 -16
- package/src/cli/commands/__tests__/numeric-flag-assembly.test.ts +1 -1
- package/src/cli/commands/__tests__/passes-gate-dead-options.test.ts +1 -1
- package/src/cli/commands/__tests__/project-path-anchoring.test.ts +2 -2
- package/src/cli/commands/__tests__/registry.test.ts +1 -1
- package/src/cli/commands/__tests__/report-extra.test.ts +4 -4
- package/src/cli/commands/__tests__/report.test.ts +1 -1
- package/src/cli/commands/__tests__/scaffold.test.ts +4 -14
- package/src/cli/commands/__tests__/status-analysis-wiring.test.ts +3 -3
- package/src/cli/commands/__tests__/status-extra.test.ts +14 -14
- package/src/cli/commands/__tests__/status.test.ts +12 -12
- package/src/cli/commands/__tests__/sync-docs-agents.test.ts +1 -1
- package/src/cli/commands/check.ts +43 -82
- package/src/cli/commands/constraints-report.ts +4 -59
- package/src/cli/commands/constraints-retire.ts +49 -154
- package/src/cli/commands/constraints.ts +11 -26
- package/src/cli/commands/definitions.ts +7 -12
- package/src/cli/commands/init.ts +8 -179
- package/src/cli/commands/report.ts +19 -23
- package/src/cli/commands/scaffold-templates.ts +1 -53
- package/src/cli/commands/scaffold.ts +0 -11
- package/src/cli/commands/status.ts +10 -10
- package/src/cli/commands/sync-docs/agents-syncer.ts +4 -25
- package/src/core/CONTEXT.md +9 -9
- package/src/core/constraints/__tests__/capability-counts.test.ts +5 -5
- package/src/core/constraints/__tests__/collect-constraints.test.ts +13 -8
- package/src/core/constraints/__tests__/git-evidence.test.ts +4 -7
- package/src/core/constraints/__tests__/injection-writer.test.ts +8 -61
- package/src/core/constraints/__tests__/run-env.test.ts +5 -34
- package/src/core/constraints/__tests__/trace-injection.test.ts +1 -1
- package/src/core/constraints/capabilities-parser.ts +17 -5
- package/src/core/constraints/checker.ts +39 -88
- package/src/core/constraints/checkers/__tests__/check-outcome.test.ts +5 -8
- package/src/core/constraints/checkers/__tests__/governance-presence.test.ts +1 -53
- package/src/core/constraints/checkers/__tests__/iron-flags.test.ts +5 -25
- package/src/core/constraints/checkers/docs-freshness.ts +1 -1
- package/src/core/constraints/checkers/governance-presence.ts +4 -3
- package/src/core/constraints/checkers/index.ts +4 -10
- package/src/core/constraints/checkers/iron-flags.ts +3 -12
- package/src/core/constraints/checkers/no-test-simplification.ts +1 -1
- package/src/core/constraints/checkers/types.ts +1 -1
- package/src/core/constraints/definitions/guidelines.ts +8 -25
- package/src/core/constraints/definitions/iron-laws.ts +9 -82
- package/src/core/constraints/definitions.ts +14 -15
- package/src/core/constraints/index.ts +4 -19
- package/src/core/constraints/injection-writer.ts +16 -61
- package/src/core/constraints/run-env.ts +1 -33
- package/src/core/constraints/usage-report.ts +9 -16
- package/src/core/effective-constraints.ts +14 -45
- package/src/core/index.ts +3 -10
- package/src/core/project-config-loader.ts +20 -145
- package/src/core/validators/passes-gate.ts +6 -6
- package/src/failure/CONTEXT.md +1 -1
- package/src/hooks/__tests__/bootstrap.test.ts +3 -5
- package/src/index.ts +28 -18
- package/src/knowledge/CONTEXT.md +4 -3
- package/src/knowledge/__tests__/lint.test.ts +84 -0
- package/src/knowledge/__tests__/store.test.ts +70 -0
- package/src/knowledge/lint.ts +60 -1
- package/src/knowledge/store.ts +48 -11
- package/src/knowledge/types.ts +7 -1
- package/src/monitoring/CONTEXT.md +1 -1
- package/src/monitoring/__tests__/trace-file-anchoring.test.ts +1 -1
- package/src/monitoring/__tests__/traces.test.ts +22 -22
- package/src/monitoring/trace-analyzer.ts +12 -13
- package/src/monitoring/traces.ts +8 -8
- package/src/presets/__tests__/standard.test.ts +12 -16
- package/src/presets/standard.ts +14 -23
- package/src/types/__tests__/types.test.ts +3 -3
- package/src/types/constraint.ts +26 -40
- package/src/types/passes-gate.ts +5 -5
- package/src/types/project-config.ts +8 -77
- package/src/types/trace.ts +8 -11
- package/dist/cli/commands/posteval-plan.d.ts +0 -15
- package/dist/cli/commands/posteval-plan.d.ts.map +0 -1
- package/dist/cli/commands/posteval-plan.js +0 -86
- package/dist/cli/commands/posteval-plan.js.map +0 -1
- package/dist/core/constraints/agent-prompt-renderer.d.ts +0 -32
- package/dist/core/constraints/agent-prompt-renderer.d.ts.map +0 -1
- package/dist/core/constraints/agent-prompt-renderer.js +0 -55
- package/dist/core/constraints/agent-prompt-renderer.js.map +0 -1
- package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts +0 -6
- package/dist/core/constraints/checkers/no-bypass-checkpoint.d.ts.map +0 -1
- package/dist/core/constraints/checkers/no-bypass-checkpoint.js +0 -40
- package/dist/core/constraints/checkers/no-bypass-checkpoint.js.map +0 -1
- package/dist/core/constraints/definitions/prompts.d.ts +0 -12
- package/dist/core/constraints/definitions/prompts.d.ts.map +0 -1
- package/dist/core/constraints/definitions/prompts.js +0 -400
- package/dist/core/constraints/definitions/prompts.js.map +0 -1
- package/dist/core/constraints/injection-drift.d.ts +0 -61
- package/dist/core/constraints/injection-drift.d.ts.map +0 -1
- package/dist/core/constraints/injection-drift.js +0 -131
- package/dist/core/constraints/injection-drift.js.map +0 -1
- package/dist/core/constraints/injection-renderer.d.ts +0 -23
- package/dist/core/constraints/injection-renderer.d.ts.map +0 -1
- package/dist/core/constraints/injection-renderer.js +0 -44
- package/dist/core/constraints/injection-renderer.js.map +0 -1
- package/src/cli/commands/__tests__/check-drift.test.ts +0 -158
- package/src/cli/commands/__tests__/init-injection.test.ts +0 -466
- package/src/cli/commands/__tests__/posteval-plan.test.ts +0 -204
- package/src/cli/commands/posteval-plan.ts +0 -98
- package/src/core/constraints/__tests__/agent-prompt-renderer.test.ts +0 -129
- package/src/core/constraints/__tests__/injection-drift.test.ts +0 -247
- package/src/core/constraints/agent-prompt-renderer.ts +0 -67
- package/src/core/constraints/checkers/__tests__/no-bypass-checkpoint.test.ts +0 -76
- package/src/core/constraints/checkers/no-bypass-checkpoint.ts +0 -40
- package/src/core/constraints/definitions/prompts.ts +0 -414
- package/src/core/constraints/injection-drift.ts +0 -142
- package/src/core/constraints/injection-renderer.ts +0 -44
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-report.js","sourceRoot":"","sources":["../../../src/core/constraints/usage-report.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"usage-report.js","sourceRoot":"","sources":["../../../src/core/constraints/usage-report.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHH,0DAMC;AAOD,8CAEC;AAKD,4DAkBC;AAyBD,4DAoDC;AAKD,kEAqBC;AA5PD,uCAAyB;AACzB,2CAA6B;AAG7B,6CAAuD;AACvD,6CAA8C;AAC9C,oEAAwF;AAGxF;;;GAGG;AACU,QAAA,4BAA4B,GAAwB,IAAI,GAAG,CAAC;IACvE,oCAAoC;CACrC,CAAC,CAAC;AA2CH,+CAA+C;AAClC,QAAA,oBAAoB,GAAwC;IACvE,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,KAAK;CACtB,CAAC;AAcW,QAAA,2BAA2B,GAAuB;IAC7D,yBAAyB,EAAE,EAAE;IAC7B,iBAAiB,EAAE,GAAG;IACtB,qBAAqB,EAAE,EAAE;CAC1B,CAAC;AAsBF;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,WAAmB;IACzD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAA,iBAAS,EACzC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,0BAAkB,CAAC,EAC1C,MAAM,CACP,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CACtC,MAAwB;IAExB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0G,CAAC;IAC9H,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;YAAE,GAAG,CAAC,IAAI,EAAE,CAAC;aAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;YAAE,GAAG,CAAC,IAAI,EAAE,CAAC;aACpC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;YAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO;YAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;QACtF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC;IACrF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,EAAU,EAAE,QAAgC,EAAE,GAA+G;IAC5K,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACzD,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO;QACL,EAAE;QACF,QAAQ;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS;QACT,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CACtC,KAA6B,EAC7B,aAA0C,EAAE;IAE5C,MAAM,CAAC,GAAG,EAAE,GAAG,mCAA2B,EAAE,GAAG,UAAU,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,qBAAqB;aAC9B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,oCAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,iBAAiB,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,aAAa,MAAM,GAAG;aACjD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,qBAAqB,EAAE,CAAC;YAC/E,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,SAAS;aACrF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,yBAAyB,EAAE,CAAC;YAC/D,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,aAAa;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAgB,2BAA2B,CACzC,cAAsB,OAAO,CAAC,GAAG,EAAE,EACnC,aAA0C,EAAE;IAE5C,MAAM,SAAS,GAAG,IAAA,+CAAuB,EAAC,WAAW,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,0BAAkB,CAAC,CAAC;IAC7D,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAA,2CAAmB,EAAC,WAAW,CAAC,CAAC;IAE9C,OAAO;QACL,KAAK;QACL,UAAU;QACV,IAAI;QACJ,eAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACzC,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 生效约束集(ADR-0001)
|
|
2
|
+
* 生效约束集(ADR-0029,链路承自 ADR-0001)
|
|
3
3
|
*
|
|
4
4
|
* `getEffectiveConstraints(projectRoot)` 是全仓唯一的生效集来源:
|
|
5
|
-
* 内置 → preset → config.yml
|
|
6
|
-
*
|
|
7
|
-
* 不再直接读
|
|
5
|
+
* 内置 → preset → config.yml 禁用。
|
|
6
|
+
* `harness check`、外部消费者(studio 等)全部消费它,
|
|
7
|
+
* 不再直接读 CONSTRAINTS 全集。
|
|
8
8
|
*/
|
|
9
9
|
import type { Constraint } from '../types/constraint';
|
|
10
10
|
import type { MergedConstraintsConfig } from '../types/project-config';
|
|
11
11
|
import type { RunTarget } from './constraints/run-env';
|
|
12
12
|
/**
|
|
13
|
-
* 获取项目当前生效的约束集(check
|
|
13
|
+
* 获取项目当前生效的约束集(check 全量,带 kind/severity)
|
|
14
14
|
*
|
|
15
15
|
* 生效集链路同 getMergedConstraintsConfig:内置 → preset 裁剪 → config.yml
|
|
16
|
-
* `constraints.<id>.enabled:false`
|
|
17
|
-
* 追加(禁用/已退役的 custom 不追加)→ scenes 过滤
|
|
18
|
-
* (带 appliesTo 的 prompt 仅当 config.yml `scenes` 与其交集非空时保留,
|
|
19
|
-
* 缺省 scenes=[] 即场景专属 prompt 默认不进入生效集)。
|
|
16
|
+
* `constraints.<id>.enabled:false` 删除。
|
|
20
17
|
*
|
|
21
18
|
* @param target 项目根路径,或本 run 的运行级观察面(缺省 process.cwd())
|
|
22
19
|
* 传观察面 = config.yml 读取与本 run 其余消费方共用同一份(ADR-0023 决策 2)
|
|
@@ -29,15 +26,15 @@ export declare function getEffectiveConstraints(target?: RunTarget, options?: {
|
|
|
29
26
|
/**
|
|
30
27
|
* 从已算好的合并配置取出生效集清单(与 getEffectiveConstraints 同一形状)
|
|
31
28
|
*
|
|
32
|
-
* 给已经持有 `MergedConstraintsConfig` 的消费方复用(CLI check
|
|
33
|
-
*
|
|
29
|
+
* 给已经持有 `MergedConstraintsConfig` 的消费方复用(CLI check 复用这一份,
|
|
30
|
+
* 避免生效集链路在一次运行里算两遍,ADR-0023 步骤 4.5)。
|
|
34
31
|
*/
|
|
35
32
|
export declare function constraintsFromMerged(merged: MergedConstraintsConfig): Constraint[];
|
|
36
33
|
/**
|
|
37
|
-
*
|
|
34
|
+
* 获取项目当前生效的合并约束配置(唯一来源的完整形状)
|
|
38
35
|
*
|
|
39
36
|
* 与 getEffectiveConstraints 同一生效集链路,返回完整 MergedConstraintsConfig
|
|
40
|
-
* (含 disabled/
|
|
37
|
+
* (含 disabled/unknownIds),供 check 等需要诊断信息的消费方使用。
|
|
41
38
|
*
|
|
42
39
|
* options.preset(CLI --preset)仅在项目无自定义配置时覆盖 config.yml 的
|
|
43
40
|
* preset(工单 23 语义:项目自定义配置优先于 CLI 预设);不传 preset 时
|
|
@@ -53,21 +50,14 @@ export declare function getMergedConstraintsConfig(target?: RunTarget, options?:
|
|
|
53
50
|
*/
|
|
54
51
|
export interface EffectiveConfigLint {
|
|
55
52
|
/**
|
|
56
|
-
* config.yml `constraints.<id>`
|
|
53
|
+
* config.yml `constraints.<id>` 中非内置的未知 id
|
|
57
54
|
* (如禁用了已被本版移除的约束的残留配置)。生效集计算静默忽略,
|
|
58
55
|
* 在此列出供 report 提示。
|
|
59
56
|
*/
|
|
60
57
|
unknownIds: string[];
|
|
61
|
-
/** 项目配置的场景标签(config.yml `scenes`,缺省 []) */
|
|
62
|
-
scenes: string[];
|
|
63
|
-
/**
|
|
64
|
-
* 因 scenes 过滤而未进入生效集的场景专属 prompt id
|
|
65
|
-
* (已被 preset/config 禁用的不重复列出)
|
|
66
|
-
*/
|
|
67
|
-
sceneExcluded: string[];
|
|
68
58
|
}
|
|
69
59
|
/**
|
|
70
|
-
* 诊断项目约束配置:未知 id
|
|
60
|
+
* 诊断项目约束配置:未知 id 残留
|
|
71
61
|
*
|
|
72
62
|
* 不抛错、不修改任何文件,供 report / check 的诊断输出使用。
|
|
73
63
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effective-constraints.d.ts","sourceRoot":"","sources":["../../src/core/effective-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"effective-constraints.d.ts","sourceRoot":"","sources":["../../src/core/effective-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,GAAE,SAAyB,EACjC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,UAAU,EAAE,CAEd;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU,EAAE,CAEnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,GAAE,SAAyB,EACjC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,uBAAuB,CAOzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,GAAE,MAAsB,GAAG,mBAAmB,CAO5F"}
|
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* 生效约束集(ADR-0001)
|
|
3
|
+
* 生效约束集(ADR-0029,链路承自 ADR-0001)
|
|
4
4
|
*
|
|
5
5
|
* `getEffectiveConstraints(projectRoot)` 是全仓唯一的生效集来源:
|
|
6
|
-
* 内置 → preset → config.yml
|
|
7
|
-
*
|
|
8
|
-
* 不再直接读
|
|
6
|
+
* 内置 → preset → config.yml 禁用。
|
|
7
|
+
* `harness check`、外部消费者(studio 等)全部消费它,
|
|
8
|
+
* 不再直接读 CONSTRAINTS 全集。
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.getEffectiveConstraints = getEffectiveConstraints;
|
|
12
12
|
exports.constraintsFromMerged = constraintsFromMerged;
|
|
13
13
|
exports.getMergedConstraintsConfig = getMergedConstraintsConfig;
|
|
14
14
|
exports.lintEffectiveConfig = lintEffectiveConfig;
|
|
15
|
-
const definitions_1 = require("./constraints/definitions");
|
|
16
15
|
const project_config_loader_1 = require("./project-config-loader");
|
|
17
16
|
/**
|
|
18
|
-
* 获取项目当前生效的约束集(check
|
|
17
|
+
* 获取项目当前生效的约束集(check 全量,带 kind/severity)
|
|
19
18
|
*
|
|
20
19
|
* 生效集链路同 getMergedConstraintsConfig:内置 → preset 裁剪 → config.yml
|
|
21
|
-
* `constraints.<id>.enabled:false`
|
|
22
|
-
* 追加(禁用/已退役的 custom 不追加)→ scenes 过滤
|
|
23
|
-
* (带 appliesTo 的 prompt 仅当 config.yml `scenes` 与其交集非空时保留,
|
|
24
|
-
* 缺省 scenes=[] 即场景专属 prompt 默认不进入生效集)。
|
|
20
|
+
* `constraints.<id>.enabled:false` 删除。
|
|
25
21
|
*
|
|
26
22
|
* @param target 项目根路径,或本 run 的运行级观察面(缺省 process.cwd())
|
|
27
23
|
* 传观察面 = config.yml 读取与本 run 其余消费方共用同一份(ADR-0023 决策 2)
|
|
@@ -34,21 +30,17 @@ function getEffectiveConstraints(target = process.cwd(), options) {
|
|
|
34
30
|
/**
|
|
35
31
|
* 从已算好的合并配置取出生效集清单(与 getEffectiveConstraints 同一形状)
|
|
36
32
|
*
|
|
37
|
-
* 给已经持有 `MergedConstraintsConfig` 的消费方复用(CLI check
|
|
38
|
-
*
|
|
33
|
+
* 给已经持有 `MergedConstraintsConfig` 的消费方复用(CLI check 复用这一份,
|
|
34
|
+
* 避免生效集链路在一次运行里算两遍,ADR-0023 步骤 4.5)。
|
|
39
35
|
*/
|
|
40
36
|
function constraintsFromMerged(merged) {
|
|
41
|
-
return
|
|
42
|
-
...Object.values(merged.ironLaws),
|
|
43
|
-
...Object.values(merged.guidelines),
|
|
44
|
-
...Object.values(merged.prompts ?? {}),
|
|
45
|
-
];
|
|
37
|
+
return Object.values(merged.constraints);
|
|
46
38
|
}
|
|
47
39
|
/**
|
|
48
|
-
*
|
|
40
|
+
* 获取项目当前生效的合并约束配置(唯一来源的完整形状)
|
|
49
41
|
*
|
|
50
42
|
* 与 getEffectiveConstraints 同一生效集链路,返回完整 MergedConstraintsConfig
|
|
51
|
-
* (含 disabled/
|
|
43
|
+
* (含 disabled/unknownIds),供 check 等需要诊断信息的消费方使用。
|
|
52
44
|
*
|
|
53
45
|
* options.preset(CLI --preset)仅在项目无自定义配置时覆盖 config.yml 的
|
|
54
46
|
* preset(工单 23 语义:项目自定义配置优先于 CLI 预设);不传 preset 时
|
|
@@ -65,7 +57,7 @@ function getMergedConstraintsConfig(target = process.cwd(), options) {
|
|
|
65
57
|
return loader.mergeConstraints({ preset: options.preset });
|
|
66
58
|
}
|
|
67
59
|
/**
|
|
68
|
-
* 诊断项目约束配置:未知 id
|
|
60
|
+
* 诊断项目约束配置:未知 id 残留
|
|
69
61
|
*
|
|
70
62
|
* 不抛错、不修改任何文件,供 report / check 的诊断输出使用。
|
|
71
63
|
*
|
|
@@ -73,19 +65,10 @@ function getMergedConstraintsConfig(target = process.cwd(), options) {
|
|
|
73
65
|
*/
|
|
74
66
|
function lintEffectiveConfig(projectRoot = process.cwd()) {
|
|
75
67
|
const loader = new project_config_loader_1.ProjectConfigLoader(projectRoot);
|
|
76
|
-
|
|
68
|
+
loader.load();
|
|
77
69
|
const merged = loader.mergeConstraints();
|
|
78
|
-
const scenes = config.scenes ?? [];
|
|
79
|
-
const sceneExcluded = Object.values(definitions_1.PROMPTS)
|
|
80
|
-
.filter(c => c.appliesTo &&
|
|
81
|
-
c.appliesTo.length > 0 &&
|
|
82
|
-
!c.appliesTo.some(scene => scenes.includes(scene)) &&
|
|
83
|
-
!merged.disabled.includes(c.id))
|
|
84
|
-
.map(c => c.id);
|
|
85
70
|
return {
|
|
86
71
|
unknownIds: merged.unknownIds ?? [],
|
|
87
|
-
scenes,
|
|
88
|
-
sceneExcluded,
|
|
89
72
|
};
|
|
90
73
|
}
|
|
91
74
|
//# sourceMappingURL=effective-constraints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effective-constraints.js","sourceRoot":"","sources":["../../src/core/effective-constraints.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;
|
|
1
|
+
{"version":3,"file":"effective-constraints.js","sourceRoot":"","sources":["../../src/core/effective-constraints.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAkBH,0DAKC;AAQD,sDAEC;AAcD,gEAUC;AAqBD,kDAOC;AAjFD,mEAA8D;AAG9D;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CACrC,SAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAA6B;IAE7B,OAAO,qBAAqB,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,MAA+B;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,0BAA0B,CACxC,SAAoB,OAAO,CAAC,GAAG,EAAE,EACjC,OAA6B;IAE7B,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC;AAcD;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACrE,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACzC,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* checkConstraints 与包根统一为 options 对象签名(CheckConstraintsOptions),
|
|
5
5
|
* 不再暴露位置参数版。
|
|
6
6
|
*/
|
|
7
|
-
export {
|
|
8
|
-
export type { CheckConstraintsOptions, CheckCacheConfig, CheckSamplingConfig,
|
|
7
|
+
export { CONSTRAINTS, getAllConstraints, findConstraintsByTrigger, getConstraint, ConstraintChecker, checkConstraint, checkConstraints, checkBeforeExecution, constraintChecker, CheckCache, ConstraintViolationError, } from './constraints';
|
|
8
|
+
export type { CheckConstraintsOptions, CheckCacheConfig, CheckSamplingConfig, ConstraintId, ConstraintKind, ConstraintSeverity, ConstraintTrigger, Constraint, ConstraintResult, ConstraintContext, ConstraintCheckResult, IronLawContext, } from './constraints';
|
|
9
9
|
export { CheckpointValidator, PassesGate, createPassesGate, CSOValidator, } from './validators';
|
|
10
10
|
export type { CSOValidationResult, CSOIssue, Checkpoint, CheckpointCheck, CheckpointResult, CheckResult, CheckpointContext, CheckType, CheckConfig, PassesGateConfig, TaskTestResult, } from './validators';
|
|
11
11
|
export { SpecValidator } from './spec/validator';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,GACT,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAExF,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -6,12 +6,10 @@
|
|
|
6
6
|
* 不再暴露位置参数版。
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.lintEffectiveConfig = exports.getEffectiveConstraints = exports.getCapabilitiesMode = exports.resolveContextFiles = exports.getGovernanceConfig = exports.loadRawProjectConfig = exports.ProjectConfigLoader = exports.SpecValidator = exports.CSOValidator = exports.createPassesGate = exports.PassesGate = exports.CheckpointValidator = exports.ConstraintViolationError = exports.
|
|
10
|
-
//
|
|
9
|
+
exports.lintEffectiveConfig = exports.getEffectiveConstraints = exports.getCapabilitiesMode = exports.resolveContextFiles = exports.getGovernanceConfig = exports.loadRawProjectConfig = exports.ProjectConfigLoader = exports.SpecValidator = exports.CSOValidator = exports.createPassesGate = exports.PassesGate = exports.CheckpointValidator = exports.ConstraintViolationError = exports.CheckCache = exports.constraintChecker = exports.checkBeforeExecution = exports.checkConstraints = exports.checkConstraint = exports.ConstraintChecker = exports.getConstraint = exports.findConstraintsByTrigger = exports.getAllConstraints = exports.CONSTRAINTS = void 0;
|
|
10
|
+
// 约束系统(severity 显式模型,ADR-0029)
|
|
11
11
|
var constraints_1 = require("./constraints");
|
|
12
|
-
Object.defineProperty(exports, "
|
|
13
|
-
Object.defineProperty(exports, "GUIDELINES", { enumerable: true, get: function () { return constraints_1.GUIDELINES; } });
|
|
14
|
-
Object.defineProperty(exports, "PROMPTS", { enumerable: true, get: function () { return constraints_1.PROMPTS; } });
|
|
12
|
+
Object.defineProperty(exports, "CONSTRAINTS", { enumerable: true, get: function () { return constraints_1.CONSTRAINTS; } });
|
|
15
13
|
Object.defineProperty(exports, "getAllConstraints", { enumerable: true, get: function () { return constraints_1.getAllConstraints; } });
|
|
16
14
|
Object.defineProperty(exports, "findConstraintsByTrigger", { enumerable: true, get: function () { return constraints_1.findConstraintsByTrigger; } });
|
|
17
15
|
Object.defineProperty(exports, "getConstraint", { enumerable: true, get: function () { return constraints_1.getConstraint; } });
|
|
@@ -20,11 +18,7 @@ Object.defineProperty(exports, "checkConstraint", { enumerable: true, get: funct
|
|
|
20
18
|
Object.defineProperty(exports, "checkConstraints", { enumerable: true, get: function () { return constraints_1.checkConstraints; } });
|
|
21
19
|
Object.defineProperty(exports, "checkBeforeExecution", { enumerable: true, get: function () { return constraints_1.checkBeforeExecution; } });
|
|
22
20
|
Object.defineProperty(exports, "constraintChecker", { enumerable: true, get: function () { return constraints_1.constraintChecker; } });
|
|
23
|
-
Object.defineProperty(exports, "CONSTRAINTS_START_MARKER", { enumerable: true, get: function () { return constraints_1.CONSTRAINTS_START_MARKER; } });
|
|
24
|
-
Object.defineProperty(exports, "CONSTRAINTS_END_MARKER", { enumerable: true, get: function () { return constraints_1.CONSTRAINTS_END_MARKER; } });
|
|
25
|
-
Object.defineProperty(exports, "renderConstraintsSection", { enumerable: true, get: function () { return constraints_1.renderConstraintsSection; } });
|
|
26
21
|
Object.defineProperty(exports, "CheckCache", { enumerable: true, get: function () { return constraints_1.CheckCache; } });
|
|
27
|
-
Object.defineProperty(exports, "renderConstraintsByTrigger", { enumerable: true, get: function () { return constraints_1.renderConstraintsByTrigger; } });
|
|
28
22
|
Object.defineProperty(exports, "ConstraintViolationError", { enumerable: true, get: function () { return constraints_1.ConstraintViolationError; } });
|
|
29
23
|
// 验证器(检查点 / PassesGate / CSO)
|
|
30
24
|
var validators_1 = require("./validators");
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,+BAA+B;AAC/B,6CAYuB;AAXrB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AACjB,uHAAA,wBAAwB,OAAA;AACxB,4GAAA,aAAa,OAAA;AACb,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,mHAAA,oBAAoB,OAAA;AACpB,gHAAA,iBAAiB,OAAA;AACjB,yGAAA,UAAU,OAAA;AACV,uHAAA,wBAAwB,OAAA;AAiB1B,8BAA8B;AAC9B,2CAKsB;AAJpB,iHAAA,mBAAmB,OAAA;AACnB,wGAAA,UAAU,OAAA;AACV,8GAAA,gBAAgB,OAAA;AAChB,0GAAA,YAAY,OAAA;AAgBd,WAAW;AACX,8CAAiD;AAAxC,0GAAA,aAAa,OAAA;AAStB,0CAA0C;AAC1C,iEAMiC;AAL/B,4HAAA,mBAAmB,OAAA;AACnB,6HAAA,oBAAoB,OAAA;AACpB,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AACnB,4HAAA,mBAAmB,OAAA;AAMrB,0BAA0B;AAC1B,iEAGiC;AAF/B,gIAAA,uBAAuB,OAAA;AACvB,4HAAA,mBAAmB,OAAA"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 本模块不碰文件系统:两份配置的读取口径 = 运行级观察面(`constraints/run-env.ts`,
|
|
6
6
|
* ADR-0023 决策 2),一次运行内各至多读一次。
|
|
7
7
|
*/
|
|
8
|
-
import type { ProjectConfig,
|
|
8
|
+
import type { ProjectConfig, MergedConstraintsConfig, CapabilitiesConfig, GovernanceConfig } from '../types/project-config';
|
|
9
9
|
import { type RunTarget } from './constraints/run-env';
|
|
10
10
|
/**
|
|
11
11
|
* 读取并解析 `.harness/config.yml`
|
|
@@ -59,21 +59,6 @@ export declare function resolveContextFiles(target: RunTarget): ContextFilesReso
|
|
|
59
59
|
* 配置缺失/解析失败/取值非法时一律回落 'file'。
|
|
60
60
|
*/
|
|
61
61
|
export declare function getCapabilitiesMode(target: RunTarget): CapabilitiesMode;
|
|
62
|
-
/**
|
|
63
|
-
* 退役判定单点(studio#82 D6 一处真相)
|
|
64
|
-
*
|
|
65
|
-
* 两个落点合成一条规则:禁用(config.yml `constraints.<id>.enabled: false`,内置约束的
|
|
66
|
-
* 退役落点)或 custom 条目自带 `retired` 元数据(custom 约束的退役落点,不拆 config.yml
|
|
67
|
-
* 第二处)。`mergeConstraints` 的 custom 追加跳过与 `harness constraints retire` 的
|
|
68
|
-
* already_retired 检查共用本函数——后者此前是这条规则的手写复印(harness#137 收口)。
|
|
69
|
-
*
|
|
70
|
-
* `disabled` 由调用方给:mergeConstraints 传的是含 preset 裁剪的完整禁用集,
|
|
71
|
-
* retire 传的是 config.yml 单点(退役落点只有这一处,preset 语义不掺进退役判定)。
|
|
72
|
-
* `retired` 按 truthiness 判,与 mergeConstraints 历史口径逐字一致。
|
|
73
|
-
*/
|
|
74
|
-
export declare function isConstraintRetired(customDef: {
|
|
75
|
-
retired?: unknown;
|
|
76
|
-
} | undefined, disabled: boolean): boolean;
|
|
77
62
|
/**
|
|
78
63
|
* 项目配置加载器
|
|
79
64
|
*/
|
|
@@ -81,30 +66,19 @@ export declare class ProjectConfigLoader {
|
|
|
81
66
|
private env;
|
|
82
67
|
private projectPath;
|
|
83
68
|
private config;
|
|
84
|
-
private customConstraints;
|
|
85
69
|
/**
|
|
86
70
|
* @param target 项目根路径,或本 run 已构造的运行级观察面(ADR-0023 决策 2)
|
|
87
71
|
* 传观察面时 config.yml 与本 run 其余消费方共用同一份读取;传路径 = 自造一枚一次性观察面
|
|
88
72
|
*/
|
|
89
73
|
constructor(target?: RunTarget);
|
|
90
74
|
/**
|
|
91
|
-
*
|
|
75
|
+
* 加载项目配置(run 内 memo 在观察面上,同一份解析结果供全部消费方共用)
|
|
92
76
|
*/
|
|
93
77
|
load(): ProjectConfig;
|
|
94
78
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* 文件读取经观察面(ADR-0023 决策 2):同一次运行内多个加载器共用同一份内容,
|
|
98
|
-
* 「哪个文件名算数」与合并顺序仍由本函数决定(方式 1 文件 → 方式 2 主配置内联,后者覆盖)。
|
|
99
|
-
*/
|
|
100
|
-
private loadCustomConstraints;
|
|
101
|
-
/**
|
|
102
|
-
* 合并内置约束和自定义约束(ADR-0001 生效集完整链路)
|
|
79
|
+
* 合并内置约束(生效集完整链路,ADR-0029)
|
|
103
80
|
*
|
|
104
|
-
* 合并顺序:内置 → preset 裁剪 → config.yml `constraints.<id>.enabled:false`
|
|
105
|
-
* 删除(对内置与 custom 同效)→ custom-constraints 追加
|
|
106
|
-
* (禁用/已退役的 custom 不追加)→ scenes 过滤
|
|
107
|
-
* (带 appliesTo 的 prompt 仅当 scenes 交集非空时保留)。
|
|
81
|
+
* 合并顺序:内置 → preset 裁剪 → config.yml `constraints.<id>.enabled:false` 删除。
|
|
108
82
|
*
|
|
109
83
|
* config.yml 中未知约束 id(如已移除约束的禁用残留)静默忽略,
|
|
110
84
|
* 记录在结果 unknownIds 中供诊断。
|
|
@@ -115,22 +89,10 @@ export declare class ProjectConfigLoader {
|
|
|
115
89
|
mergeConstraints(options?: {
|
|
116
90
|
preset?: string;
|
|
117
91
|
}): MergedConstraintsConfig;
|
|
118
|
-
/**
|
|
119
|
-
* 将自定义约束定义转换为 Constraint
|
|
120
|
-
*
|
|
121
|
-
* kind 推导(ADR-0001):自定义约束没有注册表中的 checker,统一归为
|
|
122
|
-
* kind='prompt'(不执行 checker,check() 短路通过),level 仅决定其所在
|
|
123
|
-
* 桶与严重性行为,保持与历史"未注册默认通过"相同的执行语义。
|
|
124
|
-
*/
|
|
125
|
-
private toConstraint;
|
|
126
92
|
/**
|
|
127
93
|
* 获取当前配置
|
|
128
94
|
*/
|
|
129
95
|
getConfig(): ProjectConfig;
|
|
130
|
-
/**
|
|
131
|
-
* 获取自定义约束
|
|
132
|
-
*/
|
|
133
|
-
getCustomConstraints(): Record<string, CustomConstraintDefinition>;
|
|
134
96
|
/**
|
|
135
97
|
* 检查是否有自定义配置
|
|
136
98
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config-loader.d.ts","sourceRoot":"","sources":["../../src/core/project-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"project-config-loader.d.ts","sourceRoot":"","sources":["../../src/core/project-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASnF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE3F;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS,CASnF;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,GACzB;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,GAC1B;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAIvE;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAE9B;;;OAGG;gBACS,MAAM,CAAC,EAAE,SAAS;IAM9B;;OAEG;IACH,IAAI,IAAI,aAAa;IAQrB;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,uBAAuB;IAyDxE;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,eAAe,IAAI,OAAO;CAG3B"}
|
|
@@ -12,7 +12,6 @@ exports.loadRawProjectConfig = loadRawProjectConfig;
|
|
|
12
12
|
exports.getGovernanceConfig = getGovernanceConfig;
|
|
13
13
|
exports.resolveContextFiles = resolveContextFiles;
|
|
14
14
|
exports.getCapabilitiesMode = getCapabilitiesMode;
|
|
15
|
-
exports.isConstraintRetired = isConstraintRetired;
|
|
16
15
|
const definitions_1 = require("./constraints/definitions");
|
|
17
16
|
const presets_1 = require("../presets");
|
|
18
17
|
const effective_set_1 = require("./effective-set");
|
|
@@ -22,7 +21,6 @@ const run_env_1 = require("./constraints/run-env");
|
|
|
22
21
|
*/
|
|
23
22
|
const DEFAULT_CONFIG = {
|
|
24
23
|
preset: 'standard',
|
|
25
|
-
custom_constraints_file: 'custom-constraints.yml',
|
|
26
24
|
};
|
|
27
25
|
/**
|
|
28
26
|
* 读取并解析 `.harness/config.yml`
|
|
@@ -84,21 +82,6 @@ function getCapabilitiesMode(target) {
|
|
|
84
82
|
return mode;
|
|
85
83
|
return 'file';
|
|
86
84
|
}
|
|
87
|
-
/**
|
|
88
|
-
* 退役判定单点(studio#82 D6 一处真相)
|
|
89
|
-
*
|
|
90
|
-
* 两个落点合成一条规则:禁用(config.yml `constraints.<id>.enabled: false`,内置约束的
|
|
91
|
-
* 退役落点)或 custom 条目自带 `retired` 元数据(custom 约束的退役落点,不拆 config.yml
|
|
92
|
-
* 第二处)。`mergeConstraints` 的 custom 追加跳过与 `harness constraints retire` 的
|
|
93
|
-
* already_retired 检查共用本函数——后者此前是这条规则的手写复印(harness#137 收口)。
|
|
94
|
-
*
|
|
95
|
-
* `disabled` 由调用方给:mergeConstraints 传的是含 preset 裁剪的完整禁用集,
|
|
96
|
-
* retire 传的是 config.yml 单点(退役落点只有这一处,preset 语义不掺进退役判定)。
|
|
97
|
-
* `retired` 按 truthiness 判,与 mergeConstraints 历史口径逐字一致。
|
|
98
|
-
*/
|
|
99
|
-
function isConstraintRetired(customDef, disabled) {
|
|
100
|
-
return disabled || Boolean(customDef?.retired);
|
|
101
|
-
}
|
|
102
85
|
/**
|
|
103
86
|
* 项目配置加载器
|
|
104
87
|
*/
|
|
@@ -106,7 +89,6 @@ class ProjectConfigLoader {
|
|
|
106
89
|
env;
|
|
107
90
|
projectPath;
|
|
108
91
|
config;
|
|
109
|
-
customConstraints;
|
|
110
92
|
/**
|
|
111
93
|
* @param target 项目根路径,或本 run 已构造的运行级观察面(ADR-0023 决策 2)
|
|
112
94
|
* 传观察面时 config.yml 与本 run 其余消费方共用同一份读取;传路径 = 自造一枚一次性观察面
|
|
@@ -115,45 +97,21 @@ class ProjectConfigLoader {
|
|
|
115
97
|
this.env = (0, run_env_1.resolveRunEnv)(target);
|
|
116
98
|
this.projectPath = this.env.projectPath;
|
|
117
99
|
this.config = { ...DEFAULT_CONFIG };
|
|
118
|
-
this.customConstraints = {};
|
|
119
100
|
}
|
|
120
101
|
/**
|
|
121
|
-
*
|
|
102
|
+
* 加载项目配置(run 内 memo 在观察面上,同一份解析结果供全部消费方共用)
|
|
122
103
|
*/
|
|
123
104
|
load() {
|
|
124
|
-
// 1. 加载主配置(run 内 memo 在观察面上,同一份解析结果供全部消费方共用)
|
|
125
105
|
const raw = this.env.rawConfig();
|
|
126
106
|
if (raw) {
|
|
127
107
|
this.config = { ...DEFAULT_CONFIG, ...raw };
|
|
128
108
|
}
|
|
129
|
-
// 2. 加载自定义约束
|
|
130
|
-
this.loadCustomConstraints();
|
|
131
109
|
return this.config;
|
|
132
110
|
}
|
|
133
111
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* 文件读取经观察面(ADR-0023 决策 2):同一次运行内多个加载器共用同一份内容,
|
|
137
|
-
* 「哪个文件名算数」与合并顺序仍由本函数决定(方式 1 文件 → 方式 2 主配置内联,后者覆盖)。
|
|
138
|
-
*/
|
|
139
|
-
loadCustomConstraints() {
|
|
140
|
-
// 方式 1:从单独文件加载
|
|
141
|
-
if (this.config.custom_constraints_file) {
|
|
142
|
-
const defs = this.env.customConstraints(this.config.custom_constraints_file);
|
|
143
|
-
this.customConstraints = { ...this.customConstraints, ...defs };
|
|
144
|
-
}
|
|
145
|
-
// 方式 2:从主配置文件中加载
|
|
146
|
-
if (this.config.custom_constraints) {
|
|
147
|
-
this.customConstraints = { ...this.customConstraints, ...this.config.custom_constraints };
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* 合并内置约束和自定义约束(ADR-0001 生效集完整链路)
|
|
112
|
+
* 合并内置约束(生效集完整链路,ADR-0029)
|
|
152
113
|
*
|
|
153
|
-
* 合并顺序:内置 → preset 裁剪 → config.yml `constraints.<id>.enabled:false`
|
|
154
|
-
* 删除(对内置与 custom 同效)→ custom-constraints 追加
|
|
155
|
-
* (禁用/已退役的 custom 不追加)→ scenes 过滤
|
|
156
|
-
* (带 appliesTo 的 prompt 仅当 scenes 交集非空时保留)。
|
|
114
|
+
* 合并顺序:内置 → preset 裁剪 → config.yml `constraints.<id>.enabled:false` 删除。
|
|
157
115
|
*
|
|
158
116
|
* config.yml 中未知约束 id(如已移除约束的禁用残留)静默忽略,
|
|
159
117
|
* 记录在结果 unknownIds 中供诊断。
|
|
@@ -169,6 +127,8 @@ class ProjectConfigLoader {
|
|
|
169
127
|
console.error(`[harness] 未知预设 "${presetName}",已回落 standard`);
|
|
170
128
|
preset = presets_1.STANDARD_PRESET;
|
|
171
129
|
}
|
|
130
|
+
// preset 按 severity 分键;展开为「id → 是否启用」的单桶视图
|
|
131
|
+
const bySeverity = (severity) => Object.fromEntries(Object.entries(definitions_1.CONSTRAINTS).filter(([, c]) => c.severity === severity));
|
|
172
132
|
const pick = (source, ids) => {
|
|
173
133
|
if (ids === null)
|
|
174
134
|
return { ...source };
|
|
@@ -180,112 +140,43 @@ class ProjectConfigLoader {
|
|
|
180
140
|
return filtered;
|
|
181
141
|
};
|
|
182
142
|
const presetDisabled = (source, ids) => (ids === null ? [] : Object.keys(source).filter(id => !ids.includes(id)));
|
|
143
|
+
const errorConstraints = bySeverity('error');
|
|
144
|
+
const warningConstraints = bySeverity('warning');
|
|
183
145
|
const unknownIds = [];
|
|
184
146
|
const result = {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
147
|
+
constraints: {
|
|
148
|
+
...pick(errorConstraints, preset.errors),
|
|
149
|
+
...pick(warningConstraints, preset.warnings),
|
|
150
|
+
},
|
|
188
151
|
disabled: [
|
|
189
|
-
...presetDisabled(
|
|
190
|
-
...presetDisabled(
|
|
191
|
-
...presetDisabled(definitions_1.PROMPTS, preset.prompts),
|
|
152
|
+
...presetDisabled(errorConstraints, preset.errors),
|
|
153
|
+
...presetDisabled(warningConstraints, preset.warnings),
|
|
192
154
|
],
|
|
193
|
-
custom: [],
|
|
194
155
|
unknownIds,
|
|
195
156
|
};
|
|
196
157
|
// 1. 处理启用/禁用配置(未知 id 静默忽略,记录供诊断)
|
|
197
158
|
if (this.config.constraints) {
|
|
198
|
-
const knownIds = new Set(
|
|
199
|
-
...Object.keys(definitions_1.IRON_LAWS),
|
|
200
|
-
...Object.keys(definitions_1.GUIDELINES),
|
|
201
|
-
...Object.keys(definitions_1.PROMPTS),
|
|
202
|
-
...Object.keys(this.customConstraints),
|
|
203
|
-
]);
|
|
159
|
+
const knownIds = new Set(Object.keys(definitions_1.CONSTRAINTS));
|
|
204
160
|
const filtered = (0, effective_set_1.filterEnabledEntries)(knownIds, this.config.constraints);
|
|
205
161
|
unknownIds.push(...filtered.unknownIds);
|
|
206
162
|
for (const constraintId of filtered.disabledIds) {
|
|
207
163
|
result.disabled.push(constraintId);
|
|
208
|
-
|
|
209
|
-
delete result.ironLaws[constraintId];
|
|
210
|
-
delete result.guidelines[constraintId];
|
|
211
|
-
delete result.prompts[constraintId];
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
// 2. 添加自定义约束(config.yml 禁用的 id 不追加:step 1 已将其
|
|
215
|
-
// 收集进 disabled,custom 在 step 1 时尚未入桶,须在此兜底跳过;
|
|
216
|
-
// 条目带 retired 元数据的同样不追加——studio#82 D6 退役落点在条目自身)
|
|
217
|
-
for (const [id, customDef] of Object.entries(this.customConstraints)) {
|
|
218
|
-
if (isConstraintRetired(customDef, result.disabled.includes(id))) {
|
|
219
|
-
continue;
|
|
220
|
-
}
|
|
221
|
-
const constraint = this.toConstraint(customDef, id);
|
|
222
|
-
result.custom.push(id);
|
|
223
|
-
const level = customDef.level || 'guideline';
|
|
224
|
-
switch (level) {
|
|
225
|
-
case 'iron_law':
|
|
226
|
-
result.ironLaws[id] = constraint;
|
|
227
|
-
break;
|
|
228
|
-
case 'guideline':
|
|
229
|
-
result.guidelines[id] = constraint;
|
|
230
|
-
break;
|
|
231
|
-
case 'prompt':
|
|
232
|
-
result.prompts[id] = constraint;
|
|
233
|
-
break;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
// 3. scenes 过滤(ADR-0001):带 appliesTo 标签的 prompt 仅当项目 scenes
|
|
237
|
-
// 与其交集非空时保留;无 appliesTo 的条目不受影响。缺省 scenes=[] 即
|
|
238
|
-
// 场景专属 prompt 默认不进入生效集。
|
|
239
|
-
const scenes = this.config.scenes ?? [];
|
|
240
|
-
for (const [id, constraint] of Object.entries(result.prompts)) {
|
|
241
|
-
if (constraint.appliesTo &&
|
|
242
|
-
constraint.appliesTo.length > 0 &&
|
|
243
|
-
!constraint.appliesTo.some(scene => scenes.includes(scene))) {
|
|
244
|
-
delete result.prompts[id];
|
|
164
|
+
delete result.constraints[constraintId];
|
|
245
165
|
}
|
|
246
166
|
}
|
|
247
167
|
return result;
|
|
248
168
|
}
|
|
249
|
-
/**
|
|
250
|
-
* 将自定义约束定义转换为 Constraint
|
|
251
|
-
*
|
|
252
|
-
* kind 推导(ADR-0001):自定义约束没有注册表中的 checker,统一归为
|
|
253
|
-
* kind='prompt'(不执行 checker,check() 短路通过),level 仅决定其所在
|
|
254
|
-
* 桶与严重性行为,保持与历史"未注册默认通过"相同的执行语义。
|
|
255
|
-
*/
|
|
256
|
-
toConstraint(def, defaultId) {
|
|
257
|
-
const level = def.level || 'guideline';
|
|
258
|
-
return {
|
|
259
|
-
id: def.id || defaultId,
|
|
260
|
-
kind: 'prompt',
|
|
261
|
-
level,
|
|
262
|
-
rule: def.rule || '',
|
|
263
|
-
message: def.message || '',
|
|
264
|
-
trigger: (def.trigger || 'manual'),
|
|
265
|
-
description: def.description,
|
|
266
|
-
promptInjection: def.promptInjection,
|
|
267
|
-
enabled: def.enabled !== false,
|
|
268
|
-
enforcement: 'custom',
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
169
|
/**
|
|
272
170
|
* 获取当前配置
|
|
273
171
|
*/
|
|
274
172
|
getConfig() {
|
|
275
173
|
return this.config;
|
|
276
174
|
}
|
|
277
|
-
/**
|
|
278
|
-
* 获取自定义约束
|
|
279
|
-
*/
|
|
280
|
-
getCustomConstraints() {
|
|
281
|
-
return this.customConstraints;
|
|
282
|
-
}
|
|
283
175
|
/**
|
|
284
176
|
* 检查是否有自定义配置
|
|
285
177
|
*/
|
|
286
178
|
hasCustomConfig() {
|
|
287
|
-
return
|
|
288
|
-
(this.config.constraints !== undefined && Object.keys(this.config.constraints).length > 0));
|
|
179
|
+
return this.config.constraints !== undefined && Object.keys(this.config.constraints).length > 0;
|
|
289
180
|
}
|
|
290
181
|
}
|
|
291
182
|
exports.ProjectConfigLoader = ProjectConfigLoader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config-loader.js","sourceRoot":"","sources":["../../src/core/project-config-loader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"project-config-loader.js","sourceRoot":"","sources":["../../src/core/project-config-loader.ts"],"names":[],"mappings":"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"}
|