@dommaker/harness 1.4.0 → 1.6.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 +23 -0
- package/README.md +0 -2
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +28 -0
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/definitions.d.ts.map +1 -1
- package/dist/cli/commands/definitions.js +1 -39
- package/dist/cli/commands/definitions.js.map +1 -1
- package/dist/cli/commands/knowledge.d.ts +0 -19
- package/dist/cli/commands/knowledge.d.ts.map +1 -1
- package/dist/cli/commands/knowledge.js +0 -105
- package/dist/cli/commands/knowledge.js.map +1 -1
- package/dist/cli/commands/passes-gate.d.ts +0 -2
- package/dist/cli/commands/passes-gate.d.ts.map +1 -1
- package/dist/cli/commands/passes-gate.js +0 -1
- package/dist/cli/commands/passes-gate.js.map +1 -1
- package/dist/cli/commands/performance.d.ts +0 -4
- package/dist/cli/commands/performance.d.ts.map +1 -1
- package/dist/cli/commands/performance.js +10 -20
- package/dist/cli/commands/performance.js.map +1 -1
- package/dist/cli/commands/report.d.ts +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +2 -55
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +4 -8
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/context/index.d.ts +2 -5
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +2 -8
- package/dist/context/index.js.map +1 -1
- package/dist/context/token-budget.d.ts +0 -29
- package/dist/context/token-budget.d.ts.map +1 -1
- package/dist/context/token-budget.js +1 -65
- package/dist/context/token-budget.js.map +1 -1
- package/dist/context/types.d.ts +0 -1
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +0 -9
- package/dist/context/types.js.map +1 -1
- package/dist/core/constraints/checker.d.ts +14 -0
- package/dist/core/constraints/checker.d.ts.map +1 -1
- package/dist/core/constraints/checker.js +27 -5
- package/dist/core/constraints/checker.js.map +1 -1
- package/dist/core/constraints/checkers/capability-sync.d.ts +17 -6
- package/dist/core/constraints/checkers/capability-sync.d.ts.map +1 -1
- package/dist/core/constraints/checkers/capability-sync.js +48 -19
- package/dist/core/constraints/checkers/capability-sync.js.map +1 -1
- package/dist/core/constraints/checkers/docs-freshness.d.ts.map +1 -1
- package/dist/core/constraints/checkers/docs-freshness.js +15 -6
- package/dist/core/constraints/checkers/docs-freshness.js.map +1 -1
- package/dist/core/constraints/checkers/index.d.ts +2 -2
- package/dist/core/constraints/checkers/index.d.ts.map +1 -1
- package/dist/core/constraints/checkers/index.js +2 -1
- package/dist/core/constraints/checkers/index.js.map +1 -1
- package/dist/core/constraints/checkers/types.d.ts +41 -2
- package/dist/core/constraints/checkers/types.d.ts.map +1 -1
- package/dist/core/constraints/checkers/types.js +33 -0
- package/dist/core/constraints/checkers/types.js.map +1 -1
- package/dist/core/constraints/git-evidence.d.ts +6 -3
- package/dist/core/constraints/git-evidence.d.ts.map +1 -1
- package/dist/core/constraints/git-evidence.js +6 -3
- package/dist/core/constraints/git-evidence.js.map +1 -1
- package/dist/core/index.d.ts +1 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -9
- package/dist/core/index.js.map +1 -1
- package/dist/core/spec/validator.d.ts +2 -0
- package/dist/core/spec/validator.d.ts.map +1 -1
- package/dist/core/spec/validator.js +9 -11
- package/dist/core/spec/validator.js.map +1 -1
- package/dist/core/validators/index.d.ts +1 -1
- package/dist/core/validators/index.d.ts.map +1 -1
- package/dist/core/validators/passes-gate.d.ts +1 -15
- package/dist/core/validators/passes-gate.d.ts.map +1 -1
- package/dist/core/validators/passes-gate.js +0 -125
- package/dist/core/validators/passes-gate.js.map +1 -1
- package/dist/failure/index.d.ts +0 -1
- package/dist/failure/index.d.ts.map +1 -1
- package/dist/failure/index.js +1 -7
- package/dist/failure/index.js.map +1 -1
- package/dist/gates/checker-gate.d.ts +2 -1
- package/dist/gates/checker-gate.d.ts.map +1 -1
- package/dist/gates/checker-gate.js +10 -7
- package/dist/gates/checker-gate.js.map +1 -1
- package/dist/gates/definitions.d.ts.map +1 -1
- package/dist/gates/definitions.js +0 -4
- package/dist/gates/definitions.js.map +1 -1
- package/dist/gates/performance.d.ts +7 -22
- package/dist/gates/performance.d.ts.map +1 -1
- package/dist/gates/performance.js +7 -89
- package/dist/gates/performance.js.map +1 -1
- package/dist/gates/types.d.ts +2 -8
- package/dist/gates/types.d.ts.map +1 -1
- package/dist/index.d.ts +6 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -22
- package/dist/index.js.map +1 -1
- package/dist/knowledge/index.d.ts +0 -1
- package/dist/knowledge/index.d.ts.map +1 -1
- package/dist/knowledge/index.js +1 -3
- package/dist/knowledge/index.js.map +1 -1
- package/dist/monitoring/trace-analyzer.d.ts +25 -10
- package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
- package/dist/monitoring/trace-analyzer.js +147 -116
- package/dist/monitoring/trace-analyzer.js.map +1 -1
- package/dist/types/constraint.d.ts +8 -0
- package/dist/types/constraint.d.ts.map +1 -1
- package/dist/types/constraint.js +6 -1
- package/dist/types/constraint.js.map +1 -1
- package/dist/types/passes-gate.d.ts +0 -19
- package/dist/types/passes-gate.d.ts.map +1 -1
- package/dist/types/trace.d.ts +9 -0
- package/dist/types/trace.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/CONTEXT.md +1 -0
- package/src/__tests__/passes-gate-check.test.ts +20 -4
- package/src/__tests__/passes-gate.test.ts +18 -119
- package/src/__tests__/performance-gate.test.ts +3 -11
- package/src/__tests__/public-exports.test.ts +46 -16
- package/src/__tests__/trace-analyzer.test.ts +52 -2
- package/src/cli/commands/CONTEXT.md +5 -4
- package/src/cli/commands/__tests__/bin-exit-mapping.test.ts +6 -0
- package/src/cli/commands/__tests__/check.test.ts +74 -0
- package/src/cli/commands/__tests__/passes-gate-dead-options.test.ts +70 -0
- package/src/cli/commands/__tests__/passes-gate.test.ts +7 -3
- package/src/cli/commands/__tests__/performance.test.ts +5 -16
- package/src/cli/commands/__tests__/project-path-convention.test.ts +85 -23
- package/src/cli/commands/__tests__/registry.test.ts +52 -3
- package/src/cli/commands/__tests__/report-extra.test.ts +0 -19
- package/src/cli/commands/__tests__/report-false-green.test.ts +46 -0
- package/src/cli/commands/__tests__/report.test.ts +0 -20
- package/src/cli/commands/__tests__/status-analysis-wiring.test.ts +68 -0
- package/src/cli/commands/__tests__/status-extra.test.ts +63 -116
- package/src/cli/commands/__tests__/status.test.ts +66 -148
- package/src/cli/commands/check.ts +39 -1
- package/src/cli/commands/definitions.ts +1 -39
- package/src/cli/commands/knowledge.ts +0 -119
- package/src/cli/commands/passes-gate.ts +0 -3
- package/src/cli/commands/performance.ts +13 -27
- package/src/cli/commands/report.ts +3 -61
- package/src/cli/commands/status.ts +5 -10
- package/src/context/CONTEXT.md +2 -3
- package/src/context/__tests__/token-budget.test.ts +1 -81
- package/src/context/index.ts +2 -7
- package/src/context/token-budget.ts +0 -73
- package/src/context/types.ts +0 -9
- package/src/core/CONTEXT.md +6 -6
- package/src/core/constraints/__tests__/collect-constraints.test.ts +66 -0
- package/src/core/constraints/checker.ts +41 -6
- package/src/core/constraints/checkers/__tests__/capability-sync.test.ts +90 -31
- package/src/core/constraints/checkers/__tests__/check-outcome.test.ts +176 -0
- package/src/core/constraints/checkers/__tests__/docs-freshness.test.ts +18 -9
- package/src/core/constraints/checkers/__tests__/three-state-consistency.test.ts +12 -4
- package/src/core/constraints/checkers/capability-sync.ts +56 -18
- package/src/core/constraints/checkers/docs-freshness.ts +18 -5
- package/src/core/constraints/checkers/index.ts +9 -2
- package/src/core/constraints/checkers/types.ts +58 -2
- package/src/core/constraints/git-evidence.ts +6 -3
- package/src/core/index.ts +0 -11
- package/src/core/spec/__tests__/validator.test.ts +24 -0
- package/src/core/spec/validator.ts +9 -10
- package/src/core/validators/__tests__/passes-gate.test.ts +2 -9
- package/src/core/validators/index.ts +0 -1
- package/src/core/validators/passes-gate.ts +1 -149
- package/src/failure/CONTEXT.md +8 -6
- package/src/failure/index.ts +0 -10
- package/src/gates/CONTEXT.md +4 -3
- package/src/gates/__tests__/checker-gate.test.ts +24 -0
- package/src/gates/__tests__/performance.test.ts +6 -74
- package/src/gates/checker-gate.ts +11 -15
- package/src/gates/definitions.ts +0 -4
- package/src/gates/performance.ts +9 -111
- package/src/gates/types.ts +2 -8
- package/src/index.ts +1 -36
- package/src/knowledge/CONTEXT.md +1 -2
- package/src/knowledge/index.ts +0 -1
- package/src/monitoring/CONTEXT.md +2 -2
- package/src/monitoring/trace-analyzer.ts +160 -126
- package/src/types/constraint.ts +16 -2
- package/src/types/passes-gate.ts +0 -26
- package/src/types/trace.ts +10 -0
- package/src/utils/__tests__/jsonl-skip-disposition.test.ts +0 -1
- package/dist/cli/commands/analyze-sessions.d.ts +0 -20
- package/dist/cli/commands/analyze-sessions.d.ts.map +0 -1
- package/dist/cli/commands/analyze-sessions.js +0 -290
- package/dist/cli/commands/analyze-sessions.js.map +0 -1
- package/dist/cli/commands/update-user-model.d.ts +0 -25
- package/dist/cli/commands/update-user-model.d.ts.map +0 -1
- package/dist/cli/commands/update-user-model.js +0 -397
- package/dist/cli/commands/update-user-model.js.map +0 -1
- package/dist/cli/session-mining/corrections.d.ts +0 -17
- package/dist/cli/session-mining/corrections.d.ts.map +0 -1
- package/dist/cli/session-mining/corrections.js +0 -58
- package/dist/cli/session-mining/corrections.js.map +0 -1
- package/dist/cli/session-mining/index.d.ts +0 -13
- package/dist/cli/session-mining/index.d.ts.map +0 -1
- package/dist/cli/session-mining/index.js +0 -29
- package/dist/cli/session-mining/index.js.map +0 -1
- package/dist/cli/session-mining/text.d.ts +0 -31
- package/dist/cli/session-mining/text.d.ts.map +0 -1
- package/dist/cli/session-mining/text.js +0 -126
- package/dist/cli/session-mining/text.js.map +0 -1
- package/dist/cli/session-mining/transcript.d.ts +0 -34
- package/dist/cli/session-mining/transcript.d.ts.map +0 -1
- package/dist/cli/session-mining/transcript.js +0 -130
- package/dist/cli/session-mining/transcript.js.map +0 -1
- package/dist/context/compaction.d.ts +0 -57
- package/dist/context/compaction.d.ts.map +0 -1
- package/dist/context/compaction.js +0 -165
- package/dist/context/compaction.js.map +0 -1
- package/dist/core/session/clean-state.d.ts +0 -17
- package/dist/core/session/clean-state.d.ts.map +0 -1
- package/dist/core/session/clean-state.js +0 -192
- package/dist/core/session/clean-state.js.map +0 -1
- package/dist/core/session/index.d.ts +0 -6
- package/dist/core/session/index.d.ts.map +0 -1
- package/dist/core/session/index.js +0 -15
- package/dist/core/session/index.js.map +0 -1
- package/dist/core/session/startup.d.ts +0 -47
- package/dist/core/session/startup.d.ts.map +0 -1
- package/dist/core/session/startup.js +0 -263
- package/dist/core/session/startup.js.map +0 -1
- package/dist/failure/constraint-handler.d.ts +0 -83
- package/dist/failure/constraint-handler.d.ts.map +0 -1
- package/dist/failure/constraint-handler.js +0 -138
- package/dist/failure/constraint-handler.js.map +0 -1
- package/dist/knowledge/lifecycle-hooks.d.ts +0 -62
- package/dist/knowledge/lifecycle-hooks.d.ts.map +0 -1
- package/dist/knowledge/lifecycle-hooks.js +0 -143
- package/dist/knowledge/lifecycle-hooks.js.map +0 -1
- package/dist/types/session.d.ts +0 -113
- package/dist/types/session.d.ts.map +0 -1
- package/dist/types/session.js +0 -6
- package/dist/types/session.js.map +0 -1
- package/src/__tests__/clean-state-extra.test.ts +0 -301
- package/src/__tests__/clean-state.test.ts +0 -169
- package/src/__tests__/constraint-handler.test.ts +0 -132
- package/src/__tests__/passes-gate-extra.test.ts +0 -93
- package/src/__tests__/session-startup.test.ts +0 -334
- package/src/cli/commands/__tests__/analyze-sessions.test.ts +0 -184
- package/src/cli/commands/__tests__/update-user-model.test.ts +0 -234
- package/src/cli/commands/analyze-sessions.ts +0 -335
- package/src/cli/commands/update-user-model.ts +0 -461
- package/src/cli/session-mining/__tests__/transcript.test.ts +0 -118
- package/src/cli/session-mining/corrections.ts +0 -56
- package/src/cli/session-mining/index.ts +0 -13
- package/src/cli/session-mining/text.ts +0 -117
- package/src/cli/session-mining/transcript.ts +0 -125
- package/src/context/__tests__/compaction.test.ts +0 -169
- package/src/context/compaction.ts +0 -201
- package/src/core/session/__tests__/startup.test.ts +0 -281
- package/src/core/session/clean-state.ts +0 -178
- package/src/core/session/index.ts +0 -15
- package/src/core/session/startup.ts +0 -253
- package/src/failure/constraint-handler.ts +0 -171
- package/src/knowledge/__tests__/lifecycle-hooks.test.ts +0 -140
- package/src/knowledge/lifecycle-hooks.ts +0 -202
- package/src/types/session.ts +0 -132
|
@@ -53,15 +53,54 @@ export declare function buildCheckEnv(context: ConstraintContext, evidence: Evid
|
|
|
53
53
|
* - true = 满足(pass)
|
|
54
54
|
* - false = 违反(fail)
|
|
55
55
|
* - 'skip' = 未评估(项目未采用对应约定,或证据 flag 未接线),不计 pass/fail
|
|
56
|
+
* - CheckDetail = 判定 + 证据行(harness#119)
|
|
56
57
|
*/
|
|
57
|
-
export type CheckOutcome = boolean | 'skip';
|
|
58
|
+
export type CheckOutcome = boolean | 'skip' | CheckDetail;
|
|
59
|
+
/**
|
|
60
|
+
* 带证据的检查结果(harness#119)
|
|
61
|
+
*
|
|
62
|
+
* 动机:只回布尔时,fail 的具体原因(哪个文件没登记)在 CLI 与 trace 两头都落脚不了,
|
|
63
|
+
* 一条恒红的约束无法被诊断。证据行由 checker 自行措辞(自描述、可直接给人看),
|
|
64
|
+
* 编排层只负责透传与打印,不参与解释内容。
|
|
65
|
+
*
|
|
66
|
+
* `pass: true` + 非空 evidence = 「满足但有提示」:不进 pass/fail 统计口径,
|
|
67
|
+
* 仅作为可观测输出(如仓库级文档漂移——与本次变更无因果,不该判违规)。
|
|
68
|
+
*/
|
|
69
|
+
export interface CheckDetail {
|
|
70
|
+
/** false = 违反;true = 满足 */
|
|
71
|
+
pass: boolean;
|
|
72
|
+
/** 证据行(每条自描述,如「变更文件未登记: src/foo.ts」) */
|
|
73
|
+
evidence?: string[];
|
|
74
|
+
}
|
|
75
|
+
/** 归一后的检查结果:编排层 / gate 唯一消费形状 */
|
|
76
|
+
export interface NormalizedOutcome {
|
|
77
|
+
satisfied: boolean;
|
|
78
|
+
skipped: boolean;
|
|
79
|
+
evidence: string[];
|
|
80
|
+
}
|
|
81
|
+
/** 证据条数上限:trace 是 JSONL,缺口上百项时不能整仓落盘 */
|
|
82
|
+
export declare const MAX_EVIDENCE_ITEMS = 10;
|
|
83
|
+
/**
|
|
84
|
+
* 组装证据行:一行说明 + 逐条依据(超限截断)
|
|
85
|
+
*
|
|
86
|
+
* 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 / 铁律异常文案)决定,trace 原样存。
|
|
87
|
+
* 修复入口不写在这里:那是各约束自己的事,写进各自的 summary 行(docs_freshness 的
|
|
88
|
+
* 幽灵条目与 sync-docs 无关,共用一个指针会误导)。
|
|
89
|
+
*/
|
|
90
|
+
export declare function formatEvidence(summary: string, items: string[]): string[];
|
|
91
|
+
/**
|
|
92
|
+
* 归一 CheckOutcome(boolean | 'skip' | CheckDetail)为统一形状
|
|
93
|
+
*
|
|
94
|
+
* skip 恒不携带证据:未评估的约束不得留下证据行(否则统计侧会把「没查」读成「查出问题」)。
|
|
95
|
+
*/
|
|
96
|
+
export declare function normalizeCheckOutcome(outcome: CheckOutcome): NormalizedOutcome;
|
|
58
97
|
/**
|
|
59
98
|
* 单条约束检查实现
|
|
60
99
|
*/
|
|
61
100
|
export interface ConstraintCheck {
|
|
62
101
|
/** 约束 ID(与 definitions 一致) */
|
|
63
102
|
id: string;
|
|
64
|
-
/** 检查主体:true = 满足;false = 违反;'skip' =
|
|
103
|
+
/** 检查主体:true = 满足;false = 违反;'skip' = 未评估;CheckDetail = 判定 + 证据行 */
|
|
65
104
|
evaluate(env: CheckEnv): Promise<CheckOutcome> | CheckOutcome;
|
|
66
105
|
}
|
|
67
106
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/checkers/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,qCAAqC;IACrC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,gCAAgC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB;IACrB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,kBAAkB;IAClB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GACnC,QAAQ,CAYV;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/constraints/checkers/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,qCAAqC;IACrC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,gCAAgC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB;IACrB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,kBAAkB;IAClB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GACnC,QAAQ,CAYV;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wCAAwC;AACxC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAQ9E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;CAC/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,GACjD,eAAe,CAEjB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,GAAG,SAAS,GACxD,eAAe,CASjB"}
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
* 通过 ConstraintCheck 接口 + CheckEnv 环境与编排层解耦。
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MAX_EVIDENCE_ITEMS = void 0;
|
|
9
10
|
exports.buildCheckEnv = buildCheckEnv;
|
|
11
|
+
exports.formatEvidence = formatEvidence;
|
|
12
|
+
exports.normalizeCheckOutcome = normalizeCheckOutcome;
|
|
10
13
|
exports.contextFlag = contextFlag;
|
|
11
14
|
exports.contextEvidenceFlag = contextEvidenceFlag;
|
|
12
15
|
/**
|
|
@@ -32,6 +35,36 @@ function buildCheckEnv(context, evidence) {
|
|
|
32
35
|
}
|
|
33
36
|
return { context, projectPath, ...evidence };
|
|
34
37
|
}
|
|
38
|
+
/** 证据条数上限:trace 是 JSONL,缺口上百项时不能整仓落盘 */
|
|
39
|
+
exports.MAX_EVIDENCE_ITEMS = 10;
|
|
40
|
+
/**
|
|
41
|
+
* 组装证据行:一行说明 + 逐条依据(超限截断)
|
|
42
|
+
*
|
|
43
|
+
* 每行自描述且不带缩进——缩进由消费端(CLI / gate 理由 / 铁律异常文案)决定,trace 原样存。
|
|
44
|
+
* 修复入口不写在这里:那是各约束自己的事,写进各自的 summary 行(docs_freshness 的
|
|
45
|
+
* 幽灵条目与 sync-docs 无关,共用一个指针会误导)。
|
|
46
|
+
*/
|
|
47
|
+
function formatEvidence(summary, items) {
|
|
48
|
+
const shown = items.slice(0, exports.MAX_EVIDENCE_ITEMS);
|
|
49
|
+
const hidden = items.length - shown.length;
|
|
50
|
+
return [...(summary ? [summary] : []), ...shown, ...(hidden > 0 ? [`…另 ${hidden} 项`] : [])];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 归一 CheckOutcome(boolean | 'skip' | CheckDetail)为统一形状
|
|
54
|
+
*
|
|
55
|
+
* skip 恒不携带证据:未评估的约束不得留下证据行(否则统计侧会把「没查」读成「查出问题」)。
|
|
56
|
+
*/
|
|
57
|
+
function normalizeCheckOutcome(outcome) {
|
|
58
|
+
if (outcome === 'skip')
|
|
59
|
+
return { satisfied: true, skipped: true, evidence: [] };
|
|
60
|
+
if (typeof outcome === 'boolean')
|
|
61
|
+
return { satisfied: outcome, skipped: false, evidence: [] };
|
|
62
|
+
return {
|
|
63
|
+
satisfied: outcome.pass,
|
|
64
|
+
skipped: false,
|
|
65
|
+
evidence: outcome.evidence ?? [],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
35
68
|
/**
|
|
36
69
|
* 构造纯上下文标志检查(无 I/O 的轻量约束)
|
|
37
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/constraints/checkers/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/constraints/checkers/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAgDH,sCAeC;AA6CD,wCAIC;AAOD,sDAQC;AAeD,kCAKC;AASD,kDAYC;AAlID;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAC3B,OAA0B,EAC1B,QAAoC;IAEpC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO;YACL,OAAO;YACP,WAAW;YACX,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC1B,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;SAClB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAmCD,wCAAwC;AAC3B,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,OAAe,EAAE,KAAe;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,0BAAkB,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,OAAqB;IACzD,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChF,IAAI,OAAO,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC9F,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,IAAI;QACvB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;KACjC,CAAC;AACJ,CAAC;AAYD;;GAEG;AACH,SAAgB,WAAW,CACzB,EAAU,EACV,SAAkD;IAElD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,EAAU,EACV,IAAyD;IAEzD,OAAO;QACL,EAAE;QACF,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* git 证据适配器(架构评审 #87
|
|
2
|
+
* git 证据适配器(架构评审 #87,适用范围按 ADR-0021 收窄)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* check 链路的唯一 git 取证点:context-builder(触发推断)与 checker 层(CheckEnv 证据)
|
|
5
5
|
* 共用同一实例 = 共用同一证据来源。此前两处各自抓真 git,一次 CLI check 里
|
|
6
6
|
* `git diff --cached --name-only` 实跑两遍。
|
|
7
7
|
*
|
|
8
|
+
* 链外站点(写操作 / 发布编排 / 审查流 / 降级容忍)不并入本 seam,记名豁免清单见
|
|
9
|
+
* `core/CONTEXT.md` 约定段;同型站点(spec/validator 的 staged 列表)经此取证据。
|
|
10
|
+
*
|
|
8
11
|
* seam 上的两个真 adapter:
|
|
9
12
|
* - 缺省 realGitCommandRunner:真 git 子进程
|
|
10
13
|
* - 注入 runner:委托/计数/命令表(测试与定制场景)
|
|
@@ -49,7 +52,7 @@ export declare const realGitCommandRunner: GitCommandRunner;
|
|
|
49
52
|
*/
|
|
50
53
|
export declare function parseHeadDirs(treeOutput: string): Set<string>;
|
|
51
54
|
/**
|
|
52
|
-
* 构造 git 证据 adapter
|
|
55
|
+
* 构造 git 证据 adapter(GitEvidence 实例的唯一构造点:check 链路与 spec/validator 的 staged 取证都经此)
|
|
53
56
|
*
|
|
54
57
|
* @param projectPath 取证目录
|
|
55
58
|
* @param run 命令执行器,缺省真 git;测试注入计数/替身执行器即可脱离子进程
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-evidence.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/git-evidence.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"git-evidence.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/git-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,UAAU,IAAI,MAAM,CAAC;IACrB,8DAA8D;IAC9D,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,gCAAgC;IAChC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAChC;AAKD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,gBAGzB,CAAC;AAOX;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAU7D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,gBAAuC,GAC3C,WAAW,CA2Bb;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtD"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* git 证据适配器(架构评审 #87
|
|
3
|
+
* git 证据适配器(架构评审 #87,适用范围按 ADR-0021 收窄)
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* check 链路的唯一 git 取证点:context-builder(触发推断)与 checker 层(CheckEnv 证据)
|
|
6
6
|
* 共用同一实例 = 共用同一证据来源。此前两处各自抓真 git,一次 CLI check 里
|
|
7
7
|
* `git diff --cached --name-only` 实跑两遍。
|
|
8
8
|
*
|
|
9
|
+
* 链外站点(写操作 / 发布编排 / 审查流 / 降级容忍)不并入本 seam,记名豁免清单见
|
|
10
|
+
* `core/CONTEXT.md` 约定段;同型站点(spec/validator 的 staged 列表)经此取证据。
|
|
11
|
+
*
|
|
9
12
|
* seam 上的两个真 adapter:
|
|
10
13
|
* - 缺省 realGitCommandRunner:真 git 子进程
|
|
11
14
|
* - 注入 runner:委托/计数/命令表(测试与定制场景)
|
|
@@ -51,7 +54,7 @@ function parseHeadDirs(treeOutput) {
|
|
|
51
54
|
return dirs;
|
|
52
55
|
}
|
|
53
56
|
/**
|
|
54
|
-
* 构造 git 证据 adapter
|
|
57
|
+
* 构造 git 证据 adapter(GitEvidence 实例的唯一构造点:check 链路与 spec/validator 的 staged 取证都经此)
|
|
55
58
|
*
|
|
56
59
|
* @param projectPath 取证目录
|
|
57
60
|
* @param run 命令执行器,缺省真 git;测试注入计数/替身执行器即可脱离子进程
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-evidence.js","sourceRoot":"","sources":["../../../src/core/constraints/git-evidence.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"git-evidence.js","sourceRoot":"","sources":["../../../src/core/constraints/git-evidence.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
export { IRON_LAWS, GUIDELINES, PROMPTS, getAllConstraints, findConstraintsByTrigger, getConstraint, ConstraintChecker, checkConstraint, checkConstraints, checkBeforeExecution, constraintChecker, CONSTRAINTS_START_MARKER, CONSTRAINTS_END_MARKER, renderConstraintsSection, CheckCache, renderConstraintsByTrigger, ConstraintViolationError, } from './constraints';
|
|
8
8
|
export type { CheckConstraintsOptions, CheckCacheConfig, CheckSamplingConfig, RenderConstraintsByTriggerOptions, ConstraintId, ConstraintKind, ConstraintLevel, ConstraintTrigger, Constraint, ConstraintResult, ConstraintContext, ConstraintCheckResult, IronLawContext, } from './constraints';
|
|
9
9
|
export { CheckpointValidator, PassesGate, createPassesGate, CSOValidator, } from './validators';
|
|
10
|
-
export type { CSOValidationResult, CSOIssue, Checkpoint, CheckpointCheck, CheckpointResult, CheckResult, CheckpointContext, CheckType, CheckConfig, PassesGateConfig,
|
|
11
|
-
export { SessionStartup, createSessionStartup, DEFAULT_CODE_CHECKPOINTS, MINIMAL_CHECKPOINTS, CleanStateManager, createCleanStateManager, } from './session';
|
|
10
|
+
export type { CSOValidationResult, CSOIssue, Checkpoint, CheckpointCheck, CheckpointResult, CheckResult, CheckpointContext, CheckType, CheckConfig, PassesGateConfig, TaskTestResult, DynamicTask, } from './validators';
|
|
12
11
|
export { SpecValidator } from './spec/validator';
|
|
13
12
|
export type { SpecValidatorConfig, SpecValidationResult, BatchSpecValidationResult, SpecSchemaDefinition, SpecType, } from '../types/spec';
|
|
14
13
|
export { ProjectConfigLoader, loadRawProjectConfig, getGovernanceConfig, resolveContextFiles, getCapabilitiesMode, } from './project-config-loader';
|
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,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,UAAU,EACV,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,iCAAiC,EACjC,YAAY,EACZ,cAAc,EACd,eAAe,EACf,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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,UAAU,EACV,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,iCAAiC,EACjC,YAAY,EACZ,cAAc,EACd,eAAe,EACf,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,EACd,WAAW,GACZ,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;AAGxF,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
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.
|
|
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.renderConstraintsByTrigger = exports.CheckCache = exports.renderConstraintsSection = exports.CONSTRAINTS_END_MARKER = exports.CONSTRAINTS_START_MARKER = exports.constraintChecker = exports.checkBeforeExecution = exports.checkConstraints = exports.checkConstraint = exports.ConstraintChecker = exports.getConstraint = exports.findConstraintsByTrigger = exports.getAllConstraints = exports.PROMPTS = exports.GUIDELINES = exports.IRON_LAWS = void 0;
|
|
10
10
|
// 约束系统(三层:Iron Laws / Guidelines / Tips)
|
|
11
11
|
var constraints_1 = require("./constraints");
|
|
12
12
|
Object.defineProperty(exports, "IRON_LAWS", { enumerable: true, get: function () { return constraints_1.IRON_LAWS; } });
|
|
@@ -32,14 +32,6 @@ Object.defineProperty(exports, "CheckpointValidator", { enumerable: true, get: f
|
|
|
32
32
|
Object.defineProperty(exports, "PassesGate", { enumerable: true, get: function () { return validators_1.PassesGate; } });
|
|
33
33
|
Object.defineProperty(exports, "createPassesGate", { enumerable: true, get: function () { return validators_1.createPassesGate; } });
|
|
34
34
|
Object.defineProperty(exports, "CSOValidator", { enumerable: true, get: function () { return validators_1.CSOValidator; } });
|
|
35
|
-
// 会话启动 / 净室状态
|
|
36
|
-
var session_1 = require("./session");
|
|
37
|
-
Object.defineProperty(exports, "SessionStartup", { enumerable: true, get: function () { return session_1.SessionStartup; } });
|
|
38
|
-
Object.defineProperty(exports, "createSessionStartup", { enumerable: true, get: function () { return session_1.createSessionStartup; } });
|
|
39
|
-
Object.defineProperty(exports, "DEFAULT_CODE_CHECKPOINTS", { enumerable: true, get: function () { return session_1.DEFAULT_CODE_CHECKPOINTS; } });
|
|
40
|
-
Object.defineProperty(exports, "MINIMAL_CHECKPOINTS", { enumerable: true, get: function () { return session_1.MINIMAL_CHECKPOINTS; } });
|
|
41
|
-
Object.defineProperty(exports, "CleanStateManager", { enumerable: true, get: function () { return session_1.CleanStateManager; } });
|
|
42
|
-
Object.defineProperty(exports, "createCleanStateManager", { enumerable: true, get: function () { return session_1.createCleanStateManager; } });
|
|
43
35
|
// Spec 验证器
|
|
44
36
|
var validator_1 = require("./spec/validator");
|
|
45
37
|
Object.defineProperty(exports, "SpecValidator", { enumerable: true, get: function () { return validator_1.SpecValidator; } });
|
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,yCAAyC;AACzC,6CAkBuB;AAjBrB,wGAAA,SAAS,OAAA;AACT,yGAAA,UAAU,OAAA;AACV,sGAAA,OAAO,OAAA;AACP,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,uHAAA,wBAAwB,OAAA;AACxB,qHAAA,sBAAsB,OAAA;AACtB,uHAAA,wBAAwB,OAAA;AACxB,yGAAA,UAAU,OAAA;AACV,yHAAA,0BAA0B,OAAA;AAC1B,uHAAA,wBAAwB,OAAA;AAkB1B,8BAA8B;AAC9B,2CAKsB;AAJpB,iHAAA,mBAAmB,OAAA;AACnB,wGAAA,UAAU,OAAA;AACV,8GAAA,gBAAgB,OAAA;AAChB,0GAAA,YAAY,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yCAAyC;AACzC,6CAkBuB;AAjBrB,wGAAA,SAAS,OAAA;AACT,yGAAA,UAAU,OAAA;AACV,sGAAA,OAAO,OAAA;AACP,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,uHAAA,wBAAwB,OAAA;AACxB,qHAAA,sBAAsB,OAAA;AACtB,uHAAA,wBAAwB,OAAA;AACxB,yGAAA,UAAU,OAAA;AACV,yHAAA,0BAA0B,OAAA;AAC1B,uHAAA,wBAAwB,OAAA;AAkB1B,8BAA8B;AAC9B,2CAKsB;AAJpB,iHAAA,mBAAmB,OAAA;AACnB,wGAAA,UAAU,OAAA;AACV,8GAAA,gBAAgB,OAAA;AAChB,0GAAA,YAAY,OAAA;AAiBd,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;AAIrB,0BAA0B;AAC1B,iEAGiC;AAF/B,gIAAA,uBAAuB,OAAA;AACvB,4HAAA,mBAAmB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/core/spec/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAY1B;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAgD;IAEnE,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,aAAa;IAOxE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAKrD;;;;;;OAMG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAwC1E;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAkB1C;;OAEG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IA+ChC;;OAEG;YACW,eAAe;IAwC7B;;OAEG;IACG,WAAW,CACf,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,yBAAyB,CAAC;IAwCrC;;OAEG;YACW,YAAY;IAe1B
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/core/spec/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAY1B;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAgD;IAEnE,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,aAAa;IAOxE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAKrD;;;;;;OAMG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAwC1E;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAkB1C;;OAEG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IA+ChC;;OAEG;YACW,eAAe;IAwC7B;;OAEG;IACG,WAAW,CACf,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,yBAAyB,CAAC;IAwCrC;;OAEG;YACW,YAAY;IAe1B;;;;OAIG;YACW,cAAc;IAO5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAoBlB;;OAEG;YACW,UAAU;IASxB;;OAEG;YACW,aAAa;CAiB5B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,CAAC,CAO/B;AAED,wBAAsB,gBAAgB,CACpC,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,yBAAyB,CAAC,CAGpC"}
|
|
@@ -49,7 +49,7 @@ exports.validateAllSpecs = validateAllSpecs;
|
|
|
49
49
|
const fs = __importStar(require("fs/promises"));
|
|
50
50
|
const path = __importStar(require("path"));
|
|
51
51
|
const glob = __importStar(require("fast-glob"));
|
|
52
|
-
const
|
|
52
|
+
const git_evidence_1 = require("../constraints/git-evidence");
|
|
53
53
|
/**
|
|
54
54
|
* 默认配置
|
|
55
55
|
*/
|
|
@@ -243,7 +243,7 @@ class SpecValidator {
|
|
|
243
243
|
// 获取要验证的文件
|
|
244
244
|
let files;
|
|
245
245
|
if (staged) {
|
|
246
|
-
files = await this.getStagedFiles();
|
|
246
|
+
files = await this.getStagedFiles(cwd);
|
|
247
247
|
}
|
|
248
248
|
else {
|
|
249
249
|
files = await this.getSpecFiles(cwd);
|
|
@@ -284,16 +284,14 @@ class SpecValidator {
|
|
|
284
284
|
}
|
|
285
285
|
/**
|
|
286
286
|
* 获取暂存的 Spec 文件
|
|
287
|
+
*
|
|
288
|
+
* git 事实经 GitEvidence adapter(ADR-0021);`run` 缺省真 git,测试注入替身。
|
|
287
289
|
*/
|
|
288
|
-
async getStagedFiles() {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}
|
|
294
|
-
catch {
|
|
295
|
-
return [];
|
|
296
|
-
}
|
|
290
|
+
async getStagedFiles(cwd, run) {
|
|
291
|
+
const evidence = (0, git_evidence_1.createGitEvidence)(cwd, run);
|
|
292
|
+
return (0, git_evidence_1.splitFileNames)(evidence.changedFileNames(true))
|
|
293
|
+
.filter(f => this.isSpecFile(f))
|
|
294
|
+
.map(f => path.resolve(cwd, f));
|
|
297
295
|
}
|
|
298
296
|
/**
|
|
299
297
|
* 判断是否为 Spec 文件
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/core/spec/validator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/core/spec/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@ export { CheckpointValidator } from './checkpoint';
|
|
|
5
5
|
export { PassesGate, createPassesGate } from './passes-gate';
|
|
6
6
|
export { CSOValidator, type CSOValidationResult, type CSOIssue } from './cso';
|
|
7
7
|
export type { Checkpoint, CheckpointCheck, CheckpointResult, CheckResult, CheckpointContext, CheckType, CheckConfig, } from '../../types/checkpoint';
|
|
8
|
-
export type { PassesGateConfig,
|
|
8
|
+
export type { PassesGateConfig, TaskTestResult, DynamicTask, } from '../../types/passes-gate';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/validators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG9E,YAAY,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/validators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG9E,YAAY,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,WAAW,GACZ,MAAM,yBAAyB,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* 「过了没」的判定依据不在本文件:唯一入口是 test-output.ts 的 judgeTestRun(ADR-0014)
|
|
8
8
|
*/
|
|
9
|
-
import type { PassesGateConfig,
|
|
9
|
+
import type { PassesGateConfig, TestResult, PassesGateCheckResult } from '../../types/passes-gate';
|
|
10
10
|
/**
|
|
11
11
|
* 检测项目的测试命令(唯一正本,CLI 与库调用共消费,架构评审 A2)
|
|
12
12
|
*
|
|
@@ -20,7 +20,6 @@ export declare function detectTestCommand(projectPath: string): Promise<string |
|
|
|
20
20
|
*/
|
|
21
21
|
export declare class PassesGate {
|
|
22
22
|
private config;
|
|
23
|
-
private testResults;
|
|
24
23
|
constructor(config?: Partial<PassesGateConfig>);
|
|
25
24
|
/**
|
|
26
25
|
* 验证测试结果(不运行测试)
|
|
@@ -47,11 +46,6 @@ export declare class PassesGate {
|
|
|
47
46
|
* ```
|
|
48
47
|
*/
|
|
49
48
|
check(testResult: TestResult): PassesGateCheckResult;
|
|
50
|
-
/**
|
|
51
|
-
* 设置任务通过状态
|
|
52
|
-
* 核心方法:强制测试验证
|
|
53
|
-
*/
|
|
54
|
-
setPasses(taskId: string, value: boolean, workDir: string, task?: DynamicTask): Promise<PassesGateResult>;
|
|
55
49
|
/**
|
|
56
50
|
* 运行测试(CLI 使用)
|
|
57
51
|
*
|
|
@@ -82,14 +76,6 @@ export declare class PassesGate {
|
|
|
82
76
|
* 验证证据存在
|
|
83
77
|
*/
|
|
84
78
|
private verifyEvidence;
|
|
85
|
-
/**
|
|
86
|
-
* 检测是否修改了测试文件
|
|
87
|
-
*/
|
|
88
|
-
checkTestFileChanges(workDir: string): Promise<string[]>;
|
|
89
|
-
/**
|
|
90
|
-
* 获取任务的测试结果
|
|
91
|
-
*/
|
|
92
|
-
getTestResult(taskId: string): TaskTestResult | undefined;
|
|
93
79
|
}
|
|
94
80
|
/**
|
|
95
81
|
* 创建 PassesGate 实例
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passes-gate.d.ts","sourceRoot":"","sources":["../../../src/core/validators/passes-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"passes-gate.d.ts","sourceRoot":"","sources":["../../../src/core/validators/passes-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EACV,gBAAgB,EAGhB,UAAU,EACV,qBAAqB,EAEtB,MAAM,yBAAyB,CAAC;AAajC;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoCxF;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA6B;gBAE/B,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAQlD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,qBAAqB;IAsCpD;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAiDF;;OAEG;YACW,OAAO;IA6CrB;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;YACW,cAAc;CAY7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAE/E"}
|
|
@@ -56,22 +56,7 @@ const DEFAULT_CONFIG = {
|
|
|
56
56
|
testCommand: '',
|
|
57
57
|
requireEvidence: true,
|
|
58
58
|
allowPartialPass: false,
|
|
59
|
-
maxRetries: 2,
|
|
60
|
-
retryDelay: 1000,
|
|
61
59
|
};
|
|
62
|
-
/**
|
|
63
|
-
* 测试文件保护模式
|
|
64
|
-
*/
|
|
65
|
-
const PROTECTED_TEST_PATTERNS = [
|
|
66
|
-
'**/*.test.ts',
|
|
67
|
-
'**/*.test.tsx',
|
|
68
|
-
'**/*.test.js',
|
|
69
|
-
'**/*.spec.ts',
|
|
70
|
-
'**/*.spec.tsx',
|
|
71
|
-
'**/*.spec.js',
|
|
72
|
-
'**/tests/**',
|
|
73
|
-
'**/__tests__/**',
|
|
74
|
-
];
|
|
75
60
|
/**
|
|
76
61
|
* 检测项目的测试命令(唯一正本,CLI 与库调用共消费,架构评审 A2)
|
|
77
62
|
*
|
|
@@ -120,7 +105,6 @@ async function detectTestCommand(projectPath) {
|
|
|
120
105
|
*/
|
|
121
106
|
class PassesGate {
|
|
122
107
|
config;
|
|
123
|
-
testResults = new Map();
|
|
124
108
|
constructor(config = {}) {
|
|
125
109
|
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
126
110
|
}
|
|
@@ -184,83 +168,6 @@ class PassesGate {
|
|
|
184
168
|
testResult,
|
|
185
169
|
};
|
|
186
170
|
}
|
|
187
|
-
/**
|
|
188
|
-
* 设置任务通过状态
|
|
189
|
-
* 核心方法:强制测试验证
|
|
190
|
-
*/
|
|
191
|
-
async setPasses(taskId, value, workDir, task) {
|
|
192
|
-
if (!this.config.enabled) {
|
|
193
|
-
return {
|
|
194
|
-
taskId,
|
|
195
|
-
allowed: true,
|
|
196
|
-
attempts: 0,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
// 如果设置为 false,直接允许
|
|
200
|
-
if (value === false) {
|
|
201
|
-
return {
|
|
202
|
-
taskId,
|
|
203
|
-
allowed: true,
|
|
204
|
-
testResult: {
|
|
205
|
-
passed: false,
|
|
206
|
-
command: 'manual',
|
|
207
|
-
timestamp: new Date(),
|
|
208
|
-
},
|
|
209
|
-
attempts: 0,
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
// 如果设置为 true,必须运行测试
|
|
213
|
-
let attempts = 0;
|
|
214
|
-
let lastError;
|
|
215
|
-
let testResult;
|
|
216
|
-
while (attempts <= this.config.maxRetries) {
|
|
217
|
-
attempts++;
|
|
218
|
-
try {
|
|
219
|
-
testResult = await this.runTest(workDir, task);
|
|
220
|
-
if (testResult.passed) {
|
|
221
|
-
// 记录测试结果
|
|
222
|
-
this.testResults.set(taskId, testResult);
|
|
223
|
-
// 如果要求证据,验证证据存在
|
|
224
|
-
if (this.config.requireEvidence && testResult.evidence) {
|
|
225
|
-
const evidenceExists = await this.verifyEvidence(testResult.evidence, workDir);
|
|
226
|
-
if (!evidenceExists) {
|
|
227
|
-
return {
|
|
228
|
-
taskId,
|
|
229
|
-
allowed: false,
|
|
230
|
-
error: 'Test evidence not found',
|
|
231
|
-
testResult,
|
|
232
|
-
attempts,
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
return {
|
|
237
|
-
taskId,
|
|
238
|
-
allowed: true,
|
|
239
|
-
testResult,
|
|
240
|
-
attempts,
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
lastError = `Tests failed: ${testResult.failures?.join(', ') || 'Unknown error'}`;
|
|
244
|
-
// 等待后重试
|
|
245
|
-
if (attempts <= this.config.maxRetries) {
|
|
246
|
-
await (0, exec_1.delay)(this.config.retryDelay);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
catch (error) {
|
|
250
|
-
lastError = error.message;
|
|
251
|
-
if (attempts <= this.config.maxRetries) {
|
|
252
|
-
await (0, exec_1.delay)(this.config.retryDelay);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
return {
|
|
257
|
-
taskId,
|
|
258
|
-
allowed: false,
|
|
259
|
-
error: lastError,
|
|
260
|
-
testResult,
|
|
261
|
-
attempts,
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
171
|
/**
|
|
265
172
|
* 运行测试(CLI 使用)
|
|
266
173
|
*
|
|
@@ -379,38 +286,6 @@ class PassesGate {
|
|
|
379
286
|
return false;
|
|
380
287
|
}
|
|
381
288
|
}
|
|
382
|
-
/**
|
|
383
|
-
* 检测是否修改了测试文件
|
|
384
|
-
*/
|
|
385
|
-
async checkTestFileChanges(workDir) {
|
|
386
|
-
const changedTestFiles = [];
|
|
387
|
-
try {
|
|
388
|
-
const { stdout } = await (0, exec_1.execAsync)('git diff --name-only', { cwd: workDir });
|
|
389
|
-
const changedFiles = stdout.split('\n').filter(Boolean);
|
|
390
|
-
// 简单的模式匹配
|
|
391
|
-
for (const file of changedFiles) {
|
|
392
|
-
const isTestFile = PROTECTED_TEST_PATTERNS.some(() => {
|
|
393
|
-
return file.includes('.test.') ||
|
|
394
|
-
file.includes('.spec.') ||
|
|
395
|
-
file.includes('/tests/') ||
|
|
396
|
-
file.includes('/__tests__/');
|
|
397
|
-
});
|
|
398
|
-
if (isTestFile) {
|
|
399
|
-
changedTestFiles.push(file);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
catch {
|
|
404
|
-
// Git 不可用,跳过检查
|
|
405
|
-
}
|
|
406
|
-
return changedTestFiles;
|
|
407
|
-
}
|
|
408
|
-
/**
|
|
409
|
-
* 获取任务的测试结果
|
|
410
|
-
*/
|
|
411
|
-
getTestResult(taskId) {
|
|
412
|
-
return this.testResults.get(taskId);
|
|
413
|
-
}
|
|
414
289
|
}
|
|
415
290
|
exports.PassesGate = PassesGate;
|
|
416
291
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passes-gate.js","sourceRoot":"","sources":["../../../src/core/validators/passes-gate.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"passes-gate.js","sourceRoot":"","sources":["../../../src/core/validators/passes-gate.ts"],"names":[],"mappings":"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"}
|
package/dist/failure/index.d.ts
CHANGED
|
@@ -7,5 +7,4 @@
|
|
|
7
7
|
export * from './types';
|
|
8
8
|
export { ErrorClassifier, createErrorClassifier, classifyError, getFailureLevel, type ErrorClassifierConfig, } from './classifier';
|
|
9
9
|
export { FailureRecorder, createFailureRecorder, type FailureRecorderConfig, } from './recorder';
|
|
10
|
-
export { ConstraintViolationHandler, executeWithBlock, executeWithCollect, executeWithSafeBoolean, type ViolationStrategy, type ViolationHandlingResult, } from './constraint-handler';
|
|
11
10
|
//# sourceMappingURL=index.d.ts.map
|