@dommaker/harness 1.1.0 → 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 (349) hide show
  1. package/CHANGELOG.md +19 -2
  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.d.ts.map +1 -1
  21. package/dist/cli/commands/status.js +2 -11
  22. package/dist/cli/commands/status.js.map +1 -1
  23. package/dist/context/index.d.ts +9 -6
  24. package/dist/context/index.d.ts.map +1 -1
  25. package/dist/context/index.js +18 -20
  26. package/dist/context/index.js.map +1 -1
  27. package/dist/core/constraints/capabilities-parser.d.ts +3 -2
  28. package/dist/core/constraints/capabilities-parser.d.ts.map +1 -1
  29. package/dist/core/constraints/capabilities-parser.js +25 -47
  30. package/dist/core/constraints/capabilities-parser.js.map +1 -1
  31. package/dist/core/constraints/checker.d.ts +32 -33
  32. package/dist/core/constraints/checker.d.ts.map +1 -1
  33. package/dist/core/constraints/checker.js +38 -128
  34. package/dist/core/constraints/checker.js.map +1 -1
  35. package/dist/core/constraints/checkers/index.d.ts +2 -1
  36. package/dist/core/constraints/checkers/index.d.ts.map +1 -1
  37. package/dist/core/constraints/checkers/index.js +3 -0
  38. package/dist/core/constraints/checkers/index.js.map +1 -1
  39. package/dist/core/constraints/checkers/types.d.ts +25 -0
  40. package/dist/core/constraints/checkers/types.d.ts.map +1 -1
  41. package/dist/core/constraints/checkers/types.js +24 -0
  42. package/dist/core/constraints/checkers/types.js.map +1 -1
  43. package/dist/core/constraints/definitions/guidelines.d.ts.map +1 -1
  44. package/dist/core/constraints/definitions/guidelines.js +0 -2
  45. package/dist/core/constraints/definitions/guidelines.js.map +1 -1
  46. package/dist/core/constraints/definitions/prompts.d.ts.map +1 -1
  47. package/dist/core/constraints/definitions/prompts.js +0 -5
  48. package/dist/core/constraints/definitions/prompts.js.map +1 -1
  49. package/dist/core/constraints/index.d.ts +1 -2
  50. package/dist/core/constraints/index.d.ts.map +1 -1
  51. package/dist/core/constraints/index.js +1 -7
  52. package/dist/core/constraints/index.js.map +1 -1
  53. package/dist/core/constraints/usage-report.d.ts +1 -2
  54. package/dist/core/constraints/usage-report.d.ts.map +1 -1
  55. package/dist/core/constraints/usage-report.js +2 -5
  56. package/dist/core/constraints/usage-report.js.map +1 -1
  57. package/dist/core/effective-constraints.d.ts +24 -4
  58. package/dist/core/effective-constraints.d.ts.map +1 -1
  59. package/dist/core/effective-constraints.js +28 -7
  60. package/dist/core/effective-constraints.js.map +1 -1
  61. package/dist/core/effective-set.d.ts +30 -0
  62. package/dist/core/effective-set.d.ts.map +1 -0
  63. package/dist/core/effective-set.js +35 -0
  64. package/dist/core/effective-set.js.map +1 -0
  65. package/dist/core/index.d.ts +13 -6
  66. package/dist/core/index.d.ts.map +1 -1
  67. package/dist/core/index.js +44 -21
  68. package/dist/core/index.js.map +1 -1
  69. package/dist/core/project-config-loader.d.ts +3 -6
  70. package/dist/core/project-config-loader.d.ts.map +1 -1
  71. package/dist/core/project-config-loader.js +47 -61
  72. package/dist/core/project-config-loader.js.map +1 -1
  73. package/dist/failure/constraint-handler.d.ts +1 -1
  74. package/dist/failure/constraint-handler.js +1 -1
  75. package/dist/gates/checker-gate.d.ts +1 -4
  76. package/dist/gates/checker-gate.d.ts.map +1 -1
  77. package/dist/gates/checker-gate.js +3 -11
  78. package/dist/gates/checker-gate.js.map +1 -1
  79. package/dist/gates/definitions.d.ts +9 -38
  80. package/dist/gates/definitions.d.ts.map +1 -1
  81. package/dist/gates/definitions.js +24 -13
  82. package/dist/gates/definitions.js.map +1 -1
  83. package/dist/gates/effective-gates.d.ts.map +1 -1
  84. package/dist/gates/effective-gates.js +14 -18
  85. package/dist/gates/effective-gates.js.map +1 -1
  86. package/dist/gates/index.d.ts +1 -1
  87. package/dist/gates/index.d.ts.map +1 -1
  88. package/dist/gates/index.js.map +1 -1
  89. package/dist/hooks/bootstrap.d.ts.map +1 -1
  90. package/dist/hooks/bootstrap.js +0 -3
  91. package/dist/hooks/bootstrap.js.map +1 -1
  92. package/dist/index.d.ts +43 -53
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +180 -138
  95. package/dist/index.js.map +1 -1
  96. package/dist/knowledge/query.d.ts +15 -0
  97. package/dist/knowledge/query.d.ts.map +1 -1
  98. package/dist/knowledge/query.js +23 -0
  99. package/dist/knowledge/query.js.map +1 -1
  100. package/dist/monitoring/analyzer-base.d.ts +0 -4
  101. package/dist/monitoring/analyzer-base.d.ts.map +1 -1
  102. package/dist/monitoring/analyzer-base.js +0 -21
  103. package/dist/monitoring/analyzer-base.js.map +1 -1
  104. package/dist/monitoring/index.d.ts +6 -12
  105. package/dist/monitoring/index.d.ts.map +1 -1
  106. package/dist/monitoring/index.js +13 -29
  107. package/dist/monitoring/index.js.map +1 -1
  108. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  109. package/dist/monitoring/trace-analyzer.js +2 -68
  110. package/dist/monitoring/trace-analyzer.js.map +1 -1
  111. package/dist/monitoring/traces.d.ts +2 -6
  112. package/dist/monitoring/traces.d.ts.map +1 -1
  113. package/dist/monitoring/traces.js +0 -14
  114. package/dist/monitoring/traces.js.map +1 -1
  115. package/dist/presets/index.d.ts +2 -2
  116. package/dist/presets/index.d.ts.map +1 -1
  117. package/dist/presets/index.js +3 -4
  118. package/dist/presets/index.js.map +1 -1
  119. package/dist/presets/standard.d.ts +10 -22
  120. package/dist/presets/standard.d.ts.map +1 -1
  121. package/dist/presets/standard.js +15 -75
  122. package/dist/presets/standard.js.map +1 -1
  123. package/dist/types/constraint.d.ts +1 -29
  124. package/dist/types/constraint.d.ts.map +1 -1
  125. package/dist/types/constraint.js +1 -1
  126. package/dist/types/constraint.js.map +1 -1
  127. package/dist/types/index.d.ts +0 -3
  128. package/dist/types/index.d.ts.map +1 -1
  129. package/dist/types/index.js +0 -4
  130. package/dist/types/index.js.map +1 -1
  131. package/dist/types/project-config.d.ts +4 -8
  132. package/dist/types/project-config.d.ts.map +1 -1
  133. package/dist/types/trace.d.ts +9 -22
  134. package/dist/types/trace.d.ts.map +1 -1
  135. package/package.json +2 -2
  136. package/src/CONTEXT.md +5 -7
  137. package/src/__tests__/checker-extra.test.ts +80 -139
  138. package/src/__tests__/checker.test.ts +0 -376
  139. package/src/__tests__/project-config-loader-extra.test.ts +42 -29
  140. package/src/__tests__/public-exports.test.ts +138 -0
  141. package/src/__tests__/trace-analyzer-extra.test.ts +6 -86
  142. package/src/__tests__/trace-analyzer.test.ts +4 -5
  143. package/src/__tests__/trace-collector.test.ts +0 -11
  144. package/src/__tests__/traces.test.ts +3 -22
  145. package/src/cli/commands/CONTEXT.md +2 -2
  146. package/src/cli/commands/__tests__/check-skip-output.test.ts +10 -7
  147. package/src/cli/commands/__tests__/check.test.ts +29 -69
  148. package/src/cli/commands/__tests__/constraints-report.test.ts +1 -1
  149. package/src/cli/commands/__tests__/knowledge.test.ts +90 -1
  150. package/src/cli/commands/__tests__/registry.test.ts +8 -6
  151. package/src/cli/commands/__tests__/status-extra.test.ts +6 -28
  152. package/src/cli/commands/__tests__/status.test.ts +6 -21
  153. package/src/cli/commands/check.ts +8 -34
  154. package/src/cli/commands/definitions.ts +2 -0
  155. package/src/cli/commands/init.ts +6 -37
  156. package/src/cli/commands/knowledge.ts +1 -16
  157. package/src/cli/commands/report.ts +0 -2
  158. package/src/cli/commands/status.ts +2 -12
  159. package/src/context/index.ts +29 -6
  160. package/src/core/CONTEXT.md +4 -3
  161. package/src/core/__tests__/effective-set.test.ts +80 -0
  162. package/src/core/constraints/capabilities-parser.ts +43 -49
  163. package/src/core/constraints/checker.ts +56 -147
  164. package/src/core/constraints/checkers/index.ts +2 -1
  165. package/src/core/constraints/checkers/types.ts +42 -0
  166. package/src/core/constraints/definitions/guidelines.ts +0 -2
  167. package/src/core/constraints/definitions/prompts.ts +0 -5
  168. package/src/core/constraints/index.ts +2 -17
  169. package/src/core/constraints/usage-report.ts +5 -8
  170. package/src/core/effective-constraints.ts +35 -7
  171. package/src/core/effective-set.ts +56 -0
  172. package/src/core/index.ts +80 -6
  173. package/src/core/project-config-loader.ts +53 -68
  174. package/src/failure/CONTEXT.md +1 -1
  175. package/src/failure/constraint-handler.ts +1 -1
  176. package/src/gates/CONTEXT.md +3 -3
  177. package/src/gates/checker-gate.ts +4 -12
  178. package/src/gates/definitions.ts +27 -50
  179. package/src/gates/effective-gates.ts +14 -21
  180. package/src/gates/index.ts +1 -1
  181. package/src/hooks/bootstrap.ts +0 -3
  182. package/src/index.ts +384 -137
  183. package/src/knowledge/CONTEXT.md +2 -2
  184. package/src/knowledge/__tests__/query.test.ts +64 -0
  185. package/src/knowledge/query.ts +28 -0
  186. package/src/monitoring/CONTEXT.md +7 -13
  187. package/src/monitoring/__tests__/traces.test.ts +0 -10
  188. package/src/monitoring/analyzer-base.ts +0 -22
  189. package/src/monitoring/index.ts +6 -12
  190. package/src/monitoring/trace-analyzer.ts +2 -73
  191. package/src/monitoring/traces.ts +2 -22
  192. package/src/presets/__tests__/standard.test.ts +48 -69
  193. package/src/presets/index.ts +3 -5
  194. package/src/presets/standard.ts +14 -79
  195. package/src/spec/CONTEXT.md +5 -13
  196. package/src/types/constraint.ts +1 -51
  197. package/src/types/index.ts +0 -12
  198. package/src/types/project-config.ts +4 -10
  199. package/src/types/trace.ts +9 -34
  200. package/dist/core/constraints/interceptor.d.ts +0 -38
  201. package/dist/core/constraints/interceptor.d.ts.map +0 -1
  202. package/dist/core/constraints/interceptor.js +0 -166
  203. package/dist/core/constraints/interceptor.js.map +0 -1
  204. package/dist/dashboard/data.d.ts +0 -31
  205. package/dist/dashboard/data.d.ts.map +0 -1
  206. package/dist/dashboard/data.js +0 -81
  207. package/dist/dashboard/data.js.map +0 -1
  208. package/dist/dashboard/index.d.ts +0 -4
  209. package/dist/dashboard/index.d.ts.map +0 -1
  210. package/dist/dashboard/index.js +0 -20
  211. package/dist/dashboard/index.js.map +0 -1
  212. package/dist/dashboard/stats.d.ts +0 -20
  213. package/dist/dashboard/stats.d.ts.map +0 -1
  214. package/dist/dashboard/stats.js +0 -115
  215. package/dist/dashboard/stats.js.map +0 -1
  216. package/dist/dashboard/types.d.ts +0 -110
  217. package/dist/dashboard/types.d.ts.map +0 -1
  218. package/dist/dashboard/types.js +0 -8
  219. package/dist/dashboard/types.js.map +0 -1
  220. package/dist/monitoring/constraint-doctor.d.ts +0 -82
  221. package/dist/monitoring/constraint-doctor.d.ts.map +0 -1
  222. package/dist/monitoring/constraint-doctor.js +0 -191
  223. package/dist/monitoring/constraint-doctor.js.map +0 -1
  224. package/dist/monitoring/diagnosis-rules.d.ts +0 -18
  225. package/dist/monitoring/diagnosis-rules.d.ts.map +0 -1
  226. package/dist/monitoring/diagnosis-rules.js +0 -119
  227. package/dist/monitoring/diagnosis-rules.js.map +0 -1
  228. package/dist/monitoring/knowledge-doctor.d.ts +0 -78
  229. package/dist/monitoring/knowledge-doctor.d.ts.map +0 -1
  230. package/dist/monitoring/knowledge-doctor.js +0 -266
  231. package/dist/monitoring/knowledge-doctor.js.map +0 -1
  232. package/dist/monitoring/knowledge-evolver.d.ts +0 -72
  233. package/dist/monitoring/knowledge-evolver.d.ts.map +0 -1
  234. package/dist/monitoring/knowledge-evolver.js +0 -205
  235. package/dist/monitoring/knowledge-evolver.js.map +0 -1
  236. package/dist/monitoring/performance-analyzer.d.ts +0 -92
  237. package/dist/monitoring/performance-analyzer.d.ts.map +0 -1
  238. package/dist/monitoring/performance-analyzer.js +0 -343
  239. package/dist/monitoring/performance-analyzer.js.map +0 -1
  240. package/dist/monitoring/performance-collector.d.ts +0 -103
  241. package/dist/monitoring/performance-collector.d.ts.map +0 -1
  242. package/dist/monitoring/performance-collector.js +0 -298
  243. package/dist/monitoring/performance-collector.js.map +0 -1
  244. package/dist/safety/index.d.ts +0 -6
  245. package/dist/safety/index.d.ts.map +0 -1
  246. package/dist/safety/index.js +0 -22
  247. package/dist/safety/index.js.map +0 -1
  248. package/dist/safety/input-guardrail.d.ts +0 -36
  249. package/dist/safety/input-guardrail.d.ts.map +0 -1
  250. package/dist/safety/input-guardrail.js +0 -118
  251. package/dist/safety/input-guardrail.js.map +0 -1
  252. package/dist/safety/output-guardrail.d.ts +0 -39
  253. package/dist/safety/output-guardrail.d.ts.map +0 -1
  254. package/dist/safety/output-guardrail.js +0 -147
  255. package/dist/safety/output-guardrail.js.map +0 -1
  256. package/dist/safety/sandbox.d.ts +0 -45
  257. package/dist/safety/sandbox.d.ts.map +0 -1
  258. package/dist/safety/sandbox.js +0 -134
  259. package/dist/safety/sandbox.js.map +0 -1
  260. package/dist/safety/tool-guardrail.d.ts +0 -51
  261. package/dist/safety/tool-guardrail.d.ts.map +0 -1
  262. package/dist/safety/tool-guardrail.js +0 -147
  263. package/dist/safety/tool-guardrail.js.map +0 -1
  264. package/dist/safety/types.d.ts +0 -104
  265. package/dist/safety/types.d.ts.map +0 -1
  266. package/dist/safety/types.js +0 -6
  267. package/dist/safety/types.js.map +0 -1
  268. package/dist/spec/annotation-checker.d.ts +0 -47
  269. package/dist/spec/annotation-checker.d.ts.map +0 -1
  270. package/dist/spec/annotation-checker.js +0 -279
  271. package/dist/spec/annotation-checker.js.map +0 -1
  272. package/dist/types/enforcement.d.ts +0 -42
  273. package/dist/types/enforcement.d.ts.map +0 -1
  274. package/dist/types/enforcement.js +0 -6
  275. package/dist/types/enforcement.js.map +0 -1
  276. package/dist/types/monitoring-types.d.ts +0 -53
  277. package/dist/types/monitoring-types.d.ts.map +0 -1
  278. package/dist/types/monitoring-types.js +0 -10
  279. package/dist/types/monitoring-types.js.map +0 -1
  280. package/dist/types/performance.d.ts +0 -204
  281. package/dist/types/performance.d.ts.map +0 -1
  282. package/dist/types/performance.js +0 -12
  283. package/dist/types/performance.js.map +0 -1
  284. package/dist/verification/index.d.ts +0 -4
  285. package/dist/verification/index.d.ts.map +0 -1
  286. package/dist/verification/index.js +0 -20
  287. package/dist/verification/index.js.map +0 -1
  288. package/dist/verification/loop.d.ts +0 -30
  289. package/dist/verification/loop.d.ts.map +0 -1
  290. package/dist/verification/loop.js +0 -114
  291. package/dist/verification/loop.js.map +0 -1
  292. package/dist/verification/rules-based.d.ts +0 -40
  293. package/dist/verification/rules-based.d.ts.map +0 -1
  294. package/dist/verification/rules-based.js +0 -130
  295. package/dist/verification/rules-based.js.map +0 -1
  296. package/dist/verification/types.d.ts +0 -69
  297. package/dist/verification/types.d.ts.map +0 -1
  298. package/dist/verification/types.js +0 -6
  299. package/dist/verification/types.js.map +0 -1
  300. package/src/__tests__/annotation-checker.test.ts +0 -183
  301. package/src/__tests__/constraint-doctor.test.ts +0 -271
  302. package/src/__tests__/doctor-extra.test.ts +0 -155
  303. package/src/__tests__/extend-exceptions.test.ts +0 -149
  304. package/src/__tests__/interceptor.test.ts +0 -89
  305. package/src/__tests__/performance-analyzer.test.ts +0 -499
  306. package/src/__tests__/performance-collector.test.ts +0 -276
  307. package/src/__tests__/presets.test.ts +0 -65
  308. package/src/core/constraints/__tests__/interceptor.test.ts +0 -253
  309. package/src/core/constraints/interceptor.ts +0 -214
  310. package/src/dashboard/CONTEXT.md +0 -21
  311. package/src/dashboard/__tests__/data.test.ts +0 -111
  312. package/src/dashboard/__tests__/stats.test.ts +0 -159
  313. package/src/dashboard/data.ts +0 -103
  314. package/src/dashboard/index.ts +0 -3
  315. package/src/dashboard/stats.ts +0 -127
  316. package/src/dashboard/types.ts +0 -130
  317. package/src/monitoring/__tests__/knowledge-doctor.test.ts +0 -278
  318. package/src/monitoring/__tests__/knowledge-evolver.test.ts +0 -368
  319. package/src/monitoring/__tests__/performance-analyzer.test.ts +0 -137
  320. package/src/monitoring/__tests__/performance-collector.test.ts +0 -331
  321. package/src/monitoring/constraint-doctor.ts +0 -239
  322. package/src/monitoring/diagnosis-rules.ts +0 -132
  323. package/src/monitoring/knowledge-doctor.ts +0 -322
  324. package/src/monitoring/knowledge-evolver.ts +0 -289
  325. package/src/monitoring/performance-analyzer.ts +0 -400
  326. package/src/monitoring/performance-collector.ts +0 -326
  327. package/src/safety/CONTEXT.md +0 -23
  328. package/src/safety/__tests__/input-guardrail.test.ts +0 -105
  329. package/src/safety/__tests__/output-guardrail.test.ts +0 -108
  330. package/src/safety/__tests__/sandbox.test.ts +0 -158
  331. package/src/safety/__tests__/tool-guardrail.test.ts +0 -127
  332. package/src/safety/index.ts +0 -5
  333. package/src/safety/input-guardrail.ts +0 -133
  334. package/src/safety/output-guardrail.ts +0 -170
  335. package/src/safety/sandbox.ts +0 -148
  336. package/src/safety/tool-guardrail.ts +0 -176
  337. package/src/safety/types.ts +0 -124
  338. package/src/spec/__tests__/annotation-checker.test.ts +0 -294
  339. package/src/spec/annotation-checker.ts +0 -320
  340. package/src/types/enforcement.ts +0 -48
  341. package/src/types/monitoring-types.ts +0 -68
  342. package/src/types/performance.ts +0 -295
  343. package/src/verification/CONTEXT.md +0 -23
  344. package/src/verification/__tests__/loop.test.ts +0 -303
  345. package/src/verification/__tests__/rules-based.test.ts +0 -240
  346. package/src/verification/index.ts +0 -3
  347. package/src/verification/loop.ts +0 -137
  348. package/src/verification/rules-based.ts +0 -152
  349. package/src/verification/types.ts +0 -81
@@ -12,15 +12,6 @@ export * from './cso';
12
12
  // Trace 类型(Execution Trace 系统)
13
13
  export * from './trace';
14
14
 
15
- // Performance 类型(Performance Trace 系统)
16
- export * from './performance';
17
-
18
- // 诊断类型(定义已归位 types/monitoring-types.ts,monitoring 改从 types 导入)
19
- // 显式再导出(不用 export *):根入口同时星导出 ./monitoring,星-星歧义会静默丢符号
20
- export type {
21
- Diagnosis,
22
- } from './monitoring-types';
23
-
24
15
  // Session 类型(排除与 passes-gate 冲突的类型)
25
16
  export {
26
17
  StartupCheckpoints,
@@ -40,9 +31,6 @@ export { DynamicTask as ExtendedDynamicTask, TaskTestResult as ExtendedTaskTestR
40
31
  // 项目配置类型
41
32
  export * from './project-config';
42
33
 
43
- // Enforcement 类型
44
- export * from './enforcement';
45
-
46
34
  // Spec 验证类型
47
35
  export * from './spec';
48
36
 
@@ -13,24 +13,18 @@ export interface CustomConstraintDefinition {
13
13
  /** 约束 ID */
14
14
  id: string;
15
15
 
16
- /** 约束层级(扩展例外时可省略,自动使用内置约束层级) */
16
+ /** 约束层级(可选,缺省 guideline) */
17
17
  level?: ConstraintLevel;
18
18
 
19
- /** 约束规则(扩展例外时可省略) */
19
+ /** 约束规则(可选) */
20
20
  rule?: string;
21
21
 
22
- /** 约束消息(扩展例外时可省略) */
22
+ /** 约束消息(可选) */
23
23
  message?: string;
24
24
 
25
- /** 触发条件(扩展例外时可省略) */
25
+ /** 触发条件(可选) */
26
26
  trigger?: string | string[];
27
27
 
28
- /** 例外条件(可选,完全覆盖内置例外) */
29
- exceptions?: string[];
30
-
31
- /** 扩展例外(可选,追加到内置例外) */
32
- extend_exceptions?: string[];
33
-
34
28
  /** 描述(可选) */
35
29
  description?: string;
36
30
 
@@ -29,13 +29,13 @@ export interface ExecutionTrace {
29
29
  constraintId: string;
30
30
 
31
31
  /** 约束层级 */
32
- level: 'iron_law' | 'guideline' | 'prompt' | 'tip';
32
+ level: 'iron_law' | 'guideline' | 'prompt';
33
33
 
34
34
  /** 检查时间(Unix timestamp) */
35
35
  timestamp: number;
36
36
 
37
37
  /** 检查结果(skip = 约定未采用/证据未接线,未评估;不计 pass/fail 分母) */
38
- result: 'pass' | 'fail' | 'bypassed' | 'skip';
38
+ result: 'pass' | 'fail' | 'skip';
39
39
 
40
40
  // ========================================
41
41
  // 轻量上下文(可选)
@@ -47,9 +47,6 @@ export interface ExecutionTrace {
47
47
  /** 严重性(从约束定义继承) */
48
48
  severity?: 'error' | 'warning' | 'info';
49
49
 
50
- /** 例外类型(如果适用了例外) */
51
- exceptionApplied?: string;
52
-
53
50
  /** 项目路径(用于区分多项目) */
54
51
  projectPath?: string;
55
52
 
@@ -77,7 +74,7 @@ export interface TraceSummary {
77
74
  constraintId: string;
78
75
 
79
76
  /** 约束层级 */
80
- level: 'iron_law' | 'guideline' | 'prompt' | 'tip';
77
+ level: 'iron_law' | 'guideline' | 'prompt';
81
78
 
82
79
  /** 统计时间范围 */
83
80
  timeRange: {
@@ -98,10 +95,7 @@ export interface TraceSummary {
98
95
  /** 失败次数 */
99
96
  failCount: number;
100
97
 
101
- /** 绕过次数 */
102
- bypassCount: number;
103
-
104
- /** 跳过次数(ADR-0001:约定未采用/证据未接线;不计入 pass/fail/bypass 率分母) */
98
+ /** 跳过次数(ADR-0001:约定未采用/证据未接线;不计入 pass/fail 率分母) */
105
99
  skipCount?: number;
106
100
 
107
101
  /** 用户忽略次数 */
@@ -117,9 +111,6 @@ export interface TraceSummary {
117
111
  /** 失败率 (0-1) */
118
112
  failRate: number;
119
113
 
120
- /** 绕过率 (0-1) */
121
- bypassRate: number;
122
-
123
114
  // ========================================
124
115
  // 趋势分析
125
116
  // ========================================
@@ -131,18 +122,7 @@ export interface TraceSummary {
131
122
  changeFromLastPeriod?: {
132
123
  passRateDelta: number;
133
124
  failRateDelta: number;
134
- bypassRateDelta: number;
135
125
  };
136
-
137
- // ========================================
138
- // 例外统计
139
- // ========================================
140
-
141
- /** 例外应用次数 */
142
- exceptionCount: number;
143
-
144
- /** 最常见例外 */
145
- mostCommonException?: string;
146
126
  }
147
127
 
148
128
  /**
@@ -151,17 +131,14 @@ export interface TraceSummary {
151
131
  export interface TraceAnomaly {
152
132
  /** 异常类型 */
153
133
  type:
154
- | 'high_bypass_rate' // 绕过率过高
155
134
  | 'rising_fail_rate' // 失败率上升
156
- | 'rising_bypass_rate' // 绕过率上升
157
- | 'low_pass_rate' // 通过率过低
158
- | 'exception_overuse'; // 例外滥用
135
+ | 'low_pass_rate'; // 通过率过低
159
136
 
160
137
  /** 约束 ID */
161
138
  constraintId: string;
162
139
 
163
140
  /** 约束层级 */
164
- level: 'iron_law' | 'guideline' | 'prompt' | 'tip';
141
+ level: 'iron_law' | 'guideline' | 'prompt';
165
142
 
166
143
  /** 异常描述 */
167
144
  message: string;
@@ -177,7 +154,7 @@ export interface TraceAnomaly {
177
154
  detectedAt: number;
178
155
 
179
156
  /** 建议的下一步 */
180
- suggestedAction?: 'diagnose' | 'adjust_threshold' | 'add_exception' | 'notify_user';
157
+ suggestedAction?: 'diagnose' | 'adjust_threshold' | 'notify_user';
181
158
  }
182
159
 
183
160
  /**
@@ -188,10 +165,10 @@ export interface TraceFilter {
188
165
  constraintId?: string;
189
166
 
190
167
  /** 约束层级(可选) */
191
- level?: 'iron_law' | 'guideline' | 'prompt' | 'tip';
168
+ level?: 'iron_law' | 'guideline' | 'prompt';
192
169
 
193
170
  /** 结果类型(可选) */
194
- result?: 'pass' | 'fail' | 'bypassed' | 'skip';
171
+ result?: 'pass' | 'fail' | 'skip';
195
172
 
196
173
  /** 时间范围(可选) */
197
174
  timeRange?: {
@@ -232,8 +209,6 @@ export interface TraceAnalyzerConfig {
232
209
 
233
210
  /** 异常阈值 */
234
211
  thresholds?: {
235
- bypassRate?: number; // 绕过率阈值,默认 0.3
236
212
  failRate?: number; // 失败率阈值,默认 0.5
237
- exceptionRate?: number; // 例外率阈值,默认 0.4
238
213
  };
239
214
  }
@@ -1,38 +0,0 @@
1
- /**
2
- * ConstraintInterceptor - 约束拦截器
3
- */
4
- import type { ConstraintTrigger, ConstraintContext } from '../../types/constraint';
5
- import type { EnforcementId, EnforcementExecutor, InterceptionResult } from '../../types/enforcement';
6
- export declare class ConstraintInterceptor {
7
- private static instance;
8
- private executors;
9
- private executorSources;
10
- private enabled;
11
- private skipEnforcements;
12
- private constructor();
13
- static getInstance(): ConstraintInterceptor;
14
- setEnabled(enabled: boolean): void;
15
- register(enforcementId: EnforcementId, executor: EnforcementExecutor, source?: string): void;
16
- registerBatch(registrations: Array<{
17
- enforcementId: EnforcementId;
18
- executor: EnforcementExecutor;
19
- }>): void;
20
- unregister(enforcementId: EnforcementId): boolean;
21
- hasExecutor(enforcementId: EnforcementId): boolean;
22
- getExecutor(enforcementId: EnforcementId): EnforcementExecutor | undefined;
23
- getRegistrations(): {
24
- id: EnforcementId;
25
- executor: EnforcementExecutor;
26
- registeredAt: Date;
27
- source?: string;
28
- }[];
29
- skip(enforcementIds: EnforcementId[]): void;
30
- clearSkips(): void;
31
- intercept(trigger: ConstraintTrigger, context: ConstraintContext): Promise<InterceptionResult>;
32
- claim(trigger: ConstraintTrigger, context: ConstraintContext): Promise<void>;
33
- canProceed(trigger: ConstraintTrigger, context: ConstraintContext): Promise<boolean>;
34
- }
35
- export declare const constraintInterceptor: ConstraintInterceptor;
36
- export declare function interceptOperation(trigger: ConstraintTrigger, context: ConstraintContext): Promise<InterceptionResult>;
37
- export declare function claimOperation(trigger: ConstraintTrigger, context: ConstraintContext): Promise<void>;
38
- //# sourceMappingURL=interceptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../../src/core/constraints/interceptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAGlB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EAEnB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAGjC,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,gBAAgB,CAAiC;IAEzD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,qBAAqB;IAO3C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,QAAQ,CACN,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAKP,aAAa,CACX,aAAa,EAAE,KAAK,CAAC;QACnB,aAAa,EAAE,aAAa,CAAC;QAC7B,QAAQ,EAAE,mBAAmB,CAAC;KAC/B,CAAC,GACD,IAAI;IAMP,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO;IAIjD,WAAW,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO;IAIlD,WAAW,CAAC,aAAa,EAAE,aAAa,GAAG,mBAAmB,GAAG,SAAS;IAI1E,gBAAgB,IAAI;QAAE,EAAE,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,mBAAmB,CAAC;QAAC,YAAY,EAAE,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;IAS/G,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI;IAM3C,UAAU,IAAI,IAAI;IAIZ,SAAS,CACb,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC;IAmFxB,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5E,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAO3F;AAED,eAAO,MAAM,qBAAqB,uBAAsC,CAAC;AAEzE,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"}
@@ -1,166 +0,0 @@
1
- "use strict";
2
- /**
3
- * ConstraintInterceptor - 约束拦截器
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.constraintInterceptor = exports.ConstraintInterceptor = void 0;
7
- exports.interceptOperation = interceptOperation;
8
- exports.claimOperation = claimOperation;
9
- const constraint_1 = require("../../types/constraint");
10
- const exec_1 = require("../../utils/exec");
11
- const checker_1 = require("./checker");
12
- class ConstraintInterceptor {
13
- static instance;
14
- executors = new Map();
15
- executorSources = new Map();
16
- enabled = true;
17
- skipEnforcements = new Set();
18
- constructor() { }
19
- static getInstance() {
20
- if (!ConstraintInterceptor.instance) {
21
- ConstraintInterceptor.instance = new ConstraintInterceptor();
22
- }
23
- return ConstraintInterceptor.instance;
24
- }
25
- setEnabled(enabled) {
26
- this.enabled = enabled;
27
- }
28
- register(enforcementId, executor, source) {
29
- this.executors.set(enforcementId, executor);
30
- if (source)
31
- this.executorSources.set(enforcementId, source);
32
- }
33
- registerBatch(registrations) {
34
- for (const { enforcementId, executor } of registrations) {
35
- this.register(enforcementId, executor);
36
- }
37
- }
38
- unregister(enforcementId) {
39
- return this.executors.delete(enforcementId);
40
- }
41
- hasExecutor(enforcementId) {
42
- return this.executors.has(enforcementId);
43
- }
44
- getExecutor(enforcementId) {
45
- return this.executors.get(enforcementId);
46
- }
47
- getRegistrations() {
48
- return Array.from(this.executors.entries()).map(([id, executor]) => ({
49
- id,
50
- executor,
51
- registeredAt: new Date(),
52
- source: this.executorSources.get(id),
53
- }));
54
- }
55
- skip(enforcementIds) {
56
- for (const id of enforcementIds) {
57
- this.skipEnforcements.add(id);
58
- }
59
- }
60
- clearSkips() {
61
- this.skipEnforcements.clear();
62
- }
63
- async intercept(trigger, context) {
64
- if (!this.enabled) {
65
- return {
66
- passed: true,
67
- constraints: [],
68
- violations: [],
69
- message: '拦截器已禁用',
70
- interceptedAt: new Date(),
71
- };
72
- }
73
- const result = {
74
- passed: true,
75
- constraints: [],
76
- violations: [],
77
- interceptedAt: new Date(),
78
- };
79
- const constraints = checker_1.constraintChecker.getConstraints();
80
- // prompt 类约束不参与拦截执行(ADR-0001:仅参与注入)
81
- const allConstraints = [
82
- ...Object.values(constraints.ironLaws),
83
- ...Object.values(constraints.guidelines),
84
- ].filter(c => c.kind !== 'prompt');
85
- const applicableConstraints = allConstraints.filter((c) => (0, exec_1.normalizeTriggers)(c.trigger).includes(trigger));
86
- const order = { iron_law: 0, guideline: 1, prompt: 2 };
87
- const ordered = applicableConstraints.sort((a, b) => order[a.level] - order[b.level]);
88
- for (const constraint of ordered) {
89
- if (this.skipEnforcements.has(constraint.enforcement)) {
90
- result.constraints.push({ constraint, skipped: true, skipReason: 'configured to skip' });
91
- continue;
92
- }
93
- // Custom executor overrides built-in check
94
- const executor = this.executors.get(constraint.enforcement);
95
- let checkResult;
96
- if (executor) {
97
- const enforcementContext = { ...context, enforcementId: constraint.enforcement, constraint };
98
- const start = Date.now();
99
- try {
100
- const enforcementResult = await executor.execute(enforcementContext);
101
- enforcementResult.duration = Date.now() - start;
102
- result.constraints.push({ constraint, enforcementResult });
103
- checkResult = {
104
- id: constraint.id, level: constraint.level,
105
- satisfied: enforcementResult.passed,
106
- message: enforcementResult.message,
107
- checkedAt: new Date(),
108
- constraint,
109
- };
110
- }
111
- catch (error) {
112
- if (error instanceof constraint_1.ConstraintViolationError)
113
- throw error;
114
- result.constraints.push({ constraint, enforcementResult: { passed: false, error: error.message, duration: Date.now() - start } });
115
- checkResult = { id: constraint.id, level: constraint.level, satisfied: false, message: error.message, checkedAt: new Date(), constraint };
116
- }
117
- }
118
- else {
119
- // Unified: constraint.check(context) delegates to checker
120
- checkResult = await constraint.check(context);
121
- result.constraints.push({ constraint, enforcementResult: { passed: checkResult.satisfied, message: checkResult.message } });
122
- }
123
- if (!checkResult.satisfied) {
124
- if (constraint.level === 'iron_law') {
125
- result.passed = false;
126
- result.violations.push(constraint);
127
- throw new constraint_1.ConstraintViolationError(checkResult);
128
- }
129
- if (constraint.level === 'guideline') {
130
- result.violations.push(constraint);
131
- }
132
- }
133
- }
134
- result.message = result.violations.length === 0 ? '✅ 拦截通过' : `❌ ${result.violations.length} 个约束违规`;
135
- return result;
136
- }
137
- async claim(trigger, context) {
138
- const result = await this.intercept(trigger, context);
139
- if (!result.passed) {
140
- throw new constraint_1.ConstraintViolationError({
141
- id: result.violations[0]?.id || 'unknown',
142
- level: 'iron_law',
143
- satisfied: false,
144
- message: result.message,
145
- checkedAt: new Date(),
146
- });
147
- }
148
- }
149
- async canProceed(trigger, context) {
150
- try {
151
- return (await this.intercept(trigger, context)).passed;
152
- }
153
- catch {
154
- return false;
155
- }
156
- }
157
- }
158
- exports.ConstraintInterceptor = ConstraintInterceptor;
159
- exports.constraintInterceptor = ConstraintInterceptor.getInstance();
160
- async function interceptOperation(trigger, context) {
161
- return exports.constraintInterceptor.intercept(trigger, context);
162
- }
163
- async function claimOperation(trigger, context) {
164
- return exports.constraintInterceptor.claim(trigger, context);
165
- }
166
- //# sourceMappingURL=interceptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../../src/core/constraints/interceptor.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Dashboard 数据聚合
3
- *
4
- * 从各模块收集数据,生成 HarnessDashboardData
5
- * 纯文件读取,零 token 开销
6
- */
7
- import type { HarnessDashboardData, KnowledgeOverview, ConstraintHeatmap, KnowledgeFlow, FeedbackLoopStatus, ConstraintStats } from './types';
8
- import type { KnowledgeEntry } from '../knowledge/types';
9
- export declare class DashboardDataProvider {
10
- /**
11
- * 生成完整 Dashboard 数据
12
- */
13
- generate(entries: KnowledgeEntry[], constraintStats?: ConstraintStats[], referenceCounts?: Map<string, number>): HarnessDashboardData;
14
- /**
15
- * 知识库全景
16
- */
17
- getKnowledgeOverview(entries: KnowledgeEntry[]): KnowledgeOverview;
18
- /**
19
- * 约束执行热力图
20
- */
21
- getConstraintHeatmap(stats: ConstraintStats[]): ConstraintHeatmap;
22
- /**
23
- * 知识流转路径
24
- */
25
- getKnowledgeFlow(entries: KnowledgeEntry[], referenceCounts: Map<string, number>): KnowledgeFlow;
26
- /**
27
- * 反馈环状态(基础实现,需要外部数据源补充)
28
- */
29
- getFeedbackLoop(): FeedbackLoopStatus;
30
- }
31
- //# sourceMappingURL=data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/dashboard/data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,eAAe,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,qBAAa,qBAAqB;IAChC;;OAEG;IACH,QAAQ,CACN,OAAO,EAAE,cAAc,EAAE,EACzB,eAAe,GAAE,eAAe,EAAO,EACvC,eAAe,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,GAC/C,oBAAoB;IAUvB;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,iBAAiB;IAIlE;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,iBAAiB;IAiCjE;;OAEG;IACH,gBAAgB,CACd,OAAO,EAAE,cAAc,EAAE,EACzB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa;IAIhB;;OAEG;IACH,eAAe,IAAI,kBAAkB;CAQtC"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- /**
3
- * Dashboard 数据聚合
4
- *
5
- * 从各模块收集数据,生成 HarnessDashboardData
6
- * 纯文件读取,零 token 开销
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DashboardDataProvider = void 0;
10
- const stats_1 = require("./stats");
11
- const definitions_1 = require("../core/constraints/definitions");
12
- class DashboardDataProvider {
13
- /**
14
- * 生成完整 Dashboard 数据
15
- */
16
- generate(entries, constraintStats = [], referenceCounts = new Map()) {
17
- return {
18
- timestamp: new Date().toISOString(),
19
- knowledgeOverview: this.getKnowledgeOverview(entries),
20
- constraintHeatmap: this.getConstraintHeatmap(constraintStats),
21
- knowledgeFlow: this.getKnowledgeFlow(entries, referenceCounts),
22
- feedbackLoop: this.getFeedbackLoop(),
23
- };
24
- }
25
- /**
26
- * 知识库全景
27
- */
28
- getKnowledgeOverview(entries) {
29
- return (0, stats_1.computeKnowledgeOverview)(entries);
30
- }
31
- /**
32
- * 约束执行热力图
33
- */
34
- getConstraintHeatmap(stats) {
35
- // P1:直接读 definitions;prompt 类不产生 trace 统计,热力图只含 check 层
36
- const allConstraints = (0, definitions_1.getAllConstraints)().filter(c => c.kind === 'check');
37
- const constraints = allConstraints.map(c => {
38
- const stat = stats.find(s => s.constraintId === c.id);
39
- const layer = c.level === 'iron_law' ? 'safety' : 'quality';
40
- return {
41
- id: c.id,
42
- layer,
43
- trigger: stat?.triggerCount ?? 0,
44
- pass: stat?.passCount ?? 0,
45
- intercept: stat?.interceptCount ?? 0,
46
- interceptRate: stat ? (0, stats_1.computeInterceptRate)(stat.triggerCount, stat.interceptCount) : 0,
47
- deprecationStatus: 'active',
48
- permanent: false,
49
- };
50
- });
51
- const neverTriggered = constraints.filter(c => c.trigger === 0).map(c => c.id);
52
- const decliningInterceptRate = constraints
53
- .filter(c => c.interceptRate > 0 && c.interceptRate < 15)
54
- .map(c => ({ id: c.id, from: c.interceptRate, to: c.interceptRate }));
55
- return {
56
- period: '近 30 天',
57
- constraints,
58
- neverTriggered,
59
- decliningInterceptRate,
60
- };
61
- }
62
- /**
63
- * 知识流转路径
64
- */
65
- getKnowledgeFlow(entries, referenceCounts) {
66
- return (0, stats_1.computeKnowledgeFlow)(entries, referenceCounts);
67
- }
68
- /**
69
- * 反馈环状态(基础实现,需要外部数据源补充)
70
- */
71
- getFeedbackLoop() {
72
- return {
73
- local: { active: 0 },
74
- push: { active: 0 },
75
- external: { active: 0 },
76
- feedbackToKnowledge: { total: 0, pending: 0 },
77
- };
78
- }
79
- }
80
- exports.DashboardDataProvider = DashboardDataProvider;
81
- //# sourceMappingURL=data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/dashboard/data.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './types';
2
- export * from './stats';
3
- export * from './data';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types"), exports);
18
- __exportStar(require("./stats"), exports);
19
- __exportStar(require("./data"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,yCAAuB"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Dashboard 统计计算
3
- *
4
- * 纯函数,从原始数据计算统计指标
5
- */
6
- import type { KnowledgeEntry } from '../knowledge/types';
7
- import type { KnowledgeOverview, KnowledgeFlow } from './types';
8
- /**
9
- * 计算知识库概览
10
- */
11
- export declare function computeKnowledgeOverview(entries: KnowledgeEntry[]): KnowledgeOverview;
12
- /**
13
- * 计算知识流转统计
14
- */
15
- export declare function computeKnowledgeFlow(entries: KnowledgeEntry[], referenceCounts: Map<string, number>, topN?: number): KnowledgeFlow;
16
- /**
17
- * 计算约束拦截率
18
- */
19
- export declare function computeInterceptRate(triggerCount: number, interceptCount: number): number;
20
- //# sourceMappingURL=stats.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/dashboard/stats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEhE;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAoBrF;AA+CD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,EAAE,EACzB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,IAAI,GAAE,MAAU,GACf,aAAa,CAgCf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAGzF"}