couchloop-eq-mcp 1.0.3 → 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 (285) hide show
  1. package/README.md +24 -11
  2. package/dist/clients/shrinkChatClient.js +1 -1
  3. package/dist/clients/shrinkChatClient.js.map +1 -1
  4. package/dist/developer/analyzers/bloat-detector.d.ts +89 -0
  5. package/dist/developer/analyzers/bloat-detector.d.ts.map +1 -0
  6. package/dist/developer/analyzers/bloat-detector.js +483 -0
  7. package/dist/developer/analyzers/bloat-detector.js.map +1 -0
  8. package/dist/developer/backup/auto-backup.d.ts +96 -0
  9. package/dist/developer/backup/auto-backup.d.ts.map +1 -0
  10. package/dist/developer/backup/auto-backup.js +346 -0
  11. package/dist/developer/backup/auto-backup.js.map +1 -0
  12. package/dist/developer/blockers/package-blocker.d.ts +33 -0
  13. package/dist/developer/blockers/package-blocker.d.ts.map +1 -0
  14. package/dist/developer/blockers/package-blocker.js +224 -0
  15. package/dist/developer/blockers/package-blocker.js.map +1 -0
  16. package/dist/developer/evaluators/ai-error-preventer.d.ts +54 -0
  17. package/dist/developer/evaluators/ai-error-preventer.d.ts.map +1 -0
  18. package/dist/developer/evaluators/ai-error-preventer.js +270 -0
  19. package/dist/developer/evaluators/ai-error-preventer.js.map +1 -0
  20. package/dist/developer/evaluators/build-context-detector.d.ts +44 -0
  21. package/dist/developer/evaluators/build-context-detector.d.ts.map +1 -0
  22. package/dist/developer/evaluators/build-context-detector.js +258 -0
  23. package/dist/developer/evaluators/build-context-detector.js.map +1 -0
  24. package/dist/developer/evaluators/package-evaluator.d.ts +37 -0
  25. package/dist/developer/evaluators/package-evaluator.d.ts.map +1 -0
  26. package/dist/developer/evaluators/package-evaluator.js +278 -0
  27. package/dist/developer/evaluators/package-evaluator.js.map +1 -0
  28. package/dist/developer/guards/file-guardian.d.ts +79 -0
  29. package/dist/developer/guards/file-guardian.d.ts.map +1 -0
  30. package/dist/developer/guards/file-guardian.js +309 -0
  31. package/dist/developer/guards/file-guardian.js.map +1 -0
  32. package/dist/developer/managers/context-manager.d.ts +61 -0
  33. package/dist/developer/managers/context-manager.d.ts.map +1 -0
  34. package/dist/developer/managers/context-manager.js +302 -0
  35. package/dist/developer/managers/context-manager.js.map +1 -0
  36. package/dist/developer/metrics/complexity-calculator.d.ts +52 -0
  37. package/dist/developer/metrics/complexity-calculator.d.ts.map +1 -0
  38. package/dist/developer/metrics/complexity-calculator.js +259 -0
  39. package/dist/developer/metrics/complexity-calculator.js.map +1 -0
  40. package/dist/developer/reports/review-summary.d.ts +49 -0
  41. package/dist/developer/reports/review-summary.d.ts.map +1 -0
  42. package/dist/developer/reports/review-summary.js +249 -0
  43. package/dist/developer/reports/review-summary.js.map +1 -0
  44. package/dist/developer/scanners/review-assistant.d.ts +41 -0
  45. package/dist/developer/scanners/review-assistant.d.ts.map +1 -0
  46. package/dist/developer/scanners/review-assistant.js +374 -0
  47. package/dist/developer/scanners/review-assistant.js.map +1 -0
  48. package/dist/developer/scanners/secret-scanner.d.ts +66 -0
  49. package/dist/developer/scanners/secret-scanner.d.ts.map +1 -0
  50. package/dist/developer/scanners/secret-scanner.js +287 -0
  51. package/dist/developer/scanners/secret-scanner.js.map +1 -0
  52. package/dist/developer/scanners/sql-injection-detector.d.ts +54 -0
  53. package/dist/developer/scanners/sql-injection-detector.d.ts.map +1 -0
  54. package/dist/developer/scanners/sql-injection-detector.js +174 -0
  55. package/dist/developer/scanners/sql-injection-detector.js.map +1 -0
  56. package/dist/developer/scanners/xss-detector.d.ts +60 -0
  57. package/dist/developer/scanners/xss-detector.d.ts.map +1 -0
  58. package/dist/developer/scanners/xss-detector.js +229 -0
  59. package/dist/developer/scanners/xss-detector.js.map +1 -0
  60. package/dist/developer/types/ai-errors.d.ts +34 -0
  61. package/dist/developer/types/ai-errors.d.ts.map +1 -0
  62. package/dist/developer/types/ai-errors.js +271 -0
  63. package/dist/developer/types/ai-errors.js.map +1 -0
  64. package/dist/developer/types/package.d.ts +32 -0
  65. package/dist/developer/types/package.d.ts.map +1 -0
  66. package/dist/developer/types/package.js +5 -0
  67. package/dist/developer/types/package.js.map +1 -0
  68. package/dist/developer/updaters/dependency-updater.d.ts +102 -0
  69. package/dist/developer/updaters/dependency-updater.d.ts.map +1 -0
  70. package/dist/developer/updaters/dependency-updater.js +472 -0
  71. package/dist/developer/updaters/dependency-updater.js.map +1 -0
  72. package/dist/developer/validators/cargo.d.ts +14 -0
  73. package/dist/developer/validators/cargo.d.ts.map +1 -0
  74. package/dist/developer/validators/cargo.js +132 -0
  75. package/dist/developer/validators/cargo.js.map +1 -0
  76. package/dist/developer/validators/gem.d.ts +14 -0
  77. package/dist/developer/validators/gem.d.ts.map +1 -0
  78. package/dist/developer/validators/gem.js +85 -0
  79. package/dist/developer/validators/gem.js.map +1 -0
  80. package/dist/developer/validators/go.d.ts +14 -0
  81. package/dist/developer/validators/go.d.ts.map +1 -0
  82. package/dist/developer/validators/go.js +138 -0
  83. package/dist/developer/validators/go.js.map +1 -0
  84. package/dist/developer/validators/maven.d.ts +14 -0
  85. package/dist/developer/validators/maven.d.ts.map +1 -0
  86. package/dist/developer/validators/maven.js +99 -0
  87. package/dist/developer/validators/maven.js.map +1 -0
  88. package/dist/developer/validators/npm.d.ts +14 -0
  89. package/dist/developer/validators/npm.d.ts.map +1 -0
  90. package/dist/developer/validators/npm.js +96 -0
  91. package/dist/developer/validators/npm.js.map +1 -0
  92. package/dist/developer/validators/nuget.d.ts +15 -0
  93. package/dist/developer/validators/nuget.d.ts.map +1 -0
  94. package/dist/developer/validators/nuget.js +107 -0
  95. package/dist/developer/validators/nuget.js.map +1 -0
  96. package/dist/developer/validators/pypi.d.ts +14 -0
  97. package/dist/developer/validators/pypi.d.ts.map +1 -0
  98. package/dist/developer/validators/pypi.js +118 -0
  99. package/dist/developer/validators/pypi.js.map +1 -0
  100. package/dist/developer/validators/registry-manager.d.ts +37 -0
  101. package/dist/developer/validators/registry-manager.d.ts.map +1 -0
  102. package/dist/developer/validators/registry-manager.js +89 -0
  103. package/dist/developer/validators/registry-manager.js.map +1 -0
  104. package/dist/developer/validators/version-checker.d.ts +145 -0
  105. package/dist/developer/validators/version-checker.d.ts.map +1 -0
  106. package/dist/developer/validators/version-checker.js +529 -0
  107. package/dist/developer/validators/version-checker.js.map +1 -0
  108. package/dist/server/index.js.map +1 -1
  109. package/dist/server/middleware/auth.d.ts +7 -9
  110. package/dist/server/middleware/auth.d.ts.map +1 -1
  111. package/dist/server/middleware/auth.js.map +1 -1
  112. package/dist/tools/check-versions.d.ts +100 -0
  113. package/dist/tools/check-versions.d.ts.map +1 -0
  114. package/dist/tools/check-versions.js +328 -0
  115. package/dist/tools/check-versions.js.map +1 -0
  116. package/dist/tools/detect-code-smell.d.ts +9 -0
  117. package/dist/tools/detect-code-smell.d.ts.map +1 -0
  118. package/dist/tools/detect-code-smell.js +231 -0
  119. package/dist/tools/detect-code-smell.js.map +1 -0
  120. package/dist/tools/index.d.ts +471 -0
  121. package/dist/tools/index.d.ts.map +1 -1
  122. package/dist/tools/index.js +178 -0
  123. package/dist/tools/index.js.map +1 -1
  124. package/dist/tools/journey.js +1 -1
  125. package/dist/tools/journey.js.map +1 -1
  126. package/dist/tools/pre-review-code.d.ts +71 -0
  127. package/dist/tools/pre-review-code.d.ts.map +1 -0
  128. package/dist/tools/pre-review-code.js +159 -0
  129. package/dist/tools/pre-review-code.js.map +1 -0
  130. package/dist/tools/preserve-context.d.ts +27 -0
  131. package/dist/tools/preserve-context.d.ts.map +1 -0
  132. package/dist/tools/preserve-context.js +98 -0
  133. package/dist/tools/preserve-context.js.map +1 -0
  134. package/dist/tools/protect-files.d.ts +224 -0
  135. package/dist/tools/protect-files.d.ts.map +1 -0
  136. package/dist/tools/protect-files.js +286 -0
  137. package/dist/tools/protect-files.js.map +1 -0
  138. package/dist/tools/scan-security.d.ts +38 -0
  139. package/dist/tools/scan-security.d.ts.map +1 -0
  140. package/dist/tools/scan-security.js +237 -0
  141. package/dist/tools/scan-security.js.map +1 -0
  142. package/dist/tools/validate_packages.d.ts +8 -0
  143. package/dist/tools/validate_packages.d.ts.map +1 -0
  144. package/dist/tools/validate_packages.js +159 -0
  145. package/dist/tools/validate_packages.js.map +1 -0
  146. package/dist/types/auth.d.ts +18 -18
  147. package/dist/types/auth.d.ts.map +1 -1
  148. package/dist/types/auth.js +91 -36
  149. package/dist/types/auth.js.map +1 -1
  150. package/dist/types/context.d.ts +46 -0
  151. package/dist/types/context.d.ts.map +1 -0
  152. package/dist/types/context.js +17 -0
  153. package/dist/types/context.js.map +1 -0
  154. package/dist/types/file-protection.d.ts +50 -0
  155. package/dist/types/file-protection.d.ts.map +1 -0
  156. package/dist/types/file-protection.js +9 -0
  157. package/dist/types/file-protection.js.map +1 -0
  158. package/dist/utils/errorHandler.d.ts.map +1 -1
  159. package/dist/utils/errorHandler.js +2 -1
  160. package/dist/utils/errorHandler.js.map +1 -1
  161. package/package.json +23 -2
  162. package/dist/db/migrate.d.ts +0 -4
  163. package/dist/db/migrate.d.ts.map +0 -1
  164. package/dist/db/migrate.js +0 -34
  165. package/dist/db/migrate.js.map +0 -1
  166. package/dist/db/migrations/schema.d.ts +0 -1074
  167. package/dist/db/migrations/schema.d.ts.map +0 -1
  168. package/dist/db/migrations/schema.js +0 -160
  169. package/dist/db/migrations/schema.js.map +0 -1
  170. package/dist/db/schema.d.ts +0 -1576
  171. package/dist/db/schema.d.ts.map +0 -1
  172. package/dist/db/schema.js +0 -204
  173. package/dist/db/schema.js.map +0 -1
  174. package/dist/db/seed.d.ts +0 -4
  175. package/dist/db/seed.d.ts.map +0 -1
  176. package/dist/db/seed.js +0 -57
  177. package/dist/db/seed.js.map +0 -1
  178. package/dist/db/seedOAuth.d.ts +0 -4
  179. package/dist/db/seedOAuth.d.ts.map +0 -1
  180. package/dist/db/seedOAuth.js +0 -76
  181. package/dist/db/seedOAuth.js.map +0 -1
  182. package/dist/governance/config.d.ts +0 -66
  183. package/dist/governance/config.d.ts.map +0 -1
  184. package/dist/governance/config.js +0 -238
  185. package/dist/governance/config.js.map +0 -1
  186. package/dist/governance/detectors/hallucination.d.ts +0 -61
  187. package/dist/governance/detectors/hallucination.d.ts.map +0 -1
  188. package/dist/governance/detectors/hallucination.js +0 -338
  189. package/dist/governance/detectors/hallucination.js.map +0 -1
  190. package/dist/governance/detectors/inconsistency.d.ts +0 -99
  191. package/dist/governance/detectors/inconsistency.d.ts.map +0 -1
  192. package/dist/governance/detectors/inconsistency.js +0 -548
  193. package/dist/governance/detectors/inconsistency.js.map +0 -1
  194. package/dist/governance/detectors/toneDrift.d.ts +0 -63
  195. package/dist/governance/detectors/toneDrift.d.ts.map +0 -1
  196. package/dist/governance/detectors/toneDrift.js +0 -421
  197. package/dist/governance/detectors/toneDrift.js.map +0 -1
  198. package/dist/governance/detectors/unsafeReasoning.d.ts +0 -54
  199. package/dist/governance/detectors/unsafeReasoning.d.ts.map +0 -1
  200. package/dist/governance/detectors/unsafeReasoning.js +0 -473
  201. package/dist/governance/detectors/unsafeReasoning.js.map +0 -1
  202. package/dist/governance/evaluationEngine.d.ts +0 -112
  203. package/dist/governance/evaluationEngine.d.ts.map +0 -1
  204. package/dist/governance/evaluationEngine.js +0 -265
  205. package/dist/governance/evaluationEngine.js.map +0 -1
  206. package/dist/governance/intervention.d.ts +0 -81
  207. package/dist/governance/intervention.d.ts.map +0 -1
  208. package/dist/governance/intervention.js +0 -405
  209. package/dist/governance/intervention.js.map +0 -1
  210. package/dist/server/oauth/anomalyDetection.d.ts +0 -146
  211. package/dist/server/oauth/anomalyDetection.d.ts.map +0 -1
  212. package/dist/server/oauth/anomalyDetection.js +0 -405
  213. package/dist/server/oauth/anomalyDetection.js.map +0 -1
  214. package/dist/server/oauth/authServer.d.ts +0 -61
  215. package/dist/server/oauth/authServer.d.ts.map +0 -1
  216. package/dist/server/oauth/authServer.js +0 -283
  217. package/dist/server/oauth/authServer.js.map +0 -1
  218. package/dist/server/oauth/dpop.d.ts +0 -135
  219. package/dist/server/oauth/dpop.d.ts.map +0 -1
  220. package/dist/server/oauth/dpop.js +0 -338
  221. package/dist/server/oauth/dpop.js.map +0 -1
  222. package/dist/server/oauth/gdpr/consent.d.ts +0 -173
  223. package/dist/server/oauth/gdpr/consent.d.ts.map +0 -1
  224. package/dist/server/oauth/gdpr/consent.js +0 -388
  225. package/dist/server/oauth/gdpr/consent.js.map +0 -1
  226. package/dist/server/oauth/gdpr/dataPortability.d.ts +0 -214
  227. package/dist/server/oauth/gdpr/dataPortability.d.ts.map +0 -1
  228. package/dist/server/oauth/gdpr/dataPortability.js +0 -486
  229. package/dist/server/oauth/gdpr/dataPortability.js.map +0 -1
  230. package/dist/server/oauth/gdpr/index.d.ts +0 -103
  231. package/dist/server/oauth/gdpr/index.d.ts.map +0 -1
  232. package/dist/server/oauth/gdpr/index.js +0 -273
  233. package/dist/server/oauth/gdpr/index.js.map +0 -1
  234. package/dist/server/oauth/gdpr/rightToErasure.d.ts +0 -184
  235. package/dist/server/oauth/gdpr/rightToErasure.d.ts.map +0 -1
  236. package/dist/server/oauth/gdpr/rightToErasure.js +0 -527
  237. package/dist/server/oauth/gdpr/rightToErasure.js.map +0 -1
  238. package/dist/server/oauth/monitoring/securityMonitor.d.ts +0 -218
  239. package/dist/server/oauth/monitoring/securityMonitor.d.ts.map +0 -1
  240. package/dist/server/oauth/monitoring/securityMonitor.js +0 -615
  241. package/dist/server/oauth/monitoring/securityMonitor.js.map +0 -1
  242. package/dist/server/oauth/pkce.d.ts +0 -61
  243. package/dist/server/oauth/pkce.d.ts.map +0 -1
  244. package/dist/server/oauth/pkce.js +0 -157
  245. package/dist/server/oauth/pkce.js.map +0 -1
  246. package/dist/server/oauth/providers/base.d.ts +0 -147
  247. package/dist/server/oauth/providers/base.d.ts.map +0 -1
  248. package/dist/server/oauth/providers/base.js +0 -312
  249. package/dist/server/oauth/providers/base.js.map +0 -1
  250. package/dist/server/oauth/providers/github.d.ts +0 -55
  251. package/dist/server/oauth/providers/github.d.ts.map +0 -1
  252. package/dist/server/oauth/providers/github.js +0 -225
  253. package/dist/server/oauth/providers/github.js.map +0 -1
  254. package/dist/server/oauth/providers/google.d.ts +0 -49
  255. package/dist/server/oauth/providers/google.d.ts.map +0 -1
  256. package/dist/server/oauth/providers/google.js +0 -153
  257. package/dist/server/oauth/providers/google.js.map +0 -1
  258. package/dist/server/oauth/providers/index.d.ts +0 -9
  259. package/dist/server/oauth/providers/index.d.ts.map +0 -1
  260. package/dist/server/oauth/providers/index.js +0 -24
  261. package/dist/server/oauth/providers/index.js.map +0 -1
  262. package/dist/server/oauth/refreshTokenRotation.d.ts +0 -114
  263. package/dist/server/oauth/refreshTokenRotation.d.ts.map +0 -1
  264. package/dist/server/oauth/refreshTokenRotation.js +0 -344
  265. package/dist/server/oauth/refreshTokenRotation.js.map +0 -1
  266. package/dist/server/oauth/security.d.ts +0 -101
  267. package/dist/server/oauth/security.d.ts.map +0 -1
  268. package/dist/server/oauth/security.js +0 -268
  269. package/dist/server/oauth/security.js.map +0 -1
  270. package/dist/server/oauth/tokenEncryption.d.ts +0 -80
  271. package/dist/server/oauth/tokenEncryption.d.ts.map +0 -1
  272. package/dist/server/oauth/tokenEncryption.js +0 -218
  273. package/dist/server/oauth/tokenEncryption.js.map +0 -1
  274. package/dist/tools/sendMessage-complex-backup.d.ts +0 -6
  275. package/dist/tools/sendMessage-complex-backup.d.ts.map +0 -1
  276. package/dist/tools/sendMessage-complex-backup.js +0 -545
  277. package/dist/tools/sendMessage-complex-backup.js.map +0 -1
  278. package/dist/tools/sendMessage-revised.d.ts +0 -11
  279. package/dist/tools/sendMessage-revised.d.ts.map +0 -1
  280. package/dist/tools/sendMessage-revised.js +0 -429
  281. package/dist/tools/sendMessage-revised.js.map +0 -1
  282. package/dist/tools/sendMessage-truly-simple.d.ts +0 -8
  283. package/dist/tools/sendMessage-truly-simple.d.ts.map +0 -1
  284. package/dist/tools/sendMessage-truly-simple.js +0 -299
  285. package/dist/tools/sendMessage-truly-simple.js.map +0 -1
@@ -1,429 +0,0 @@
1
- import { z } from 'zod';
2
- import { eq, desc } from 'drizzle-orm';
3
- import { getDb } from '../db/client.js';
4
- import { getShrinkChatClient } from '../clients/shrinkChatClient.js';
5
- import { sessions, checkpoints, journeys, threadMappings, crisisEvents, governanceEvaluations } from '../db/schema.js';
6
- import { logger } from '../utils/logger.js';
7
- import { NotFoundError } from '../utils/errors.js';
8
- import { errorHandler, ErrorType } from '../utils/errorHandler.js';
9
- import { v4 as uuidv4 } from 'uuid';
10
- // Input validation schema
11
- const SendMessageSchema = z.object({
12
- session_id: z.string().uuid({
13
- message: 'session_id must be a valid UUID',
14
- }),
15
- message: z.string().min(1).max(10000),
16
- conversation_type: z.string().optional(),
17
- system_prompt: z.string().optional(),
18
- save_checkpoint: z.boolean().optional(),
19
- checkpoint_key: z.string().optional(),
20
- advance_step: z.boolean().optional(),
21
- journey_id: z.string().uuid().optional(),
22
- });
23
- /**
24
- * Enhanced sendMessage with LLM self-correction via shrink-chat feedback
25
- *
26
- * New approach:
27
- * 1. Send message to shrink-chat
28
- * 2. Evaluate response safety using shrink-chat's indicators
29
- * 3. If unsafe, request LLM to self-correct
30
- * 4. Log both attempts for audit
31
- */
32
- export async function sendMessage(args) {
33
- const startTime = Date.now();
34
- try {
35
- const input = SendMessageSchema.parse(args);
36
- const db = getDb();
37
- logger.info(`Sending message for session ${input.session_id}`);
38
- // Get session
39
- const [session] = await db
40
- .select()
41
- .from(sessions)
42
- .where(eq(sessions.id, input.session_id))
43
- .limit(1);
44
- if (!session) {
45
- throw new NotFoundError(`Session ${input.session_id} not found`);
46
- }
47
- // Get or create thread ID
48
- let threadId = session.threadId;
49
- if (!threadId) {
50
- threadId = uuidv4();
51
- logger.info(`Generated new thread ID ${threadId} for session ${session.id}`);
52
- await db.update(sessions)
53
- .set({ threadId })
54
- .where(eq(sessions.id, input.session_id));
55
- // Create thread mapping
56
- await db.insert(threadMappings).values({
57
- sessionId: input.session_id,
58
- threadId: threadId,
59
- source: 'mcp',
60
- metadata: {
61
- createdFrom: 'sendMessage',
62
- timestamp: new Date().toISOString(),
63
- },
64
- });
65
- logger.info(`Created thread mapping for session ${input.session_id} -> thread ${threadId}`);
66
- }
67
- // Get journey if exists
68
- const journey = session.journeyId
69
- ? await db
70
- .select()
71
- .from(journeys)
72
- .where(eq(journeys.id, session.journeyId))
73
- .limit(1)
74
- .then(res => res[0])
75
- : null;
76
- // Build context
77
- const memoryContext = {
78
- userId: session.userId || 'anonymous',
79
- conversationType: input.conversation_type || 'supportive',
80
- sessionGoals: journey?.metadata?.goals || [],
81
- emotionalState: session.metadata?.emotionalState || 'neutral',
82
- };
83
- const enhancedContext = {
84
- journeyStep: journey && session.currentStep < journey.steps.length
85
- ? journey.steps[session.currentStep]
86
- : null,
87
- progressIndicators: session.metadata?.progressIndicators || [],
88
- };
89
- // Get conversation history
90
- const previousCheckpoints = await db
91
- .select()
92
- .from(checkpoints)
93
- .where(eq(checkpoints.sessionId, session.id))
94
- .orderBy(desc(checkpoints.createdAt));
95
- const history = previousCheckpoints
96
- .filter(cp => cp.value && typeof cp.value === 'object' && 'message' in cp.value && 'response' in cp.value)
97
- .flatMap(cp => {
98
- const val = cp.value;
99
- return [
100
- { role: 'user', content: val.message },
101
- { role: 'assistant', content: val.response },
102
- ];
103
- })
104
- .slice(-10); // Last 10 messages (5 exchanges)
105
- // Save user message checkpoint
106
- const userMessageId = uuidv4();
107
- await db.insert(checkpoints).values({
108
- sessionId: session.id,
109
- stepId: session.currentStep.toString(),
110
- key: 'user-message',
111
- value: {
112
- message: input.message,
113
- messageId: userMessageId,
114
- role: 'user',
115
- timestamp: new Date().toISOString(),
116
- },
117
- });
118
- logger.debug(`Saved user message checkpoint for session ${session.id}`);
119
- // Get shrink-chat client
120
- const client = getShrinkChatClient();
121
- // Send initial message
122
- let response = await client.sendMessage(threadId, input.message, {
123
- memoryContext,
124
- enhancedContext,
125
- history,
126
- systemPrompt: input.system_prompt,
127
- conversationType: input.conversation_type,
128
- idempotencyKey: uuidv4(),
129
- });
130
- // === NEW: Self-Correction Logic ===
131
- // Evaluate safety indicators from shrink-chat
132
- const needsRevision = evaluateNeedsRevision(response);
133
- if (needsRevision.needed) {
134
- logger.info(`[Self-Correction] Response needs revision: ${needsRevision.reason}`);
135
- // Log initial unsafe response for audit
136
- await logGovernanceEvaluation(session.id, response.content || '', 'revision_requested', needsRevision.reason, needsRevision.confidence);
137
- // Build revision prompt based on the safety issue
138
- const revisionPrompt = buildRevisionPrompt(needsRevision.reason, input.message);
139
- // Request self-correction from the LLM
140
- const revisedResponse = await client.sendMessage(threadId, revisionPrompt, {
141
- memoryContext,
142
- enhancedContext,
143
- history: [
144
- ...history,
145
- { role: 'user', content: input.message },
146
- { role: 'assistant', content: response.content || '' }
147
- ],
148
- systemPrompt: 'You are revising a previous response for safety and appropriateness. Maintain helpfulness while ensuring safety.',
149
- conversationType: 'revision',
150
- idempotencyKey: uuidv4(),
151
- });
152
- // Log revised response
153
- await logGovernanceEvaluation(session.id, revisedResponse.content || '', 'revision_applied', 'Self-corrected after safety check', revisedResponse.crisis_confidence || 0);
154
- // Use revised response
155
- response = revisedResponse;
156
- logger.info(`[Self-Correction] Applied revised response`);
157
- }
158
- else {
159
- // Log approved response
160
- await logGovernanceEvaluation(session.id, response.content || '', 'approved', 'Response meets safety criteria', response.crisis_confidence || 0);
161
- }
162
- // Save assistant response checkpoint
163
- await db.insert(checkpoints).values({
164
- sessionId: session.id,
165
- stepId: session.currentStep.toString(),
166
- key: 'assistant-message',
167
- value: {
168
- message: response.content || response.reply || response.response_text || '',
169
- messageId: response.messageId || uuidv4(),
170
- role: 'assistant',
171
- crisisLevel: response.crisisLevel,
172
- emotions: response.emotions,
173
- therapeuticTechnique: response.therapeuticTechnique,
174
- selfCorrected: needsRevision.needed,
175
- timestamp: new Date().toISOString(),
176
- },
177
- });
178
- logger.debug(`Saved assistant message checkpoint for session ${session.id}`);
179
- // Handle crisis if still present after revision
180
- let crisisHandled = false;
181
- if (response.crisisLevel && Number(response.crisisLevel) > 7) {
182
- logger.warn(`Crisis detected: Level ${response.crisisLevel} for session ${session.id}`);
183
- crisisHandled = await handleCrisisDetection(session.id, threadId, response);
184
- }
185
- // Save additional checkpoint if requested
186
- if (input.save_checkpoint) {
187
- const checkpointKey = input.checkpoint_key || 'message_response';
188
- await db.insert(checkpoints).values({
189
- sessionId: session.id,
190
- stepId: session.currentStep.toString(),
191
- key: checkpointKey,
192
- value: {
193
- message: input.message,
194
- response: response.content || response.reply || response.response_text || '',
195
- messageId: response.messageId,
196
- crisisLevel: response.crisisLevel,
197
- emotions: response.emotions,
198
- therapeuticTechnique: response.therapeuticTechnique,
199
- selfCorrected: needsRevision.needed,
200
- timestamp: new Date().toISOString(),
201
- },
202
- });
203
- logger.debug(`Saved checkpoint '${checkpointKey}' for session ${session.id}`);
204
- }
205
- // Advance step if requested (for journey progression)
206
- if (input.advance_step && session.journeyId) {
207
- const newStep = session.currentStep + 1;
208
- await db.update(sessions)
209
- .set({
210
- currentStep: newStep,
211
- updatedAt: new Date(),
212
- })
213
- .where(eq(sessions.id, session.id));
214
- logger.info(`Advanced session ${session.id} to step ${newStep}`);
215
- }
216
- // Log performance
217
- const duration = Date.now() - startTime;
218
- if (duration > 5000) {
219
- logger.warn(`Slow operation detected: sendMessage took ${duration}ms`);
220
- }
221
- // Return formatted response
222
- return {
223
- success: true,
224
- content: response.content || response.reply || response.response_text || '',
225
- messageId: response.messageId,
226
- metadata: {
227
- crisisDetected: response.crisisDetected || (response.crisisLevel && Number(response.crisisLevel) > 7),
228
- crisisLevel: response.crisisLevel,
229
- crisisHandled,
230
- crisisConfidence: response.crisis_confidence,
231
- emotions: response.emotions,
232
- therapeuticTechnique: response.therapeuticTechnique,
233
- resources: response.resources,
234
- sessionId: session.id,
235
- threadId,
236
- currentStep: input.advance_step ? session.currentStep + 1 : session.currentStep,
237
- selfCorrected: needsRevision.needed,
238
- revisionReason: needsRevision.reason,
239
- },
240
- timestamp: new Date().toISOString(),
241
- };
242
- }
243
- catch (error) {
244
- logger.error('Error in sendMessage:', error);
245
- const handledError = errorHandler.handle(error);
246
- // Check if shrink-chat is unavailable
247
- if (handledError.type === ErrorType.EXTERNAL_SERVICE) {
248
- logger.warn('Shrink-chat unavailable, using fallback');
249
- return await handleLocalFallback(args);
250
- }
251
- throw handledError;
252
- }
253
- }
254
- /**
255
- * Evaluate if response needs revision based on safety indicators
256
- */
257
- function evaluateNeedsRevision(response) {
258
- // Check crisis level
259
- const crisisLevel = typeof response.crisis_level === 'number'
260
- ? response.crisis_level
261
- : (typeof response.crisisLevel === 'number' ? response.crisisLevel : 0);
262
- const crisisConfidence = response.crisis_confidence || 0;
263
- // High crisis level needs revision
264
- if (crisisLevel > 8 && crisisConfidence > 0.7) {
265
- return {
266
- needed: true,
267
- reason: 'High crisis level detected - response may escalate distress',
268
- confidence: crisisConfidence
269
- };
270
- }
271
- // Check for specific dangerous patterns in the response content
272
- const content = (response.content || response.reply || response.response_text || '').toLowerCase();
273
- // Critical safety patterns that always trigger revision
274
- const dangerousPatterns = [
275
- { pattern: /stop.{0,20}taking.{0,20}(medication|meds|medicine)/i, reason: 'Advice about stopping medication' },
276
- { pattern: /kill.{0,20}yourself/i, reason: 'Harmful self-harm content' },
277
- { pattern: /end.{0,20}your.{0,20}life/i, reason: 'Harmful self-harm content' },
278
- { pattern: /therapist.{0,20}(wrong|lying|bad)/i, reason: 'Undermining therapeutic relationship' },
279
- { pattern: /don't.{0,20}tell.{0,20}(anyone|therapist|doctor)/i, reason: 'Encouraging isolation' },
280
- { pattern: /only.{0,10}i.{0,10}(can|understand)/i, reason: 'Creating unhealthy dependency' },
281
- { pattern: /you.{0,10}(must|need to).{0,20}immediately/i, reason: 'Inappropriate urgency' },
282
- ];
283
- for (const { pattern, reason } of dangerousPatterns) {
284
- if (pattern.test(content)) {
285
- return {
286
- needed: true,
287
- reason,
288
- confidence: 0.95 // High confidence when explicit patterns matched
289
- };
290
- }
291
- }
292
- return {
293
- needed: false,
294
- reason: '',
295
- confidence: 0
296
- };
297
- }
298
- /**
299
- * Build a revision prompt based on the safety issue
300
- */
301
- function buildRevisionPrompt(reason, originalMessage) {
302
- return `Upon reflection, my previous response may have contained ${reason}.
303
- Let me provide a more appropriate and helpful response to the user's message: "${originalMessage}"
304
-
305
- Please provide a supportive, safe response that:
306
- - Acknowledges their concerns
307
- - Offers appropriate support without harmful advice
308
- - Maintains professional boundaries
309
- - Encourages healthy coping strategies if relevant`;
310
- }
311
- /**
312
- * Log governance evaluation for audit trail
313
- */
314
- async function logGovernanceEvaluation(sessionId, content, action, reason, confidence) {
315
- const db = getDb();
316
- try {
317
- await db.insert(governanceEvaluations).values({
318
- id: uuidv4(),
319
- sessionId,
320
- draftResponse: content.substring(0, 1000), // Truncate for storage
321
- evaluationResults: {
322
- action,
323
- reason,
324
- confidence,
325
- timestamp: new Date().toISOString(),
326
- method: 'self-correction'
327
- },
328
- interventionApplied: action === 'revision_requested' ? 'revision' : null,
329
- finalResponse: action === 'revision_applied' ? content.substring(0, 1000) : null,
330
- });
331
- logger.debug(`Logged governance evaluation: ${action} for session ${sessionId}`);
332
- }
333
- catch (error) {
334
- logger.error('Failed to log governance evaluation:', error);
335
- // Non-critical, don't throw
336
- }
337
- }
338
- /**
339
- * Handle crisis detection
340
- */
341
- async function handleCrisisDetection(sessionId, threadId, response) {
342
- const db = getDb();
343
- try {
344
- // Save crisis checkpoint
345
- await db.insert(checkpoints).values({
346
- sessionId,
347
- stepId: 'crisis-detection',
348
- key: 'crisis_event',
349
- value: {
350
- level: response.crisisLevel,
351
- timestamp: new Date().toISOString(),
352
- resources: response.resources,
353
- escalationPath: response.escalationPath,
354
- },
355
- });
356
- // Save crisis event
357
- await db.insert(crisisEvents).values({
358
- id: uuidv4(),
359
- sessionId,
360
- threadId,
361
- crisisLevel: Number(response.crisisLevel),
362
- response: response.content || response.reply || response.response_text,
363
- resources: response.resources || [],
364
- escalationPath: response.escalationPath,
365
- handled: true,
366
- });
367
- logger.info(`Crisis handled for session ${sessionId}, thread ${threadId}`);
368
- return true;
369
- }
370
- catch (error) {
371
- logger.error('Failed to handle crisis detection:', error);
372
- return false;
373
- }
374
- }
375
- /**
376
- * Fallback handler when shrink-chat is unavailable
377
- */
378
- async function handleLocalFallback(args) {
379
- logger.warn('Falling back to local processing due to shrink-chat unavailability');
380
- const input = SendMessageSchema.parse(args);
381
- const db = getDb();
382
- // Get the session
383
- const [session] = await db
384
- .select()
385
- .from(sessions)
386
- .where(eq(sessions.id, input.session_id))
387
- .limit(1);
388
- if (!session) {
389
- return {
390
- success: false,
391
- error: 'Session not found',
392
- };
393
- }
394
- const fallbackContent = "I understand you're trying to communicate. The therapeutic service is temporarily unavailable, but your message has been noted. Please try again shortly or contact support if this persists.";
395
- const fallbackMessageId = uuidv4();
396
- const timestamp = new Date().toISOString();
397
- // Save fallback checkpoint
398
- try {
399
- await db.insert(checkpoints).values({
400
- sessionId: session.id,
401
- stepId: session.currentStep.toString(),
402
- key: 'assistant-message',
403
- value: {
404
- message: fallbackContent,
405
- messageId: fallbackMessageId,
406
- role: 'assistant',
407
- fallbackMode: true,
408
- timestamp: timestamp,
409
- },
410
- });
411
- logger.debug(`Saved fallback assistant message checkpoint for session ${session.id}`);
412
- }
413
- catch (error) {
414
- logger.error('Failed to save fallback checkpoint:', error);
415
- }
416
- return {
417
- success: true,
418
- content: fallbackContent,
419
- messageId: fallbackMessageId,
420
- metadata: {
421
- fallbackMode: true,
422
- sessionId: session.id,
423
- threadId: session.threadId || undefined,
424
- currentStep: session.currentStep,
425
- timestamp: timestamp,
426
- },
427
- };
428
- }
429
- //# sourceMappingURL=sendMessage-revised.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendMessage-revised.js","sourceRoot":"","sources":["../../src/tools/sendMessage-revised.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * TRULY SIMPLE sendMessage
3
- *
4
- * Just use shrink-chat's existing crisis detection to trigger self-correction.
5
- * No additional patterns. No complex logic.
6
- */
7
- export declare function sendMessage(args: unknown): Promise<any>;
8
- //# sourceMappingURL=sendMessage-truly-simple.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendMessage-truly-simple.d.ts","sourceRoot":"","sources":["../../src/tools/sendMessage-truly-simple.ts"],"names":[],"mappings":"AAuBA;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,gBAsP9C"}