@dommaker/harness 1.1.1 → 1.2.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 (348) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +2 -4
  3. package/bin/harness.js +12 -37
  4. package/dist/cli/commands/check.d.ts +2 -2
  5. package/dist/cli/commands/check.d.ts.map +1 -1
  6. package/dist/cli/commands/check.js +7 -32
  7. package/dist/cli/commands/check.js.map +1 -1
  8. package/dist/cli/commands/definitions.d.ts +2 -0
  9. package/dist/cli/commands/definitions.d.ts.map +1 -1
  10. package/dist/cli/commands/definitions.js.map +1 -1
  11. package/dist/cli/commands/init.d.ts.map +1 -1
  12. package/dist/cli/commands/init.js +6 -37
  13. package/dist/cli/commands/init.js.map +1 -1
  14. package/dist/cli/commands/knowledge.d.ts.map +1 -1
  15. package/dist/cli/commands/knowledge.js +1 -12
  16. package/dist/cli/commands/knowledge.js.map +1 -1
  17. package/dist/cli/commands/report.d.ts.map +1 -1
  18. package/dist/cli/commands/report.js +0 -2
  19. package/dist/cli/commands/report.js.map +1 -1
  20. package/dist/cli/commands/status.js +2 -2
  21. package/dist/cli/commands/status.js.map +1 -1
  22. package/dist/context/index.d.ts +9 -6
  23. package/dist/context/index.d.ts.map +1 -1
  24. package/dist/context/index.js +18 -20
  25. package/dist/context/index.js.map +1 -1
  26. package/dist/core/constraints/capabilities-parser.d.ts +3 -2
  27. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  28. package/dist/core/constraints/capabilities-parser.js +25 -47
  29. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  30. package/dist/core/constraints/checker.d.ts +29 -32
  31. package/dist/core/constraints/checker.d.ts.map +1 -1
  32. package/dist/core/constraints/checker.js +34 -126
  33. package/dist/core/constraints/checker.js.map +1 -1
  34. package/dist/core/constraints/checkers/index.d.ts +2 -1
  35. package/dist/core/constraints/checkers/index.d.ts.map +1 -1
  36. package/dist/core/constraints/checkers/index.js +3 -0
  37. package/dist/core/constraints/checkers/index.js.map +1 -1
  38. package/dist/core/constraints/checkers/types.d.ts +25 -0
  39. package/dist/core/constraints/checkers/types.d.ts.map +1 -1
  40. package/dist/core/constraints/checkers/types.js +24 -0
  41. package/dist/core/constraints/checkers/types.js.map +1 -1
  42. package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
  43. package/dist/core/constraints/definitions/guidelines.js +0 -2
  44. package/dist/core/constraints/definitions/guidelines.js.map +1 -1
  45. package/dist/core/constraints/definitions/prompts.d.ts.map +1 -1
  46. package/dist/core/constraints/definitions/prompts.js +0 -5
  47. package/dist/core/constraints/definitions/prompts.js.map +1 -1
  48. package/dist/core/constraints/index.d.ts +1 -2
  49. package/dist/core/constraints/index.d.ts.map +1 -1
  50. package/dist/core/constraints/index.js +1 -7
  51. package/dist/core/constraints/index.js.map +1 -1
  52. package/dist/core/constraints/usage-report.d.ts +1 -2
  53. package/dist/core/constraints/usage-report.d.ts.map +1 -1
  54. package/dist/core/constraints/usage-report.js +2 -5
  55. package/dist/core/constraints/usage-report.js.map +1 -1
  56. package/dist/core/effective-constraints.d.ts +24 -4
  57. package/dist/core/effective-constraints.d.ts.map +1 -1
  58. package/dist/core/effective-constraints.js +28 -7
  59. package/dist/core/effective-constraints.js.map +1 -1
  60. package/dist/core/effective-set.d.ts +30 -0
  61. package/dist/core/effective-set.d.ts.map +1 -0
  62. package/dist/core/effective-set.js +35 -0
  63. package/dist/core/effective-set.js.map +1 -0
  64. package/dist/core/index.d.ts +13 -6
  65. package/dist/core/index.d.ts.map +1 -1
  66. package/dist/core/index.js +44 -21
  67. package/dist/core/index.js.map +1 -1
  68. package/dist/core/project-config-loader.d.ts +3 -6
  69. package/dist/core/project-config-loader.d.ts.map +1 -1
  70. package/dist/core/project-config-loader.js +47 -61
  71. package/dist/core/project-config-loader.js.map +1 -1
  72. package/dist/failure/constraint-handler.d.ts +1 -1
  73. package/dist/failure/constraint-handler.js +1 -1
  74. package/dist/gates/checker-gate.d.ts +1 -4
  75. package/dist/gates/checker-gate.d.ts.map +1 -1
  76. package/dist/gates/checker-gate.js +3 -11
  77. package/dist/gates/checker-gate.js.map +1 -1
  78. package/dist/gates/definitions.d.ts +9 -38
  79. package/dist/gates/definitions.d.ts.map +1 -1
  80. package/dist/gates/definitions.js +24 -13
  81. package/dist/gates/definitions.js.map +1 -1
  82. package/dist/gates/effective-gates.d.ts.map +1 -1
  83. package/dist/gates/effective-gates.js +14 -18
  84. package/dist/gates/effective-gates.js.map +1 -1
  85. package/dist/gates/index.d.ts +1 -1
  86. package/dist/gates/index.d.ts.map +1 -1
  87. package/dist/gates/index.js.map +1 -1
  88. package/dist/hooks/bootstrap.d.ts.map +1 -1
  89. package/dist/hooks/bootstrap.js +0 -3
  90. package/dist/hooks/bootstrap.js.map +1 -1
  91. package/dist/index.d.ts +43 -60
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +180 -143
  94. package/dist/index.js.map +1 -1
  95. package/dist/knowledge/query.d.ts +15 -0
  96. package/dist/knowledge/query.d.ts.map +1 -1
  97. package/dist/knowledge/query.js +23 -0
  98. package/dist/knowledge/query.js.map +1 -1
  99. package/dist/monitoring/analyzer-base.d.ts +0 -4
  100. package/dist/monitoring/analyzer-base.d.ts.map +1 -1
  101. package/dist/monitoring/analyzer-base.js +0 -21
  102. package/dist/monitoring/analyzer-base.js.map +1 -1
  103. package/dist/monitoring/index.d.ts +6 -12
  104. package/dist/monitoring/index.d.ts.map +1 -1
  105. package/dist/monitoring/index.js +13 -29
  106. package/dist/monitoring/index.js.map +1 -1
  107. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  108. package/dist/monitoring/trace-analyzer.js +2 -68
  109. package/dist/monitoring/trace-analyzer.js.map +1 -1
  110. package/dist/monitoring/traces.d.ts +0 -4
  111. package/dist/monitoring/traces.d.ts.map +1 -1
  112. package/dist/monitoring/traces.js +0 -14
  113. package/dist/monitoring/traces.js.map +1 -1
  114. package/dist/presets/index.d.ts +2 -2
  115. package/dist/presets/index.d.ts.map +1 -1
  116. package/dist/presets/index.js +3 -4
  117. package/dist/presets/index.js.map +1 -1
  118. package/dist/presets/standard.d.ts +10 -22
  119. package/dist/presets/standard.d.ts.map +1 -1
  120. package/dist/presets/standard.js +15 -75
  121. package/dist/presets/standard.js.map +1 -1
  122. package/dist/types/constraint.d.ts +1 -29
  123. package/dist/types/constraint.d.ts.map +1 -1
  124. package/dist/types/constraint.js +1 -1
  125. package/dist/types/constraint.js.map +1 -1
  126. package/dist/types/index.d.ts +0 -3
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/types/index.js +0 -4
  129. package/dist/types/index.js.map +1 -1
  130. package/dist/types/project-config.d.ts +4 -8
  131. package/dist/types/project-config.d.ts.map +1 -1
  132. package/dist/types/trace.d.ts +5 -18
  133. package/dist/types/trace.d.ts.map +1 -1
  134. package/package.json +2 -2
  135. package/src/CONTEXT.md +4 -5
  136. package/src/__tests__/checker-extra.test.ts +33 -139
  137. package/src/__tests__/checker.test.ts +0 -376
  138. package/src/__tests__/project-config-loader-extra.test.ts +42 -29
  139. package/src/__tests__/public-exports.test.ts +138 -0
  140. package/src/__tests__/trace-analyzer-extra.test.ts +6 -86
  141. package/src/__tests__/trace-analyzer.test.ts +4 -5
  142. package/src/__tests__/trace-collector.test.ts +0 -11
  143. package/src/__tests__/traces.test.ts +3 -22
  144. package/src/cli/commands/CONTEXT.md +2 -2
  145. package/src/cli/commands/__tests__/check-skip-output.test.ts +10 -7
  146. package/src/cli/commands/__tests__/check.test.ts +29 -69
  147. package/src/cli/commands/__tests__/constraints-report.test.ts +1 -1
  148. package/src/cli/commands/__tests__/knowledge.test.ts +90 -1
  149. package/src/cli/commands/__tests__/registry.test.ts +8 -6
  150. package/src/cli/commands/__tests__/status-extra.test.ts +6 -6
  151. package/src/cli/commands/__tests__/status.test.ts +6 -6
  152. package/src/cli/commands/check.ts +8 -34
  153. package/src/cli/commands/definitions.ts +2 -0
  154. package/src/cli/commands/init.ts +6 -37
  155. package/src/cli/commands/knowledge.ts +1 -16
  156. package/src/cli/commands/report.ts +0 -2
  157. package/src/cli/commands/status.ts +2 -2
  158. package/src/context/index.ts +29 -6
  159. package/src/core/CONTEXT.md +4 -3
  160. package/src/core/__tests__/effective-set.test.ts +80 -0
  161. package/src/core/constraints/capabilities-parser.ts +43 -49
  162. package/src/core/constraints/checker.ts +51 -145
  163. package/src/core/constraints/checkers/index.ts +2 -1
  164. package/src/core/constraints/checkers/types.ts +42 -0
  165. package/src/core/constraints/definitions/guidelines.ts +0 -2
  166. package/src/core/constraints/definitions/prompts.ts +0 -5
  167. package/src/core/constraints/index.ts +2 -17
  168. package/src/core/constraints/usage-report.ts +5 -8
  169. package/src/core/effective-constraints.ts +35 -7
  170. package/src/core/effective-set.ts +56 -0
  171. package/src/core/index.ts +80 -6
  172. package/src/core/project-config-loader.ts +53 -68
  173. package/src/failure/CONTEXT.md +1 -1
  174. package/src/failure/constraint-handler.ts +1 -1
  175. package/src/gates/CONTEXT.md +3 -3
  176. package/src/gates/checker-gate.ts +4 -12
  177. package/src/gates/definitions.ts +27 -50
  178. package/src/gates/effective-gates.ts +14 -21
  179. package/src/gates/index.ts +1 -1
  180. package/src/hooks/bootstrap.ts +0 -3
  181. package/src/index.ts +384 -148
  182. package/src/knowledge/CONTEXT.md +2 -2
  183. package/src/knowledge/__tests__/query.test.ts +64 -0
  184. package/src/knowledge/query.ts +28 -0
  185. package/src/monitoring/CONTEXT.md +7 -13
  186. package/src/monitoring/__tests__/traces.test.ts +0 -10
  187. package/src/monitoring/analyzer-base.ts +0 -22
  188. package/src/monitoring/index.ts +6 -12
  189. package/src/monitoring/trace-analyzer.ts +2 -73
  190. package/src/monitoring/traces.ts +0 -20
  191. package/src/presets/__tests__/standard.test.ts +48 -69
  192. package/src/presets/index.ts +3 -5
  193. package/src/presets/standard.ts +14 -79
  194. package/src/spec/CONTEXT.md +5 -13
  195. package/src/types/constraint.ts +1 -51
  196. package/src/types/index.ts +0 -12
  197. package/src/types/project-config.ts +4 -10
  198. package/src/types/trace.ts +5 -30
  199. package/dist/core/constraints/interceptor.d.ts +0 -39
  200. package/dist/core/constraints/interceptor.d.ts.map +0 -1
  201. package/dist/core/constraints/interceptor.js +0 -166
  202. package/dist/core/constraints/interceptor.js.map +0 -1
  203. package/dist/dashboard/data.d.ts +0 -31
  204. package/dist/dashboard/data.d.ts.map +0 -1
  205. package/dist/dashboard/data.js +0 -81
  206. package/dist/dashboard/data.js.map +0 -1
  207. package/dist/dashboard/index.d.ts +0 -4
  208. package/dist/dashboard/index.d.ts.map +0 -1
  209. package/dist/dashboard/index.js +0 -20
  210. package/dist/dashboard/index.js.map +0 -1
  211. package/dist/dashboard/stats.d.ts +0 -20
  212. package/dist/dashboard/stats.d.ts.map +0 -1
  213. package/dist/dashboard/stats.js +0 -115
  214. package/dist/dashboard/stats.js.map +0 -1
  215. package/dist/dashboard/types.d.ts +0 -110
  216. package/dist/dashboard/types.d.ts.map +0 -1
  217. package/dist/dashboard/types.js +0 -8
  218. package/dist/dashboard/types.js.map +0 -1
  219. package/dist/monitoring/constraint-doctor.d.ts +0 -76
  220. package/dist/monitoring/constraint-doctor.d.ts.map +0 -1
  221. package/dist/monitoring/constraint-doctor.js +0 -189
  222. package/dist/monitoring/constraint-doctor.js.map +0 -1
  223. package/dist/monitoring/diagnosis-rules.d.ts +0 -18
  224. package/dist/monitoring/diagnosis-rules.d.ts.map +0 -1
  225. package/dist/monitoring/diagnosis-rules.js +0 -119
  226. package/dist/monitoring/diagnosis-rules.js.map +0 -1
  227. package/dist/monitoring/knowledge-doctor.d.ts +0 -78
  228. package/dist/monitoring/knowledge-doctor.d.ts.map +0 -1
  229. package/dist/monitoring/knowledge-doctor.js +0 -266
  230. package/dist/monitoring/knowledge-doctor.js.map +0 -1
  231. package/dist/monitoring/knowledge-evolver.d.ts +0 -72
  232. package/dist/monitoring/knowledge-evolver.d.ts.map +0 -1
  233. package/dist/monitoring/knowledge-evolver.js +0 -205
  234. package/dist/monitoring/knowledge-evolver.js.map +0 -1
  235. package/dist/monitoring/performance-analyzer.d.ts +0 -92
  236. package/dist/monitoring/performance-analyzer.d.ts.map +0 -1
  237. package/dist/monitoring/performance-analyzer.js +0 -343
  238. package/dist/monitoring/performance-analyzer.js.map +0 -1
  239. package/dist/monitoring/performance-collector.d.ts +0 -103
  240. package/dist/monitoring/performance-collector.d.ts.map +0 -1
  241. package/dist/monitoring/performance-collector.js +0 -298
  242. package/dist/monitoring/performance-collector.js.map +0 -1
  243. package/dist/safety/index.d.ts +0 -6
  244. package/dist/safety/index.d.ts.map +0 -1
  245. package/dist/safety/index.js +0 -22
  246. package/dist/safety/index.js.map +0 -1
  247. package/dist/safety/input-guardrail.d.ts +0 -36
  248. package/dist/safety/input-guardrail.d.ts.map +0 -1
  249. package/dist/safety/input-guardrail.js +0 -118
  250. package/dist/safety/input-guardrail.js.map +0 -1
  251. package/dist/safety/output-guardrail.d.ts +0 -39
  252. package/dist/safety/output-guardrail.d.ts.map +0 -1
  253. package/dist/safety/output-guardrail.js +0 -147
  254. package/dist/safety/output-guardrail.js.map +0 -1
  255. package/dist/safety/sandbox.d.ts +0 -45
  256. package/dist/safety/sandbox.d.ts.map +0 -1
  257. package/dist/safety/sandbox.js +0 -134
  258. package/dist/safety/sandbox.js.map +0 -1
  259. package/dist/safety/tool-guardrail.d.ts +0 -51
  260. package/dist/safety/tool-guardrail.d.ts.map +0 -1
  261. package/dist/safety/tool-guardrail.js +0 -147
  262. package/dist/safety/tool-guardrail.js.map +0 -1
  263. package/dist/safety/types.d.ts +0 -104
  264. package/dist/safety/types.d.ts.map +0 -1
  265. package/dist/safety/types.js +0 -6
  266. package/dist/safety/types.js.map +0 -1
  267. package/dist/spec/annotation-checker.d.ts +0 -47
  268. package/dist/spec/annotation-checker.d.ts.map +0 -1
  269. package/dist/spec/annotation-checker.js +0 -279
  270. package/dist/spec/annotation-checker.js.map +0 -1
  271. package/dist/types/enforcement.d.ts +0 -42
  272. package/dist/types/enforcement.d.ts.map +0 -1
  273. package/dist/types/enforcement.js +0 -6
  274. package/dist/types/enforcement.js.map +0 -1
  275. package/dist/types/monitoring-types.d.ts +0 -53
  276. package/dist/types/monitoring-types.d.ts.map +0 -1
  277. package/dist/types/monitoring-types.js +0 -10
  278. package/dist/types/monitoring-types.js.map +0 -1
  279. package/dist/types/performance.d.ts +0 -204
  280. package/dist/types/performance.d.ts.map +0 -1
  281. package/dist/types/performance.js +0 -12
  282. package/dist/types/performance.js.map +0 -1
  283. package/dist/verification/index.d.ts +0 -4
  284. package/dist/verification/index.d.ts.map +0 -1
  285. package/dist/verification/index.js +0 -20
  286. package/dist/verification/index.js.map +0 -1
  287. package/dist/verification/loop.d.ts +0 -30
  288. package/dist/verification/loop.d.ts.map +0 -1
  289. package/dist/verification/loop.js +0 -114
  290. package/dist/verification/loop.js.map +0 -1
  291. package/dist/verification/rules-based.d.ts +0 -40
  292. package/dist/verification/rules-based.d.ts.map +0 -1
  293. package/dist/verification/rules-based.js +0 -130
  294. package/dist/verification/rules-based.js.map +0 -1
  295. package/dist/verification/types.d.ts +0 -69
  296. package/dist/verification/types.d.ts.map +0 -1
  297. package/dist/verification/types.js +0 -6
  298. package/dist/verification/types.js.map +0 -1
  299. package/src/__tests__/annotation-checker.test.ts +0 -183
  300. package/src/__tests__/constraint-doctor.test.ts +0 -271
  301. package/src/__tests__/doctor-extra.test.ts +0 -155
  302. package/src/__tests__/extend-exceptions.test.ts +0 -149
  303. package/src/__tests__/interceptor.test.ts +0 -89
  304. package/src/__tests__/performance-analyzer.test.ts +0 -499
  305. package/src/__tests__/performance-collector.test.ts +0 -276
  306. package/src/__tests__/presets.test.ts +0 -65
  307. package/src/core/constraints/__tests__/interceptor.test.ts +0 -267
  308. package/src/core/constraints/interceptor.ts +0 -217
  309. package/src/dashboard/CONTEXT.md +0 -21
  310. package/src/dashboard/__tests__/data.test.ts +0 -111
  311. package/src/dashboard/__tests__/stats.test.ts +0 -159
  312. package/src/dashboard/data.ts +0 -103
  313. package/src/dashboard/index.ts +0 -3
  314. package/src/dashboard/stats.ts +0 -127
  315. package/src/dashboard/types.ts +0 -130
  316. package/src/monitoring/__tests__/knowledge-doctor.test.ts +0 -278
  317. package/src/monitoring/__tests__/knowledge-evolver.test.ts +0 -368
  318. package/src/monitoring/__tests__/performance-analyzer.test.ts +0 -137
  319. package/src/monitoring/__tests__/performance-collector.test.ts +0 -331
  320. package/src/monitoring/constraint-doctor.ts +0 -228
  321. package/src/monitoring/diagnosis-rules.ts +0 -132
  322. package/src/monitoring/knowledge-doctor.ts +0 -322
  323. package/src/monitoring/knowledge-evolver.ts +0 -289
  324. package/src/monitoring/performance-analyzer.ts +0 -400
  325. package/src/monitoring/performance-collector.ts +0 -326
  326. package/src/safety/CONTEXT.md +0 -23
  327. package/src/safety/__tests__/input-guardrail.test.ts +0 -105
  328. package/src/safety/__tests__/output-guardrail.test.ts +0 -108
  329. package/src/safety/__tests__/sandbox.test.ts +0 -158
  330. package/src/safety/__tests__/tool-guardrail.test.ts +0 -127
  331. package/src/safety/index.ts +0 -5
  332. package/src/safety/input-guardrail.ts +0 -133
  333. package/src/safety/output-guardrail.ts +0 -170
  334. package/src/safety/sandbox.ts +0 -148
  335. package/src/safety/tool-guardrail.ts +0 -176
  336. package/src/safety/types.ts +0 -124
  337. package/src/spec/__tests__/annotation-checker.test.ts +0 -294
  338. package/src/spec/annotation-checker.ts +0 -320
  339. package/src/types/enforcement.ts +0 -48
  340. package/src/types/monitoring-types.ts +0 -68
  341. package/src/types/performance.ts +0 -295
  342. package/src/verification/CONTEXT.md +0 -23
  343. package/src/verification/__tests__/loop.test.ts +0 -303
  344. package/src/verification/__tests__/rules-based.test.ts +0 -240
  345. package/src/verification/index.ts +0 -3
  346. package/src/verification/loop.ts +0 -137
  347. package/src/verification/rules-based.ts +0 -152
  348. package/src/verification/types.ts +0 -81
@@ -1,92 +0,0 @@
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
- * 对比前半段和后半段的平均耗时
61
- */
62
- private calculateTrend;
63
- /**
64
- * 保存汇总结果
65
- */
66
- saveSummary(summaries: PerformanceSummary[]): void;
67
- /**
68
- * 加载上次汇总结果
69
- */
70
- loadSummary(): PerformanceSummary[] | null;
71
- /**
72
- * 运行每小时汇总
73
- *
74
- * 自动执行,零 Token 成本
75
- */
76
- runHourlySummary(): PerformanceSummary[];
77
- /**
78
- * 运行每日异常检测
79
- *
80
- * 返回异常列表,用于触发优化
81
- */
82
- runDailyAnomalyCheck(): PerformanceAnomaly[];
83
- /**
84
- * 生成报告(文本格式)
85
- */
86
- generateReport(summaries: PerformanceSummary[], anomalies: PerformanceAnomaly[]): string;
87
- }
88
- /**
89
- * 创建分析器(使用全局收集器)
90
- */
91
- export declare function createPerformanceAnalyzer(config?: Partial<PerformanceAnalyzerConfig>): PerformanceAnalyzer;
92
- //# sourceMappingURL=performance-analyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"performance-analyzer.d.ts","sourceRoot":"","sources":["../../src/monitoring/performance-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAyB/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;IAyD3D;;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;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAIlD;;OAEG;IACH,WAAW,IAAI,kBAAkB,EAAE,GAAG,IAAI;IAI1C;;;;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"}
@@ -1,343 +0,0 @@
1
- "use strict";
2
- /**
3
- * Performance Analyzer
4
- *
5
- * 纯计算,零 Token 成本
6
- *
7
- * 功能:
8
- * - 统计汇总(每小时自动执行)
9
- * - 异常检测(每日检查)
10
- * - 趋势分析(对比上一周期)
11
- *
12
- * 与 TraceAnalyzer 的区别:
13
- * - TraceAnalyzer: 分析约束检查结果
14
- * - PerformanceAnalyzer: 分析操作耗时
15
- */
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.PerformanceAnalyzer = void 0;
18
- exports.createPerformanceAnalyzer = createPerformanceAnalyzer;
19
- const performance_collector_1 = require("./performance-collector");
20
- const analyzer_base_1 = require("./analyzer-base");
21
- /**
22
- * 默认配置
23
- */
24
- const DEFAULT_CONFIG = {
25
- summaryFile: '.harness/logs/performance-summary.json',
26
- periodMs: 3600 * 1000, // 1 小时
27
- thresholds: {
28
- avgDuration: 5000, // 平均耗时 > 5s 视为异常
29
- exceededRate: 0.3, // 超阈值率 > 30% 视为异常
30
- errorRate: 0.1, // 错误率 > 10% 视为异常
31
- },
32
- };
33
- /**
34
- * Performance Analyzer
35
- *
36
- * 使用方式:
37
- * ```typescript
38
- * const analyzer = new PerformanceAnalyzer(collector);
39
- * const summaries = analyzer.summarize(traces);
40
- * const anomalies = analyzer.detectAnomalies(summaries);
41
- * ```
42
- */
43
- class PerformanceAnalyzer {
44
- config;
45
- collector;
46
- constructor(collector, config) {
47
- this.collector = collector;
48
- this.config = { ...DEFAULT_CONFIG, ...config };
49
- }
50
- /**
51
- * 生成统计汇总
52
- *
53
- * 纯计算,零 Token 成本
54
- */
55
- summarize(traces) {
56
- // 按操作类型分组
57
- const grouped = (0, analyzer_base_1.groupByKey)(traces, t => t.operation);
58
- const summaries = [];
59
- for (const [operation, group] of grouped) {
60
- // 计算时间范围
61
- const timeRange = (0, analyzer_base_1.timeRangeOf)(group.map(t => t.timestamp));
62
- // 单次遍历计算核心统计
63
- const totalCalls = group.length;
64
- let okCount = 0, exceededCount = 0, errorCount = 0;
65
- for (const t of group) {
66
- if (t.result === 'ok')
67
- okCount++;
68
- else if (t.result === 'exceeded')
69
- exceededCount++;
70
- else if (t.result === 'error')
71
- errorCount++;
72
- }
73
- // 计算比率
74
- const okRate = totalCalls > 0 ? okCount / totalCalls : 0;
75
- const exceededRate = totalCalls > 0 ? exceededCount / totalCalls : 0;
76
- const errorRate = totalCalls > 0 ? errorCount / totalCalls : 0;
77
- // 计算耗时统计
78
- const durations = group.map(t => t.duration);
79
- const avgDuration = (0, analyzer_base_1.calcAverage)(durations);
80
- const maxDuration = Math.max(...durations);
81
- const minDuration = Math.min(...durations);
82
- const p95Duration = (0, analyzer_base_1.calcPercentile)(durations, 95);
83
- const p99Duration = (0, analyzer_base_1.calcPercentile)(durations, 99);
84
- // 计算趋势
85
- const recentTrend = this.calculateTrend(group);
86
- summaries.push({
87
- operation,
88
- timeRange,
89
- totalCalls,
90
- okCount,
91
- exceededCount,
92
- errorCount,
93
- avgDuration,
94
- maxDuration,
95
- minDuration,
96
- p95Duration,
97
- p99Duration,
98
- okRate,
99
- exceededRate,
100
- errorRate,
101
- recentTrend,
102
- });
103
- }
104
- return summaries;
105
- }
106
- /**
107
- * 分析最近 N 小时的 traces
108
- */
109
- analyzeRecent(hours) {
110
- const traces = this.collector.readRecent(hours);
111
- return this.summarize(traces);
112
- }
113
- /**
114
- * 分析特定操作
115
- */
116
- analyzeOperation(operation) {
117
- const traces = this.collector.readByOperation(operation);
118
- return this.summarize(traces);
119
- }
120
- /**
121
- * 检测异常
122
- *
123
- * 基于阈值检测异常模式
124
- */
125
- detectAnomalies(summaries) {
126
- const anomalies = [];
127
- const thresholds = this.config.thresholds;
128
- for (const summary of summaries) {
129
- // 检测高平均耗时
130
- if (summary.avgDuration > thresholds.avgDuration) {
131
- anomalies.push({
132
- type: 'high_avg_duration',
133
- operation: summary.operation,
134
- message: `操作 ${summary.operation} 平均耗时 ${Math.round(summary.avgDuration)}ms,超过阈值 ${thresholds.avgDuration}ms`,
135
- data: {
136
- currentValue: summary.avgDuration,
137
- threshold: thresholds.avgDuration,
138
- },
139
- detectedAt: Date.now(),
140
- suggestedAction: 'optimize',
141
- });
142
- }
143
- // 检测耗时趋势上升
144
- if (summary.recentTrend === 'rising') {
145
- anomalies.push({
146
- type: 'rising_duration',
147
- operation: summary.operation,
148
- message: `操作 ${summary.operation} 耗时趋势上升`,
149
- data: {
150
- currentValue: summary.avgDuration,
151
- threshold: 0,
152
- trend: 'rising',
153
- },
154
- detectedAt: Date.now(),
155
- suggestedAction: 'optimize',
156
- });
157
- }
158
- // 检测高超阈值率
159
- if (summary.exceededRate > thresholds.exceededRate) {
160
- anomalies.push({
161
- type: 'high_exceeded_rate',
162
- operation: summary.operation,
163
- message: `操作 ${summary.operation} 超阈值率 ${Math.round(summary.exceededRate * 100)}%,超过阈值 ${thresholds.exceededRate * 100}%`,
164
- data: {
165
- currentValue: summary.exceededRate,
166
- threshold: thresholds.exceededRate,
167
- },
168
- detectedAt: Date.now(),
169
- suggestedAction: 'adjust_threshold',
170
- });
171
- }
172
- // 检测超阈值率上升
173
- if (summary.exceededRate > 0.1 && summary.recentTrend === 'rising') {
174
- anomalies.push({
175
- type: 'rising_exceeded_rate',
176
- operation: summary.operation,
177
- message: `操作 ${summary.operation} 超阈值率 ${Math.round(summary.exceededRate * 100)}% 且趋势上升`,
178
- data: {
179
- currentValue: summary.exceededRate,
180
- threshold: 0.1,
181
- trend: 'rising',
182
- },
183
- detectedAt: Date.now(),
184
- suggestedAction: 'optimize',
185
- });
186
- }
187
- // 检测高错误率
188
- if (summary.errorRate > thresholds.errorRate) {
189
- anomalies.push({
190
- type: 'high_error_rate',
191
- operation: summary.operation,
192
- message: `操作 ${summary.operation} 错误率 ${Math.round(summary.errorRate * 100)}%,超过阈值 ${thresholds.errorRate * 100}%`,
193
- data: {
194
- currentValue: summary.errorRate,
195
- threshold: thresholds.errorRate,
196
- },
197
- detectedAt: Date.now(),
198
- suggestedAction: 'notify_user',
199
- });
200
- }
201
- }
202
- return anomalies;
203
- }
204
- /**
205
- * 对比上一周期
206
- *
207
- * 计算各指标的环比变化
208
- */
209
- compareWithPrevious(current, previous) {
210
- const previousMap = new Map(previous.map(s => [s.operation, s]));
211
- return current.map(summary => {
212
- const prev = previousMap.get(summary.operation);
213
- if (prev) {
214
- summary.changeFromLastPeriod = {
215
- avgDurationDelta: summary.avgDuration - prev.avgDuration,
216
- exceededRateDelta: summary.exceededRate - prev.exceededRate,
217
- };
218
- }
219
- return summary;
220
- });
221
- }
222
- /**
223
- * 计算趋势
224
- *
225
- * 对比前半段和后半段的平均耗时
226
- */
227
- calculateTrend(traces) {
228
- if (traces.length < analyzer_base_1.MIN_TREND_SAMPLES) {
229
- return 'stable';
230
- }
231
- // 分成前后两半(按时间排序)
232
- const [firstHalf, secondHalf] = (0, analyzer_base_1.splitByTime)(traces);
233
- // 计算前半段和后半段的平均耗时
234
- const firstAvg = (0, analyzer_base_1.calcAverage)(firstHalf.map(t => t.duration));
235
- const secondAvg = (0, analyzer_base_1.calcAverage)(secondHalf.map(t => t.duration));
236
- // 计算变化率
237
- const delta = secondAvg - firstAvg;
238
- const changeRate = firstAvg > 0 ? delta / firstAvg : 0;
239
- // 判断趋势(变化 > 10% 才算显著)
240
- if (changeRate > 0.1) {
241
- return 'rising';
242
- }
243
- else if (changeRate < -0.1) {
244
- return 'falling';
245
- }
246
- else {
247
- return 'stable';
248
- }
249
- }
250
- /**
251
- * 保存汇总结果
252
- */
253
- saveSummary(summaries) {
254
- (0, analyzer_base_1.writeSummaryJson)(this.config.summaryFile, summaries);
255
- }
256
- /**
257
- * 加载上次汇总结果
258
- */
259
- loadSummary() {
260
- return (0, analyzer_base_1.readSummaryJson)(this.config.summaryFile);
261
- }
262
- /**
263
- * 运行每小时汇总
264
- *
265
- * 自动执行,零 Token 成本
266
- */
267
- runHourlySummary() {
268
- // 分析最近 1 小时
269
- const current = this.analyzeRecent(1);
270
- // 加载上次汇总,对比趋势
271
- const previous = this.loadSummary();
272
- if (previous) {
273
- this.compareWithPrevious(current, previous);
274
- }
275
- // 保存当前汇总
276
- this.saveSummary(current);
277
- return current;
278
- }
279
- /**
280
- * 运行每日异常检测
281
- *
282
- * 返回异常列表,用于触发优化
283
- */
284
- runDailyAnomalyCheck() {
285
- // 分析最近 24 小时
286
- const summaries = this.analyzeRecent(24);
287
- // 检测异常
288
- const anomalies = this.detectAnomalies(summaries);
289
- return anomalies;
290
- }
291
- /**
292
- * 生成报告(文本格式)
293
- */
294
- generateReport(summaries, anomalies) {
295
- const lines = [];
296
- lines.push('# Performance Report');
297
- lines.push(`Generated: ${new Date().toISOString()}`);
298
- lines.push('');
299
- // 汇总部分
300
- lines.push('## Operation Summaries');
301
- lines.push('');
302
- for (const summary of summaries) {
303
- const trendEmoji = {
304
- rising: '📈',
305
- falling: '📉',
306
- stable: '➡️',
307
- }[summary.recentTrend];
308
- lines.push(`**${summary.operation}** ${trendEmoji}`);
309
- lines.push(` - Calls: ${summary.totalCalls}`);
310
- lines.push(` - Avg: ${Math.round(summary.avgDuration)}ms`);
311
- lines.push(` - P95: ${Math.round(summary.p95Duration)}ms`);
312
- lines.push(` - P99: ${Math.round(summary.p99Duration)}ms`);
313
- lines.push(` - OK: ${Math.round(summary.okRate * 100)}%`);
314
- lines.push(` - Exceeded: ${Math.round(summary.exceededRate * 100)}%`);
315
- lines.push(` - Errors: ${Math.round(summary.errorRate * 100)}%`);
316
- lines.push('');
317
- }
318
- // 异常部分
319
- if (anomalies.length > 0) {
320
- lines.push('## Anomalies Detected');
321
- lines.push('');
322
- for (const anomaly of anomalies) {
323
- lines.push(`⚠️ **${anomaly.type}**: ${anomaly.operation}`);
324
- lines.push(` - ${anomaly.message}`);
325
- lines.push(` - Suggested: ${anomaly.suggestedAction}`);
326
- lines.push('');
327
- }
328
- }
329
- else {
330
- lines.push('## No Anomalies Detected ✅');
331
- }
332
- return lines.join('\n');
333
- }
334
- }
335
- exports.PerformanceAnalyzer = PerformanceAnalyzer;
336
- /**
337
- * 创建分析器(使用全局收集器)
338
- */
339
- function createPerformanceAnalyzer(config) {
340
- const collector = new performance_collector_1.PerformanceCollector();
341
- return new PerformanceAnalyzer(collector, config);
342
- }
343
- //# sourceMappingURL=performance-analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"performance-analyzer.js","sourceRoot":"","sources":["../../src/monitoring/performance-analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- /**
2
- * Performance Collector
3
- *
4
- * 轻量设计,零 Token 成本
5
- *
6
- * 功能:
7
- * - 记录操作耗时(追加写入)
8
- * - 批量读取 traces(按时间范围过滤)
9
- * - 文件滚动(防止文件过大)
10
- *
11
- * 与 TraceCollector 的区别:
12
- * - TraceCollector: 记录约束检查结果
13
- * - PerformanceCollector: 记录操作耗时
14
- */
15
- import type { PerformanceTrace, PerformanceTraceFilter, PerformanceCollectorConfig } from '../types/performance';
16
- /**
17
- * Performance Collector
18
- *
19
- * 使用方式:
20
- * ```typescript
21
- * const collector = new PerformanceCollector();
22
- * collector.recordOk('extract', 150);
23
- * collector.recordExceeded('invokeSkillAgent', 35000, 30000);
24
- * ```
25
- */
26
- export declare class PerformanceCollector {
27
- private config;
28
- private logFile;
29
- constructor(config?: Partial<PerformanceCollectorConfig>);
30
- /**
31
- * 确保日志目录存在
32
- */
33
- private ensureDirectory;
34
- /**
35
- * 记录一条性能数据
36
- *
37
- * 轻量操作:
38
- * - 追加写入(不读取现有内容)
39
- * - 单行 JSON(便于批量处理)
40
- * - 零 Token 成本
41
- */
42
- record(trace: PerformanceTrace): void;
43
- /**
44
- * 快捷方法:记录正常执行
45
- */
46
- recordOk(operation: string, duration: number, metadata?: Record<string, unknown>): void;
47
- /**
48
- * 快捷方法:记录超阈值
49
- */
50
- recordExceeded(operation: string, duration: number, threshold: number, metadata?: Record<string, unknown>): void;
51
- /**
52
- * 快捷方法:记录错误
53
- */
54
- recordError(operation: string, duration: number, error: Error | string, metadata?: Record<string, unknown>): void;
55
- /**
56
- * 批量读取 traces
57
- *
58
- * 支持过滤条件:
59
- * - 时间范围
60
- * - 操作类型
61
- * - 结果类型
62
- */
63
- read(filter?: PerformanceTraceFilter): PerformanceTrace[];
64
- /**
65
- * 读取最近 N 小时的 traces
66
- */
67
- readRecent(hours: number): PerformanceTrace[];
68
- /**
69
- * 读取特定操作的 traces
70
- */
71
- readByOperation(operation: string): PerformanceTrace[];
72
- /**
73
- * 应用过滤条件
74
- */
75
- private applyFilter;
76
- /**
77
- * 检查文件大小,必要时滚动
78
- */
79
- private checkFileSize;
80
- /**
81
- * 滚动文件
82
- *
83
- * 将当前文件重命名为带时间戳的备份
84
- */
85
- private rotateFile;
86
- /**
87
- * 清理旧备份文件
88
- *
89
- * 删除超过 maxAge 天的备份文件
90
- */
91
- cleanupOldFiles(maxAgeDays?: number): number;
92
- /**
93
- * 获取日志文件统计信息
94
- */
95
- getStats(): {
96
- fileExists: boolean;
97
- fileSize: number;
98
- totalRecords: number;
99
- oldestRecord?: number;
100
- newestRecord?: number;
101
- };
102
- }
103
- //# sourceMappingURL=performance-collector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"performance-collector.d.ts","sourceRoot":"","sources":["../../src/monitoring/performance-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAW9B;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAMxD;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAWrC;;OAEG;IACH,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAUP;;OAEG;IACH,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAWP;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAaP;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,EAAE;IAkBzD;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAK7C;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAItD;;OAEG;IACH,OAAO,CAAC,WAAW;IA8CnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAWlB;;;;OAIG;IACH,eAAe,CAAC,UAAU,GAAE,MAAW,GAAG,MAAM;IA0BhD;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,OAAO,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;CA2BF"}