couchloop-eq-mcp 1.0.4 → 1.0.5

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 (282) hide show
  1. package/README.md +24 -11
  2. package/dist/developer/analyzers/bloat-detector.d.ts +89 -0
  3. package/dist/developer/analyzers/bloat-detector.d.ts.map +1 -0
  4. package/dist/developer/analyzers/bloat-detector.js +483 -0
  5. package/dist/developer/analyzers/bloat-detector.js.map +1 -0
  6. package/dist/developer/backup/auto-backup.d.ts +96 -0
  7. package/dist/developer/backup/auto-backup.d.ts.map +1 -0
  8. package/dist/developer/backup/auto-backup.js +346 -0
  9. package/dist/developer/backup/auto-backup.js.map +1 -0
  10. package/dist/developer/blockers/package-blocker.d.ts +33 -0
  11. package/dist/developer/blockers/package-blocker.d.ts.map +1 -0
  12. package/dist/developer/blockers/package-blocker.js +224 -0
  13. package/dist/developer/blockers/package-blocker.js.map +1 -0
  14. package/dist/developer/evaluators/ai-error-preventer.d.ts +54 -0
  15. package/dist/developer/evaluators/ai-error-preventer.d.ts.map +1 -0
  16. package/dist/developer/evaluators/ai-error-preventer.js +270 -0
  17. package/dist/developer/evaluators/ai-error-preventer.js.map +1 -0
  18. package/dist/developer/evaluators/build-context-detector.d.ts +44 -0
  19. package/dist/developer/evaluators/build-context-detector.d.ts.map +1 -0
  20. package/dist/developer/evaluators/build-context-detector.js +258 -0
  21. package/dist/developer/evaluators/build-context-detector.js.map +1 -0
  22. package/dist/developer/evaluators/package-evaluator.d.ts +37 -0
  23. package/dist/developer/evaluators/package-evaluator.d.ts.map +1 -0
  24. package/dist/developer/evaluators/package-evaluator.js +278 -0
  25. package/dist/developer/evaluators/package-evaluator.js.map +1 -0
  26. package/dist/developer/guards/file-guardian.d.ts +79 -0
  27. package/dist/developer/guards/file-guardian.d.ts.map +1 -0
  28. package/dist/developer/guards/file-guardian.js +309 -0
  29. package/dist/developer/guards/file-guardian.js.map +1 -0
  30. package/dist/developer/managers/context-manager.d.ts +61 -0
  31. package/dist/developer/managers/context-manager.d.ts.map +1 -0
  32. package/dist/developer/managers/context-manager.js +302 -0
  33. package/dist/developer/managers/context-manager.js.map +1 -0
  34. package/dist/developer/metrics/complexity-calculator.d.ts +52 -0
  35. package/dist/developer/metrics/complexity-calculator.d.ts.map +1 -0
  36. package/dist/developer/metrics/complexity-calculator.js +259 -0
  37. package/dist/developer/metrics/complexity-calculator.js.map +1 -0
  38. package/dist/developer/reports/review-summary.d.ts +49 -0
  39. package/dist/developer/reports/review-summary.d.ts.map +1 -0
  40. package/dist/developer/reports/review-summary.js +249 -0
  41. package/dist/developer/reports/review-summary.js.map +1 -0
  42. package/dist/developer/scanners/review-assistant.d.ts +41 -0
  43. package/dist/developer/scanners/review-assistant.d.ts.map +1 -0
  44. package/dist/developer/scanners/review-assistant.js +374 -0
  45. package/dist/developer/scanners/review-assistant.js.map +1 -0
  46. package/dist/developer/scanners/secret-scanner.d.ts +66 -0
  47. package/dist/developer/scanners/secret-scanner.d.ts.map +1 -0
  48. package/dist/developer/scanners/secret-scanner.js +287 -0
  49. package/dist/developer/scanners/secret-scanner.js.map +1 -0
  50. package/dist/developer/scanners/sql-injection-detector.d.ts +54 -0
  51. package/dist/developer/scanners/sql-injection-detector.d.ts.map +1 -0
  52. package/dist/developer/scanners/sql-injection-detector.js +174 -0
  53. package/dist/developer/scanners/sql-injection-detector.js.map +1 -0
  54. package/dist/developer/scanners/xss-detector.d.ts +60 -0
  55. package/dist/developer/scanners/xss-detector.d.ts.map +1 -0
  56. package/dist/developer/scanners/xss-detector.js +229 -0
  57. package/dist/developer/scanners/xss-detector.js.map +1 -0
  58. package/dist/developer/types/ai-errors.d.ts +34 -0
  59. package/dist/developer/types/ai-errors.d.ts.map +1 -0
  60. package/dist/developer/types/ai-errors.js +271 -0
  61. package/dist/developer/types/ai-errors.js.map +1 -0
  62. package/dist/developer/types/package.d.ts +32 -0
  63. package/dist/developer/types/package.d.ts.map +1 -0
  64. package/dist/developer/types/package.js +5 -0
  65. package/dist/developer/types/package.js.map +1 -0
  66. package/dist/developer/updaters/dependency-updater.d.ts +102 -0
  67. package/dist/developer/updaters/dependency-updater.d.ts.map +1 -0
  68. package/dist/developer/updaters/dependency-updater.js +472 -0
  69. package/dist/developer/updaters/dependency-updater.js.map +1 -0
  70. package/dist/developer/validators/cargo.d.ts +14 -0
  71. package/dist/developer/validators/cargo.d.ts.map +1 -0
  72. package/dist/developer/validators/cargo.js +132 -0
  73. package/dist/developer/validators/cargo.js.map +1 -0
  74. package/dist/developer/validators/gem.d.ts +14 -0
  75. package/dist/developer/validators/gem.d.ts.map +1 -0
  76. package/dist/developer/validators/gem.js +85 -0
  77. package/dist/developer/validators/gem.js.map +1 -0
  78. package/dist/developer/validators/go.d.ts +14 -0
  79. package/dist/developer/validators/go.d.ts.map +1 -0
  80. package/dist/developer/validators/go.js +138 -0
  81. package/dist/developer/validators/go.js.map +1 -0
  82. package/dist/developer/validators/maven.d.ts +14 -0
  83. package/dist/developer/validators/maven.d.ts.map +1 -0
  84. package/dist/developer/validators/maven.js +99 -0
  85. package/dist/developer/validators/maven.js.map +1 -0
  86. package/dist/developer/validators/npm.d.ts +14 -0
  87. package/dist/developer/validators/npm.d.ts.map +1 -0
  88. package/dist/developer/validators/npm.js +96 -0
  89. package/dist/developer/validators/npm.js.map +1 -0
  90. package/dist/developer/validators/nuget.d.ts +15 -0
  91. package/dist/developer/validators/nuget.d.ts.map +1 -0
  92. package/dist/developer/validators/nuget.js +107 -0
  93. package/dist/developer/validators/nuget.js.map +1 -0
  94. package/dist/developer/validators/pypi.d.ts +14 -0
  95. package/dist/developer/validators/pypi.d.ts.map +1 -0
  96. package/dist/developer/validators/pypi.js +118 -0
  97. package/dist/developer/validators/pypi.js.map +1 -0
  98. package/dist/developer/validators/registry-manager.d.ts +37 -0
  99. package/dist/developer/validators/registry-manager.d.ts.map +1 -0
  100. package/dist/developer/validators/registry-manager.js +89 -0
  101. package/dist/developer/validators/registry-manager.js.map +1 -0
  102. package/dist/developer/validators/version-checker.d.ts +145 -0
  103. package/dist/developer/validators/version-checker.d.ts.map +1 -0
  104. package/dist/developer/validators/version-checker.js +529 -0
  105. package/dist/developer/validators/version-checker.js.map +1 -0
  106. package/dist/server/index.js.map +1 -1
  107. package/dist/server/middleware/auth.d.ts +7 -9
  108. package/dist/server/middleware/auth.d.ts.map +1 -1
  109. package/dist/server/middleware/auth.js.map +1 -1
  110. package/dist/tools/check-versions.d.ts +100 -0
  111. package/dist/tools/check-versions.d.ts.map +1 -0
  112. package/dist/tools/check-versions.js +328 -0
  113. package/dist/tools/check-versions.js.map +1 -0
  114. package/dist/tools/detect-code-smell.d.ts +9 -0
  115. package/dist/tools/detect-code-smell.d.ts.map +1 -0
  116. package/dist/tools/detect-code-smell.js +231 -0
  117. package/dist/tools/detect-code-smell.js.map +1 -0
  118. package/dist/tools/index.d.ts +471 -0
  119. package/dist/tools/index.d.ts.map +1 -1
  120. package/dist/tools/index.js +178 -0
  121. package/dist/tools/index.js.map +1 -1
  122. package/dist/tools/journey.js +1 -1
  123. package/dist/tools/journey.js.map +1 -1
  124. package/dist/tools/pre-review-code.d.ts +71 -0
  125. package/dist/tools/pre-review-code.d.ts.map +1 -0
  126. package/dist/tools/pre-review-code.js +159 -0
  127. package/dist/tools/pre-review-code.js.map +1 -0
  128. package/dist/tools/preserve-context.d.ts +27 -0
  129. package/dist/tools/preserve-context.d.ts.map +1 -0
  130. package/dist/tools/preserve-context.js +98 -0
  131. package/dist/tools/preserve-context.js.map +1 -0
  132. package/dist/tools/protect-files.d.ts +224 -0
  133. package/dist/tools/protect-files.d.ts.map +1 -0
  134. package/dist/tools/protect-files.js +286 -0
  135. package/dist/tools/protect-files.js.map +1 -0
  136. package/dist/tools/scan-security.d.ts +38 -0
  137. package/dist/tools/scan-security.d.ts.map +1 -0
  138. package/dist/tools/scan-security.js +237 -0
  139. package/dist/tools/scan-security.js.map +1 -0
  140. package/dist/tools/validate_packages.d.ts +8 -0
  141. package/dist/tools/validate_packages.d.ts.map +1 -0
  142. package/dist/tools/validate_packages.js +159 -0
  143. package/dist/tools/validate_packages.js.map +1 -0
  144. package/dist/types/auth.d.ts.map +1 -1
  145. package/dist/types/auth.js +1 -2
  146. package/dist/types/auth.js.map +1 -1
  147. package/dist/types/context.d.ts +46 -0
  148. package/dist/types/context.d.ts.map +1 -0
  149. package/dist/types/context.js +17 -0
  150. package/dist/types/context.js.map +1 -0
  151. package/dist/types/file-protection.d.ts +50 -0
  152. package/dist/types/file-protection.d.ts.map +1 -0
  153. package/dist/types/file-protection.js +9 -0
  154. package/dist/types/file-protection.js.map +1 -0
  155. package/dist/utils/errorHandler.d.ts.map +1 -1
  156. package/dist/utils/errorHandler.js +2 -1
  157. package/dist/utils/errorHandler.js.map +1 -1
  158. package/package.json +23 -2
  159. package/dist/db/migrate.d.ts +0 -4
  160. package/dist/db/migrate.d.ts.map +0 -1
  161. package/dist/db/migrate.js +0 -34
  162. package/dist/db/migrate.js.map +0 -1
  163. package/dist/db/migrations/schema.d.ts +0 -1074
  164. package/dist/db/migrations/schema.d.ts.map +0 -1
  165. package/dist/db/migrations/schema.js +0 -160
  166. package/dist/db/migrations/schema.js.map +0 -1
  167. package/dist/db/schema.d.ts +0 -1576
  168. package/dist/db/schema.d.ts.map +0 -1
  169. package/dist/db/schema.js +0 -204
  170. package/dist/db/schema.js.map +0 -1
  171. package/dist/db/seed.d.ts +0 -4
  172. package/dist/db/seed.d.ts.map +0 -1
  173. package/dist/db/seed.js +0 -57
  174. package/dist/db/seed.js.map +0 -1
  175. package/dist/db/seedOAuth.d.ts +0 -4
  176. package/dist/db/seedOAuth.d.ts.map +0 -1
  177. package/dist/db/seedOAuth.js +0 -76
  178. package/dist/db/seedOAuth.js.map +0 -1
  179. package/dist/governance/config.d.ts +0 -66
  180. package/dist/governance/config.d.ts.map +0 -1
  181. package/dist/governance/config.js +0 -238
  182. package/dist/governance/config.js.map +0 -1
  183. package/dist/governance/detectors/hallucination.d.ts +0 -61
  184. package/dist/governance/detectors/hallucination.d.ts.map +0 -1
  185. package/dist/governance/detectors/hallucination.js +0 -338
  186. package/dist/governance/detectors/hallucination.js.map +0 -1
  187. package/dist/governance/detectors/inconsistency.d.ts +0 -99
  188. package/dist/governance/detectors/inconsistency.d.ts.map +0 -1
  189. package/dist/governance/detectors/inconsistency.js +0 -548
  190. package/dist/governance/detectors/inconsistency.js.map +0 -1
  191. package/dist/governance/detectors/toneDrift.d.ts +0 -63
  192. package/dist/governance/detectors/toneDrift.d.ts.map +0 -1
  193. package/dist/governance/detectors/toneDrift.js +0 -421
  194. package/dist/governance/detectors/toneDrift.js.map +0 -1
  195. package/dist/governance/detectors/unsafeReasoning.d.ts +0 -54
  196. package/dist/governance/detectors/unsafeReasoning.d.ts.map +0 -1
  197. package/dist/governance/detectors/unsafeReasoning.js +0 -473
  198. package/dist/governance/detectors/unsafeReasoning.js.map +0 -1
  199. package/dist/governance/evaluationEngine.d.ts +0 -112
  200. package/dist/governance/evaluationEngine.d.ts.map +0 -1
  201. package/dist/governance/evaluationEngine.js +0 -265
  202. package/dist/governance/evaluationEngine.js.map +0 -1
  203. package/dist/governance/intervention.d.ts +0 -81
  204. package/dist/governance/intervention.d.ts.map +0 -1
  205. package/dist/governance/intervention.js +0 -405
  206. package/dist/governance/intervention.js.map +0 -1
  207. package/dist/server/oauth/anomalyDetection.d.ts +0 -146
  208. package/dist/server/oauth/anomalyDetection.d.ts.map +0 -1
  209. package/dist/server/oauth/anomalyDetection.js +0 -405
  210. package/dist/server/oauth/anomalyDetection.js.map +0 -1
  211. package/dist/server/oauth/authServer.d.ts +0 -61
  212. package/dist/server/oauth/authServer.d.ts.map +0 -1
  213. package/dist/server/oauth/authServer.js +0 -283
  214. package/dist/server/oauth/authServer.js.map +0 -1
  215. package/dist/server/oauth/dpop.d.ts +0 -135
  216. package/dist/server/oauth/dpop.d.ts.map +0 -1
  217. package/dist/server/oauth/dpop.js +0 -338
  218. package/dist/server/oauth/dpop.js.map +0 -1
  219. package/dist/server/oauth/gdpr/consent.d.ts +0 -173
  220. package/dist/server/oauth/gdpr/consent.d.ts.map +0 -1
  221. package/dist/server/oauth/gdpr/consent.js +0 -388
  222. package/dist/server/oauth/gdpr/consent.js.map +0 -1
  223. package/dist/server/oauth/gdpr/dataPortability.d.ts +0 -214
  224. package/dist/server/oauth/gdpr/dataPortability.d.ts.map +0 -1
  225. package/dist/server/oauth/gdpr/dataPortability.js +0 -486
  226. package/dist/server/oauth/gdpr/dataPortability.js.map +0 -1
  227. package/dist/server/oauth/gdpr/index.d.ts +0 -103
  228. package/dist/server/oauth/gdpr/index.d.ts.map +0 -1
  229. package/dist/server/oauth/gdpr/index.js +0 -273
  230. package/dist/server/oauth/gdpr/index.js.map +0 -1
  231. package/dist/server/oauth/gdpr/rightToErasure.d.ts +0 -184
  232. package/dist/server/oauth/gdpr/rightToErasure.d.ts.map +0 -1
  233. package/dist/server/oauth/gdpr/rightToErasure.js +0 -527
  234. package/dist/server/oauth/gdpr/rightToErasure.js.map +0 -1
  235. package/dist/server/oauth/monitoring/securityMonitor.d.ts +0 -218
  236. package/dist/server/oauth/monitoring/securityMonitor.d.ts.map +0 -1
  237. package/dist/server/oauth/monitoring/securityMonitor.js +0 -615
  238. package/dist/server/oauth/monitoring/securityMonitor.js.map +0 -1
  239. package/dist/server/oauth/pkce.d.ts +0 -61
  240. package/dist/server/oauth/pkce.d.ts.map +0 -1
  241. package/dist/server/oauth/pkce.js +0 -157
  242. package/dist/server/oauth/pkce.js.map +0 -1
  243. package/dist/server/oauth/providers/base.d.ts +0 -147
  244. package/dist/server/oauth/providers/base.d.ts.map +0 -1
  245. package/dist/server/oauth/providers/base.js +0 -312
  246. package/dist/server/oauth/providers/base.js.map +0 -1
  247. package/dist/server/oauth/providers/github.d.ts +0 -55
  248. package/dist/server/oauth/providers/github.d.ts.map +0 -1
  249. package/dist/server/oauth/providers/github.js +0 -225
  250. package/dist/server/oauth/providers/github.js.map +0 -1
  251. package/dist/server/oauth/providers/google.d.ts +0 -49
  252. package/dist/server/oauth/providers/google.d.ts.map +0 -1
  253. package/dist/server/oauth/providers/google.js +0 -153
  254. package/dist/server/oauth/providers/google.js.map +0 -1
  255. package/dist/server/oauth/providers/index.d.ts +0 -9
  256. package/dist/server/oauth/providers/index.d.ts.map +0 -1
  257. package/dist/server/oauth/providers/index.js +0 -24
  258. package/dist/server/oauth/providers/index.js.map +0 -1
  259. package/dist/server/oauth/refreshTokenRotation.d.ts +0 -114
  260. package/dist/server/oauth/refreshTokenRotation.d.ts.map +0 -1
  261. package/dist/server/oauth/refreshTokenRotation.js +0 -344
  262. package/dist/server/oauth/refreshTokenRotation.js.map +0 -1
  263. package/dist/server/oauth/security.d.ts +0 -101
  264. package/dist/server/oauth/security.d.ts.map +0 -1
  265. package/dist/server/oauth/security.js +0 -268
  266. package/dist/server/oauth/security.js.map +0 -1
  267. package/dist/server/oauth/tokenEncryption.d.ts +0 -80
  268. package/dist/server/oauth/tokenEncryption.d.ts.map +0 -1
  269. package/dist/server/oauth/tokenEncryption.js +0 -218
  270. package/dist/server/oauth/tokenEncryption.js.map +0 -1
  271. package/dist/tools/sendMessage-complex-backup.d.ts +0 -6
  272. package/dist/tools/sendMessage-complex-backup.d.ts.map +0 -1
  273. package/dist/tools/sendMessage-complex-backup.js +0 -545
  274. package/dist/tools/sendMessage-complex-backup.js.map +0 -1
  275. package/dist/tools/sendMessage-revised.d.ts +0 -11
  276. package/dist/tools/sendMessage-revised.d.ts.map +0 -1
  277. package/dist/tools/sendMessage-revised.js +0 -429
  278. package/dist/tools/sendMessage-revised.js.map +0 -1
  279. package/dist/tools/sendMessage-truly-simple.d.ts +0 -8
  280. package/dist/tools/sendMessage-truly-simple.d.ts.map +0 -1
  281. package/dist/tools/sendMessage-truly-simple.js +0 -299
  282. package/dist/tools/sendMessage-truly-simple.js.map +0 -1
@@ -1,63 +0,0 @@
1
- /**
2
- * CouchLoop Behavioral Governance Layer - Tone Drift Monitor
3
- *
4
- * Detects escalation from neutral to emotionally loaded, over-reassurance,
5
- * over-alarmism, and manipulative or dependency-forming language
6
- */
7
- import type { DetectionResult, SessionContext } from '../evaluationEngine.js';
8
- import type { CriterionConfig } from '../config.js';
9
- export declare class ToneDriftMonitor {
10
- private config;
11
- private manipulativePatterns;
12
- private overReassurancePatterns;
13
- private alarmistPatterns;
14
- private dependencyPatterns;
15
- private directivePatterns;
16
- constructor(config: CriterionConfig);
17
- /**
18
- * Main monitoring method
19
- */
20
- monitor(response: string, context?: SessionContext): Promise<DetectionResult>;
21
- /**
22
- * Analyze tone profile of text
23
- */
24
- private analyzeTone;
25
- /**
26
- * Get baseline tone from conversation history
27
- */
28
- private getBaselineTone;
29
- /**
30
- * Calculate drift between current and baseline tone
31
- */
32
- private calculateDrift;
33
- /**
34
- * Detect manipulative language patterns
35
- */
36
- private detectManipulation;
37
- /**
38
- * Detect over-reassurance patterns
39
- */
40
- private detectOverReassurance;
41
- /**
42
- * Detect alarmist language
43
- */
44
- private detectAlarmism;
45
- /**
46
- * Detect dependency-forming language
47
- */
48
- private detectDependencyForming;
49
- /**
50
- * Detect over-directive language
51
- */
52
- private detectOverDirectiveness;
53
- /**
54
- * Detect emotional escalation
55
- */
56
- private detectEmotionalEscalation;
57
- /**
58
- * Update configuration
59
- */
60
- updateConfig(config: CriterionConfig): void;
61
- }
62
- export default ToneDriftMonitor;
63
- //# sourceMappingURL=toneDrift.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toneDrift.d.ts","sourceRoot":"","sources":["../../../src/governance/detectors/toneDrift.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAmBpD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,oBAAoB,CAAW;IACvC,OAAO,CAAC,uBAAuB,CAAW;IAC1C,OAAO,CAAC,gBAAgB,CAAW;IACnC,OAAO,CAAC,kBAAkB,CAAW;IACrC,OAAO,CAAC,iBAAiB,CAAW;gBAExB,MAAM,EAAE,eAAe;IA4EnC;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAkFnF;;OAEG;IACH,OAAO,CAAC,WAAW;IAkDnB;;OAEG;YACW,eAAe;IA4C7B;;OAEG;IACH,OAAO,CAAC,cAAc;IA8DtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAsBjC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;CAG5C;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,421 +0,0 @@
1
- /**
2
- * CouchLoop Behavioral Governance Layer - Tone Drift Monitor
3
- *
4
- * Detects escalation from neutral to emotionally loaded, over-reassurance,
5
- * over-alarmism, and manipulative or dependency-forming language
6
- */
7
- export class ToneDriftMonitor {
8
- config;
9
- manipulativePatterns;
10
- overReassurancePatterns;
11
- alarmistPatterns;
12
- dependencyPatterns;
13
- directivePatterns;
14
- constructor(config) {
15
- this.config = config;
16
- // Compile regex patterns for different tone issues
17
- this.manipulativePatterns = [
18
- /only I can help/i,
19
- /you need me/i,
20
- /without me you/i,
21
- /trust me, not/i,
22
- /they don't understand (you )?like I do/i,
23
- /I know you better than/i,
24
- /you can't trust (them|anyone else)/i,
25
- /I'm the only one who/i,
26
- /don't listen to (them|others)/i,
27
- /they're wrong about you/i
28
- ];
29
- this.overReassurancePatterns = [
30
- /everything will be (fine|okay|perfect|great)/i,
31
- /don't worry about (anything|it)/i,
32
- /there's nothing to (worry|be concerned) about/i,
33
- /you have nothing to fear/i,
34
- /it's all going to work out/i,
35
- /trust me, (everything|it)/i,
36
- /I promise (everything|you)/i,
37
- /absolutely no risk/i,
38
- /completely safe/i,
39
- /guaranteed to work/i
40
- ];
41
- this.alarmistPatterns = [
42
- /this is (extremely |very )?serious/i,
43
- /you must act (now|immediately)/i,
44
- /before it's too late/i,
45
- /dangerous to wait/i,
46
- /could be (catastrophic|disastrous|fatal)/i,
47
- /urgent(ly)? need/i,
48
- /crisis situation/i,
49
- /emergency/i,
50
- /dire consequences/i,
51
- /at great risk/i
52
- ];
53
- this.dependencyPatterns = [
54
- /you('ll)? always need/i,
55
- /come back to me/i,
56
- /I'll always be here/i,
57
- /you can't do this without/i,
58
- /you need (me|this) to/i,
59
- /depend on me/i,
60
- /rely on me/i,
61
- /I'm here for you (always|forever|no matter what)/i,
62
- /whenever you need/i,
63
- /don't hesitate to contact me/i
64
- ];
65
- this.directivePatterns = [
66
- /you must/i,
67
- /you have to/i,
68
- /you need to/i,
69
- /you should definitely/i,
70
- /it's essential that you/i,
71
- /it's critical that you/i,
72
- /imperative that you/i,
73
- /absolutely necessary/i,
74
- /no other choice/i,
75
- /the only way/i
76
- ];
77
- // Add custom patterns from config
78
- if (config.patterns) {
79
- const customPatterns = config.patterns.map(p => new RegExp(p, 'i'));
80
- this.manipulativePatterns.push(...customPatterns);
81
- }
82
- }
83
- /**
84
- * Main monitoring method
85
- */
86
- async monitor(response, context) {
87
- // Analyze current response tone
88
- const currentTone = this.analyzeTone(response);
89
- // Get or establish baseline tone
90
- const baselineTone = await this.getBaselineTone(context);
91
- // Calculate drift from baseline
92
- const driftAnalysis = this.calculateDrift(currentTone, baselineTone);
93
- // Check for problematic patterns
94
- const manipulativeFound = this.detectManipulation(response);
95
- const overReassuranceFound = this.detectOverReassurance(response);
96
- const alarmismFound = this.detectAlarmism(response);
97
- const dependencyFound = this.detectDependencyForming(response);
98
- const overDirectiveFound = this.detectOverDirectiveness(response);
99
- // Combine all detected patterns
100
- const problematicPatterns = [
101
- ...manipulativeFound,
102
- ...overReassuranceFound,
103
- ...alarmismFound,
104
- ...dependencyFound,
105
- ...overDirectiveFound
106
- ];
107
- // Calculate overall confidence
108
- let confidence = 0;
109
- // Weight drift score
110
- if (driftAnalysis.driftScore > 0.3) {
111
- confidence += driftAnalysis.driftScore * 0.4;
112
- }
113
- // Weight problematic patterns
114
- if (manipulativeFound.length > 0) {
115
- confidence += 0.3;
116
- }
117
- if (overReassuranceFound.length > 0) {
118
- confidence += 0.15;
119
- }
120
- if (alarmismFound.length > 0) {
121
- confidence += 0.2;
122
- }
123
- if (dependencyFound.length > 0) {
124
- confidence += 0.25;
125
- }
126
- if (overDirectiveFound.length > 0) {
127
- confidence += 0.15;
128
- }
129
- // Check for emotional escalation
130
- const emotionalEscalation = this.detectEmotionalEscalation(currentTone, baselineTone);
131
- if (emotionalEscalation) {
132
- confidence += 0.2;
133
- problematicPatterns.push(`Emotional escalation: ${emotionalEscalation}`);
134
- }
135
- // Cap confidence at 1.0
136
- confidence = Math.min(confidence, 1.0);
137
- const detected = confidence >= this.config.threshold;
138
- return {
139
- detected,
140
- confidence,
141
- patterns: problematicPatterns,
142
- details: {
143
- currentTone,
144
- baselineTone,
145
- driftScore: driftAnalysis.driftScore,
146
- driftDirection: driftAnalysis.driftDirection,
147
- manipulativePatterns: manipulativeFound.length,
148
- overReassurance: overReassuranceFound.length,
149
- alarmism: alarmismFound.length,
150
- dependency: dependencyFound.length,
151
- overDirective: overDirectiveFound.length,
152
- threshold: this.config.threshold
153
- }
154
- };
155
- }
156
- /**
157
- * Analyze tone profile of text
158
- */
159
- analyzeTone(text) {
160
- // Formality (0-1)
161
- const formalityMarkers = /\b(furthermore|moreover|consequently|nevertheless|therefore|hence|thus)\b/gi;
162
- const informalMarkers = /\b(yeah|yep|gonna|wanna|kinda|sorta|like|totally|awesome)\b/gi;
163
- const formalCount = (text.match(formalityMarkers) || []).length;
164
- const informalCount = (text.match(informalMarkers) || []).length;
165
- const formality = Math.min(1, Math.max(0, 0.5 + (formalCount - informalCount) * 0.1));
166
- // Emotionality (0-1)
167
- const emotionalMarkers = /\b(feel|felt|feeling|emotion|love|hate|fear|anger|sad|happy|joy|pain|hurt|worried|anxious|excited)\b/gi;
168
- const emotionalCount = (text.match(emotionalMarkers) || []).length;
169
- const exclamationCount = (text.match(/!/g) || []).length;
170
- const emotionality = Math.min(1, (emotionalCount * 0.05) + (exclamationCount * 0.1));
171
- // Directiveness (0-1)
172
- const directiveMarkers = /\b(must|should|need to|have to|required|essential|critical|imperative)\b/gi;
173
- const exploratoryMarkers = /\b(perhaps|maybe|might|could|possibly|what if|wonder|curious)\b/gi;
174
- const directiveCount = (text.match(directiveMarkers) || []).length;
175
- const exploratoryCount = (text.match(exploratoryMarkers) || []).length;
176
- const directiveness = Math.min(1, Math.max(0, 0.5 + (directiveCount - exploratoryCount) * 0.08));
177
- // Certainty (0-1)
178
- const certaintyMarkers = /\b(definitely|absolutely|certainly|undoubtedly|clearly|obviously|surely|guaranteed|proven|fact)\b/gi;
179
- const uncertaintyMarkers = /\b(maybe|perhaps|possibly|might|could|seem|appear|suggest|think)\b/gi;
180
- const certainCount = (text.match(certaintyMarkers) || []).length;
181
- const uncertainCount = (text.match(uncertaintyMarkers) || []).length;
182
- const certainty = Math.min(1, Math.max(0, 0.5 + (certainCount - uncertainCount) * 0.08));
183
- // Supportiveness (0-1)
184
- const supportMarkers = /\b(support|help|care|understand|here for you|with you|believe in you|proud|amazing|wonderful|great job)\b/gi;
185
- const supportCount = (text.match(supportMarkers) || []).length;
186
- const supportiveness = Math.min(1, supportCount * 0.1);
187
- // Urgency (0-1)
188
- const urgencyMarkers = /\b(urgent|immediately|now|asap|quickly|hurry|crisis|emergency|critical|danger)\b/gi;
189
- const calmMarkers = /\b(relax|calm|peace|patient|time|gradual|slow|steady|no rush)\b/gi;
190
- const urgentCount = (text.match(urgencyMarkers) || []).length;
191
- const calmCount = (text.match(calmMarkers) || []).length;
192
- const urgency = Math.min(1, Math.max(0, 0.3 + (urgentCount - calmCount) * 0.15));
193
- return {
194
- formality,
195
- emotionality,
196
- directiveness,
197
- certainty,
198
- supportiveness,
199
- urgency
200
- };
201
- }
202
- /**
203
- * Get baseline tone from conversation history
204
- */
205
- async getBaselineTone(context) {
206
- if (!context?.conversationHistory || context.conversationHistory.length === 0) {
207
- // Default neutral baseline
208
- return {
209
- formality: 0.5,
210
- emotionality: 0.3,
211
- directiveness: 0.4,
212
- certainty: 0.5,
213
- supportiveness: 0.5,
214
- urgency: 0.2
215
- };
216
- }
217
- // Analyze first few assistant messages to establish baseline
218
- const assistantMessages = context.conversationHistory
219
- .filter(msg => msg.role === 'assistant')
220
- .slice(0, 3);
221
- if (assistantMessages.length === 0) {
222
- return {
223
- formality: 0.5,
224
- emotionality: 0.3,
225
- directiveness: 0.4,
226
- certainty: 0.5,
227
- supportiveness: 0.5,
228
- urgency: 0.2
229
- };
230
- }
231
- // Average tone profiles
232
- const tones = assistantMessages.map(msg => this.analyzeTone(msg.content));
233
- const baseline = {
234
- formality: tones.reduce((sum, t) => sum + t.formality, 0) / tones.length,
235
- emotionality: tones.reduce((sum, t) => sum + t.emotionality, 0) / tones.length,
236
- directiveness: tones.reduce((sum, t) => sum + t.directiveness, 0) / tones.length,
237
- certainty: tones.reduce((sum, t) => sum + t.certainty, 0) / tones.length,
238
- supportiveness: tones.reduce((sum, t) => sum + t.supportiveness, 0) / tones.length,
239
- urgency: tones.reduce((sum, t) => sum + t.urgency, 0) / tones.length
240
- };
241
- return baseline;
242
- }
243
- /**
244
- * Calculate drift between current and baseline tone
245
- */
246
- calculateDrift(current, baseline) {
247
- // Calculate individual dimension drifts
248
- const drifts = {
249
- formality: Math.abs(current.formality - baseline.formality),
250
- emotionality: Math.abs(current.emotionality - baseline.emotionality),
251
- directiveness: Math.abs(current.directiveness - baseline.directiveness),
252
- certainty: Math.abs(current.certainty - baseline.certainty),
253
- supportiveness: Math.abs(current.supportiveness - baseline.supportiveness),
254
- urgency: Math.abs(current.urgency - baseline.urgency)
255
- };
256
- // Weight different dimensions
257
- const weights = {
258
- formality: 0.1,
259
- emotionality: 0.25,
260
- directiveness: 0.2,
261
- certainty: 0.15,
262
- supportiveness: 0.15,
263
- urgency: 0.15
264
- };
265
- // Calculate weighted drift score
266
- let driftScore = 0;
267
- for (const [dimension, drift] of Object.entries(drifts)) {
268
- driftScore += drift * weights[dimension];
269
- }
270
- // Determine primary drift direction
271
- const maxDrift = Math.max(...Object.values(drifts));
272
- const primaryDimension = Object.entries(drifts).find(([_, v]) => v === maxDrift)?.[0] || 'unknown';
273
- let driftDirection = primaryDimension;
274
- if (primaryDimension === 'emotionality' && current.emotionality > baseline.emotionality) {
275
- driftDirection = 'emotional escalation';
276
- }
277
- else if (primaryDimension === 'directiveness' && current.directiveness > baseline.directiveness) {
278
- driftDirection = 'increasing directiveness';
279
- }
280
- else if (primaryDimension === 'urgency' && current.urgency > baseline.urgency) {
281
- driftDirection = 'increasing urgency/alarm';
282
- }
283
- const problematicPatterns = [];
284
- // Flag significant drifts
285
- if (drifts.emotionality > 0.4) {
286
- problematicPatterns.push(`High emotional drift: ${drifts.emotionality.toFixed(2)}`);
287
- }
288
- if (drifts.directiveness > 0.4) {
289
- problematicPatterns.push(`Significant directiveness change: ${drifts.directiveness.toFixed(2)}`);
290
- }
291
- if (drifts.urgency > 0.4) {
292
- problematicPatterns.push(`Urgency escalation: ${drifts.urgency.toFixed(2)}`);
293
- }
294
- return {
295
- baselineTone: baseline,
296
- currentTone: current,
297
- driftScore,
298
- driftDirection,
299
- problematicPatterns
300
- };
301
- }
302
- /**
303
- * Detect manipulative language patterns
304
- */
305
- detectManipulation(text) {
306
- const detected = [];
307
- for (const pattern of this.manipulativePatterns) {
308
- const matches = text.match(pattern);
309
- if (matches) {
310
- detected.push(`Manipulative: "${matches[0]}"`);
311
- }
312
- }
313
- // Additional manipulation checks
314
- if (text.match(/only I|just me|no one else/i) && text.match(/understand|help|care/i)) {
315
- detected.push('Manipulative: Isolating language detected');
316
- }
317
- if (text.match(/they .* wrong/i) && text.match(/I .* right/i)) {
318
- detected.push('Manipulative: Us vs them framing');
319
- }
320
- return detected;
321
- }
322
- /**
323
- * Detect over-reassurance patterns
324
- */
325
- detectOverReassurance(text) {
326
- const detected = [];
327
- for (const pattern of this.overReassurancePatterns) {
328
- const matches = text.match(pattern);
329
- if (matches) {
330
- detected.push(`Over-reassurance: "${matches[0]}"`);
331
- }
332
- }
333
- // Check for multiple reassurances in one response
334
- const reassuranceCount = (text.match(/don't worry|it's okay|everything will|no problem|fine|trust me/gi) || []).length;
335
- if (reassuranceCount >= 3) {
336
- detected.push(`Over-reassurance: ${reassuranceCount} reassurance phrases in one response`);
337
- }
338
- return detected;
339
- }
340
- /**
341
- * Detect alarmist language
342
- */
343
- detectAlarmism(text) {
344
- const detected = [];
345
- for (const pattern of this.alarmistPatterns) {
346
- const matches = text.match(pattern);
347
- if (matches) {
348
- detected.push(`Alarmist: "${matches[0]}"`);
349
- }
350
- }
351
- // Check for multiple urgency indicators
352
- const urgencyCount = (text.match(/urgent|immediately|now|critical|danger|serious/gi) || []).length;
353
- if (urgencyCount >= 3) {
354
- detected.push(`Alarmist: ${urgencyCount} urgency terms in one response`);
355
- }
356
- return detected;
357
- }
358
- /**
359
- * Detect dependency-forming language
360
- */
361
- detectDependencyForming(text) {
362
- const detected = [];
363
- for (const pattern of this.dependencyPatterns) {
364
- const matches = text.match(pattern);
365
- if (matches) {
366
- detected.push(`Dependency-forming: "${matches[0]}"`);
367
- }
368
- }
369
- // Check for future commitment language
370
- if (text.match(/I'll .* for you/i) && text.match(/always|whenever|anytime/i)) {
371
- detected.push('Dependency-forming: Unlimited availability implied');
372
- }
373
- return detected;
374
- }
375
- /**
376
- * Detect over-directive language
377
- */
378
- detectOverDirectiveness(text) {
379
- const detected = [];
380
- for (const pattern of this.directivePatterns) {
381
- const matches = text.match(pattern);
382
- if (matches) {
383
- detected.push(`Over-directive: "${matches[0]}"`);
384
- }
385
- }
386
- // Count directive statements
387
- const directiveCount = (text.match(/you (must|should|need to|have to)/gi) || []).length;
388
- if (directiveCount >= 3) {
389
- detected.push(`Over-directive: ${directiveCount} directive statements`);
390
- }
391
- return detected;
392
- }
393
- /**
394
- * Detect emotional escalation
395
- */
396
- detectEmotionalEscalation(current, baseline) {
397
- const escalation = current.emotionality - baseline.emotionality;
398
- if (escalation > 0.4) {
399
- return `emotionality increased by ${(escalation * 100).toFixed(0)}%`;
400
- }
401
- // Check for sudden intensity
402
- if (current.emotionality > 0.7 && baseline.emotionality < 0.4) {
403
- return 'sudden emotional intensity';
404
- }
405
- // Check for combined escalation
406
- if (current.emotionality > baseline.emotionality &&
407
- current.urgency > baseline.urgency &&
408
- current.directiveness > baseline.directiveness) {
409
- return 'multi-dimensional escalation';
410
- }
411
- return null;
412
- }
413
- /**
414
- * Update configuration
415
- */
416
- updateConfig(config) {
417
- this.config = config;
418
- }
419
- }
420
- export default ToneDriftMonitor;
421
- //# sourceMappingURL=toneDrift.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toneDrift.js","sourceRoot":"","sources":["../../../src/governance/detectors/toneDrift.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- /**
2
- * CouchLoop Behavioral Governance Layer - Unsafe Reasoning Detector
3
- *
4
- * Detects harmful advice, moralizing/shaming language, clinical overreach,
5
- * and other potentially dangerous reasoning patterns in LLM responses
6
- */
7
- import type { DetectionResult, SessionContext } from '../evaluationEngine.js';
8
- import type { CriterionConfig } from '../config.js';
9
- export declare class UnsafeReasoningDetector {
10
- private config;
11
- private unsafePatterns;
12
- private clinicalOverreachPatterns;
13
- private shamingPatterns;
14
- private harmfulAdvicePatterns;
15
- constructor(config: CriterionConfig);
16
- /**
17
- * Main detection method
18
- */
19
- detect(response: string, context?: SessionContext): Promise<DetectionResult>;
20
- /**
21
- * Detect clinical overreach patterns
22
- */
23
- private detectClinicalOverreach;
24
- /**
25
- * Detect shaming and moralizing language
26
- */
27
- private detectShaming;
28
- /**
29
- * Detect harmful advice patterns
30
- */
31
- private detectHarmfulAdvice;
32
- /**
33
- * Perform context-aware safety checks
34
- */
35
- private performContextualChecks;
36
- /**
37
- * Assess overall harm level of text (0-1 scale)
38
- */
39
- private assessHarmLevel;
40
- /**
41
- * Calculate confidence score based on detections
42
- */
43
- private calculateConfidence;
44
- /**
45
- * Compare severity levels
46
- */
47
- private compareSeverity;
48
- /**
49
- * Update configuration
50
- */
51
- updateConfig(config: CriterionConfig): void;
52
- }
53
- export default UnsafeReasoningDetector;
54
- //# sourceMappingURL=unsafeReasoning.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unsafeReasoning.d.ts","sourceRoot":"","sources":["../../../src/governance/detectors/unsafeReasoning.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AASpD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,yBAAyB,CAAW;IAC5C,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,qBAAqB,CAAW;gBAE5B,MAAM,EAAE,eAAe;IA0MnC;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IA0ElF;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwC/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAuBrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;YACW,uBAAuB;IA2CrC;;OAEG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;CAG5C;AAED,eAAe,uBAAuB,CAAC"}