@dommaker/harness 1.11.0 → 1.12.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 +20 -0
- package/dist/cli/commands/constraints-pack-proposal.d.ts +48 -0
- package/dist/cli/commands/constraints-pack-proposal.d.ts.map +1 -0
- package/dist/cli/commands/constraints-pack-proposal.js +169 -0
- package/dist/cli/commands/constraints-pack-proposal.js.map +1 -0
- package/dist/cli/commands/constraints-reactivate.d.ts +55 -0
- package/dist/cli/commands/constraints-reactivate.d.ts.map +1 -0
- package/dist/cli/commands/constraints-reactivate.js +175 -0
- package/dist/cli/commands/constraints-reactivate.js.map +1 -0
- package/dist/cli/commands/constraints-report.d.ts +12 -1
- package/dist/cli/commands/constraints-report.d.ts.map +1 -1
- package/dist/cli/commands/constraints-report.js +35 -2
- package/dist/cli/commands/constraints-report.js.map +1 -1
- package/dist/cli/commands/constraints-retire.d.ts +49 -4
- package/dist/cli/commands/constraints-retire.d.ts.map +1 -1
- package/dist/cli/commands/constraints-retire.js +116 -34
- package/dist/cli/commands/constraints-retire.js.map +1 -1
- package/dist/cli/commands/definitions.d.ts.map +1 -1
- package/dist/cli/commands/definitions.js +31 -1
- package/dist/cli/commands/definitions.js.map +1 -1
- package/dist/cli/commands/knowledge-view.d.ts +6 -3
- package/dist/cli/commands/knowledge-view.d.ts.map +1 -1
- package/dist/cli/commands/knowledge-view.js +8 -26
- package/dist/cli/commands/knowledge-view.js.map +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +9 -5
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/state-io.d.ts +8 -1
- package/dist/cli/state-io.d.ts.map +1 -1
- package/dist/cli/state-io.js +2 -1
- package/dist/cli/state-io.js.map +1 -1
- package/dist/core/app-constraints-loader.d.ts +28 -0
- package/dist/core/app-constraints-loader.d.ts.map +1 -0
- package/dist/core/app-constraints-loader.js +187 -0
- package/dist/core/app-constraints-loader.js.map +1 -0
- package/dist/core/constraints/checker.js +1 -1
- package/dist/core/constraints/checker.js.map +1 -1
- package/dist/core/constraints/checkers/index.d.ts +20 -9
- package/dist/core/constraints/checkers/index.d.ts.map +1 -1
- package/dist/core/constraints/checkers/index.js +40 -11
- package/dist/core/constraints/checkers/index.js.map +1 -1
- package/dist/core/constraints/checkers/templated/file-exists.d.ts +16 -0
- package/dist/core/constraints/checkers/templated/file-exists.d.ts.map +1 -0
- package/dist/core/constraints/checkers/templated/file-exists.js +108 -0
- package/dist/core/constraints/checkers/templated/file-exists.js.map +1 -0
- package/dist/core/constraints/checkers/templated/glob.d.ts +10 -0
- package/dist/core/constraints/checkers/templated/glob.d.ts.map +1 -0
- package/dist/core/constraints/checkers/templated/glob.js +51 -0
- package/dist/core/constraints/checkers/templated/glob.js.map +1 -0
- package/dist/core/constraints/checkers/templated/index.d.ts +12 -0
- package/dist/core/constraints/checkers/templated/index.d.ts.map +1 -0
- package/dist/core/constraints/checkers/templated/index.js +17 -0
- package/dist/core/constraints/checkers/templated/index.js.map +1 -0
- package/dist/core/constraints/checkers/templated/regex-scan.d.ts +15 -0
- package/dist/core/constraints/checkers/templated/regex-scan.d.ts.map +1 -0
- package/dist/core/constraints/checkers/templated/regex-scan.js +129 -0
- package/dist/core/constraints/checkers/templated/regex-scan.js.map +1 -0
- package/dist/core/constraints/checkers/templates-registry.d.ts +17 -0
- package/dist/core/constraints/checkers/templates-registry.d.ts.map +1 -0
- package/dist/core/constraints/checkers/templates-registry.js +23 -0
- package/dist/core/constraints/checkers/templates-registry.js.map +1 -0
- package/dist/core/constraints/checkers/types.d.ts +14 -0
- package/dist/core/constraints/checkers/types.d.ts.map +1 -1
- package/dist/core/constraints/checkers/types.js.map +1 -1
- package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
- package/dist/core/constraints/definitions/guidelines.js +0 -14
- package/dist/core/constraints/definitions/guidelines.js.map +1 -1
- package/dist/core/constraints/definitions/iron-laws.d.ts.map +1 -1
- package/dist/core/constraints/definitions/iron-laws.js +15 -0
- package/dist/core/constraints/definitions/iron-laws.js.map +1 -1
- package/dist/core/constraints/usage-report.d.ts +58 -6
- package/dist/core/constraints/usage-report.d.ts.map +1 -1
- package/dist/core/constraints/usage-report.js +61 -12
- package/dist/core/constraints/usage-report.js.map +1 -1
- package/dist/core/project-config-loader.d.ts +9 -6
- package/dist/core/project-config-loader.d.ts.map +1 -1
- package/dist/core/project-config-loader.js +18 -8
- package/dist/core/project-config-loader.js.map +1 -1
- package/dist/gates/command.d.ts.map +1 -1
- package/dist/gates/command.js +50 -0
- package/dist/gates/command.js.map +1 -1
- package/dist/knowledge/lifecycle.d.ts +14 -0
- package/dist/knowledge/lifecycle.d.ts.map +1 -1
- package/dist/knowledge/lifecycle.js +50 -0
- package/dist/knowledge/lifecycle.js.map +1 -1
- package/dist/presets/standard.d.ts +1 -1
- package/dist/presets/standard.d.ts.map +1 -1
- package/dist/presets/standard.js +2 -3
- package/dist/presets/standard.js.map +1 -1
- package/dist/types/constraint.d.ts +24 -0
- package/dist/types/constraint.d.ts.map +1 -1
- package/dist/types/constraint.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/app-constraints-loader.test.ts +220 -0
- package/src/__tests__/iron-laws.test.ts +5 -5
- package/src/cli/commands/CONTEXT.md +3 -2
- package/src/cli/commands/__tests__/check.test.ts +22 -4
- package/src/cli/commands/__tests__/constraints-pack-proposal.test.ts +142 -0
- package/src/cli/commands/__tests__/constraints-reactivate.test.ts +210 -0
- package/src/cli/commands/__tests__/constraints-report.test.ts +175 -6
- package/src/cli/commands/__tests__/constraints-retire.test.ts +135 -10
- package/src/cli/commands/__tests__/knowledge.test.ts +6 -16
- package/src/cli/commands/__tests__/report-app-constraints.test.ts +67 -0
- package/src/cli/commands/constraints-pack-proposal.ts +172 -0
- package/src/cli/commands/constraints-reactivate.ts +197 -0
- package/src/cli/commands/constraints-report.ts +44 -2
- package/src/cli/commands/constraints-retire.ts +129 -36
- package/src/cli/commands/definitions.ts +31 -1
- package/src/cli/commands/knowledge-view.ts +9 -28
- package/src/cli/commands/report.ts +9 -5
- package/src/cli/state-io.ts +8 -1
- package/src/core/CONTEXT.md +5 -4
- package/src/core/app-constraints-loader.ts +165 -0
- package/src/core/constraints/__tests__/collect-constraints.test.ts +3 -1
- package/src/core/constraints/__tests__/usage-report.test.ts +63 -0
- package/src/core/constraints/checker.ts +1 -1
- package/src/core/constraints/checkers/__tests__/templated-checkers.test.ts +180 -0
- package/src/core/constraints/checkers/__tests__/templates-registry.test.ts +81 -0
- package/src/core/constraints/checkers/index.ts +44 -10
- package/src/core/constraints/checkers/templated/file-exists.ts +75 -0
- package/src/core/constraints/checkers/templated/glob.ts +46 -0
- package/src/core/constraints/checkers/templated/index.ts +12 -0
- package/src/core/constraints/checkers/templated/regex-scan.ts +132 -0
- package/src/core/constraints/checkers/templates-registry.ts +22 -0
- package/src/core/constraints/checkers/types.ts +15 -0
- package/src/core/constraints/definitions/guidelines.ts +0 -15
- package/src/core/constraints/definitions/iron-laws.ts +16 -0
- package/src/core/constraints/usage-report.ts +128 -13
- package/src/core/project-config-loader.ts +19 -8
- package/src/gates/__tests__/command.test.ts +54 -0
- package/src/gates/command.ts +51 -0
- package/src/knowledge/CONTEXT.md +3 -1
- package/src/knowledge/__tests__/lifecycle.test.ts +81 -0
- package/src/knowledge/lifecycle.ts +49 -0
- package/src/presets/__tests__/standard.test.ts +5 -4
- package/src/presets/standard.ts +2 -3
- package/src/types/constraint.ts +28 -0
|
@@ -163,8 +163,10 @@ class KnowledgeLifecycle {
|
|
|
163
163
|
};
|
|
164
164
|
this.store.update(entryId, { maturity: target });
|
|
165
165
|
// AC-8a: After promotion, check skillCandidate eligibility
|
|
166
|
+
// 块 3 子项 6(ADR-0033):同位触发 constraintCandidate 判定——两标独立,可同挂
|
|
166
167
|
if (target === 'proven') {
|
|
167
168
|
this.checkSkillCandidate(entryId);
|
|
169
|
+
this.checkConstraintCandidate(entryId);
|
|
168
170
|
}
|
|
169
171
|
return change;
|
|
170
172
|
}
|
|
@@ -217,6 +219,54 @@ class KnowledgeLifecycle {
|
|
|
217
219
|
return false;
|
|
218
220
|
return true;
|
|
219
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* 块 3 子项 6(ADR-0033):Check if a proven entry qualifies as a constraintCandidate.
|
|
224
|
+
* Marks with 'constraintCandidate' tag and emits event if eligible.
|
|
225
|
+
* Returns true if newly marked.
|
|
226
|
+
*
|
|
227
|
+
* 判定口径(人类已批准,设计稿 Q4):proven + 未打过标 + references≥5
|
|
228
|
+
* (referencedBy 条数,与 recordReference 的 refKey 口径一致)+ ≥3 个不同来源会话
|
|
229
|
+
* (contributors,与 skill 候选同字段)。与 skillCandidate 互不干扰,可同挂两标。
|
|
230
|
+
*/
|
|
231
|
+
checkConstraintCandidate(entryId) {
|
|
232
|
+
const entry = this.store.get(entryId);
|
|
233
|
+
if (!entry)
|
|
234
|
+
return false;
|
|
235
|
+
if (!this.isConstraintCandidate(entry))
|
|
236
|
+
return false;
|
|
237
|
+
// Mark as constraintCandidate
|
|
238
|
+
this.store.update(entryId, {
|
|
239
|
+
tags: [...entry.tags, 'constraintCandidate'],
|
|
240
|
+
});
|
|
241
|
+
// Emit event for downstream consumers
|
|
242
|
+
const now = new Date().toISOString();
|
|
243
|
+
for (const cb of this.onReferenceCallbacks) {
|
|
244
|
+
try {
|
|
245
|
+
cb({
|
|
246
|
+
entryId,
|
|
247
|
+
contributor: 'lifecycle',
|
|
248
|
+
timestamp: now,
|
|
249
|
+
context: 'constraintCandidate:marked',
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
catch { /* non-blocking */ }
|
|
253
|
+
}
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* 块 3 子项 6:Check if an entry meets constraintCandidate criteria.
|
|
258
|
+
*/
|
|
259
|
+
isConstraintCandidate(entry) {
|
|
260
|
+
if (entry.maturity !== 'proven')
|
|
261
|
+
return false;
|
|
262
|
+
if (entry.tags.includes('constraintCandidate'))
|
|
263
|
+
return false;
|
|
264
|
+
if (entry.referencedBy.length < 5)
|
|
265
|
+
return false;
|
|
266
|
+
if (entry.contributors.length < 3)
|
|
267
|
+
return false;
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
220
270
|
/**
|
|
221
271
|
* AC-8c: Remove skillCandidate tag if success rate drops below 50%.
|
|
222
272
|
* Called after execution writeback.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/knowledge/lifecycle.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,mCAA+C;AAG/C,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAYhC,MAAa,kBAAkB;IACrB,KAAK,CAAiB;IACtB,MAAM,CAAc;IACpB,oBAAoB,GAA6C,EAAE,CAAC;IAE5E,YAAY,KAAqB,EAAE,MAA6B;QAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,4BAAoB,EAAE,GAAG,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,gEAAgE;IAChE,WAAW,CAAC,QAA2C;QACrD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,OAAe,EAAE,WAAoB,EAAE,OAAiB,EAAE,MAAyB;QACjG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,WAAW,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3E,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC;YACtC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAEvB,MAAM,MAAM,GAAG,GAAG,WAAW,IAAI,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAErF,iFAAiF;QACjF,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,gDAAgD;YAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,gBAAgB,GAAG;oBACvB,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;oBACjC,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;iBACvF,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/E,MAAM,gBAAgB,GAAG,OAAO,KAAK,SAAS;YAC5C,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;YACvJ,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACzC,cAAc,EAAE,GAAG;YACnB,YAAY;YACZ,YAAY;YACZ,gBAAgB;SACjB,CAAC,CAAC;QAEH,mCAAmC;QACnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;OASG;IACH,cAAc,CAAC,OAAe;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,6CAA6C;QAC7C,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QAEpD,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,IAAI,WAAW,CAAC;QAElD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAM,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACxD,KAAK,SAAS,CAAC,CAAG,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC3D,KAAK,QAAQ,CAAC,CAAI,OAAO,SAAS,CAAC,CAAC,wBAAwB;YAC5D,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,OAAe;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,oDAAoD;QACpD,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAC3D,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,IAAI,WAAW,CAAC;QAElD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAM,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACzD,KAAK,SAAS,CAAC,CAAG,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACvD,KAAK,QAAQ,CAAC,CAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,cAAc,IAAI,cAAc,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxD,MAAM,MAAM,GAAmB;oBAC7B,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,IAAI,EAAE,KAAK,CAAC,QAAQ;oBACpB,EAAE,EAAE,cAAc;oBAClB,MAAM,EAAE,eAAe,KAAK,CAAC,QAAQ,MAAM,cAAc,+BAA+B;iBACzF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAe;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAE3D,MAAM,MAAM,GAAmB;YAC7B,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,cAAc,KAAK,CAAC,QAAQ,MAAM,MAAM,EAAE;SACnD,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjD,2DAA2D;QAC3D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEhD,yBAAyB;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC;SACxC,CAAC,CAAC;QAEH,sCAAsC;QACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,EAAE,CAAC;oBACD,OAAO;oBACP,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,uBAAuB;iBACjC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAqB;QAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAEnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,6BAA6B,CAAC,OAAe;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;YAC3D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;gBACzB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAC;aACrD,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,OAAe;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/F,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACvE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/F,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;QAC9E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAChD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;QAClC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC7D,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED,8DAA8D;IAE9D,kDAAkD;IAC1C,kBAAkB,CAAC,KAAqB;QAC9C,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG;YAAE,OAAO,QAAQ,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wDAAwD;IAChD,uBAAuB,CAAC,KAAqB;QACnD,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;YACvB,KAAK,OAAO;gBACV,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;oBAAE,OAAO,UAAU,CAAC;gBACjF,OAAO,SAAS,CAAC;YAEnB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,sBAAsB;oBAAE,OAAO,SAAS,CAAC;gBAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,IAAI,GAAG;oBAAE,OAAO,QAAQ,CAAC;gBAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACxD,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,IAAI,GAAG;oBAAE,OAAO,QAAQ,CAAC;gBAC7E,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;oBAAE,OAAO,QAAQ,CAAC;gBAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;gBACjD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpG,IAAI,QAAQ,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,IAAI,CAAC;oBAAE,OAAO,QAAQ,CAAC;gBAChE,OAAO,SAAS,CAAC;YACnB,CAAC;YAED;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,6CAA6C;IACrC,qBAAqB,CAAC,KAAqB;QACjD,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QACjD,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8DAA8D;IAE9D,oEAAoE;IAC5D,cAAc,CAAC,KAAqB;QAC1C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,0BAA0B,IAAI,IAAI,CAAC,IAAI,IAAI,mBAAmB;YAAE,OAAO,YAAY,CAAC;QAC9G,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yEAAyE;IACjE,mBAAmB,CAAC,KAAqB;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEjD,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;YACvB,KAAK,QAAQ;gBACX,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB;oBAAE,OAAO,UAAU,CAAC;gBACvE,OAAO,SAAS,CAAC;YACnB,KAAK,UAAU;gBACb,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB;oBAAE,OAAO,OAAO,CAAC;gBACtE,OAAO,SAAS,CAAC;YACnB,KAAK,OAAO;gBACV,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBAAE,OAAO,UAAU,CAAC;gBACtE,OAAO,SAAS,CAAC;YACnB;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,uEAAuE;IAC/D,iBAAiB,CAAC,KAAqB;QAC7C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,oBAAoB;YAAE,OAAO,UAAU,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,KAAqB;QAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;QACjD,IAAI,QAAQ,GAAG,2BAA2B;YAAE,OAAO,SAAS,CAAC;QAE7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACV,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;YACjB,CAAC,CAAC,CAAC,eAAe,IAAI,WAAW,CAAC,KAAK,QAAQ;YAC/C,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAC1B,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8DAA8D;IAEtD,WAAW,CAAC,OAAe;QACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;CACF;AA9XD,gDA8XC"}
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/knowledge/lifecycle.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,mCAA+C;AAG/C,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAYhC,MAAa,kBAAkB;IACrB,KAAK,CAAiB;IACtB,MAAM,CAAc;IACpB,oBAAoB,GAA6C,EAAE,CAAC;IAE5E,YAAY,KAAqB,EAAE,MAA6B;QAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,4BAAoB,EAAE,GAAG,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,gEAAgE;IAChE,WAAW,CAAC,QAA2C;QACrD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,OAAe,EAAE,WAAoB,EAAE,OAAiB,EAAE,MAAyB;QACjG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,WAAW,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3E,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC;YACtC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAEvB,MAAM,MAAM,GAAG,GAAG,WAAW,IAAI,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAErF,iFAAiF;QACjF,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,gDAAgD;YAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,gBAAgB,GAAG;oBACvB,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;oBACjC,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;iBACvF,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/E,MAAM,gBAAgB,GAAG,OAAO,KAAK,SAAS;YAC5C,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;YACvJ,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACzC,cAAc,EAAE,GAAG;YACnB,YAAY;YACZ,YAAY;YACZ,gBAAgB;SACjB,CAAC,CAAC;QAEH,mCAAmC;QACnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;OASG;IACH,cAAc,CAAC,OAAe;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,6CAA6C;QAC7C,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QAEpD,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,IAAI,WAAW,CAAC;QAElD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAM,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACxD,KAAK,SAAS,CAAC,CAAG,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC3D,KAAK,QAAQ,CAAC,CAAI,OAAO,SAAS,CAAC,CAAC,wBAAwB;YAC5D,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,OAAe;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,oDAAoD;QACpD,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAC3D,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,IAAI,WAAW,CAAC;QAElD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAM,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACzD,KAAK,SAAS,CAAC,CAAG,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACvD,KAAK,QAAQ,CAAC,CAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,cAAc,IAAI,cAAc,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxD,MAAM,MAAM,GAAmB;oBAC7B,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,IAAI,EAAE,KAAK,CAAC,QAAQ;oBACpB,EAAE,EAAE,cAAc;oBAClB,MAAM,EAAE,eAAe,KAAK,CAAC,QAAQ,MAAM,cAAc,+BAA+B;iBACzF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAe;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAE3D,MAAM,MAAM,GAAmB;YAC7B,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,cAAc,KAAK,CAAC,QAAQ,MAAM,MAAM,EAAE;SACnD,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjD,2DAA2D;QAC3D,2DAA2D;QAC3D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEhD,yBAAyB;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC;SACxC,CAAC,CAAC;QAEH,sCAAsC;QACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,EAAE,CAAC;oBACD,OAAO;oBACP,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,uBAAuB;iBACjC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAqB;QAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAEnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,wBAAwB,CAAC,OAAe;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAErD,8BAA8B;QAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC;SAC7C,CAAC,CAAC;QAEH,sCAAsC;QACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,EAAE,CAAC;oBACD,OAAO;oBACP,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,4BAA4B;iBACtC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAAqB;QACjD,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAEhD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,6BAA6B,CAAC,OAAe;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;YAC3D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;gBACzB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAC;aACrD,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,OAAe;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/F,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACvE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/F,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;QAC9E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAChD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;QAClC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC7D,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED,8DAA8D;IAE9D,kDAAkD;IAC1C,kBAAkB,CAAC,KAAqB;QAC9C,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG;YAAE,OAAO,QAAQ,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wDAAwD;IAChD,uBAAuB,CAAC,KAAqB;QACnD,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;YACvB,KAAK,OAAO;gBACV,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;oBAAE,OAAO,UAAU,CAAC;gBACjF,OAAO,SAAS,CAAC;YAEnB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,sBAAsB;oBAAE,OAAO,SAAS,CAAC;gBAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,IAAI,GAAG;oBAAE,OAAO,QAAQ,CAAC;gBAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACxD,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,IAAI,GAAG;oBAAE,OAAO,QAAQ,CAAC;gBAC7E,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;oBAAE,OAAO,QAAQ,CAAC;gBAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;gBACjD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpG,IAAI,QAAQ,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,IAAI,CAAC;oBAAE,OAAO,QAAQ,CAAC;gBAChE,OAAO,SAAS,CAAC;YACnB,CAAC;YAED;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,6CAA6C;IACrC,qBAAqB,CAAC,KAAqB;QACjD,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QACjD,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8DAA8D;IAE9D,oEAAoE;IAC5D,cAAc,CAAC,KAAqB;QAC1C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,0BAA0B,IAAI,IAAI,CAAC,IAAI,IAAI,mBAAmB;YAAE,OAAO,YAAY,CAAC;QAC9G,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yEAAyE;IACjE,mBAAmB,CAAC,KAAqB;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEjD,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;YACvB,KAAK,QAAQ;gBACX,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB;oBAAE,OAAO,UAAU,CAAC;gBACvE,OAAO,SAAS,CAAC;YACnB,KAAK,UAAU;gBACb,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB;oBAAE,OAAO,OAAO,CAAC;gBACtE,OAAO,SAAS,CAAC;YACnB,KAAK,OAAO;gBACV,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBAAE,OAAO,UAAU,CAAC;gBACtE,OAAO,SAAS,CAAC;YACnB;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,uEAAuE;IAC/D,iBAAiB,CAAC,KAAqB;QAC7C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,oBAAoB;YAAE,OAAO,UAAU,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,KAAqB;QAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;QACjD,IAAI,QAAQ,GAAG,2BAA2B;YAAE,OAAO,SAAS,CAAC;QAE7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACV,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;YACjB,CAAC,CAAC,CAAC,eAAe,IAAI,WAAW,CAAC,KAAK,QAAQ;YAC/C,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAC1B,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,UAAU,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8DAA8D;IAEtD,WAAW,CAAC,OAAe;QACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;CACF;AA/aD,gDA+aC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../src/presets/standard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,YAI3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,YAI7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../src/presets/standard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,YAI3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,YAI7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,YAO5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAIxD,CAAC"}
|
package/dist/presets/standard.js
CHANGED
|
@@ -33,16 +33,15 @@ exports.STANDARD_PRESET = {
|
|
|
33
33
|
/**
|
|
34
34
|
* 宽松预设
|
|
35
35
|
*
|
|
36
|
-
* 仅启用核心 error
|
|
36
|
+
* 仅启用核心 error 级与凭证扫描(ADR-0032 起凭证扫描为 error 级,同桶)
|
|
37
37
|
*/
|
|
38
38
|
exports.RELAXED_PRESET = {
|
|
39
39
|
name: 'relaxed',
|
|
40
40
|
errors: [
|
|
41
41
|
'no_completion_without_verification',
|
|
42
|
-
],
|
|
43
|
-
warnings: [
|
|
44
42
|
'no_hardcoded_credentials',
|
|
45
43
|
],
|
|
44
|
+
warnings: [],
|
|
46
45
|
};
|
|
47
46
|
/**
|
|
48
47
|
* 预设名 → 预设数据
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../src/presets/standard.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAgBH;;;;GAIG;AACU,QAAA,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,IAAI,EAAK,OAAO;IACxB,QAAQ,EAAE,IAAI,EAAG,OAAO;CACzB,CAAC;AAEF;;;;GAIG;AACU,QAAA,eAAe,GAAiB;IAC3C,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI,EAAK,OAAO;IACxB,QAAQ,EAAE,IAAI,EAAG,OAAO;CACzB,CAAC;AAEF;;;;GAIG;AACU,QAAA,cAAc,GAAiB;IAC1C,IAAI,EAAE,SAAS;IACf,MAAM,EAAE;QACN,oCAAoC;
|
|
1
|
+
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../src/presets/standard.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAgBH;;;;GAIG;AACU,QAAA,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,IAAI,EAAK,OAAO;IACxB,QAAQ,EAAE,IAAI,EAAG,OAAO;CACzB,CAAC;AAEF;;;;GAIG;AACU,QAAA,eAAe,GAAiB;IAC3C,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI,EAAK,OAAO;IACxB,QAAQ,EAAE,IAAI,EAAG,OAAO;CACzB,CAAC;AAEF;;;;GAIG;AACU,QAAA,cAAc,GAAiB;IAC1C,IAAI,EAAE,SAAS;IACf,MAAM,EAAE;QACN,oCAAoC;QACpC,0BAA0B;KAC3B;IACD,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF;;;;;GAKG;AACU,QAAA,eAAe,GAAiC;IAC3D,MAAM,EAAE,qBAAa;IACrB,QAAQ,EAAE,uBAAe;IACzB,OAAO,EAAE,sBAAc;CACxB,CAAC"}
|
|
@@ -27,6 +27,14 @@ export type ConstraintSeverity = 'error' | 'warning' | 'info';
|
|
|
27
27
|
* 无需修改 harness 即可添加领域特定 trigger。
|
|
28
28
|
*/
|
|
29
29
|
export type ConstraintTrigger = string;
|
|
30
|
+
/**
|
|
31
|
+
* 约束来源(ADR-0033 两层约束模型)
|
|
32
|
+
*
|
|
33
|
+
* - builtin:内置约束(definitions/ 字面量定义,checker 按约束 id 注册查找)
|
|
34
|
+
* - app:应用层约束(应用仓 `.harness/constraints.yml` 定义,checker 按模板 id +
|
|
35
|
+
* params 实例化);缺省 builtin
|
|
36
|
+
*/
|
|
37
|
+
export type ConstraintSource = 'builtin' | 'app';
|
|
30
38
|
/**
|
|
31
39
|
* 约束定义
|
|
32
40
|
*/
|
|
@@ -52,6 +60,22 @@ export interface Constraint {
|
|
|
52
60
|
description?: string;
|
|
53
61
|
/** 是否启用 */
|
|
54
62
|
enabled?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* 约束来源(ADR-0033):缺省 builtin
|
|
65
|
+
*
|
|
66
|
+
* app = 应用层约束(应用仓 `.harness/constraints.yml` 定义);
|
|
67
|
+
* report/退休/提案据此区分来源
|
|
68
|
+
*/
|
|
69
|
+
source?: ConstraintSource;
|
|
70
|
+
/**
|
|
71
|
+
* 填空式 checker 模板 id(仅 source='app' 使用)
|
|
72
|
+
*
|
|
73
|
+
* 内置约束省略 = checker 按约束 id 在内置注册表查找;应用层约束按模板 id
|
|
74
|
+
* 在模板注册表(checkers/index.ts TEMPLATES)查找并带 params 实例化
|
|
75
|
+
*/
|
|
76
|
+
checker?: string;
|
|
77
|
+
/** 模板参数(仅 source='app' 使用,形状由各模板的 validateParams 校验) */
|
|
78
|
+
params?: Record<string, unknown>;
|
|
55
79
|
}
|
|
56
80
|
/**
|
|
57
81
|
* 约束检查结果
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/types/constraint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,EAAE,EAAE,YAAY,CAAC;IAEjB;;;OAGG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IAEb,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAEhB,uDAAuD;IACvD,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,yBAAyB;IACzB,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IAEjD,iBAAiB;IACjB,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/types/constraint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/types/constraint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;
|
|
1
|
+
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/types/constraint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AA2MH;;GAEG;AACH,MAAa,wBAAyB,SAAQ,KAAK;IACjC,MAAM,CAAmB;IAEzC,YAAY,MAAwB;QAClC,+DAA+D;QAC/D,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM;YACpC,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACjE,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,sBAAsB,GAAG,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAbD,4DAaC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 应用层约束加载器(ADR-0033 两层约束模型)测试
|
|
3
|
+
*
|
|
4
|
+
* 覆盖面:
|
|
5
|
+
* - loadAppConstraints 校验分支(文件不存在 / 坏 YAML / 缺必填字段 / id 无前缀 /
|
|
6
|
+
* id 与内置冲突 / 未知模板 / validateParams 失败 / trigger 形状)
|
|
7
|
+
* - 实例化缺省(source='app'、kind='check'、trigger 缺省全操作集、message 回落 rule)
|
|
8
|
+
* - memo 口径与 RunEnv.rawConfig 同形(同一观察面至多读一次;路径入参每次读当下内容)
|
|
9
|
+
* - 合并链(mergeConstraints / getEffectiveConstraints):应用层并入 +
|
|
10
|
+
* config.yml enabled:false / retired 墓碑对应用层 id 同口径生效 + 不进 unknownIds
|
|
11
|
+
*
|
|
12
|
+
* 模板注册表(TEMPLATES)本票为空表:测试用替身模板注册/注销,
|
|
13
|
+
* 真实模板(regex-scan / file-exists)随子项 2 进场。
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { describe, it, expect, afterEach } from '@jest/globals';
|
|
17
|
+
import * as fs from 'fs';
|
|
18
|
+
import * as path from 'path';
|
|
19
|
+
import { loadAppConstraints } from '../core/app-constraints-loader';
|
|
20
|
+
import { getEffectiveConstraints, lintEffectiveConfig, getMergedConstraintsConfig } from '../core/effective-constraints';
|
|
21
|
+
import { CONSTRAINTS } from '../core/constraints/definitions';
|
|
22
|
+
import { createRunEnv } from '../core/constraints/run-env';
|
|
23
|
+
import { TEMPLATES, type TemplatedCheckerFactory } from '../core/constraints/checkers';
|
|
24
|
+
import { createProjectFixture } from '../test-setup/project-fixture';
|
|
25
|
+
|
|
26
|
+
const CONSTRAINTS_YML = path.join('.harness', 'constraints.yml');
|
|
27
|
+
|
|
28
|
+
const BUILTIN_TOTAL = Object.keys(CONSTRAINTS).length;
|
|
29
|
+
|
|
30
|
+
/** 替身模板:validateParams 要求 params.must 为 true(其余参数放行) */
|
|
31
|
+
const FAKE_TEMPLATE: TemplatedCheckerFactory = {
|
|
32
|
+
validateParams: (params) => (params.must === true ? [] : ['params.must 必须为 true']),
|
|
33
|
+
create: (id) => ({ id, evaluate: () => true }),
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
function fixture(constraintsYml?: string, configYml?: string): string {
|
|
37
|
+
return createProjectFixture({
|
|
38
|
+
name: 'app-constraints',
|
|
39
|
+
config: configYml,
|
|
40
|
+
files: constraintsYml !== undefined ? { [CONSTRAINTS_YML]: constraintsYml } : undefined,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const VALID = `
|
|
45
|
+
constraints:
|
|
46
|
+
- id: app_no_internal_url
|
|
47
|
+
rule: Web code must not contain internal URLs
|
|
48
|
+
checker: fake-template
|
|
49
|
+
params:
|
|
50
|
+
must: true
|
|
51
|
+
severity: warning
|
|
52
|
+
message: 检测到内网地址
|
|
53
|
+
`;
|
|
54
|
+
|
|
55
|
+
// 替身模板逐用例注册、统一注销:不污染模板注册表(其他套件断言注册表构成)
|
|
56
|
+
afterEach(() => {
|
|
57
|
+
TEMPLATES.delete('fake-template');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
function registerFake(): void {
|
|
61
|
+
TEMPLATES.set('fake-template', FAKE_TEMPLATE);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
describe('loadAppConstraints 校验分支', () => {
|
|
65
|
+
it('文件不存在 = 无应用层约束,正常返回空', () => {
|
|
66
|
+
expect(loadAppConstraints(fixture())).toEqual([]);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('合法条目 → Constraint(source=app,kind=check,缺省 trigger=全操作集,message 回落 rule)', () => {
|
|
70
|
+
registerFake();
|
|
71
|
+
const constraints = loadAppConstraints(fixture(VALID));
|
|
72
|
+
|
|
73
|
+
expect(constraints).toHaveLength(1);
|
|
74
|
+
const c = constraints[0];
|
|
75
|
+
expect(c).toMatchObject({
|
|
76
|
+
id: 'app_no_internal_url',
|
|
77
|
+
kind: 'check',
|
|
78
|
+
rule: 'Web code must not contain internal URLs',
|
|
79
|
+
severity: 'warning',
|
|
80
|
+
message: '检测到内网地址',
|
|
81
|
+
source: 'app',
|
|
82
|
+
checker: 'fake-template',
|
|
83
|
+
params: { must: true },
|
|
84
|
+
});
|
|
85
|
+
// 缺省 trigger = 每次 check 都评估
|
|
86
|
+
expect(Array.isArray(c.trigger)).toBe(true);
|
|
87
|
+
expect(c.trigger).toContain('commit');
|
|
88
|
+
expect(c.trigger).toContain('file_modification');
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it('坏 YAML → 抛错(配置坏不能静默放行)', () => {
|
|
92
|
+
const root = fixture('constraints:\n - id: app_x\n bad indent: [');
|
|
93
|
+
expect(() => loadAppConstraints(root)).toThrow(/YAML 解析失败/);
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it('id 无 app_ 前缀 → 抛错', () => {
|
|
97
|
+
registerFake();
|
|
98
|
+
const root = fixture(`
|
|
99
|
+
constraints:
|
|
100
|
+
- id: no_prefix
|
|
101
|
+
rule: r
|
|
102
|
+
checker: fake-template
|
|
103
|
+
severity: warning
|
|
104
|
+
`);
|
|
105
|
+
expect(() => loadAppConstraints(root)).toThrow(/app_ 前缀/);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
it('id 与内置约束冲突 → 抛错', () => {
|
|
109
|
+
registerFake();
|
|
110
|
+
const builtinId = Object.keys(CONSTRAINTS)[0];
|
|
111
|
+
const root = fixture(`
|
|
112
|
+
constraints:
|
|
113
|
+
- id: ${builtinId}
|
|
114
|
+
rule: r
|
|
115
|
+
checker: fake-template
|
|
116
|
+
severity: warning
|
|
117
|
+
`);
|
|
118
|
+
expect(() => loadAppConstraints(root)).toThrow(/与内置约束冲突/);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it('checker 模板未注册 → 抛错(加载期闭环)', () => {
|
|
122
|
+
const root = fixture(`
|
|
123
|
+
constraints:
|
|
124
|
+
- id: app_unknown_template
|
|
125
|
+
rule: r
|
|
126
|
+
checker: not-a-template
|
|
127
|
+
severity: warning
|
|
128
|
+
`);
|
|
129
|
+
expect(() => loadAppConstraints(root)).toThrow(/未注册/);
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it.each([
|
|
133
|
+
['id', 'rule: r\nchecker: fake-template\nseverity: warning'],
|
|
134
|
+
['rule', 'id: app_x\nchecker: fake-template\nseverity: warning'],
|
|
135
|
+
['checker', 'id: app_x\nrule: r\nseverity: warning'],
|
|
136
|
+
['severity', 'id: app_x\nrule: r\nchecker: fake-template'],
|
|
137
|
+
])('缺必填字段 %s → 抛错', (_field, entryYaml) => {
|
|
138
|
+
registerFake();
|
|
139
|
+
const root = fixture(`constraints:\n - ${entryYaml.replace(/\n/g, '\n ')}\n`);
|
|
140
|
+
expect(() => loadAppConstraints(root)).toThrow(/缺必填字段/);
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
it('severity 取值非法 → 抛错', () => {
|
|
144
|
+
registerFake();
|
|
145
|
+
const root = fixture(`
|
|
146
|
+
constraints:
|
|
147
|
+
- id: app_x
|
|
148
|
+
rule: r
|
|
149
|
+
checker: fake-template
|
|
150
|
+
severity: critical
|
|
151
|
+
`);
|
|
152
|
+
expect(() => loadAppConstraints(root)).toThrow(/severity/);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
it('validateParams 不通过 → 抛错(参数坏早报)', () => {
|
|
156
|
+
registerFake();
|
|
157
|
+
const root = fixture(`
|
|
158
|
+
constraints:
|
|
159
|
+
- id: app_bad_params
|
|
160
|
+
rule: r
|
|
161
|
+
checker: fake-template
|
|
162
|
+
severity: warning
|
|
163
|
+
`);
|
|
164
|
+
expect(() => loadAppConstraints(root)).toThrow(/参数校验失败/);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
it('constraints 段不是数组 → 抛错;顶层缺 constraints 段 = 空', () => {
|
|
168
|
+
expect(() => loadAppConstraints(fixture('constraints: notalist\n'))).toThrow(/数组/);
|
|
169
|
+
expect(loadAppConstraints(fixture('preset: standard\n'))).toEqual([]);
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
it('memo 与 rawConfig 同形:同一 RunEnv 至多读一次(缓存同一数组引用)', () => {
|
|
173
|
+
registerFake();
|
|
174
|
+
const root = fixture(VALID);
|
|
175
|
+
const env = createRunEnv(root);
|
|
176
|
+
const first = loadAppConstraints(env);
|
|
177
|
+
// 观察面命中 memo 后,文件改动在本 run 内不可见
|
|
178
|
+
fs.writeFileSync(path.join(root, CONSTRAINTS_YML), 'constraints: []\n');
|
|
179
|
+
expect(loadAppConstraints(env)).toBe(first);
|
|
180
|
+
// 传路径 = 一次性观察面,每次读当下内容
|
|
181
|
+
expect(loadAppConstraints(root)).toEqual([]);
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
describe('合并链并入(ADR-0033)', () => {
|
|
186
|
+
it('应用层条目并入生效集尾部(getEffectiveConstraints)', () => {
|
|
187
|
+
registerFake();
|
|
188
|
+
const root = fixture(VALID);
|
|
189
|
+
const constraints = getEffectiveConstraints(root);
|
|
190
|
+
expect(constraints).toHaveLength(BUILTIN_TOTAL + 1);
|
|
191
|
+
const app = constraints.find(c => c.id === 'app_no_internal_url');
|
|
192
|
+
expect(app?.source).toBe('app');
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
it('config.yml enabled:false 禁用应用层条目(filterEnabledEntries 天然兼容)', () => {
|
|
196
|
+
registerFake();
|
|
197
|
+
const root = fixture(VALID, 'constraints:\n app_no_internal_url:\n enabled: false\n');
|
|
198
|
+
const merged = getMergedConstraintsConfig(root);
|
|
199
|
+
expect(merged.constraints.app_no_internal_url).toBeUndefined();
|
|
200
|
+
expect(merged.disabled).toContain('app_no_internal_url');
|
|
201
|
+
// 应用层 id 是已知 id,不进 unknownIds 诊断
|
|
202
|
+
expect(merged.unknownIds).toEqual([]);
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
it('config.yml retired 墓碑对应用层条目同样生效(随 enabled:false)', () => {
|
|
206
|
+
registerFake();
|
|
207
|
+
const root = fixture(
|
|
208
|
+
VALID,
|
|
209
|
+
'constraints:\n app_no_internal_url:\n enabled: false\n retired:\n at: 2026-09-22\n reason: 零拦截\n'
|
|
210
|
+
);
|
|
211
|
+
const ids = getEffectiveConstraints(root).map(c => c.id);
|
|
212
|
+
expect(ids).not.toContain('app_no_internal_url');
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
it('lintEffectiveConfig 不把应用层 id 报成未知', () => {
|
|
216
|
+
registerFake();
|
|
217
|
+
const root = fixture(VALID, 'constraints:\n app_no_internal_url:\n enabled: false\n');
|
|
218
|
+
expect(lintEffectiveConfig(root).unknownIds).toEqual([]);
|
|
219
|
+
});
|
|
220
|
+
});
|
|
@@ -21,11 +21,11 @@ describe('Constraint System', () => {
|
|
|
21
21
|
expect(all.every(c => c.kind === 'check')).toBe(true);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
it('severity 分桶 =
|
|
24
|
+
it('severity 分桶 = 4 error + 3 warning(ADR-0032:凭证扫描升 error)', () => {
|
|
25
25
|
const errors = Object.values(CONSTRAINTS).filter(c => c.severity === 'error');
|
|
26
26
|
const warnings = Object.values(CONSTRAINTS).filter(c => c.severity === 'warning');
|
|
27
|
-
expect(errors).toHaveLength(
|
|
28
|
-
expect(warnings).toHaveLength(
|
|
27
|
+
expect(errors).toHaveLength(4);
|
|
28
|
+
expect(warnings).toHaveLength(3);
|
|
29
29
|
Object.values(CONSTRAINTS).forEach(c => {
|
|
30
30
|
expect(c.kind).toBe('check');
|
|
31
31
|
});
|
|
@@ -222,13 +222,13 @@ describe('Constraint Checker', () => {
|
|
|
222
222
|
|
|
223
223
|
describe('Constraint Severity', () => {
|
|
224
224
|
it('error 级约束 severity 均为 error', () => {
|
|
225
|
-
['no_completion_without_verification', 'no_test_simplification', 'docs_freshness'].forEach(id => {
|
|
225
|
+
['no_completion_without_verification', 'no_test_simplification', 'docs_freshness', 'no_hardcoded_credentials'].forEach(id => {
|
|
226
226
|
expect(CONSTRAINTS[id].severity).toBe('error');
|
|
227
227
|
});
|
|
228
228
|
});
|
|
229
229
|
|
|
230
230
|
it('warning 级约束 severity 均为 warning', () => {
|
|
231
|
-
['
|
|
231
|
+
['capability_sync', 'context_doc_sync', 'governance_presence'].forEach(id => {
|
|
232
232
|
expect(CONSTRAINTS[id].severity).toBe('warning');
|
|
233
233
|
});
|
|
234
234
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# cli/commands/
|
|
2
2
|
|
|
3
3
|
## 职责
|
|
4
|
-
CLI 子命令实现:20 个顶层命令 + constraints 治理子命令 report/retire,覆盖约束检查/门禁验证/文档同步/知识管理/失败诊断/发布等。
|
|
4
|
+
CLI 子命令实现:20 个顶层命令 + constraints 治理子命令 report/retire/reactivate/pack-proposal,覆盖约束检查/门禁验证/文档同步/知识管理/失败诊断/发布等。
|
|
5
5
|
|
|
6
6
|
H5(#44)起:
|
|
7
7
|
- **命令定义即注册**:`definitions.ts` 的 `COMMAND_DEFINITIONS` 是命令形状(名称/别名/位置参数/选项/子命令/实现引用)的单一来源;bin/harness.js 遍历本表注册表驱动生成,不再手写 commander 命令块,不再有 index.ts barrel 两处同步(R6)
|
|
@@ -15,10 +15,11 @@ H5(#44)起:
|
|
|
15
15
|
- 脚手架落盘面(`src/cli/commands/scaffold.ts`)— 受管文件(managed file)三态判定 `writeManagedFile` / 一组落盘 `runPlan` + 8 个站点工厂(含对外文案;ADR-0029:custom-constraints.yml 示例站随 custom 约束面退役移除);模板正文住 `scaffold-templates.ts`,落盘注入面 `ScaffoldFileSystem` 可换内存替身(harness#132);CI 站点工厂 `harnessCheckCiFile` 带平台维度(github / gitlab,harness#143);两道 Git hook 工厂 `preCommitHookFile` / `prePushHookFile`(后者 harness#144,带可执行位)
|
|
16
16
|
- knowledge 投影面(`src/cli/commands/knowledge-view.ts`)— 11 个 knowledge 子操作的**display model** 渲染与出口:`emitKnowledgeView`(json/人读唯一分派 + 退出码)、`announce`(取数期进度行,`--json` 下静默)、`TONE_STYLES` 角色→样式单表、维度/规则 label 与 `toneForMaturity`/`toneForScore`/`toneForSeverity` 三张映射、`resolveKnowledgeBaseDir` + `openKnowledgeStore`(路径兜底与 store 构造单点)(harness#133)
|
|
17
17
|
- 各命令文件:check / validate / passes-gate / init / report / status / spec / sync-docs / knowledge / sdd / failure / release / constraints / spec-baseline-check
|
|
18
|
+
- `report` 的约束面走生效集(ADR-0033 修缺口):collectConstraints 传 getMergedConstraintsConfig 的 merged config(与 check.ts 同一入口),总数/分级计数按生效集——此前跑内置全集,config.yml 禁用与应用层条目(`.harness/constraints.yml`)都进不了报告面
|
|
18
19
|
- 6 门禁命令实现在 `acceptance` / `command` / `contract` / `performance` / `review` / `security`(其 CLI 元数据在 `src/gates/definitions.ts`,形状同为 `CommandDefinition`,ADR-0007);**判定一律穿过统一接口 `evaluate()`**,成败与措辞由共享面映射。`command` 只复用映射、保留自己的单行 ✓/✗ 输出(已对外的机器友好形状);`security audit` / `acceptance list` / `contract validate-schema` / `review status` / `command --list/--level` 是只展示不判断的子命令,直读报告面(`scan()` 等),不套骨架
|
|
19
20
|
- CLI 子命令 `command` 的两个分支共用同一台 gate 实例(#135/ADR-0024):默认分支经 `evaluate()` 取裁决、`--level` 经同一实例的 `getRiskLevel()` 取等级,命令侧不再引用模块级单例出口——「配置传进去却到不了判定」的那条路已封。`--strict` 旗帜随 `CommandGateConfig.strict`(零消费者、从不生效)一并删除
|
|
20
21
|
|
|
21
|
-
`constraints` 下挂治理子命令:`constraints report`(使用统计 + 退役候选诊断 + 配置健康,`--export` 脱敏;JSON 输出走 `--json-output`——原名 `--json` 与父命令同名会被 commander 消费在父侧、JSON 分支不可达,E1 复盘修正 M3.1 换名,闸见 `__tests__/constraints-report-json-flag.test.ts`)、`constraints retire`(交互选择 + 人确认退役;带 id 直达需显式 `--yes`(#24 人确认闸门),无 `--yes` 报错 + 非零退出码且不落盘;落 config.yml retired
|
|
22
|
+
`constraints` 下挂治理子命令:`constraints report`(使用统计 + 退役候选诊断 + 配置健康,`--export` 脱敏;JSON 输出走 `--json-output`——原名 `--json` 与父命令同名会被 commander 消费在父侧、JSON 分支不可达,E1 复盘修正 M3.1 换名,闸见 `__tests__/constraints-report-json-flag.test.ts`)、`constraints retire`(交互选择 + 人确认退役;带 id 直达需显式 `--yes`(#24 人确认闸门),无 `--yes` 报错 + 非零退出码且不落盘;落 config.yml retired 墓碑 + KnowledgeStore 沉淀——沉淀写口的 baseDir 走 knowledge-view `openKnowledgeStore` 同一解析点,与 knowledge 读口同根,不再硬编码 projectRoot 拼接(harness#177)。ADR-0029:注入漂移小节、prompt 注入清单、custom 落点与治理注入段同步已随文本注入层关停移除。ADR-0032:already_retired 只认 retired 墓碑,裸 enabled:false 由退休流程接管补墓碑+沉淀(票 02 断点 6);落盘后 git 仓内附 commit 提示,不替用户动 git(断点 4)。ADR-0033:findRetireTarget 扩到内置 + 应用层(`.harness/constraints.yml`)——应用层退休墓碑同写 config.yml(enabled:false + retired 同形),constraints.yml 条文保留不删,沉淀条目 tags 加 `source:app`)、`constraints reactivate`(点对点复活:删 retired 墓碑段 + 写 `constraint-reactivated-<id>` 新沉淀,不改历史(ADR-0032 决策 6.5,票 02 断点 5);直达同需 `--yes`,无交互模式;ADR-0033 起对应用层约束同路径可用)、`constraints pack-proposal`(升级提案材料打包,ADR-0033 决策 4,块 3 子项 5:条文 + checker 模板与参数 + traces 使用统计 + 升级理由留白的脱敏 markdown,缺省落 `.harness/reports/proposal-<id>-<YYYYMMDD>.md`,`--stdout` 打印不落盘;脱敏只做项目根路径→`<repoRoot>` 替换,params 原文带出并标注人工确认——打包是质量前置不是保密闸门,人拿材料去 harness 仓开 issue)。
|
|
22
23
|
|
|
23
24
|
## 依赖关系
|
|
24
25
|
- 依赖 `src/core/constraints/` 约束引擎
|
|
@@ -165,8 +165,8 @@ describe('check command(真 git fixture)', () => {
|
|
|
165
165
|
io
|
|
166
166
|
);
|
|
167
167
|
|
|
168
|
-
|
|
169
|
-
expect(io.outText()).toContain('✅
|
|
168
|
+
// ADR-0032 起凭证扫描为 error 级:code_implementation 下 error 评 2 条,warning 无命中不输出
|
|
169
|
+
expect(io.outText()).toContain('✅ error 级约束: 全部通过 (2 条)');
|
|
170
170
|
expect(io.outText()).toContain('✅ 约束检查通过');
|
|
171
171
|
expect(result).toEqual({ kind: 'ok' });
|
|
172
172
|
});
|
|
@@ -204,7 +204,7 @@ describe('check command(真 git fixture)', () => {
|
|
|
204
204
|
expect(result.kind).toBe('fail');
|
|
205
205
|
});
|
|
206
206
|
|
|
207
|
-
it('staged 硬编码凭证 →
|
|
207
|
+
it('staged 硬编码凭证 → error 级违规即阻断(ADR-0032 升级)', async () => {
|
|
208
208
|
const dir = gitRepo();
|
|
209
209
|
stageChange(
|
|
210
210
|
dir,
|
|
@@ -220,8 +220,26 @@ describe('check command(真 git fixture)', () => {
|
|
|
220
220
|
io
|
|
221
221
|
);
|
|
222
222
|
|
|
223
|
+
// error 级违规走 throw 契约(#119):异常外溢为 fail,消息即约束 message
|
|
224
|
+
expect(io.outText()).toContain('❌ 约束检查异常: 禁止在代码/文档/配置文件中硬编码密码');
|
|
225
|
+
expect(result.kind).toBe('fail');
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
it('warning 级违规(治理契约缺失)→ 警告但不阻断', async () => {
|
|
229
|
+
const dir = gitRepo();
|
|
230
|
+
// 采用 harness 治理(config.yml 在场)但无 PRESERVE:governance 段 → governance_presence 判 warning
|
|
231
|
+
write(dir, '.harness/config.yml', 'preset: standard\n');
|
|
232
|
+
stageChange(dir, 'src/existing.ts', 'export const a = 2;\n');
|
|
233
|
+
passTraces(dir);
|
|
234
|
+
|
|
235
|
+
// 不显式传 trigger:governance_presence 的触发词是 file_modification,由 diff 推断
|
|
236
|
+
const result = await check(
|
|
237
|
+
{ preset: 'standard', staged: true, projectPath: dir },
|
|
238
|
+
io
|
|
239
|
+
);
|
|
240
|
+
|
|
223
241
|
expect(io.outText()).toContain('⚠️ warning 级约束警告: 1 条');
|
|
224
|
-
expect(io.outText()).toContain('-
|
|
242
|
+
expect(io.outText()).toContain('- governance_presence');
|
|
225
243
|
expect(io.outText()).toContain('✅ 约束检查通过');
|
|
226
244
|
expect(result).toEqual({ kind: 'ok' });
|
|
227
245
|
});
|