@dommaker/harness 0.18.0 → 1.0.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.
Files changed (366) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/bin/harness.js +136 -552
  3. package/dist/cli/commands/check.d.ts.map +1 -1
  4. package/dist/cli/commands/check.js +2 -13
  5. package/dist/cli/commands/check.js.map +1 -1
  6. package/dist/cli/commands/definitions.d.ts +90 -0
  7. package/dist/cli/commands/definitions.d.ts.map +1 -0
  8. package/dist/cli/commands/definitions.js +519 -0
  9. package/dist/cli/commands/definitions.js.map +1 -0
  10. package/dist/cli/commands/knowledge.js.map +1 -1
  11. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +3 -25
  12. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -1
  13. package/dist/cli/commands/sync-docs/capabilities-syncer.js +3 -93
  14. package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -1
  15. package/dist/cli/commands/sync-docs/index.d.ts +1 -1
  16. package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
  17. package/dist/cli/commands/sync-docs/index.js +4 -4
  18. package/dist/cli/commands/sync-docs/index.js.map +1 -1
  19. package/dist/cli/commands/update-user-model.d.ts +1 -0
  20. package/dist/cli/commands/update-user-model.d.ts.map +1 -1
  21. package/dist/cli/commands/update-user-model.js +12 -5
  22. package/dist/cli/commands/update-user-model.js.map +1 -1
  23. package/dist/context/index.d.ts +1 -5
  24. package/dist/context/index.d.ts.map +1 -1
  25. package/dist/context/index.js +1 -5
  26. package/dist/context/index.js.map +1 -1
  27. package/dist/context/knowledge-injector.d.ts +3 -3
  28. package/dist/context/knowledge-injector.d.ts.map +1 -1
  29. package/dist/context/knowledge-injector.js +1 -1
  30. package/dist/context/session-manager.d.ts +1 -12
  31. package/dist/context/session-manager.d.ts.map +1 -1
  32. package/dist/context/session-manager.js +0 -63
  33. package/dist/context/session-manager.js.map +1 -1
  34. package/dist/context/types.d.ts +1 -39
  35. package/dist/context/types.d.ts.map +1 -1
  36. package/dist/context/types.js +2 -15
  37. package/dist/context/types.js.map +1 -1
  38. package/dist/core/constraints/agent-prompt-renderer.d.ts +32 -0
  39. package/dist/core/constraints/agent-prompt-renderer.d.ts.map +1 -0
  40. package/dist/core/constraints/agent-prompt-renderer.js +58 -0
  41. package/dist/core/constraints/agent-prompt-renderer.js.map +1 -0
  42. package/dist/core/constraints/capabilities-parser.d.ts +17 -2
  43. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  44. package/dist/core/constraints/capabilities-parser.js +84 -2
  45. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  46. package/dist/core/constraints/check-cache.d.ts +48 -3
  47. package/dist/core/constraints/check-cache.d.ts.map +1 -1
  48. package/dist/core/constraints/check-cache.js +53 -5
  49. package/dist/core/constraints/check-cache.js.map +1 -1
  50. package/dist/core/constraints/checker.d.ts +3 -17
  51. package/dist/core/constraints/checker.d.ts.map +1 -1
  52. package/dist/core/constraints/checker.js +7 -47
  53. package/dist/core/constraints/checker.js.map +1 -1
  54. package/dist/core/constraints/definitions.d.ts +0 -7
  55. package/dist/core/constraints/definitions.d.ts.map +1 -1
  56. package/dist/core/constraints/definitions.js +1 -8
  57. package/dist/core/constraints/definitions.js.map +1 -1
  58. package/dist/core/constraints/doc-freshness/runner.d.ts +0 -2
  59. package/dist/core/constraints/doc-freshness/runner.d.ts.map +1 -1
  60. package/dist/core/constraints/doc-freshness/runner.js.map +1 -1
  61. package/dist/core/constraints/index.d.ts +5 -1
  62. package/dist/core/constraints/index.d.ts.map +1 -1
  63. package/dist/core/constraints/index.js +8 -3
  64. package/dist/core/constraints/index.js.map +1 -1
  65. package/dist/core/constraints/interceptor.d.ts.map +1 -1
  66. package/dist/core/constraints/interceptor.js +1 -5
  67. package/dist/core/constraints/interceptor.js.map +1 -1
  68. package/dist/core/effective-constraints.d.ts.map +1 -1
  69. package/dist/core/effective-constraints.js +0 -1
  70. package/dist/core/effective-constraints.js.map +1 -1
  71. package/dist/core/project-config-loader.d.ts.map +1 -1
  72. package/dist/core/project-config-loader.js +1 -8
  73. package/dist/core/project-config-loader.js.map +1 -1
  74. package/dist/dashboard/stats.d.ts.map +1 -1
  75. package/dist/dashboard/stats.js.map +1 -1
  76. package/dist/dashboard/types.d.ts +2 -2
  77. package/dist/dashboard/types.d.ts.map +1 -1
  78. package/dist/failure/constraint-handler.d.ts.map +1 -1
  79. package/dist/failure/constraint-handler.js +0 -2
  80. package/dist/failure/constraint-handler.js.map +1 -1
  81. package/dist/gates/acceptance.d.ts +9 -1
  82. package/dist/gates/acceptance.d.ts.map +1 -1
  83. package/dist/gates/acceptance.js +21 -0
  84. package/dist/gates/acceptance.js.map +1 -1
  85. package/dist/gates/checker-gate.d.ts +23 -0
  86. package/dist/gates/checker-gate.d.ts.map +1 -0
  87. package/dist/gates/checker-gate.js +53 -0
  88. package/dist/gates/checker-gate.js.map +1 -0
  89. package/dist/gates/command.d.ts +9 -2
  90. package/dist/gates/command.d.ts.map +1 -1
  91. package/dist/gates/command.js +10 -0
  92. package/dist/gates/command.js.map +1 -1
  93. package/dist/gates/contract.d.ts +8 -2
  94. package/dist/gates/contract.d.ts.map +1 -1
  95. package/dist/gates/contract.js +9 -0
  96. package/dist/gates/contract.js.map +1 -1
  97. package/dist/gates/decision.d.ts +17 -0
  98. package/dist/gates/decision.d.ts.map +1 -0
  99. package/dist/gates/decision.js +25 -0
  100. package/dist/gates/decision.js.map +1 -0
  101. package/dist/gates/definitions.d.ts +63 -0
  102. package/dist/gates/definitions.d.ts.map +1 -0
  103. package/dist/gates/definitions.js +160 -0
  104. package/dist/gates/definitions.js.map +1 -0
  105. package/dist/gates/effective-gates.d.ts +30 -0
  106. package/dist/gates/effective-gates.d.ts.map +1 -0
  107. package/dist/gates/effective-gates.js +85 -0
  108. package/dist/gates/effective-gates.js.map +1 -0
  109. package/dist/gates/index.d.ts +25 -1
  110. package/dist/gates/index.d.ts.map +1 -1
  111. package/dist/gates/index.js +37 -1
  112. package/dist/gates/index.js.map +1 -1
  113. package/dist/gates/performance.d.ts +8 -2
  114. package/dist/gates/performance.d.ts.map +1 -1
  115. package/dist/gates/performance.js +9 -0
  116. package/dist/gates/performance.js.map +1 -1
  117. package/dist/gates/registry.d.ts +32 -0
  118. package/dist/gates/registry.d.ts.map +1 -0
  119. package/dist/gates/registry.js +90 -0
  120. package/dist/gates/registry.js.map +1 -0
  121. package/dist/gates/review.d.ts +8 -2
  122. package/dist/gates/review.d.ts.map +1 -1
  123. package/dist/gates/review.js +9 -0
  124. package/dist/gates/review.js.map +1 -1
  125. package/dist/gates/runner.d.ts +30 -0
  126. package/dist/gates/runner.d.ts.map +1 -0
  127. package/dist/gates/runner.js +38 -0
  128. package/dist/gates/runner.js.map +1 -0
  129. package/dist/gates/security.d.ts +8 -2
  130. package/dist/gates/security.d.ts.map +1 -1
  131. package/dist/gates/security.js +9 -0
  132. package/dist/gates/security.js.map +1 -1
  133. package/dist/gates/types.d.ts +41 -1
  134. package/dist/gates/types.d.ts.map +1 -1
  135. package/dist/hooks/bootstrap.d.ts.map +1 -1
  136. package/dist/hooks/bootstrap.js +0 -2
  137. package/dist/hooks/bootstrap.js.map +1 -1
  138. package/dist/hooks/config.d.ts +26 -0
  139. package/dist/hooks/config.d.ts.map +1 -0
  140. package/dist/hooks/config.js +30 -0
  141. package/dist/hooks/config.js.map +1 -0
  142. package/dist/hooks/index.d.ts +2 -1
  143. package/dist/hooks/index.d.ts.map +1 -1
  144. package/dist/hooks/index.js +4 -1
  145. package/dist/hooks/index.js.map +1 -1
  146. package/dist/hooks/registry.d.ts +18 -1
  147. package/dist/hooks/registry.d.ts.map +1 -1
  148. package/dist/hooks/registry.js +45 -0
  149. package/dist/hooks/registry.js.map +1 -1
  150. package/dist/hooks/types.d.ts +20 -0
  151. package/dist/hooks/types.d.ts.map +1 -1
  152. package/dist/index.d.ts +8 -8
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +13 -21
  155. package/dist/index.js.map +1 -1
  156. package/dist/knowledge/import.d.ts +2 -2
  157. package/dist/knowledge/import.d.ts.map +1 -1
  158. package/dist/knowledge/ingest.js.map +1 -1
  159. package/dist/knowledge/lifecycle-hooks.d.ts +2 -2
  160. package/dist/knowledge/lifecycle-hooks.d.ts.map +1 -1
  161. package/dist/knowledge/types.d.ts +5 -7
  162. package/dist/knowledge/types.d.ts.map +1 -1
  163. package/dist/knowledge/types.js +1 -1
  164. package/dist/knowledge/types.js.map +1 -1
  165. package/dist/monitoring/constraint-doctor.d.ts +4 -22
  166. package/dist/monitoring/constraint-doctor.d.ts.map +1 -1
  167. package/dist/monitoring/constraint-doctor.js +7 -94
  168. package/dist/monitoring/constraint-doctor.js.map +1 -1
  169. package/dist/presets/standard.d.ts +1 -1
  170. package/dist/presets/standard.d.ts.map +1 -1
  171. package/dist/presets/standard.js +1 -2
  172. package/dist/presets/standard.js.map +1 -1
  173. package/dist/spec/annotation-checker.d.ts.map +1 -1
  174. package/dist/spec/annotation-checker.js +6 -26
  175. package/dist/spec/annotation-checker.js.map +1 -1
  176. package/dist/tools/index.d.ts +0 -4
  177. package/dist/tools/index.d.ts.map +1 -1
  178. package/dist/tools/index.js +0 -4
  179. package/dist/tools/index.js.map +1 -1
  180. package/dist/types/constraint.d.ts +1 -12
  181. package/dist/types/constraint.d.ts.map +1 -1
  182. package/dist/types/constraint.js +0 -3
  183. package/dist/types/constraint.js.map +1 -1
  184. package/dist/types/project-config.d.ts +0 -2
  185. package/dist/types/project-config.d.ts.map +1 -1
  186. package/dist/utils/file-walk.d.ts +2 -2
  187. package/dist/utils/file-walk.js +2 -2
  188. package/package.json +9 -4
  189. package/src/CONTEXT.md +14 -0
  190. package/src/__tests__/checker-extra.test.ts +2 -59
  191. package/src/__tests__/constraint-doctor.test.ts +1 -140
  192. package/src/__tests__/constraint-handler.test.ts +0 -4
  193. package/src/__tests__/project-config-loader-extra.test.ts +0 -20
  194. package/src/__tests__/project-config-loader.test.ts +0 -1
  195. package/src/cli/commands/CONTEXT.md +15 -7
  196. package/src/cli/commands/__tests__/analyze-sessions.test.ts +178 -0
  197. package/src/cli/commands/__tests__/check-drift.test.ts +0 -3
  198. package/src/cli/commands/__tests__/check-skip-output.test.ts +0 -5
  199. package/src/cli/commands/__tests__/check.test.ts +7 -75
  200. package/src/cli/commands/__tests__/registry.test.ts +201 -0
  201. package/src/cli/commands/__tests__/release.test.ts +162 -0
  202. package/src/cli/commands/__tests__/update-user-model.test.ts +205 -0
  203. package/src/cli/commands/check.ts +2 -14
  204. package/src/cli/commands/definitions.ts +593 -0
  205. package/src/cli/commands/knowledge.ts +3 -3
  206. package/src/cli/commands/sync-docs/capabilities-syncer.ts +4 -110
  207. package/src/cli/commands/sync-docs/index.ts +8 -5
  208. package/src/cli/commands/update-user-model.ts +15 -5
  209. package/src/context/CONTEXT.md +2 -7
  210. package/src/context/__tests__/session-manager.test.ts +0 -91
  211. package/src/context/index.ts +1 -5
  212. package/src/context/knowledge-injector.ts +3 -3
  213. package/src/context/session-manager.ts +0 -74
  214. package/src/context/types.ts +2 -63
  215. package/src/core/CONTEXT.md +1 -1
  216. package/src/core/constraints/__tests__/agent-prompt-renderer.test.ts +129 -0
  217. package/src/core/constraints/__tests__/check-cache.test.ts +227 -0
  218. package/src/core/constraints/__tests__/interceptor.test.ts +0 -2
  219. package/src/core/constraints/agent-prompt-renderer.ts +71 -0
  220. package/src/core/constraints/capabilities-parser.ts +95 -2
  221. package/src/core/constraints/check-cache.ts +75 -3
  222. package/src/core/constraints/checker.ts +8 -53
  223. package/src/core/constraints/definitions.ts +0 -8
  224. package/src/core/constraints/doc-freshness/runner.ts +1 -2
  225. package/src/core/constraints/index.ts +11 -2
  226. package/src/core/constraints/interceptor.ts +1 -6
  227. package/src/core/effective-constraints.ts +0 -1
  228. package/src/core/project-config-loader.ts +1 -7
  229. package/src/dashboard/stats.ts +2 -2
  230. package/src/dashboard/types.ts +2 -2
  231. package/src/failure/constraint-handler.ts +0 -2
  232. package/src/gates/CONTEXT.md +16 -13
  233. package/src/gates/__tests__/checker-gate.test.ts +45 -0
  234. package/src/gates/__tests__/contract.test.ts +73 -0
  235. package/src/gates/__tests__/effective-gates.test.ts +82 -0
  236. package/src/gates/__tests__/gate-interface.test.ts +202 -0
  237. package/src/gates/__tests__/registry.test.ts +87 -0
  238. package/src/gates/__tests__/runner.test.ts +81 -0
  239. package/src/gates/acceptance.ts +24 -1
  240. package/src/gates/checker-gate.ts +54 -0
  241. package/src/gates/command.ts +13 -2
  242. package/src/gates/contract.ts +12 -2
  243. package/src/gates/decision.ts +27 -0
  244. package/src/gates/definitions.ts +207 -0
  245. package/src/gates/effective-gates.ts +106 -0
  246. package/src/gates/index.ts +38 -0
  247. package/src/gates/performance.ts +12 -2
  248. package/src/gates/registry.ts +107 -0
  249. package/src/gates/review.ts +12 -2
  250. package/src/gates/runner.ts +57 -0
  251. package/src/gates/security.ts +12 -2
  252. package/src/gates/types.ts +48 -1
  253. package/src/hooks/CONTEXT.md +12 -2
  254. package/src/hooks/__tests__/bootstrap.test.ts +0 -1
  255. package/src/hooks/__tests__/config.test.ts +19 -0
  256. package/src/hooks/__tests__/pipeline.test.ts +79 -0
  257. package/src/hooks/__tests__/registry.test.ts +67 -0
  258. package/src/hooks/bootstrap.ts +0 -2
  259. package/src/hooks/config.ts +29 -0
  260. package/src/hooks/index.ts +2 -1
  261. package/src/hooks/registry.ts +60 -1
  262. package/src/hooks/types.ts +21 -0
  263. package/src/index.ts +13 -22
  264. package/src/knowledge/import.ts +3 -3
  265. package/src/knowledge/ingest.ts +4 -4
  266. package/src/knowledge/lifecycle-hooks.ts +3 -3
  267. package/src/knowledge/types.ts +5 -8
  268. package/src/monitoring/constraint-doctor.ts +7 -106
  269. package/src/presets/__tests__/standard.test.ts +0 -2
  270. package/src/presets/standard.ts +1 -2
  271. package/src/spec/__tests__/annotation-checker.test.ts +9 -3
  272. package/src/spec/annotation-checker.ts +7 -29
  273. package/src/tools/CONTEXT.md +7 -14
  274. package/src/tools/index.ts +0 -4
  275. package/src/types/constraint.ts +1 -14
  276. package/src/types/project-config.ts +0 -3
  277. package/src/utils/file-walk.ts +2 -2
  278. package/dist/architecture/constraint-engine.d.ts +0 -67
  279. package/dist/architecture/constraint-engine.d.ts.map +0 -1
  280. package/dist/architecture/constraint-engine.js +0 -295
  281. package/dist/architecture/constraint-engine.js.map +0 -1
  282. package/dist/architecture/cross-project-checker.d.ts +0 -54
  283. package/dist/architecture/cross-project-checker.d.ts.map +0 -1
  284. package/dist/architecture/cross-project-checker.js +0 -467
  285. package/dist/architecture/cross-project-checker.js.map +0 -1
  286. package/dist/cli/commands/index.d.ts +0 -30
  287. package/dist/cli/commands/index.d.ts.map +0 -1
  288. package/dist/cli/commands/index.js +0 -91
  289. package/dist/cli/commands/index.js.map +0 -1
  290. package/dist/context/file-budget.d.ts +0 -40
  291. package/dist/context/file-budget.d.ts.map +0 -1
  292. package/dist/context/file-budget.js +0 -147
  293. package/dist/context/file-budget.js.map +0 -1
  294. package/dist/context/progressive-loader.d.ts +0 -109
  295. package/dist/context/progressive-loader.d.ts.map +0 -1
  296. package/dist/context/progressive-loader.js +0 -166
  297. package/dist/context/progressive-loader.js.map +0 -1
  298. package/dist/context/token-pipeline.d.ts +0 -55
  299. package/dist/context/token-pipeline.d.ts.map +0 -1
  300. package/dist/context/token-pipeline.js +0 -220
  301. package/dist/context/token-pipeline.js.map +0 -1
  302. package/dist/context/tool-output-budget.d.ts +0 -59
  303. package/dist/context/tool-output-budget.d.ts.map +0 -1
  304. package/dist/context/tool-output-budget.js +0 -177
  305. package/dist/context/tool-output-budget.js.map +0 -1
  306. package/dist/core/constraints/default-executors.d.ts +0 -10
  307. package/dist/core/constraints/default-executors.d.ts.map +0 -1
  308. package/dist/core/constraints/default-executors.js +0 -120
  309. package/dist/core/constraints/default-executors.js.map +0 -1
  310. package/dist/llm/adapter.d.ts +0 -36
  311. package/dist/llm/adapter.d.ts.map +0 -1
  312. package/dist/llm/adapter.js +0 -118
  313. package/dist/llm/adapter.js.map +0 -1
  314. package/dist/llm/index.d.ts +0 -3
  315. package/dist/llm/index.d.ts.map +0 -1
  316. package/dist/llm/index.js +0 -19
  317. package/dist/llm/index.js.map +0 -1
  318. package/dist/llm/types.d.ts +0 -62
  319. package/dist/llm/types.d.ts.map +0 -1
  320. package/dist/llm/types.js +0 -8
  321. package/dist/llm/types.js.map +0 -1
  322. package/dist/tools/core/index.d.ts +0 -13
  323. package/dist/tools/core/index.d.ts.map +0 -1
  324. package/dist/tools/core/index.js +0 -198
  325. package/dist/tools/core/index.js.map +0 -1
  326. package/dist/tools/loader.d.ts +0 -21
  327. package/dist/tools/loader.d.ts.map +0 -1
  328. package/dist/tools/loader.js +0 -199
  329. package/dist/tools/loader.js.map +0 -1
  330. package/dist/tools/registry.d.ts +0 -59
  331. package/dist/tools/registry.d.ts.map +0 -1
  332. package/dist/tools/registry.js +0 -115
  333. package/dist/tools/registry.js.map +0 -1
  334. package/dist/tools/types.d.ts +0 -38
  335. package/dist/tools/types.d.ts.map +0 -1
  336. package/dist/tools/types.js +0 -6
  337. package/dist/tools/types.js.map +0 -1
  338. package/src/__tests__/architecture-engine.test.ts +0 -619
  339. package/src/__tests__/context/progressive-loader.test.ts +0 -131
  340. package/src/__tests__/cross-project-checker.test.ts +0 -318
  341. package/src/architecture/CONTEXT.md +0 -22
  342. package/src/architecture/constraint-engine.ts +0 -351
  343. package/src/architecture/cross-project-checker.ts +0 -545
  344. package/src/cli/commands/index.ts +0 -30
  345. package/src/context/__tests__/file-budget.test.ts +0 -142
  346. package/src/context/__tests__/progressive-loader.test.ts +0 -264
  347. package/src/context/__tests__/token-pipeline.test.ts +0 -178
  348. package/src/context/__tests__/tool-output-budget.test.ts +0 -95
  349. package/src/context/file-budget.ts +0 -142
  350. package/src/context/progressive-loader.ts +0 -260
  351. package/src/context/token-pipeline.ts +0 -265
  352. package/src/context/tool-output-budget.ts +0 -178
  353. package/src/core/constraints/__tests__/default-executors.test.ts +0 -57
  354. package/src/core/constraints/default-executors.ts +0 -92
  355. package/src/llm/CONTEXT.md +0 -21
  356. package/src/llm/__tests__/adapter.test.ts +0 -172
  357. package/src/llm/adapter.ts +0 -149
  358. package/src/llm/index.ts +0 -2
  359. package/src/llm/types.ts +0 -81
  360. package/src/tools/__tests__/loader.test.ts +0 -252
  361. package/src/tools/__tests__/registry.test.ts +0 -157
  362. package/src/tools/core/__tests__/core.test.ts +0 -122
  363. package/src/tools/core/index.ts +0 -201
  364. package/src/tools/loader.ts +0 -216
  365. package/src/tools/registry.ts +0 -128
  366. package/src/tools/types.ts +0 -46
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * checker-as-guard 接线点(G1 / studio #129 随动)
4
+ *
5
+ * 把已注册的 ConstraintCheck 适配为统一 Gate,供守卫链(如 studio
6
+ * runCompletionGuards)复用 runGates 的 deny 单调 / ask fail-closed 语义。
7
+ *
8
+ * 证据语义:本接线点构造的 CheckEnv 不带 git staged diff / 源码扫描证据
9
+ * (stagedDiff 空、srcScan 空)——证据 flag 未接线的 checker 按契约返回
10
+ * 'skip'(不阻断,映射为 abstain);纯上下文判断的 checker 照常判定。
11
+ * studio 侧若需 git 证据,在 #129 接线时扩展 CheckEnv 构造。
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.createCheckerGate = createCheckerGate;
15
+ const decision_1 = require("./decision");
16
+ /**
17
+ * 将已注册 checker 适配为统一 Gate(checker-as-guard 接线点)
18
+ *
19
+ * 判定映射:false(违反)→ deny;true(满足)/ 'skip'(未评估)→ abstain。
20
+ *
21
+ * @param check 已注册的 ConstraintCheck(经 checkers 注册表取回)
22
+ * @param order 门禁顺序(供 guard 链排序)
23
+ */
24
+ function createCheckerGate(check, order = 0) {
25
+ return {
26
+ id: check.id,
27
+ order,
28
+ async evaluate(ctx) {
29
+ const startTime = Date.now();
30
+ const projectPath = ctx.projectPath || process.cwd();
31
+ const env = {
32
+ context: { operation: 'manual', projectPath },
33
+ projectPath,
34
+ stagedDiff: async () => '',
35
+ stagedDiffNames: async () => '',
36
+ srcScan: () => [],
37
+ };
38
+ const outcome = await check.evaluate(env);
39
+ return (0, decision_1.decisionFromResult)({
40
+ gate: check.id,
41
+ passed: outcome !== false,
42
+ message: outcome === false
43
+ ? `checker "${check.id}" 判定违规`
44
+ : outcome === 'skip'
45
+ ? `checker "${check.id}" 跳过(证据未接线)`
46
+ : `checker "${check.id}" 通过`,
47
+ timestamp: new Date().toISOString(),
48
+ duration: Date.now() - startTime,
49
+ });
50
+ },
51
+ };
52
+ }
53
+ //# sourceMappingURL=checker-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checker-gate.js","sourceRoot":"","sources":["../../src/gates/checker-gate.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAcH,8CA6BC;AAvCD,yCAAgD;AAEhD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,KAAsB,EAAE,KAAK,GAAG,CAAC;IACjE,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK;QACL,KAAK,CAAC,QAAQ,CAAC,GAAgB;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACrD,MAAM,GAAG,GAAa;gBACpB,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE;gBAC7C,WAAW;gBACX,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;gBAC1B,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;gBAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;aAClB,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,IAAA,6BAAkB,EAAC;gBACxB,IAAI,EAAE,KAAK,CAAC,EAAE;gBACd,MAAM,EAAE,OAAO,KAAK,KAAK;gBACzB,OAAO,EACL,OAAO,KAAK,KAAK;oBACf,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,QAAQ;oBAC9B,CAAC,CAAC,OAAO,KAAK,MAAM;wBAClB,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,aAAa;wBACnC,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,MAAM;gBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * 检查命令是否安全,防止执行危险操作
6
6
  */
7
- import type { GateResult, CommandGateConfig, CommandBlacklistRule } from './types';
7
+ import type { GateResult, CommandGateConfig, CommandBlacklistRule, Gate, GateContext, GateDecision } from './types';
8
8
  /**
9
9
  * 黑名单级别
10
10
  */
@@ -21,10 +21,17 @@ export declare const DEFAULT_COMMAND_BLACKLIST: CommandBlacklistRule[];
21
21
  /**
22
22
  * 命令门禁
23
23
  */
24
- export declare class CommandGate {
24
+ export declare class CommandGate implements Gate {
25
+ readonly id = "command";
26
+ order: number;
25
27
  private config;
26
28
  private blacklist;
27
29
  constructor(config?: Partial<CommandGateConfig>);
30
+ /**
31
+ * 统一门禁接口(G1):执行细节私有,决策三态由 check() 报告推导。
32
+ * 待检命令经 GateContext.command 传入。
33
+ */
34
+ evaluate(context: GateContext): Promise<GateDecision>;
28
35
  /**
29
36
  * 检查命令
30
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/gates/command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,EA0K3D,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,SAAS,CAAyB;gBAE9B,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAenD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgCjD;;OAEG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAgBnC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK;IAoBxD;;OAEG;IACH,YAAY,IAAI,oBAAoB,EAAE;IAItC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAIzC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS/B;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,iBAAiB,CAAC;CAGzC;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAElF;AAOD;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAE9E"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/gates/command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGpH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,EA0K3D,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAY,YAAW,IAAI;IACtC,QAAQ,CAAC,EAAE,aAAa;IACxB,KAAK,SAAK;IACV,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,SAAS,CAAyB;gBAE9B,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAenD;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3D;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgCjD;;OAEG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAgBnC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK;IAoBxD;;OAEG;IACH,YAAY,IAAI,oBAAoB,EAAE;IAItC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAIzC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS/B;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,iBAAiB,CAAC;CAGzC;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAElF;AAOD;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAE9E"}
@@ -11,6 +11,7 @@ exports.createCommandGate = createCommandGate;
11
11
  exports.getCommandGate = getCommandGate;
12
12
  exports.isCommandAllowed = isCommandAllowed;
13
13
  exports.getCommandRiskLevel = getCommandRiskLevel;
14
+ const decision_1 = require("./decision");
14
15
  /**
15
16
  * 默认黑名单规则
16
17
  *
@@ -187,6 +188,8 @@ exports.DEFAULT_COMMAND_BLACKLIST = [
187
188
  * 命令门禁
188
189
  */
189
190
  class CommandGate {
191
+ id = 'command';
192
+ order = 0;
190
193
  config;
191
194
  blacklist;
192
195
  constructor(config = {}) {
@@ -202,6 +205,13 @@ class CommandGate {
202
205
  ...this.config.customBlacklist,
203
206
  ];
204
207
  }
208
+ /**
209
+ * 统一门禁接口(G1):执行细节私有,决策三态由 check() 报告推导。
210
+ * 待检命令经 GateContext.command 传入。
211
+ */
212
+ async evaluate(context) {
213
+ return (0, decision_1.decisionFromResult)(await this.check(context.command ?? ''));
214
+ }
205
215
  /**
206
216
  * 检查命令
207
217
  */
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/gates/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/gates/command.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,19 @@
6
6
  * - 破坏性变更检测
7
7
  * - 版本兼容性
8
8
  */
9
- import type { GateResult, GateContext, ContractGateConfig } from './types';
9
+ import type { GateResult, GateContext, ContractGateConfig, Gate, GateDecision } from './types';
10
10
  /**
11
11
  * 契约门禁
12
12
  */
13
- export declare class ContractGate {
13
+ export declare class ContractGate implements Gate {
14
+ readonly id = "contract";
15
+ order: number;
14
16
  private config;
15
17
  constructor(config?: Partial<ContractGateConfig>);
18
+ /**
19
+ * 统一门禁接口(G1):执行细节私有,决策三态由 check() 报告推导
20
+ */
21
+ evaluate(context: GateContext): Promise<GateDecision>;
16
22
  /**
17
23
  * 检查契约
18
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/gates/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE3E;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA+B;gBAEjC,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IASpD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAkGtD;;OAEG;YACW,gBAAgB;IA0D9B;;OAEG;YACW,qBAAqB;IAmCnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,kBAAkB,CAAC;CAG1C"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/gates/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/F;;GAEG;AACH,qBAAa,YAAa,YAAW,IAAI;IACvC,QAAQ,CAAC,EAAE,cAAc;IACzB,KAAK,SAAK;IACV,OAAO,CAAC,MAAM,CAA+B;gBAEjC,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IASpD;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3D;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAkGtD;;OAEG;YACW,gBAAgB;IA0D9B;;OAEG;YACW,qBAAqB;IAmCnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,kBAAkB,CAAC;CAG1C"}
@@ -44,10 +44,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
44
44
  exports.ContractGate = void 0;
45
45
  const fs = __importStar(require("fs/promises"));
46
46
  const path = __importStar(require("path"));
47
+ const decision_1 = require("./decision");
47
48
  /**
48
49
  * 契约门禁
49
50
  */
50
51
  class ContractGate {
52
+ id = 'contract';
53
+ order = 0;
51
54
  config;
52
55
  constructor(config = {}) {
53
56
  this.config = {
@@ -57,6 +60,12 @@ class ContractGate {
57
60
  contractPath: config.contractPath ?? 'openapi.yaml',
58
61
  };
59
62
  }
63
+ /**
64
+ * 统一门禁接口(G1):执行细节私有,决策三态由 check() 报告推导
65
+ */
66
+ async evaluate(context) {
67
+ return (0, decision_1.decisionFromResult)(await this.check(context));
68
+ }
60
69
  /**
61
70
  * 检查契约
62
71
  */
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/gates/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/gates/contract.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,gDAAkC;AAClC,2CAA6B;AAE7B,yCAAgD;AAEhD;;GAEG;AACH,MAAa,YAAY;IACd,EAAE,GAAG,UAAU,CAAC;IACzB,KAAK,GAAG,CAAC,CAAC;IACF,MAAM,CAA+B;IAE7C,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;YAC7B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,KAAK;YAC1D,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,cAAc;SACpD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAoB;QACjC,OAAO,IAAA,6BAAkB,EAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAoB;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe;gBAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAE3D,aAAa;YACb,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,cAAc;oBACvB,OAAO,EAAE;wBACP,YAAY;wBACZ,UAAU,EAAE,iBAAiB;qBAC9B;oBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACjC,CAAC;YACJ,CAAC;YAED,SAAS;YACT,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAE7D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,WAAW,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAClD,OAAO,EAAE;wBACP,YAAY;wBACZ,MAAM,EAAE,UAAU,CAAC,MAAM;qBAC1B;oBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACjC,CAAC;YACJ,CAAC;YAED,oBAAoB;YACpB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACtD,OAAO,CAAC,eAAe,EACvB,YAAY,CACb,CAAC;gBAEF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBACpE,OAAO;wBACL,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE,YAAY,eAAe,CAAC,MAAM,IAAI;wBAC/C,OAAO,EAAE;4BACP,YAAY;4BACZ,eAAe,EAAE,OAAO,CAAC,eAAe;4BACxC,eAAe;4BACf,UAAU,EAAE,kBAAkB;yBAC/B;wBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;qBACjC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE;oBACP,YAAY;oBACZ,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;iBAC5B;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,WAAW,KAAK,CAAC,OAAO,EAAE;gBACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QAMjD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,OAA2B,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,IAAS,CAAC;YAEd,iBAAiB;YACjB,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpE,uBAAuB;gBACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;oBACvC,CAAC;oBACD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC5B,SAAS,EAAE,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;gBACvC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,OAAO;YACP,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;gBAC1B,MAAM;gBACN,SAAS;gBACT,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClC,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CACjC,OAAe,EACf,OAAe;QAEf,MAAM,OAAO,GAA+D,EAAE,CAAC;QAE/E,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEvD,SAAS;YACT,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAEvD,UAAU;YACV,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,kBAAkB;wBACxB,WAAW,EAAE,MAAM,QAAQ,MAAM;wBACjC,IAAI,EAAE,QAAQ;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,mBAAmB;YACnB,SAAS;YACT,gBAAgB;YAEhB,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAe;QACtC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC3C,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AA3PD,oCA2PC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 门禁决策构造(G1)
3
+ *
4
+ * GateResult(报告结构)→ GateDecision(三态决策)的映射点。
5
+ */
6
+ import type { GateDecision, GateDecisionStatus, GateResult } from './types';
7
+ /**
8
+ * 从报告结构构造决策。
9
+ *
10
+ * status 缺省由 `result.passed` 推导:true → 'abstain'(放行),
11
+ * false → 'deny'(阻断)。'ask' 只能显式指定(枚举预留,暂无实现)。
12
+ *
13
+ * 返回值浅冻结(Object.freeze):决策不可变是 deny 单调语义的接口契约——
14
+ * 下游门禁不得改写上游决策,deny 不可被改回 allow。
15
+ */
16
+ export declare function decisionFromResult(result: GateResult, status?: GateDecisionStatus): GateDecision;
17
+ //# sourceMappingURL=decision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/gates/decision.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,EAClB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,YAAY,CAMd"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * 门禁决策构造(G1)
4
+ *
5
+ * GateResult(报告结构)→ GateDecision(三态决策)的映射点。
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.decisionFromResult = decisionFromResult;
9
+ /**
10
+ * 从报告结构构造决策。
11
+ *
12
+ * status 缺省由 `result.passed` 推导:true → 'abstain'(放行),
13
+ * false → 'deny'(阻断)。'ask' 只能显式指定(枚举预留,暂无实现)。
14
+ *
15
+ * 返回值浅冻结(Object.freeze):决策不可变是 deny 单调语义的接口契约——
16
+ * 下游门禁不得改写上游决策,deny 不可被改回 allow。
17
+ */
18
+ function decisionFromResult(result, status) {
19
+ const decision = {
20
+ status: status ?? (result.passed ? 'abstain' : 'deny'),
21
+ result: Object.freeze({ ...result }),
22
+ };
23
+ return Object.freeze(decision);
24
+ }
25
+ //# sourceMappingURL=decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.js","sourceRoot":"","sources":["../../src/gates/decision.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAaH,gDASC;AAlBD;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAChC,MAAkB,EAClB,MAA2B;IAE3B,MAAM,QAAQ,GAAiB;QAC7B,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * 门禁定义表(G1:定义即注册的单一定义源)
3
+ *
4
+ * - 每个门禁在此声明 id / description / 默认 order / CLI 元数据;
5
+ * registry.ts 按此表做「定义↔实现」双向闭环校验(复制 checker 闭环模式)。
6
+ * - CLI 元数据被 bin/harness.js 消费,注册表驱动生成 6 个门禁命令:
7
+ * 命令名/别名/选项/子命令路由与历史手工块完全兼容;实现引用为
8
+ * module+export(CommandImplRef),bin 按需 per-command 懒加载(H5/O2)。
9
+ * - 本模块禁止 import 任何门禁/命令实现(仅 type import,运行时零依赖)——
10
+ * bin 启动期只加载本纯数据模块(保持 --help/--version 懒加载,
11
+ * 闭环校验在 registry 加载期执行)。
12
+ */
13
+ import type { CommandImplRef } from '../cli/commands/definitions';
14
+ /**
15
+ * 门禁 CLI 选项元数据(直接映射 commander `.option()`)
16
+ */
17
+ export interface GateCliOption {
18
+ /** commander option flags,如 '-p, --project-path <path>' */
19
+ flags: string;
20
+ /** 选项描述 */
21
+ description: string;
22
+ /** commander 缺省值;negated option(如 --no-strict)不设,由 commander 默认 true */
23
+ defaultValue?: string | boolean;
24
+ }
25
+ /**
26
+ * 门禁 CLI 命令元数据(bin/harness.js 注册表驱动生成)
27
+ */
28
+ export interface GateCliDefinition {
29
+ /** 命令名(历史命令名兼容保留) */
30
+ command: string;
31
+ /** 命令别名 */
32
+ alias?: string;
33
+ /** 位置参数声明,如 '[subcommand]' / '[cmd]' */
34
+ argument?: string;
35
+ /** 命令描述 */
36
+ description: string;
37
+ /** 命令选项 */
38
+ options: GateCliOption[];
39
+ /** 子命令名 → 命令实现引用(module+export);命中后按 [options] 透传 */
40
+ subcommands?: Record<string, CommandImplRef>;
41
+ /** 默认 action 命令实现引用(module+export) */
42
+ action: CommandImplRef;
43
+ /** 默认 action 实参构造:arg = 位置参数(无位置参数时为 undefined),options = commander 选项对象 */
44
+ mapActionArgs: (arg: string | undefined, options: Record<string, unknown>) => unknown[];
45
+ }
46
+ /**
47
+ * 门禁定义
48
+ */
49
+ export interface GateDefinition {
50
+ /** 门禁 id(与实现 Gate.id 一致) */
51
+ id: string;
52
+ /** 一句话描述 */
53
+ description: string;
54
+ /** 默认顺序(config.yml `gates.order` 可覆盖),小者先执行 */
55
+ order: number;
56
+ /** CLI 元数据(bin/harness.js 注册表驱动生成) */
57
+ cli: GateCliDefinition;
58
+ }
59
+ /**
60
+ * 6 门禁定义(默认 order 按字母序,与历史 bin 块顺序一致)
61
+ */
62
+ export declare const GATE_DEFINITIONS: GateDefinition[];
63
+ //# sourceMappingURL=definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/gates/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,sCAAsC;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB,4EAA4E;IAC5E,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;CACzF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,GAAG,EAAE,iBAAiB,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,EA4I5C,CAAC"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ /**
3
+ * 门禁定义表(G1:定义即注册的单一定义源)
4
+ *
5
+ * - 每个门禁在此声明 id / description / 默认 order / CLI 元数据;
6
+ * registry.ts 按此表做「定义↔实现」双向闭环校验(复制 checker 闭环模式)。
7
+ * - CLI 元数据被 bin/harness.js 消费,注册表驱动生成 6 个门禁命令:
8
+ * 命令名/别名/选项/子命令路由与历史手工块完全兼容;实现引用为
9
+ * module+export(CommandImplRef),bin 按需 per-command 懒加载(H5/O2)。
10
+ * - 本模块禁止 import 任何门禁/命令实现(仅 type import,运行时零依赖)——
11
+ * bin 启动期只加载本纯数据模块(保持 --help/--version 懒加载,
12
+ * 闭环校验在 registry 加载期执行)。
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.GATE_DEFINITIONS = void 0;
16
+ /**
17
+ * 6 门禁定义(默认 order 按字母序,与历史 bin 块顺序一致)
18
+ */
19
+ exports.GATE_DEFINITIONS = [
20
+ {
21
+ id: 'acceptance',
22
+ description: '验收标准门控,检查任务是否满足验收标准',
23
+ order: 0,
24
+ cli: {
25
+ command: 'acceptance',
26
+ alias: 'acc',
27
+ argument: '[subcommand]',
28
+ description: '验收标准门控,检查任务是否满足验收标准',
29
+ options: [
30
+ { flags: '-t, --task-id <id>', description: '任务 ID' },
31
+ { flags: '--tasks-path <path>', description: 'tasks.yml 路径' },
32
+ { flags: '-p, --project-path <path>', description: '项目路径' },
33
+ { flags: '--check-all', description: '检查所有任务', defaultValue: false },
34
+ { flags: '--run-e2e', description: '运行 E2E 测试', defaultValue: false },
35
+ ],
36
+ subcommands: { list: { module: 'acceptance', export: 'listAcceptanceCriteria' } },
37
+ action: { module: 'acceptance', export: 'acceptance' },
38
+ mapActionArgs: (_arg, options) => [options],
39
+ },
40
+ },
41
+ {
42
+ id: 'command',
43
+ description: '命令黑名单门控,检查命令是否在禁用列表',
44
+ order: 1,
45
+ cli: {
46
+ command: 'command',
47
+ alias: 'cmd',
48
+ argument: '[cmd]',
49
+ description: '检查命令是否在黑名单中',
50
+ options: [
51
+ { flags: '-l, --level', description: '显示风险等级' },
52
+ { flags: '--list', description: '列出所有黑名单规则' },
53
+ { flags: '--json', description: 'JSON 格式输出' },
54
+ { flags: '--strict', description: '严格模式(warn 也阻止)' },
55
+ ],
56
+ action: { module: 'command', export: 'executeCommand' },
57
+ mapActionArgs: (arg, options) => [arg, options],
58
+ },
59
+ },
60
+ {
61
+ id: 'contract',
62
+ description: 'API 契约门控,检查 OpenAPI Schema',
63
+ order: 2,
64
+ cli: {
65
+ command: 'contract',
66
+ argument: '[subcommand]',
67
+ description: 'API 契约门控,检查 OpenAPI Schema',
68
+ options: [
69
+ { flags: '-p, --project-path <path>', description: '项目路径' },
70
+ { flags: '--contract-path <path>', description: '契约文件路径', defaultValue: 'openapi.yaml' },
71
+ { flags: '--no-strict', description: '关闭严格模式' },
72
+ { flags: '--allow-breaking', description: '允许破坏性变更', defaultValue: false },
73
+ ],
74
+ subcommands: { validate: { module: 'contract', export: 'validateSchema' } },
75
+ action: { module: 'contract', export: 'contract' },
76
+ mapActionArgs: (_arg, options) => [options],
77
+ },
78
+ },
79
+ {
80
+ id: 'performance',
81
+ description: '性能门控,检查性能指标',
82
+ order: 3,
83
+ cli: {
84
+ command: 'performance',
85
+ alias: 'perf',
86
+ description: '性能门控,检查性能指标',
87
+ options: [
88
+ { flags: '-p, --project-path <path>', description: '项目路径' },
89
+ { flags: '--coverage', description: '检查测试覆盖率', defaultValue: false },
90
+ { flags: '--coverage-threshold <n>', description: '覆盖率阈值', defaultValue: '80' },
91
+ { flags: '--bundle', description: '检查打包大小', defaultValue: false },
92
+ { flags: '--bundle-threshold <n>', description: '打包大小阈值 (KB)', defaultValue: '500' },
93
+ { flags: '--benchmark', description: '运行基准测试', defaultValue: false },
94
+ { flags: '--benchmark-timeout <n>', description: '基准测试超时(秒)', defaultValue: '60' },
95
+ ],
96
+ action: { module: 'performance', export: 'performance' },
97
+ mapActionArgs: (_arg, options) => [
98
+ {
99
+ projectPath: options.projectPath,
100
+ coverage: options.coverage,
101
+ coverageThreshold: parseInt(String(options.coverageThreshold), 10),
102
+ bundle: options.bundle,
103
+ bundleThreshold: parseInt(String(options.bundleThreshold), 10),
104
+ benchmark: options.benchmark,
105
+ benchmarkTimeout: parseInt(String(options.benchmarkTimeout), 10),
106
+ },
107
+ ],
108
+ },
109
+ },
110
+ {
111
+ id: 'review',
112
+ description: '代码审查门控,检查审查状态',
113
+ order: 4,
114
+ cli: {
115
+ command: 'review',
116
+ argument: '[subcommand]',
117
+ description: '代码审查门控,检查审查状态',
118
+ options: [
119
+ { flags: '-p, --project-path <path>', description: '项目路径' },
120
+ { flags: '--min-reviewers <n>', description: '最少审查人数', defaultValue: '1' },
121
+ { flags: '--no-require-approval', description: '不要求审批' },
122
+ { flags: '--no-block-on-changes', description: '不阻止变更请求' },
123
+ { flags: '--allowed-reviewers <list>', description: '允许的审查者(逗号分隔)' },
124
+ ],
125
+ subcommands: { status: { module: 'review', export: 'reviewStatus' } },
126
+ action: { module: 'review', export: 'review' },
127
+ mapActionArgs: (_arg, options) => [
128
+ {
129
+ projectPath: options.projectPath,
130
+ minReviewers: parseInt(String(options.minReviewers), 10),
131
+ requireApproval: options.requireApproval,
132
+ blockOnChangesRequested: options.blockOnChanges,
133
+ allowedReviewers: options.allowedReviewers,
134
+ },
135
+ ],
136
+ },
137
+ },
138
+ {
139
+ id: 'security',
140
+ description: '安全门控,检查安全漏洞',
141
+ order: 5,
142
+ cli: {
143
+ command: 'security',
144
+ alias: 'sec',
145
+ argument: '[subcommand]',
146
+ description: '安全门控,检查安全漏洞',
147
+ options: [
148
+ { flags: '-p, --project-path <path>', description: '项目路径' },
149
+ { flags: '--severity <level>', description: '严重性阈值 (low/moderate/high/critical)', defaultValue: 'high' },
150
+ { flags: '--ignore-warnings', description: '忽略警告', defaultValue: false },
151
+ { flags: '--ignore-dev-deps', description: '忽略开发依赖', defaultValue: false },
152
+ { flags: '--scan-command <cmd>', description: '自定义扫描命令' },
153
+ ],
154
+ subcommands: { audit: { module: 'security', export: 'auditDetails' } },
155
+ action: { module: 'security', export: 'security' },
156
+ mapActionArgs: (_arg, options) => [options],
157
+ },
158
+ },
159
+ ];
160
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/gates/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * 生效门禁集(G1):对齐 getEffectiveConstraints 的 config 裁剪模式
3
+ *
4
+ * 单一来源:注册表(默认 order)→ config.yml `gates.order` 声明式重排 →
5
+ * `gates.<id>.enabled:false` 裁剪移除。
6
+ *
7
+ * 闭环:config.yml gates 配置引用了未注册的门禁 id → 抛错
8
+ * (与注册表「引用未注册」同款闭环;gates 配置段为新增面,
9
+ * 不存在历史残留配置,故不需静默忽略)。
10
+ */
11
+ import type { Gate } from './types';
12
+ /**
13
+ * config.yml `gates` 段
14
+ */
15
+ export interface GatesConfig {
16
+ /** 声明式顺序(门禁 id 列表);未列出的按默认顺序排后 */
17
+ order?: string[];
18
+ /** 每个门禁的启用开关(gates.<id>.enabled: false = 裁剪) */
19
+ [gateId: string]: {
20
+ enabled?: boolean;
21
+ } | string[] | undefined;
22
+ }
23
+ /**
24
+ * 获取项目当前生效的门禁集(按 order 升序)
25
+ *
26
+ * @param projectRoot 项目根路径(缺省 process.cwd())
27
+ * @throws config.yml gates 段引用未注册门禁 id 时抛错
28
+ */
29
+ export declare function getEffectiveGates(projectRoot?: string): Gate[];
30
+ //# sourceMappingURL=effective-gates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-gates.d.ts","sourceRoot":"","sources":["../../src/gates/effective-gates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAIpC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gDAAgD;IAChD,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;CAChE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,GAAE,MAAsB,GAAG,IAAI,EAAE,CAsE7E"}