couchloop-eq-mcp 1.0.2 → 1.0.3

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 (90) hide show
  1. package/README.md +29 -4
  2. package/dist/clients/shrinkChatClient.d.ts +10 -0
  3. package/dist/clients/shrinkChatClient.d.ts.map +1 -1
  4. package/dist/clients/shrinkChatClient.js +4 -0
  5. package/dist/clients/shrinkChatClient.js.map +1 -1
  6. package/dist/db/client.d.ts.map +1 -1
  7. package/dist/db/client.js +5 -3
  8. package/dist/db/client.js.map +1 -1
  9. package/dist/db/schema.d.ts +363 -0
  10. package/dist/db/schema.d.ts.map +1 -1
  11. package/dist/db/schema.js +47 -0
  12. package/dist/db/schema.js.map +1 -1
  13. package/dist/governance/config.d.ts +66 -0
  14. package/dist/governance/config.d.ts.map +1 -0
  15. package/dist/governance/config.js +238 -0
  16. package/dist/governance/config.js.map +1 -0
  17. package/dist/governance/detectors/hallucination.d.ts +61 -0
  18. package/dist/governance/detectors/hallucination.d.ts.map +1 -0
  19. package/dist/governance/detectors/hallucination.js +338 -0
  20. package/dist/governance/detectors/hallucination.js.map +1 -0
  21. package/dist/governance/detectors/inconsistency.d.ts +99 -0
  22. package/dist/governance/detectors/inconsistency.d.ts.map +1 -0
  23. package/dist/governance/detectors/inconsistency.js +548 -0
  24. package/dist/governance/detectors/inconsistency.js.map +1 -0
  25. package/dist/governance/detectors/toneDrift.d.ts +63 -0
  26. package/dist/governance/detectors/toneDrift.d.ts.map +1 -0
  27. package/dist/governance/detectors/toneDrift.js +421 -0
  28. package/dist/governance/detectors/toneDrift.js.map +1 -0
  29. package/dist/governance/detectors/unsafeReasoning.d.ts +54 -0
  30. package/dist/governance/detectors/unsafeReasoning.d.ts.map +1 -0
  31. package/dist/governance/detectors/unsafeReasoning.js +473 -0
  32. package/dist/governance/detectors/unsafeReasoning.js.map +1 -0
  33. package/dist/governance/evaluationEngine.d.ts +112 -0
  34. package/dist/governance/evaluationEngine.d.ts.map +1 -0
  35. package/dist/governance/evaluationEngine.js +265 -0
  36. package/dist/governance/evaluationEngine.js.map +1 -0
  37. package/dist/governance/intervention.d.ts +81 -0
  38. package/dist/governance/intervention.d.ts.map +1 -0
  39. package/dist/governance/intervention.js +405 -0
  40. package/dist/governance/intervention.js.map +1 -0
  41. package/dist/server/chatgpt-mcp.d.ts +10 -0
  42. package/dist/server/chatgpt-mcp.d.ts.map +1 -0
  43. package/dist/server/chatgpt-mcp.js +233 -0
  44. package/dist/server/chatgpt-mcp.js.map +1 -0
  45. package/dist/server/index.d.ts.map +1 -1
  46. package/dist/server/index.js +94 -3
  47. package/dist/server/index.js.map +1 -1
  48. package/dist/server/middleware/localNetworkAccess.d.ts +16 -0
  49. package/dist/server/middleware/localNetworkAccess.d.ts.map +1 -0
  50. package/dist/server/middleware/localNetworkAccess.js +97 -0
  51. package/dist/server/middleware/localNetworkAccess.js.map +1 -0
  52. package/dist/server/sse.d.ts +16 -0
  53. package/dist/server/sse.d.ts.map +1 -0
  54. package/dist/server/sse.js +215 -0
  55. package/dist/server/sse.js.map +1 -0
  56. package/dist/tools/checkpoint.d.ts.map +1 -1
  57. package/dist/tools/index.d.ts +1 -0
  58. package/dist/tools/index.d.ts.map +1 -1
  59. package/dist/tools/index.js +4 -2
  60. package/dist/tools/index.js.map +1 -1
  61. package/dist/tools/insight.d.ts +1 -0
  62. package/dist/tools/insight.d.ts.map +1 -1
  63. package/dist/tools/sendMessage-complex-backup.d.ts +6 -0
  64. package/dist/tools/sendMessage-complex-backup.d.ts.map +1 -0
  65. package/dist/tools/sendMessage-complex-backup.js +545 -0
  66. package/dist/tools/sendMessage-complex-backup.js.map +1 -0
  67. package/dist/tools/sendMessage-revised.d.ts +11 -0
  68. package/dist/tools/sendMessage-revised.d.ts.map +1 -0
  69. package/dist/tools/sendMessage-revised.js +429 -0
  70. package/dist/tools/sendMessage-revised.js.map +1 -0
  71. package/dist/tools/sendMessage-truly-simple.d.ts +8 -0
  72. package/dist/tools/sendMessage-truly-simple.d.ts.map +1 -0
  73. package/dist/tools/sendMessage-truly-simple.js +299 -0
  74. package/dist/tools/sendMessage-truly-simple.js.map +1 -0
  75. package/dist/tools/sendMessage.d.ts +4 -2
  76. package/dist/tools/sendMessage.d.ts.map +1 -1
  77. package/dist/tools/sendMessage.js +240 -186
  78. package/dist/tools/sendMessage.js.map +1 -1
  79. package/dist/tools/session.d.ts.map +1 -1
  80. package/dist/tools/session.js +35 -29
  81. package/dist/tools/session.js.map +1 -1
  82. package/dist/types/auth.d.ts +9 -1
  83. package/dist/types/auth.d.ts.map +1 -1
  84. package/dist/types/auth.js +37 -10
  85. package/dist/types/auth.js.map +1 -1
  86. package/dist/types/insight.d.ts +10 -0
  87. package/dist/types/insight.d.ts.map +1 -1
  88. package/dist/types/session.d.ts +10 -0
  89. package/dist/types/session.d.ts.map +1 -1
  90. package/package.json +10 -5
@@ -0,0 +1,299 @@
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, 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: z.string().min(1).max(10000),
14
+ conversation_type: z.string().optional(),
15
+ system_prompt: z.string().optional(),
16
+ save_checkpoint: z.boolean().optional(),
17
+ checkpoint_key: z.string().optional(),
18
+ advance_step: z.boolean().optional(),
19
+ journey_id: z.string().uuid().optional(),
20
+ });
21
+ /**
22
+ * TRULY SIMPLE sendMessage
23
+ *
24
+ * Just use shrink-chat's existing crisis detection to trigger self-correction.
25
+ * No additional patterns. No complex logic.
26
+ */
27
+ export async function sendMessage(args) {
28
+ const startTime = Date.now();
29
+ try {
30
+ const input = SendMessageSchema.parse(args);
31
+ const db = getDb();
32
+ logger.info(`Sending message for session ${input.session_id}`);
33
+ // Get session
34
+ const [session] = await db
35
+ .select()
36
+ .from(sessions)
37
+ .where(eq(sessions.id, input.session_id))
38
+ .limit(1);
39
+ if (!session) {
40
+ throw new NotFoundError(`Session ${input.session_id} not found`);
41
+ }
42
+ // Get or create thread ID
43
+ let threadId = session.threadId;
44
+ if (!threadId) {
45
+ threadId = uuidv4();
46
+ await db.update(sessions)
47
+ .set({ threadId })
48
+ .where(eq(sessions.id, input.session_id));
49
+ }
50
+ // Build context (keeping existing context building)
51
+ const journey = session.journeyId
52
+ ? await db.select().from(journeys).where(eq(journeys.id, session.journeyId)).limit(1).then(res => res[0])
53
+ : null;
54
+ const memoryContext = {
55
+ userId: session.userId || 'anonymous',
56
+ conversationType: input.conversation_type || 'supportive',
57
+ sessionGoals: journey?.metadata?.goals || [],
58
+ emotionalState: session.metadata?.emotionalState || 'neutral',
59
+ };
60
+ const enhancedContext = {
61
+ journeyStep: journey && session.currentStep < journey.steps.length
62
+ ? journey.steps[session.currentStep]
63
+ : null,
64
+ progressIndicators: session.metadata?.progressIndicators || [],
65
+ };
66
+ // Get conversation history
67
+ const previousCheckpoints = await db
68
+ .select()
69
+ .from(checkpoints)
70
+ .where(eq(checkpoints.sessionId, session.id))
71
+ .orderBy(desc(checkpoints.createdAt));
72
+ const history = previousCheckpoints
73
+ .filter(cp => cp.value && typeof cp.value === 'object' && 'message' in cp.value && 'response' in cp.value)
74
+ .flatMap(cp => {
75
+ const val = cp.value;
76
+ return [
77
+ { role: 'user', content: val.message },
78
+ { role: 'assistant', content: val.response },
79
+ ];
80
+ })
81
+ .slice(-10);
82
+ // Save user message
83
+ await db.insert(checkpoints).values({
84
+ sessionId: session.id,
85
+ stepId: session.currentStep.toString(),
86
+ key: 'user-message',
87
+ value: {
88
+ message: input.message,
89
+ messageId: uuidv4(),
90
+ role: 'user',
91
+ timestamp: new Date().toISOString(),
92
+ },
93
+ });
94
+ // Get shrink-chat client
95
+ const client = getShrinkChatClient();
96
+ // Send message
97
+ let response = await client.sendMessage(threadId, input.message, {
98
+ memoryContext,
99
+ enhancedContext,
100
+ history,
101
+ systemPrompt: input.system_prompt,
102
+ conversationType: input.conversation_type,
103
+ idempotencyKey: uuidv4(),
104
+ });
105
+ // === ULTRA SIMPLE SELF-CORRECTION ===
106
+ // Just use shrink-chat's own crisis detection!
107
+ let selfCorrected = false;
108
+ // Debug log the full response to see what we're getting
109
+ logger.info('[DEBUG] Full shrink-chat response:', JSON.stringify({
110
+ crisis_requires_intervention: response.crisis_requires_intervention,
111
+ crisis_level: response.crisis_level,
112
+ crisisLevel: response.crisisLevel,
113
+ crisis_confidence: response.crisis_confidence,
114
+ crisis_indicators: response.crisis_indicators,
115
+ crisis_suggested_actions: response.crisis_suggested_actions
116
+ }, null, 2));
117
+ // Check if we need intervention (check both field names and crisis level)
118
+ const needsIntervention = response.crisis_requires_intervention === true ||
119
+ (response.crisis_level !== undefined && response.crisis_level !== 'none' &&
120
+ (typeof response.crisis_level === 'number' ? response.crisis_level >= 8 : false));
121
+ // If shrink-chat says intervention is required, ask for revision
122
+ if (needsIntervention) {
123
+ logger.info(`[Self-Correction] Shrink-chat detected crisis requiring intervention`);
124
+ // Log the initial response
125
+ await logGovernanceEvaluation(session.id, response.content || response.reply || '', 'revision_requested', `Crisis level ${response.crisis_level}: ${response.crisis_indicators?.join(', ') || 'intervention required'}`, response.crisis_confidence || 0);
126
+ // Ask LLM to revise based on shrink-chat's own assessment
127
+ const revisionPrompt = `The previous response may escalate the user's distress (crisis level: ${response.crisis_level}).
128
+ Please provide a safer, more supportive response to: "${input.message}"
129
+
130
+ Suggested approach: ${response.crisis_suggested_actions?.join(', ') || 'De-escalate, validate, provide resources'}`;
131
+ // Get revised response
132
+ const revisedResponse = await client.sendMessage(threadId, revisionPrompt, {
133
+ memoryContext,
134
+ enhancedContext,
135
+ history: [...history,
136
+ { role: 'user', content: input.message },
137
+ { role: 'assistant', content: response.content || response.reply || '' }
138
+ ],
139
+ systemPrompt: 'Provide a supportive, safe response that de-escalates distress.',
140
+ conversationType: 'revision',
141
+ idempotencyKey: uuidv4(),
142
+ });
143
+ // Log revised response
144
+ await logGovernanceEvaluation(session.id, revisedResponse.content || revisedResponse.reply || '', 'revision_applied', 'Self-corrected based on crisis detection', revisedResponse.crisis_confidence || 0);
145
+ response = revisedResponse;
146
+ selfCorrected = true;
147
+ logger.info(`[Self-Correction] Applied revised response`);
148
+ }
149
+ else {
150
+ // Log approved response
151
+ await logGovernanceEvaluation(session.id, response.content || response.reply || '', 'approved', 'No intervention required', response.crisis_confidence || 0);
152
+ }
153
+ // Save assistant response
154
+ const responseContent = response.content || response.reply || response.response_text || '';
155
+ await db.insert(checkpoints).values({
156
+ sessionId: session.id,
157
+ stepId: session.currentStep.toString(),
158
+ key: 'assistant-message',
159
+ value: {
160
+ message: responseContent,
161
+ messageId: response.messageId || uuidv4(),
162
+ role: 'assistant',
163
+ crisisLevel: response.crisis_level || response.crisisLevel,
164
+ selfCorrected,
165
+ timestamp: new Date().toISOString(),
166
+ },
167
+ });
168
+ // Handle high crisis even after revision (for resources/escalation)
169
+ if (response.crisis_level && (typeof response.crisis_level === 'string' ? response.crisis_level !== 'none' : response.crisis_level > 7)) {
170
+ await handleCrisisDetection(session.id, threadId, response);
171
+ }
172
+ // Additional checkpoint if requested
173
+ if (input.save_checkpoint) {
174
+ await db.insert(checkpoints).values({
175
+ sessionId: session.id,
176
+ stepId: session.currentStep.toString(),
177
+ key: input.checkpoint_key || 'message_response',
178
+ value: {
179
+ message: input.message,
180
+ response: responseContent,
181
+ selfCorrected,
182
+ timestamp: new Date().toISOString(),
183
+ },
184
+ });
185
+ }
186
+ // Advance step if requested
187
+ if (input.advance_step && session.journeyId) {
188
+ await db.update(sessions)
189
+ .set({ currentStep: session.currentStep + 1, updatedAt: new Date() })
190
+ .where(eq(sessions.id, session.id));
191
+ }
192
+ // Return response
193
+ return {
194
+ success: true,
195
+ content: responseContent,
196
+ messageId: response.messageId,
197
+ metadata: {
198
+ crisisDetected: response.crisis_requires_intervention || (response.crisis_level && response.crisis_level !== 'none' && (typeof response.crisis_level === 'number' ? response.crisis_level >= 8 : false)),
199
+ crisisLevel: response.crisis_level || response.crisisLevel,
200
+ crisisConfidence: response.crisis_confidence,
201
+ crisisIndicators: response.crisis_indicators,
202
+ sessionId: session.id,
203
+ threadId,
204
+ selfCorrected,
205
+ currentStep: input.advance_step ? session.currentStep + 1 : session.currentStep,
206
+ },
207
+ timestamp: new Date().toISOString(),
208
+ };
209
+ }
210
+ catch (error) {
211
+ logger.error('Error in sendMessage:', error);
212
+ const handledError = errorHandler.handle(error);
213
+ if (handledError.type === ErrorType.EXTERNAL_SERVICE) {
214
+ return await handleLocalFallback(args);
215
+ }
216
+ throw handledError;
217
+ }
218
+ }
219
+ /**
220
+ * Log governance evaluation - SIMPLIFIED
221
+ */
222
+ async function logGovernanceEvaluation(sessionId, content, action, reason, confidence) {
223
+ const db = getDb();
224
+ try {
225
+ await db.insert(governanceEvaluations).values({
226
+ id: uuidv4(),
227
+ sessionId,
228
+ draftResponse: content.substring(0, 1000),
229
+ evaluationResults: {
230
+ action,
231
+ reason,
232
+ confidence,
233
+ timestamp: new Date().toISOString(),
234
+ method: 'shrink-chat-crisis-detection'
235
+ },
236
+ interventionApplied: action === 'revision_requested' ? 'revision' : null,
237
+ finalResponse: action === 'revision_applied' ? content.substring(0, 1000) : null,
238
+ });
239
+ }
240
+ catch (error) {
241
+ logger.error('Failed to log governance evaluation:', error);
242
+ }
243
+ }
244
+ /**
245
+ * Handle crisis detection - keep existing
246
+ */
247
+ async function handleCrisisDetection(sessionId, threadId, response) {
248
+ const db = getDb();
249
+ await db.insert(crisisEvents).values({
250
+ id: uuidv4(),
251
+ sessionId,
252
+ threadId,
253
+ crisisLevel: typeof response.crisis_level === 'number' ? response.crisis_level : 10,
254
+ response: response.content || response.reply,
255
+ resources: response.resources || [],
256
+ escalationPath: response.escalationPath,
257
+ handled: true,
258
+ });
259
+ logger.info(`Crisis event logged for session ${sessionId}`);
260
+ }
261
+ /**
262
+ * Fallback handler - keep existing
263
+ */
264
+ async function handleLocalFallback(args) {
265
+ const input = SendMessageSchema.parse(args);
266
+ const db = getDb();
267
+ const [session] = await db
268
+ .select()
269
+ .from(sessions)
270
+ .where(eq(sessions.id, input.session_id))
271
+ .limit(1);
272
+ if (!session) {
273
+ return { success: false, error: 'Session not found' };
274
+ }
275
+ 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.";
276
+ await db.insert(checkpoints).values({
277
+ sessionId: session.id,
278
+ stepId: session.currentStep.toString(),
279
+ key: 'assistant-message',
280
+ value: {
281
+ message: fallbackContent,
282
+ messageId: uuidv4(),
283
+ role: 'assistant',
284
+ fallbackMode: true,
285
+ timestamp: new Date().toISOString(),
286
+ },
287
+ });
288
+ return {
289
+ success: true,
290
+ content: fallbackContent,
291
+ messageId: uuidv4(),
292
+ metadata: {
293
+ fallbackMode: true,
294
+ sessionId: session.id,
295
+ currentStep: session.currentStep,
296
+ },
297
+ };
298
+ }
299
+ //# sourceMappingURL=sendMessage-truly-simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendMessage-truly-simple.js","sourceRoot":"","sources":["../../src/tools/sendMessage-truly-simple.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * Send a message through the shrink-chat therapeutic stack
3
- * This is the primary integration point with the shrink-chat backend
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.
4
6
  */
5
7
  export declare function sendMessage(args: unknown): Promise<any>;
6
8
  //# sourceMappingURL=sendMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sendMessage.d.ts","sourceRoot":"","sources":["../../src/tools/sendMessage.ts"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,gBAsN9C"}
1
+ {"version":3,"file":"sendMessage.d.ts","sourceRoot":"","sources":["../../src/tools/sendMessage.ts"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,gBAgR9C"}