@dommaker/harness 0.7.2 → 0.7.4

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 (121) hide show
  1. package/README.md +390 -5
  2. package/dist/architecture/constraint-engine.d.ts +49 -0
  3. package/dist/architecture/constraint-engine.d.ts.map +1 -0
  4. package/dist/architecture/constraint-engine.js +207 -0
  5. package/dist/architecture/constraint-engine.js.map +1 -0
  6. package/dist/architecture/cross-project-checker.d.ts +34 -0
  7. package/dist/architecture/cross-project-checker.d.ts.map +1 -0
  8. package/dist/architecture/cross-project-checker.js +260 -0
  9. package/dist/architecture/cross-project-checker.js.map +1 -0
  10. package/dist/context/progressive-loader.d.ts +110 -0
  11. package/dist/context/progressive-loader.d.ts.map +1 -0
  12. package/dist/context/progressive-loader.js +183 -0
  13. package/dist/context/progressive-loader.js.map +1 -0
  14. package/dist/context/token-budget.d.ts +144 -0
  15. package/dist/context/token-budget.d.ts.map +1 -0
  16. package/dist/context/token-budget.js +264 -0
  17. package/dist/context/token-budget.js.map +1 -0
  18. package/dist/core/constraints/definitions.d.ts.map +1 -1
  19. package/dist/core/constraints/definitions.js +33 -0
  20. package/dist/core/constraints/definitions.js.map +1 -1
  21. package/dist/core/index.d.ts +2 -0
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +4 -0
  24. package/dist/core/index.js.map +1 -1
  25. package/dist/failure/classifier.d.ts +63 -0
  26. package/dist/failure/classifier.d.ts.map +1 -0
  27. package/dist/failure/classifier.js +123 -0
  28. package/dist/failure/classifier.js.map +1 -0
  29. package/dist/failure/index.d.ts +10 -0
  30. package/dist/failure/index.d.ts.map +1 -0
  31. package/dist/failure/index.js +36 -0
  32. package/dist/failure/index.js.map +1 -0
  33. package/dist/failure/recorder.d.ts +78 -0
  34. package/dist/failure/recorder.d.ts.map +1 -0
  35. package/dist/failure/recorder.js +193 -0
  36. package/dist/failure/recorder.js.map +1 -0
  37. package/dist/failure/types.d.ts +89 -0
  38. package/dist/failure/types.d.ts.map +1 -0
  39. package/dist/failure/types.js +121 -0
  40. package/dist/failure/types.js.map +1 -0
  41. package/dist/gates/acceptance.d.ts +159 -0
  42. package/dist/gates/acceptance.d.ts.map +1 -0
  43. package/dist/gates/acceptance.js +368 -0
  44. package/dist/gates/acceptance.js.map +1 -0
  45. package/dist/gates/contract.d.ts +41 -0
  46. package/dist/gates/contract.d.ts.map +1 -0
  47. package/dist/gates/contract.js +264 -0
  48. package/dist/gates/contract.js.map +1 -0
  49. package/dist/gates/index.d.ts +23 -0
  50. package/dist/gates/index.d.ts.map +1 -0
  51. package/dist/gates/index.js +46 -0
  52. package/dist/gates/index.js.map +1 -0
  53. package/dist/gates/performance.d.ts +81 -0
  54. package/dist/gates/performance.d.ts.map +1 -0
  55. package/dist/gates/performance.js +336 -0
  56. package/dist/gates/performance.js.map +1 -0
  57. package/dist/gates/review.d.ts +37 -0
  58. package/dist/gates/review.d.ts.map +1 -0
  59. package/dist/gates/review.js +149 -0
  60. package/dist/gates/review.js.map +1 -0
  61. package/dist/gates/security.d.ts +45 -0
  62. package/dist/gates/security.d.ts.map +1 -0
  63. package/dist/gates/security.js +221 -0
  64. package/dist/gates/security.js.map +1 -0
  65. package/dist/gates/types.d.ts +115 -0
  66. package/dist/gates/types.d.ts.map +1 -0
  67. package/dist/gates/types.js +6 -0
  68. package/dist/gates/types.js.map +1 -0
  69. package/dist/index.d.ts +15 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +30 -5
  72. package/dist/index.js.map +1 -1
  73. package/dist/monitoring/index.d.ts +6 -0
  74. package/dist/monitoring/index.d.ts.map +1 -1
  75. package/dist/monitoring/index.js +6 -0
  76. package/dist/monitoring/index.js.map +1 -1
  77. package/dist/monitoring/performance-analyzer.d.ts +104 -0
  78. package/dist/monitoring/performance-analyzer.d.ts.map +1 -0
  79. package/dist/monitoring/performance-analyzer.js +417 -0
  80. package/dist/monitoring/performance-analyzer.js.map +1 -0
  81. package/dist/monitoring/performance-collector.d.ts +111 -0
  82. package/dist/monitoring/performance-collector.d.ts.map +1 -0
  83. package/dist/monitoring/performance-collector.js +319 -0
  84. package/dist/monitoring/performance-collector.js.map +1 -0
  85. package/dist/monitoring/trace-analyzer.js +1 -1
  86. package/dist/monitoring/trace-analyzer.js.map +1 -1
  87. package/dist/monitoring/traces.js +1 -1
  88. package/dist/monitoring/traces.js.map +1 -1
  89. package/dist/presets/index.d.ts +0 -1
  90. package/dist/presets/index.d.ts.map +1 -1
  91. package/dist/presets/index.js +1 -6
  92. package/dist/presets/index.js.map +1 -1
  93. package/dist/spec/annotation-checker.d.ts +47 -0
  94. package/dist/spec/annotation-checker.d.ts.map +1 -0
  95. package/dist/spec/annotation-checker.js +299 -0
  96. package/dist/spec/annotation-checker.js.map +1 -0
  97. package/dist/types/index.d.ts +2 -0
  98. package/dist/types/index.d.ts.map +1 -1
  99. package/dist/types/index.js +9 -0
  100. package/dist/types/index.js.map +1 -1
  101. package/dist/types/performance.d.ts +204 -0
  102. package/dist/types/performance.d.ts.map +1 -0
  103. package/dist/types/performance.js +12 -0
  104. package/dist/types/performance.js.map +1 -0
  105. package/package.json +3 -1
  106. package/dist/extensions/long-running/constraints.d.ts +0 -38
  107. package/dist/extensions/long-running/constraints.d.ts.map +0 -1
  108. package/dist/extensions/long-running/constraints.js +0 -153
  109. package/dist/extensions/long-running/constraints.js.map +0 -1
  110. package/dist/extensions/long-running/index.d.ts +0 -30
  111. package/dist/extensions/long-running/index.d.ts.map +0 -1
  112. package/dist/extensions/long-running/index.js +0 -50
  113. package/dist/extensions/long-running/index.js.map +0 -1
  114. package/dist/extensions/long-running/types.d.ts +0 -154
  115. package/dist/extensions/long-running/types.d.ts.map +0 -1
  116. package/dist/extensions/long-running/types.js +0 -9
  117. package/dist/extensions/long-running/types.js.map +0 -1
  118. package/dist/presets/long-running.d.ts +0 -33
  119. package/dist/presets/long-running.d.ts.map +0 -1
  120. package/dist/presets/long-running.js +0 -52
  121. package/dist/presets/long-running.js.map +0 -1
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ /**
3
+ * 安全门禁
4
+ *
5
+ * 检查安全漏洞:
6
+ * - npm audit
7
+ * - 依赖漏洞
8
+ * - 敏感信息泄露
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.SecurityGate = void 0;
12
+ const child_process_1 = require("child_process");
13
+ const util_1 = require("util");
14
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
15
+ /**
16
+ * 安全门禁
17
+ */
18
+ class SecurityGate {
19
+ config;
20
+ constructor(config = {}) {
21
+ this.config = {
22
+ enabled: config.enabled ?? true,
23
+ scanCommand: config.scanCommand ?? '',
24
+ ignoreWarnings: config.ignoreWarnings ?? false,
25
+ ignoreDevDependencies: config.ignoreDevDependencies ?? false,
26
+ severityThreshold: config.severityThreshold ?? 'high',
27
+ };
28
+ }
29
+ /**
30
+ * 扫描安全漏洞
31
+ */
32
+ async scan(context) {
33
+ const startTime = Date.now();
34
+ if (!this.config.enabled) {
35
+ return {
36
+ gate: 'security',
37
+ passed: true,
38
+ message: '安全门禁已禁用',
39
+ timestamp: new Date().toISOString(),
40
+ duration: Date.now() - startTime,
41
+ };
42
+ }
43
+ try {
44
+ // 使用自定义命令或默认 npm audit
45
+ const scanCommand = context.securityScanCommand ??
46
+ this.config.scanCommand ??
47
+ this.detectScanCommand(context.projectPath);
48
+ const result = await this.runScan(scanCommand, context.projectPath);
49
+ // 分析结果
50
+ const analysis = this.analyzeResult(result);
51
+ const passed = this.isPassed(analysis);
52
+ return {
53
+ gate: 'security',
54
+ passed,
55
+ message: passed
56
+ ? '安全扫描通过'
57
+ : `发现 ${analysis.critical} 个严重漏洞, ${analysis.high} 个高危漏洞`,
58
+ details: {
59
+ critical: analysis.critical,
60
+ high: analysis.high,
61
+ moderate: analysis.moderate,
62
+ low: analysis.low,
63
+ total: analysis.total,
64
+ vulnerabilities: analysis.vulnerabilities.slice(0, 10), // 只返回前 10 个
65
+ scanCommand,
66
+ },
67
+ timestamp: new Date().toISOString(),
68
+ duration: Date.now() - startTime,
69
+ };
70
+ }
71
+ catch (error) {
72
+ return {
73
+ gate: 'security',
74
+ passed: false,
75
+ message: `安全扫描失败: ${error.message}`,
76
+ timestamp: new Date().toISOString(),
77
+ duration: Date.now() - startTime,
78
+ };
79
+ }
80
+ }
81
+ /**
82
+ * 检测扫描命令
83
+ */
84
+ detectScanCommand(projectPath) {
85
+ // 默认使用 npm audit
86
+ return 'npm audit --json';
87
+ }
88
+ /**
89
+ * 运行扫描
90
+ */
91
+ async runScan(command, projectPath) {
92
+ try {
93
+ const { stdout } = await execAsync(command, {
94
+ cwd: projectPath,
95
+ maxBuffer: 10 * 1024 * 1024,
96
+ });
97
+ return stdout;
98
+ }
99
+ catch (error) {
100
+ // npm audit 发现漏洞时会返回非零退出码
101
+ // 但 stdout 仍然包含结果
102
+ if (error.stdout) {
103
+ return error.stdout;
104
+ }
105
+ throw error;
106
+ }
107
+ }
108
+ /**
109
+ * 分析扫描结果
110
+ */
111
+ analyzeResult(output) {
112
+ let critical = 0;
113
+ let high = 0;
114
+ let moderate = 0;
115
+ let low = 0;
116
+ const vulnerabilities = [];
117
+ try {
118
+ const result = JSON.parse(output);
119
+ // npm audit 格式
120
+ if (result.audit) {
121
+ const advisories = result.audit.advisories || {};
122
+ for (const key of Object.keys(advisories)) {
123
+ const advisory = advisories[key];
124
+ const severity = advisory.severity?.toLowerCase() || 'low';
125
+ switch (severity) {
126
+ case 'critical':
127
+ critical++;
128
+ break;
129
+ case 'high':
130
+ high++;
131
+ break;
132
+ case 'moderate':
133
+ moderate++;
134
+ break;
135
+ default: low++;
136
+ }
137
+ vulnerabilities.push({
138
+ name: advisory.name || key,
139
+ severity,
140
+ via: advisory.via?.[0]?.title || advisory.title || 'Unknown',
141
+ });
142
+ }
143
+ }
144
+ // 新版 npm audit 格式
145
+ if (result.vulnerabilities) {
146
+ for (const [name, vuln] of Object.entries(result.vulnerabilities)) {
147
+ const v = vuln;
148
+ const severity = v.severity?.toLowerCase() || 'low';
149
+ switch (severity) {
150
+ case 'critical':
151
+ critical++;
152
+ break;
153
+ case 'high':
154
+ high++;
155
+ break;
156
+ case 'moderate':
157
+ moderate++;
158
+ break;
159
+ default: low++;
160
+ }
161
+ vulnerabilities.push({
162
+ name,
163
+ severity,
164
+ via: v.via?.[0]?.title || v.name || 'Unknown',
165
+ });
166
+ }
167
+ }
168
+ }
169
+ catch {
170
+ // 解析失败,尝试从文本提取
171
+ const criticalMatch = output.match(/(\d+) critical/i);
172
+ const highMatch = output.match(/(\d+) high/i);
173
+ const moderateMatch = output.match(/(\d+) moderate/i);
174
+ const lowMatch = output.match(/(\d+) low/i);
175
+ critical = criticalMatch ? parseInt(criticalMatch[1], 10) : 0;
176
+ high = highMatch ? parseInt(highMatch[1], 10) : 0;
177
+ moderate = moderateMatch ? parseInt(moderateMatch[1], 10) : 0;
178
+ low = lowMatch ? parseInt(lowMatch[1], 10) : 0;
179
+ }
180
+ return {
181
+ critical,
182
+ high,
183
+ moderate,
184
+ low,
185
+ total: critical + high + moderate + low,
186
+ vulnerabilities,
187
+ };
188
+ }
189
+ /**
190
+ * 判断是否通过
191
+ */
192
+ isPassed(analysis) {
193
+ // 根据严重程度阈值判断
194
+ switch (this.config.severityThreshold) {
195
+ case 'critical':
196
+ return analysis.critical === 0;
197
+ case 'high':
198
+ return analysis.critical === 0 && analysis.high === 0;
199
+ case 'moderate':
200
+ return analysis.critical === 0 && analysis.high === 0 && analysis.moderate === 0;
201
+ case 'low':
202
+ return analysis.total === 0;
203
+ default:
204
+ return analysis.critical === 0 && analysis.high === 0;
205
+ }
206
+ }
207
+ /**
208
+ * 设置严重程度阈值
209
+ */
210
+ setSeverityThreshold(threshold) {
211
+ this.config.severityThreshold = threshold;
212
+ }
213
+ /**
214
+ * 获取配置
215
+ */
216
+ getConfig() {
217
+ return { ...this.config };
218
+ }
219
+ }
220
+ exports.SecurityGate = SecurityGate;
221
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/gates/security.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * 门禁类型定义
3
+ */
4
+ /**
5
+ * 门禁结果
6
+ */
7
+ export interface GateResult {
8
+ gate: string;
9
+ passed: boolean;
10
+ message: string;
11
+ details?: Record<string, any>;
12
+ timestamp: string;
13
+ duration?: number;
14
+ }
15
+ /**
16
+ * 门禁上下文
17
+ */
18
+ export interface GateContext {
19
+ projectId: string;
20
+ taskId?: string;
21
+ projectPath: string;
22
+ prNumber?: number;
23
+ minReviewers?: number;
24
+ reviewers?: string[];
25
+ securityScanCommand?: string;
26
+ ignoreWarnings?: boolean;
27
+ performanceThresholds?: PerformanceThresholds;
28
+ benchmarkCommand?: string;
29
+ oldContractPath?: string;
30
+ newContractPath?: string;
31
+ openApiSpec?: string;
32
+ timeout?: number;
33
+ }
34
+ /**
35
+ * 性能阈值
36
+ */
37
+ export interface PerformanceThresholds {
38
+ maxResponseTime?: number;
39
+ maxMemoryUsage?: number;
40
+ minCoverage?: number;
41
+ maxBundleSize?: number;
42
+ minThroughput?: number;
43
+ }
44
+ /**
45
+ * 审查门禁配置
46
+ */
47
+ export interface ReviewGateConfig {
48
+ minReviewers: number;
49
+ requireApproval: boolean;
50
+ blockOnChangesRequested: boolean;
51
+ allowedReviewers?: string[];
52
+ }
53
+ /**
54
+ * 安全门禁配置
55
+ */
56
+ export interface SecurityGateConfig {
57
+ enabled: boolean;
58
+ scanCommand?: string;
59
+ ignoreWarnings: boolean;
60
+ ignoreDevDependencies: boolean;
61
+ severityThreshold: 'low' | 'moderate' | 'high' | 'critical';
62
+ }
63
+ /**
64
+ * 性能门禁配置
65
+ */
66
+ export interface PerformanceGateConfig {
67
+ enabled: boolean;
68
+ benchmarkCommand?: string;
69
+ thresholds: PerformanceThresholds;
70
+ warmupRuns: number;
71
+ measureRuns: number;
72
+ }
73
+ /**
74
+ * 契约门禁配置
75
+ */
76
+ export interface ContractGateConfig {
77
+ enabled: boolean;
78
+ strict: boolean;
79
+ allowBreakingChanges: boolean;
80
+ contractPath?: string;
81
+ }
82
+ /**
83
+ * 验收标准门禁配置
84
+ */
85
+ export interface SpecAcceptanceGateConfig {
86
+ /** tasks.yml 路径 */
87
+ tasksPath?: string;
88
+ /** 是否检查所有任务 */
89
+ checkAllTasks?: boolean;
90
+ /** 自定义验收条件 */
91
+ customAcceptanceCriteria?: Record<string, (task: any) => Promise<boolean>>;
92
+ }
93
+ /**
94
+ * 验收标准门禁上下文
95
+ */
96
+ export interface AcceptanceGateContext {
97
+ /** 项目路径 */
98
+ projectPath: string;
99
+ /** 任务 ID */
100
+ taskId?: string;
101
+ /** tasks.yml 路径 */
102
+ tasksPath?: string;
103
+ }
104
+ /**
105
+ * 验收标准
106
+ */
107
+ export interface AcceptanceCriteria {
108
+ id: string;
109
+ description: string;
110
+ type: 'manual' | 'automated' | 'test';
111
+ required: boolean;
112
+ checked?: boolean;
113
+ notes?: string;
114
+ }
115
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gates/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * 门禁类型定义
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gates/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
package/dist/index.d.ts CHANGED
@@ -7,12 +7,26 @@
7
7
  * - Iron Laws:绝对禁止,无例外
8
8
  * - Guidelines:优先建议,有例外
9
9
  * - Tips:信息性提示,可忽略
10
+ *
11
+ * 门禁系统:
12
+ * - PassesGate:测试门控
13
+ * - ReviewGate:审查门禁
14
+ * - SecurityGate:安全门禁
15
+ * - PerformanceGate:性能门禁
16
+ * - ContractGate:契约门禁
17
+ * - CheckpointValidator:检查点验证
10
18
  */
11
19
  export * from './types';
12
20
  export * from './core';
21
+ export * from './gates';
13
22
  export * from './monitoring';
23
+ export * from './failure';
24
+ export * from './architecture/constraint-engine';
25
+ export * from './architecture/cross-project-checker';
26
+ export * from './spec/annotation-checker';
27
+ export * from './context/progressive-loader';
28
+ export * from './context/token-budget';
14
29
  export * from './presets';
15
- export * from './extensions/long-running';
16
30
  import type { ConstraintContext, ConstraintCheckResult, ConstraintTrigger } from './types/constraint';
17
31
  import type { IronLawContext, IronLawResult } from './types/constraint';
18
32
  import type { EnforcementExecutor, EnforcementId, InterceptionResult } from './types/enforcement';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,cAAc,SAAS,CAAC;AAKxB,cAAc,QAAQ,CAAC;AAKvB,cAAc,cAAc,CAAC;AAK7B,cAAc,WAAW,CAAC;AAO1B,cAAc,2BAA2B,CAAC;AAO1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAoB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAyC,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzI,eAAO,MAAM,WAAW,wCAAwB,CAAC;AAEjD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAEN;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAMD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,EAAE,CAAC,CAG1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,cAAc,SAAS,CAAC;AAKxB,cAAc,QAAQ,CAAC;AAKvB,cAAc,SAAS,CAAC;AAKxB,cAAc,cAAc,CAAC;AAK7B,cAAc,WAAW,CAAC;AAK1B,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AAKrD,cAAc,2BAA2B,CAAC;AAK1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AAKvC,cAAc,WAAW,CAAC;AAO1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAoB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAyC,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzI,eAAO,MAAM,WAAW,wCAAwB,CAAC;AAEjD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAEN;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAMD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,EAAE,CAAC,CAG1B"}
package/dist/index.js CHANGED
@@ -8,6 +8,14 @@
8
8
  * - Iron Laws:绝对禁止,无例外
9
9
  * - Guidelines:优先建议,有例外
10
10
  * - Tips:信息性提示,可忽略
11
+ *
12
+ * 门禁系统:
13
+ * - PassesGate:测试门控
14
+ * - ReviewGate:审查门禁
15
+ * - SecurityGate:安全门禁
16
+ * - PerformanceGate:性能门禁
17
+ * - ContractGate:契约门禁
18
+ * - CheckpointValidator:检查点验证
11
19
  */
12
20
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
21
  if (k2 === undefined) k2 = k;
@@ -40,18 +48,35 @@ __exportStar(require("./types"), exports);
40
48
  // ========================================
41
49
  __exportStar(require("./core"), exports);
42
50
  // ========================================
51
+ // 门禁系统导出
52
+ // ========================================
53
+ __exportStar(require("./gates"), exports);
54
+ // ========================================
43
55
  // 监控导出
44
56
  // ========================================
45
57
  __exportStar(require("./monitoring"), exports);
46
58
  // ========================================
47
- // 预设导出
59
+ // 失败处理导出
48
60
  // ========================================
49
- __exportStar(require("./presets"), exports);
61
+ __exportStar(require("./failure"), exports);
62
+ // ========================================
63
+ // 架构约束导出
64
+ // ========================================
65
+ __exportStar(require("./architecture/constraint-engine"), exports);
66
+ __exportStar(require("./architecture/cross-project-checker"), exports);
50
67
  // ========================================
51
- // 扩展模块导出
68
+ // Spec 检查导出
52
69
  // ========================================
53
- // Long-Running Agents 扩展
54
- __exportStar(require("./extensions/long-running"), exports);
70
+ __exportStar(require("./spec/annotation-checker"), exports);
71
+ // ========================================
72
+ // 上下文加载导出 (HZ-002)
73
+ // ========================================
74
+ __exportStar(require("./context/progressive-loader"), exports);
75
+ __exportStar(require("./context/token-budget"), exports);
76
+ // ========================================
77
+ // 预设导出
78
+ // ========================================
79
+ __exportStar(require("./presets"), exports);
55
80
  // ========================================
56
81
  // 便捷 API
57
82
  // ========================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AA0CH,gDAKC;AAED,wCAKC;AAED,4CAMC;AAKD,4CAIC;AAKD,oDAIC;AASD,sCAKC;AA5FD,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAC3C,0CAAwB;AAExB,2CAA2C;AAC3C,SAAS;AACT,2CAA2C;AAC3C,yCAAuB;AAEvB,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAC3C,+CAA6B;AAE7B,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAC3C,4CAA0B;AAE1B,2CAA2C;AAC3C,SAAS;AACT,2CAA2C;AAE3C,yBAAyB;AACzB,4DAA0C;AAE1C,2CAA2C;AAC3C,SAAS;AACT,2CAA2C;AAE3C,wDAA+D;AAI/D,gEAAuE;AAG1D,QAAA,WAAW,GAAG,mCAAqB,CAAC;AAE1C,KAAK,UAAU,kBAAkB,CACtC,OAA0B,EAC1B,OAA0B;IAE1B,OAAO,mCAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,OAA0B,EAC1B,OAA0B;IAE1B,OAAO,mCAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,SAAgB,gBAAgB,CAC9B,aAA4B,EAC5B,QAA6B,EAC7B,MAAe;IAEf,mCAAqB,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,OAA0B;IAE1B,OAAO,2BAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAA0B;IAE1B,OAAO,2BAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,2CAA2C;AAC3C,WAAW;AACX,2CAA2C;AAE3C;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,OAAuB;IAEvB,MAAM,MAAM,GAAG,MAAM,2BAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAoB,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;AA8DH,gDAKC;AAED,wCAKC;AAED,4CAMC;AAKD,4CAIC;AAKD,oDAIC;AASD,sCAKC;AAhHD,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAC3C,0CAAwB;AAExB,2CAA2C;AAC3C,SAAS;AACT,2CAA2C;AAC3C,yCAAuB;AAEvB,2CAA2C;AAC3C,SAAS;AACT,2CAA2C;AAC3C,0CAAwB;AAExB,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAC3C,+CAA6B;AAE7B,2CAA2C;AAC3C,SAAS;AACT,2CAA2C;AAC3C,4CAA0B;AAE1B,2CAA2C;AAC3C,SAAS;AACT,2CAA2C;AAC3C,mEAAiD;AACjD,uEAAqD;AAErD,2CAA2C;AAC3C,YAAY;AACZ,2CAA2C;AAC3C,4DAA0C;AAE1C,2CAA2C;AAC3C,mBAAmB;AACnB,2CAA2C;AAC3C,+DAA6C;AAC7C,yDAAuC;AAEvC,2CAA2C;AAC3C,OAAO;AACP,2CAA2C;AAC3C,4CAA0B;AAE1B,2CAA2C;AAC3C,SAAS;AACT,2CAA2C;AAE3C,wDAA+D;AAI/D,gEAAuE;AAG1D,QAAA,WAAW,GAAG,mCAAqB,CAAC;AAE1C,KAAK,UAAU,kBAAkB,CACtC,OAA0B,EAC1B,OAA0B;IAE1B,OAAO,mCAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,OAA0B,EAC1B,OAA0B;IAE1B,OAAO,mCAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,SAAgB,gBAAgB,CAC9B,aAA4B,EAC5B,QAA6B,EAC7B,MAAe;IAEf,mCAAqB,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,OAA0B;IAE1B,OAAO,2BAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAA0B;IAE1B,OAAO,2BAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,2CAA2C;AAC3C,WAAW;AACX,2CAA2C;AAE3C;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,OAAuB;IAEvB,MAAM,MAAM,GAAG,MAAM,2BAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAoB,CAAC;AACvF,CAAC"}
@@ -6,9 +6,15 @@
6
6
  * - TraceAnalyzer:统计汇总,异常检测
7
7
  * - ConstraintDoctor:Agent 诊断接口
8
8
  * - ConstraintEvolver:约束提案流程
9
+ *
10
+ * Performance Trace 系统:
11
+ * - PerformanceCollector:性能日志收集,零 Token
12
+ * - PerformanceAnalyzer:统计汇总,异常检测
9
13
  */
10
14
  export * from './traces';
11
15
  export * from './trace-analyzer';
12
16
  export * from './constraint-doctor';
13
17
  export * from './constraint-evolver';
18
+ export * from './performance-collector';
19
+ export * from './performance-analyzer';
14
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/monitoring/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/monitoring/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
@@ -7,6 +7,10 @@
7
7
  * - TraceAnalyzer:统计汇总,异常检测
8
8
  * - ConstraintDoctor:Agent 诊断接口
9
9
  * - ConstraintEvolver:约束提案流程
10
+ *
11
+ * Performance Trace 系统:
12
+ * - PerformanceCollector:性能日志收集,零 Token
13
+ * - PerformanceAnalyzer:统计汇总,异常检测
10
14
  */
11
15
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
16
  if (k2 === undefined) k2 = k;
@@ -27,4 +31,6 @@ __exportStar(require("./traces"), exports);
27
31
  __exportStar(require("./trace-analyzer"), exports);
28
32
  __exportStar(require("./constraint-doctor"), exports);
29
33
  __exportStar(require("./constraint-evolver"), exports);
34
+ __exportStar(require("./performance-collector"), exports);
35
+ __exportStar(require("./performance-analyzer"), exports);
30
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/monitoring/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,mDAAiC;AACjC,sDAAoC;AACpC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/monitoring/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,mDAAiC;AACjC,sDAAoC;AACpC,uDAAqC;AACrC,0DAAwC;AACxC,yDAAuC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Performance Analyzer
3
+ *
4
+ * 纯计算,零 Token 成本
5
+ *
6
+ * 功能:
7
+ * - 统计汇总(每小时自动执行)
8
+ * - 异常检测(每日检查)
9
+ * - 趋势分析(对比上一周期)
10
+ *
11
+ * 与 TraceAnalyzer 的区别:
12
+ * - TraceAnalyzer: 分析约束检查结果
13
+ * - PerformanceAnalyzer: 分析操作耗时
14
+ */
15
+ import type { PerformanceTrace, PerformanceSummary, PerformanceAnomaly, PerformanceAnalyzerConfig } from '../types/performance';
16
+ import { PerformanceCollector } from './performance-collector';
17
+ /**
18
+ * Performance Analyzer
19
+ *
20
+ * 使用方式:
21
+ * ```typescript
22
+ * const analyzer = new PerformanceAnalyzer(collector);
23
+ * const summaries = analyzer.summarize(traces);
24
+ * const anomalies = analyzer.detectAnomalies(summaries);
25
+ * ```
26
+ */
27
+ export declare class PerformanceAnalyzer {
28
+ private config;
29
+ private collector;
30
+ constructor(collector: PerformanceCollector, config?: Partial<PerformanceAnalyzerConfig>);
31
+ /**
32
+ * 生成统计汇总
33
+ *
34
+ * 纯计算,零 Token 成本
35
+ */
36
+ summarize(traces: PerformanceTrace[]): PerformanceSummary[];
37
+ /**
38
+ * 分析最近 N 小时的 traces
39
+ */
40
+ analyzeRecent(hours: number): PerformanceSummary[];
41
+ /**
42
+ * 分析特定操作
43
+ */
44
+ analyzeOperation(operation: string): PerformanceSummary[];
45
+ /**
46
+ * 检测异常
47
+ *
48
+ * 基于阈值检测异常模式
49
+ */
50
+ detectAnomalies(summaries: PerformanceSummary[]): PerformanceAnomaly[];
51
+ /**
52
+ * 对比上一周期
53
+ *
54
+ * 计算各指标的环比变化
55
+ */
56
+ compareWithPrevious(current: PerformanceSummary[], previous: PerformanceSummary[]): PerformanceSummary[];
57
+ /**
58
+ * 按操作类型分组
59
+ */
60
+ private groupByOperation;
61
+ /**
62
+ * 计算趋势
63
+ *
64
+ * 对比前半段和后半段的平均耗时
65
+ */
66
+ private calculateTrend;
67
+ /**
68
+ * 计算平均值
69
+ */
70
+ private calcAverage;
71
+ /**
72
+ * 计算百分位数
73
+ */
74
+ private calcPercentile;
75
+ /**
76
+ * 保存汇总结果
77
+ */
78
+ saveSummary(summaries: PerformanceSummary[]): void;
79
+ /**
80
+ * 加载上次汇总结果
81
+ */
82
+ loadSummary(): PerformanceSummary[] | null;
83
+ /**
84
+ * 运行每小时汇总
85
+ *
86
+ * 自动执行,零 Token 成本
87
+ */
88
+ runHourlySummary(): PerformanceSummary[];
89
+ /**
90
+ * 运行每日异常检测
91
+ *
92
+ * 返回异常列表,用于触发优化
93
+ */
94
+ runDailyAnomalyCheck(): PerformanceAnomaly[];
95
+ /**
96
+ * 生成报告(文本格式)
97
+ */
98
+ generateReport(summaries: PerformanceSummary[], anomalies: PerformanceAnomaly[]): string;
99
+ }
100
+ /**
101
+ * 创建分析器(使用全局收集器)
102
+ */
103
+ export declare function createPerformanceAnalyzer(config?: Partial<PerformanceAnalyzerConfig>): PerformanceAnalyzer;
104
+ //# sourceMappingURL=performance-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-analyzer.d.ts","sourceRoot":"","sources":["../../src/monitoring/performance-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAe/D;;;;;;;;;GASG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAAuB;gBAE5B,SAAS,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAKxF;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,EAAE;IA0D3D;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAKlD;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAKzD;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;IAsFtE;;;;OAIG;IACH,mBAAmB,CACjB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,kBAAkB,EAAE;IAmBvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA+BtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAalD;;OAEG;IACH,WAAW,IAAI,kBAAkB,EAAE,GAAG,IAAI;IAS1C;;;;OAIG;IACH,gBAAgB,IAAI,kBAAkB,EAAE;IAgBxC;;;;OAIG;IACH,oBAAoB,IAAI,kBAAkB,EAAE;IAU5C;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,MAAM;CA8CzF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,mBAAmB,CAG1G"}