couchloop-eq-mcp 2.0.7 → 2.0.9

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 (74) hide show
  1. package/dist/developer/managers/context-manager.d.ts +3 -3
  2. package/dist/developer/managers/context-manager.d.ts.map +1 -1
  3. package/dist/developer/managers/context-manager.js +21 -12
  4. package/dist/developer/managers/context-manager.js.map +1 -1
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/server/http-mcp.js +1 -1
  8. package/dist/server/http-mcp.js.map +1 -1
  9. package/dist/server/index.js +6 -6
  10. package/dist/server/index.js.map +1 -1
  11. package/dist/server/middleware/auth.d.ts +6 -0
  12. package/dist/server/middleware/auth.d.ts.map +1 -1
  13. package/dist/server/middleware/auth.js +24 -1
  14. package/dist/server/middleware/auth.js.map +1 -1
  15. package/dist/server/sse.d.ts.map +1 -1
  16. package/dist/server/sse.js +54 -0
  17. package/dist/server/sse.js.map +1 -1
  18. package/dist/tools/checkpoint.d.ts.map +1 -1
  19. package/dist/tools/checkpoint.js +4 -1
  20. package/dist/tools/checkpoint.js.map +1 -1
  21. package/dist/tools/comprehensive-code-review.js +2 -2
  22. package/dist/tools/comprehensive-code-review.js.map +1 -1
  23. package/dist/tools/comprehensive-package-audit.d.ts.map +1 -1
  24. package/dist/tools/comprehensive-package-audit.js +7 -5
  25. package/dist/tools/comprehensive-package-audit.js.map +1 -1
  26. package/dist/tools/insight.d.ts +6 -1
  27. package/dist/tools/insight.d.ts.map +1 -1
  28. package/dist/tools/insight.js +1 -1
  29. package/dist/tools/insight.js.map +1 -1
  30. package/dist/tools/preserve-context.d.ts +13 -3
  31. package/dist/tools/preserve-context.d.ts.map +1 -1
  32. package/dist/tools/preserve-context.js +74 -9
  33. package/dist/tools/preserve-context.js.map +1 -1
  34. package/dist/tools/primary-tools.d.ts +5 -1
  35. package/dist/tools/primary-tools.d.ts.map +1 -1
  36. package/dist/tools/primary-tools.js +180 -92
  37. package/dist/tools/primary-tools.js.map +1 -1
  38. package/dist/tools/session-manager.d.ts +14 -0
  39. package/dist/tools/session-manager.d.ts.map +1 -1
  40. package/dist/tools/session-manager.js +112 -12
  41. package/dist/tools/session-manager.js.map +1 -1
  42. package/dist/tools/smart-context.d.ts.map +1 -1
  43. package/dist/tools/smart-context.js +9 -3
  44. package/dist/tools/smart-context.js.map +1 -1
  45. package/dist/tools/status.d.ts +21 -0
  46. package/dist/tools/status.d.ts.map +1 -1
  47. package/dist/tools/status.js +31 -15
  48. package/dist/tools/status.js.map +1 -1
  49. package/dist/tools/verify.d.ts.map +1 -1
  50. package/dist/tools/verify.js +9 -3
  51. package/dist/tools/verify.js.map +1 -1
  52. package/dist/types/auth.d.ts +3 -0
  53. package/dist/types/auth.d.ts.map +1 -1
  54. package/dist/types/auth.js +30 -6
  55. package/dist/types/auth.js.map +1 -1
  56. package/dist/types/checkpoint.d.ts +5 -0
  57. package/dist/types/checkpoint.d.ts.map +1 -1
  58. package/dist/types/context.d.ts +36 -0
  59. package/dist/types/context.d.ts.map +1 -1
  60. package/dist/types/context.js +3 -0
  61. package/dist/types/context.js.map +1 -1
  62. package/dist/types/insight.d.ts +10 -0
  63. package/dist/types/insight.d.ts.map +1 -1
  64. package/dist/types/journey.d.ts +5 -0
  65. package/dist/types/journey.d.ts.map +1 -1
  66. package/dist/types/session.d.ts +10 -0
  67. package/dist/types/session.d.ts.map +1 -1
  68. package/dist/workflows/definitions/daily-reflection.js +16 -16
  69. package/dist/workflows/definitions/daily-reflection.js.map +1 -1
  70. package/dist/workflows/definitions/gratitude-practice.js +15 -15
  71. package/dist/workflows/definitions/gratitude-practice.js.map +1 -1
  72. package/dist/workflows/definitions/weekly-review.js +21 -21
  73. package/dist/workflows/definitions/weekly-review.js.map +1 -1
  74. package/package.json +3 -2
@@ -23,7 +23,7 @@ import { ToolRegistry } from '../core/registry/registry.js';
23
23
  // Tool handler imports
24
24
  import { sendMessage } from './sendMessage.js';
25
25
  import { createSession, resumeSession } from './session.js';
26
- import { endSession } from './session-manager.js';
26
+ import { endSession, getOrCreateSession } from './session-manager.js';
27
27
  import { handleComprehensiveCodeReview } from './comprehensive-code-review.js';
28
28
  import { handleComprehensivePackageAudit } from './comprehensive-package-audit.js';
29
29
  import { handleSmartContext } from './smart-context.js';
@@ -35,6 +35,36 @@ import { statusTool } from './status.js';
35
35
  import { createCorrection, confirmIssue, approveFix, dismissCorrection, getMostRecentPendingCorrection, CorrectionState, } from './correction-flow.js';
36
36
  import { runToolWithPolicy } from '../policy/index.js';
37
37
  import { logger } from '../utils/logger.js';
38
+ import { getSupabaseClientAsync } from '../db/supabase-helpers.js';
39
+ // ============================================================
40
+ // RETRY HELPER — transparent retry for transient DB failures
41
+ // ============================================================
42
+ /**
43
+ * Retry a handler up to `maxRetries` times on transient errors.
44
+ * Waits `delayMs` between attempts with linear backoff.
45
+ * Only retries on Supabase connection / timeout errors.
46
+ */
47
+ async function withRetry(fn, { maxRetries = 1, delayMs = 300 } = {}) {
48
+ let lastError;
49
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
50
+ try {
51
+ // Ensure DB is connected before each attempt
52
+ if (attempt > 0)
53
+ await getSupabaseClientAsync();
54
+ return await fn();
55
+ }
56
+ catch (err) {
57
+ lastError = err;
58
+ const msg = err instanceof Error ? err.message : String(err);
59
+ const isTransient = msg.includes('not initialized') || msg.includes('reconnect') || msg.includes('timeout') || msg.includes('ECONNREFUSED');
60
+ if (!isTransient || attempt >= maxRetries)
61
+ throw err;
62
+ logger.warn(`[retry] Attempt ${attempt + 1} failed (${msg}), retrying in ${delayMs}ms...`);
63
+ await new Promise(r => setTimeout(r, delayMs * (attempt + 1)));
64
+ }
65
+ }
66
+ throw lastError;
67
+ }
38
68
  // ============================================================
39
69
  // PRIMARY TOOL DEFINITIONS (4 public tools)
40
70
  // ============================================================
@@ -100,79 +130,113 @@ const memoryTool = {
100
130
  },
101
131
  },
102
132
  handler: async (args) => {
103
- const parsed = MemoryInputSchema.parse(args);
104
- const action = parsed.action ?? 'save';
105
- const sessionId = parsed.session_id;
106
- const auth = parsed.auth;
107
- switch (action) {
108
- case 'recall': {
109
- // Only fetch session checkpoints when a session_id is explicitly provided.
110
- // Without one, getCheckpoints would create a new empty session unnecessary overhead.
111
- const checkpointPromise = sessionId
112
- ? getCheckpoints({ session_id: sessionId, auth })
113
- : Promise.resolve(null);
114
- const [checkpointData, insightData] = await Promise.all([
115
- checkpointPromise,
116
- recallInsights({
117
- query: typeof parsed.content === 'string' ? parsed.content : undefined,
133
+ return withRetry(async () => {
134
+ const parsed = MemoryInputSchema.parse(args);
135
+ const action = parsed.action ?? 'save';
136
+ const auth = parsed.auth;
137
+ // Auto-recall on first call of a new session
138
+ const { sessionId: resolvedSessionId, isNew } = await getOrCreateSession(parsed.session_id, auth);
139
+ const sessionId = parsed.session_id || resolvedSessionId;
140
+ // Build auto-recall context for new sessions (prepended to response)
141
+ let sessionContext;
142
+ if (isNew && action !== 'recall') {
143
+ // Auto-recall previous insights for returning users
144
+ try {
145
+ const previousInsights = await recallInsights({ limit: 3, auth });
146
+ if (previousInsights.count > 0) {
147
+ sessionContext = {
148
+ new_session: true,
149
+ previous_context: previousInsights.insights.map(ins => ({
150
+ content: ins.content,
151
+ tags: ins.tags,
152
+ saved: ins.created_at,
153
+ })),
154
+ };
155
+ }
156
+ else {
157
+ // Brand new user, no previous insights
158
+ sessionContext = {
159
+ new_session: true,
160
+ onboarding_hint: 'This user is new. Memory can save checkpoints ("save where I am"), decisions ("lock this in"), and constraints ("never do X again"). Suggest saving something after completing their first task.',
161
+ };
162
+ }
163
+ }
164
+ catch {
165
+ // Non-critical; skip auto-recall on error
166
+ }
167
+ }
168
+ switch (action) {
169
+ case 'recall': {
170
+ // Only fetch session checkpoints when a session_id is explicitly provided.
171
+ // Without one, getCheckpoints would create a new empty session — unnecessary overhead.
172
+ const checkpointPromise = sessionId
173
+ ? getCheckpoints({ session_id: sessionId, auth })
174
+ : Promise.resolve(null);
175
+ const [checkpointData, insightData] = await Promise.all([
176
+ checkpointPromise,
177
+ recallInsights({
178
+ query: typeof parsed.content === 'string' ? parsed.content : undefined,
179
+ session_id: sessionId,
180
+ limit: 5,
181
+ auth,
182
+ }),
183
+ ]);
184
+ // Strip to compact essential fields only — prevents 19KB+ dumps
185
+ const rawCheckpoints = (checkpointData && 'checkpoints' in checkpointData
186
+ ? checkpointData.checkpoints
187
+ : []);
188
+ const rawInsights = ('insights' in insightData ? insightData.insights : []);
189
+ // Checkpoints come back oldest-first; reverse for recency, cap at 5
190
+ const recentCheckpoints = rawCheckpoints.slice(-5).reverse().map(cp => ({
191
+ key: cp['key'],
192
+ value: cp['value'],
193
+ saved: cp['created_at'],
194
+ }));
195
+ const recentInsights = rawInsights.map(ins => ({
196
+ content: ins['content'],
197
+ tags: ins['tags'],
198
+ saved: ins['created_at'],
199
+ }));
200
+ const summary = {
201
+ last_checkpoint: recentCheckpoints[0] ?? null,
202
+ checkpoints: recentCheckpoints,
203
+ recent_insights: recentInsights,
204
+ count: {
205
+ checkpoints: recentCheckpoints.length,
206
+ insights: recentInsights.length,
207
+ },
208
+ };
209
+ // Hard cap: if serialized result exceeds 8KB, trim arrays further
210
+ if (JSON.stringify(summary).length > 8192) {
211
+ summary.checkpoints = summary.checkpoints.slice(0, 3);
212
+ summary.recent_insights = summary.recent_insights.slice(0, 3);
213
+ summary.count.checkpoints = summary.checkpoints.length;
214
+ summary.count.insights = summary.recent_insights.length;
215
+ }
216
+ return { ...summary, ...(sessionContext ? { session_context: sessionContext } : {}) };
217
+ }
218
+ case 'list':
219
+ return { ...(await getInsights({ session_id: sessionId, limit: 20, auth })), ...(sessionContext ? { session_context: sessionContext } : {}) };
220
+ case 'save':
221
+ default: {
222
+ const saveResult = await handleSmartContext({
223
+ content: parsed.content,
224
+ type: parsed.type || 'insight',
225
+ tags: parsed.tags,
118
226
  session_id: sessionId,
119
- limit: 5,
120
227
  auth,
121
- }),
122
- ]);
123
- // Strip to compact essential fields only — prevents 19KB+ dumps
124
- const rawCheckpoints = (checkpointData && 'checkpoints' in checkpointData
125
- ? checkpointData.checkpoints
126
- : []);
127
- const rawInsights = ('insights' in insightData ? insightData.insights : []);
128
- // Checkpoints come back oldest-first; reverse for recency, cap at 5
129
- const recentCheckpoints = rawCheckpoints.slice(-5).reverse().map(cp => ({
130
- key: cp['key'],
131
- value: cp['value'],
132
- saved: cp['created_at'],
133
- }));
134
- const recentInsights = rawInsights.map(ins => ({
135
- content: ins['content'],
136
- tags: ins['tags'],
137
- saved: ins['created_at'],
138
- }));
139
- const summary = {
140
- last_checkpoint: recentCheckpoints[0] ?? null,
141
- checkpoints: recentCheckpoints,
142
- recent_insights: recentInsights,
143
- count: {
144
- checkpoints: recentCheckpoints.length,
145
- insights: recentInsights.length,
146
- },
147
- };
148
- // Hard cap: if serialized result exceeds 8KB, trim arrays further
149
- if (JSON.stringify(summary).length > 8192) {
150
- summary.checkpoints = summary.checkpoints.slice(0, 3);
151
- summary.recent_insights = summary.recent_insights.slice(0, 3);
152
- summary.count.checkpoints = summary.checkpoints.length;
153
- summary.count.insights = summary.recent_insights.length;
228
+ });
229
+ return { ...saveResult, ...(sessionContext ? { session_context: sessionContext } : {}) };
154
230
  }
155
- return summary;
156
231
  }
157
- case 'list':
158
- return getInsights({ session_id: sessionId, limit: 20, auth });
159
- case 'save':
160
- default:
161
- return handleSmartContext({
162
- content: parsed.content,
163
- type: parsed.type || 'insight',
164
- tags: parsed.tags,
165
- session_id: parsed.session_id,
166
- auth,
167
- });
168
- }
232
+ }); // withRetry
169
233
  },
170
234
  };
171
235
  // ── 2. CONVERSATION ──────────────────────────────────────────────────────────
172
236
  const conversationTool = {
173
237
  definition: {
174
238
  name: 'conversation',
175
- description: 'Guided self-reflection, burnout check-ins, and wellness conversations with crisis detection. Routes to therapeutic AI backend. Triggers: "I\'m burned out", "need a break", "feeling stuck", "let\'s do a retro on my week", "check in with me", "I keep going in circles", "rubber duck my frustration", "decompress", "vent session", "daily standup with myself". Use when the user sounds frustrated, stuck, or wants a non-code conversation about how work is going. NOTE: if the user is angry at AI output specifically (cursing at the AI, "you broke it"), prefer the review tool with verify mode first to address the problem only use conversation if frustration persists without a code context or the user explicitly wants to talk it out.',
239
+ description: 'Guided self-reflection, burnout check-ins, and developer wellness conversations with crisis detection. Routes to therapeutic AI backend. Includes developer journeys: "daily-standup" (3 min: shipped/blocked/next), "sprint-retro" (8 min: wins/pains/decisions/action items), "debug-postmortem" (5 min: symptom/cause/lesson). Triggers: "I\'m burned out", "need a break", "feeling stuck", "let\'s do a retro on my week", "check in with me", "I keep going in circles", "rubber duck my frustration", "decompress", "vent session", "standup with myself", "postmortem on that bug". Use when the user sounds frustrated, stuck, or wants a non-code conversation about how work is going. NOTE: if the user is angry at AI output specifically (cursing at the AI, "you broke it"), prefer the review tool with verify mode first to address the problem, only use conversation if frustration persists without a code context or the user explicitly wants to talk it out.',
176
240
  annotations: {
177
241
  readOnlyHint: false,
178
242
  destructiveHint: false,
@@ -204,12 +268,15 @@ const conversationTool = {
204
268
  description: 'Authentication context for user identification',
205
269
  },
206
270
  },
207
- required: ['message'],
271
+ required: [],
208
272
  },
209
273
  },
210
274
  handler: async (args) => {
211
275
  const parsed = ConversationInputSchema.parse(args);
212
276
  const action = parsed.action ?? 'send';
277
+ if (action === 'send' && !parsed.message) {
278
+ return { success: false, error: 'message is required for send action' };
279
+ }
213
280
  const auth = parsed.auth;
214
281
  switch (action) {
215
282
  case 'start':
@@ -300,15 +367,36 @@ const reviewTool = {
300
367
  const sessionId = args.session_id || 'anonymous';
301
368
  const auth = args.auth;
302
369
  switch (mode) {
303
- case 'code':
370
+ case 'code': {
304
371
  if (!args.content) {
305
372
  return { success: false, error: 'content is required for code review mode' };
306
373
  }
307
- return handleComprehensiveCodeReview({
374
+ const codeResult = await handleComprehensiveCodeReview({
308
375
  code: args.content,
309
376
  language: args.language,
310
377
  auto_fix: args.auto_fix,
311
378
  });
379
+ // Auto-save high/critical findings as insights for future recall
380
+ const summary = codeResult.summary;
381
+ if (codeResult.success && summary && ((summary.critical ?? 0) > 0 || (summary.high ?? 0) > 0)) {
382
+ const issues = codeResult.issues;
383
+ const significant = (issues ?? [])
384
+ .filter(i => i.severity === 'critical' || i.severity === 'high')
385
+ .slice(0, 3)
386
+ .map(i => `[${i.severity}] ${i.message}`)
387
+ .join('; ');
388
+ if (significant) {
389
+ handleSmartContext({
390
+ content: `Code review found critical/high issues: ${significant}`,
391
+ type: 'insight',
392
+ tags: ['code-review', 'auto-saved'],
393
+ session_id: sessionId,
394
+ auth,
395
+ }).catch(err => logger.warn('[review] Failed to auto-save findings:', err));
396
+ }
397
+ }
398
+ return codeResult;
399
+ }
312
400
  case 'packages':
313
401
  if (!args.packages) {
314
402
  return { success: false, error: 'packages array is required for packages mode' };
@@ -416,23 +504,32 @@ const reviewTool = {
416
504
  };
417
505
  }
418
506
  case 'full': {
507
+ if (!args.content && !args.packages) {
508
+ return { success: false, error: 'content or packages required for full mode' };
509
+ }
419
510
  const results = {};
420
- if (args.content) {
421
- results.code_review = await handleComprehensiveCodeReview({
422
- code: args.content,
423
- language: args.language,
424
- auto_fix: args.auto_fix,
425
- });
426
- const fullVerifyResult = await handleVerify({
427
- type: 'all',
428
- content: args.content,
429
- language: args.language,
430
- });
431
- results.verification = fullVerifyResult;
432
- const fullIssues = fullVerifyResult.issues;
433
- const fullFixes = fullVerifyResult.fixes;
434
- if (fullVerifyResult.success && !fullVerifyResult.verified && fullIssues && fullIssues.length > 0) {
435
- const fixedCode = fullVerifyResult.code_verification?.fixed_code;
511
+ // Run all checks in parallel for lower latency
512
+ const [codeReviewResult, verifyResult, packageResult] = await Promise.all([
513
+ args.content
514
+ ? handleComprehensiveCodeReview({ code: args.content, language: args.language, auto_fix: args.auto_fix })
515
+ : Promise.resolve(null),
516
+ args.content
517
+ ? handleVerify({ type: 'all', content: args.content, language: args.language }).then(r => r)
518
+ : Promise.resolve(null),
519
+ args.packages
520
+ ? handleComprehensivePackageAudit({ packages: args.packages, registry: args.registry })
521
+ : Promise.resolve(null),
522
+ ]);
523
+ if (codeReviewResult)
524
+ results.code_review = codeReviewResult;
525
+ if (packageResult)
526
+ results.package_audit = packageResult;
527
+ if (verifyResult) {
528
+ results.verification = verifyResult;
529
+ const fullIssues = verifyResult.issues;
530
+ const fullFixes = verifyResult.fixes;
531
+ if (verifyResult.success && !verifyResult.verified && fullIssues && fullIssues.length > 0) {
532
+ const fixedCode = verifyResult.code_verification?.fixed_code;
436
533
  const correction = createCorrection(fullIssues, fullFixes && fullFixes.length > 0 ? fullFixes : ['No automatic fix available — manual correction needed.'], args.content, sessionId, fixedCode, auth);
437
534
  results.correction = {
438
535
  correction_id: correction.id,
@@ -442,15 +539,6 @@ const reviewTool = {
442
539
  };
443
540
  }
444
541
  }
445
- if (args.packages) {
446
- results.package_audit = await handleComprehensivePackageAudit({
447
- packages: args.packages,
448
- registry: args.registry,
449
- });
450
- }
451
- if (!args.content && !args.packages) {
452
- return { success: false, error: 'content or packages required for full mode' };
453
- }
454
542
  return { success: true, mode: 'full', results };
455
543
  }
456
544
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"primary-tools.js","sourceRoot":"","sources":["../../src/tools/primary-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primary-tools.js","sourceRoot":"","sources":["../../src/tools/primary-tools.ts"],"names":[],"mappings":"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"}
@@ -33,4 +33,18 @@ export declare function endSession(sessionId?: string, authContext?: {
33
33
  * Clear session cache (useful for testing)
34
34
  */
35
35
  export declare function clearSessionCache(): void;
36
+ /**
37
+ * Close sessions that have been inactive for over STALE_SESSION_MINUTES.
38
+ * Runs as a fire-and-forget background sweep.
39
+ * Returns the count of sessions closed.
40
+ */
41
+ export declare function closeStaleSessionsOnce(): Promise<number>;
42
+ /**
43
+ * Start periodic stale session sweep. Safe to call multiple times (idempotent).
44
+ */
45
+ export declare function startStaleSessionSweep(): void;
46
+ /**
47
+ * Stop the periodic sweep (for clean shutdown).
48
+ */
49
+ export declare function stopStaleSessionSweep(): void;
36
50
  //# sourceMappingURL=session-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/tools/session-manager.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,iBAAiB,CAAC;AAQrD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACtE,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CA+IlE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAyEhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/tools/session-manager.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,iBAAiB,CAAC;AAQrD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACtE,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CA+JlE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgFhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAcD;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAuC9D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAY7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C"}
@@ -89,17 +89,35 @@ export async function getOrCreateSession(sessionId, authContext, context) {
89
89
  .limit(1)
90
90
  .maybeSingle());
91
91
  if (existingSession) {
92
- // Fire-and-forget timestamp update
93
- supabase
94
- .from('sessions')
95
- .update({ last_active_at: now })
96
- .eq('id', existingSession.id)
97
- .then(({ error }) => {
98
- if (error)
99
- logger.warn('Failed to update last_active_at:', error);
100
- });
101
- activeSessionCache.set(externalUserId, existingSession.id);
102
- return { sessionId: existingSession.id, session: existingSession, isNew: false };
92
+ // Auto-close if stale (inactive for 30+ minutes)
93
+ const lastActive = new Date(existingSession.last_active_at || existingSession.started_at);
94
+ const staleMs = 30 * 60 * 1000;
95
+ if (Date.now() - lastActive.getTime() > staleMs) {
96
+ logger.info(`[session-manager] Auto-closing stale session ${existingSession.id} (inactive since ${lastActive.toISOString()})`);
97
+ supabase
98
+ .from('sessions')
99
+ .update({ status: 'completed', completed_at: now, metadata: { auto_closed: true, reason: 'inactivity_on_resume' } })
100
+ .eq('id', existingSession.id)
101
+ .then(({ error }) => {
102
+ if (error)
103
+ logger.warn('Failed to auto-close stale session:', error);
104
+ });
105
+ activeSessionCache.delete(externalUserId);
106
+ // Fall through to create new session below
107
+ }
108
+ else {
109
+ // Session is still fresh, reuse it
110
+ supabase
111
+ .from('sessions')
112
+ .update({ last_active_at: now })
113
+ .eq('id', existingSession.id)
114
+ .then(({ error }) => {
115
+ if (error)
116
+ logger.warn('Failed to update last_active_at:', error);
117
+ });
118
+ activeSessionCache.set(externalUserId, existingSession.id);
119
+ return { sessionId: existingSession.id, session: existingSession, isNew: false };
120
+ }
103
121
  }
104
122
  }
105
123
  // No active session found - create new one implicitly
@@ -175,7 +193,7 @@ export async function endSession(sessionId, authContext) {
175
193
  }
176
194
  const now = new Date().toISOString();
177
195
  // End the session
178
- throwOnError(await supabase
196
+ const updated = throwOnError(await supabase
179
197
  .from('sessions')
180
198
  .update({
181
199
  status: 'completed',
@@ -184,6 +202,12 @@ export async function endSession(sessionId, authContext) {
184
202
  })
185
203
  .eq('id', sessionToEnd)
186
204
  .select('*'));
205
+ if (!updated || (Array.isArray(updated) && updated.length === 0)) {
206
+ return {
207
+ success: false,
208
+ message: 'Session not found.',
209
+ };
210
+ }
187
211
  // Clear from cache
188
212
  for (const [userId, cachedId] of activeSessionCache.entries()) {
189
213
  if (cachedId === sessionToEnd) {
@@ -203,4 +227,80 @@ export async function endSession(sessionId, authContext) {
203
227
  export function clearSessionCache() {
204
228
  activeSessionCache.clear();
205
229
  }
230
+ // ============================================================
231
+ // AUTO-CLOSE STALE SESSIONS
232
+ // ============================================================
233
+ /** Stale threshold: close sessions inactive for 30+ minutes */
234
+ const STALE_SESSION_MINUTES = 30;
235
+ /** Interval between sweeps (5 minutes) */
236
+ const SWEEP_INTERVAL_MS = 5 * 60 * 1000;
237
+ let sweepTimer = null;
238
+ /**
239
+ * Close sessions that have been inactive for over STALE_SESSION_MINUTES.
240
+ * Runs as a fire-and-forget background sweep.
241
+ * Returns the count of sessions closed.
242
+ */
243
+ export async function closeStaleSessionsOnce() {
244
+ try {
245
+ const supabase = getSupabaseClient();
246
+ const cutoff = new Date(Date.now() - STALE_SESSION_MINUTES * 60 * 1000).toISOString();
247
+ const now = new Date().toISOString();
248
+ const { data, error } = await supabase
249
+ .from('sessions')
250
+ .update({
251
+ status: 'completed',
252
+ completed_at: now,
253
+ metadata: { auto_closed: true, reason: 'inactivity' },
254
+ })
255
+ .eq('status', 'active')
256
+ .lt('last_active_at', cutoff)
257
+ .select('id');
258
+ if (error) {
259
+ logger.warn('[session-manager] Stale session sweep error:', error.message);
260
+ return 0;
261
+ }
262
+ const closed = data?.length ?? 0;
263
+ if (closed > 0) {
264
+ logger.info(`[session-manager] Auto-closed ${closed} stale session(s)`);
265
+ // Clear any cached references to closed sessions
266
+ const closedIds = new Set((data ?? []).map((s) => s.id));
267
+ for (const [userId, cachedId] of activeSessionCache.entries()) {
268
+ if (closedIds.has(cachedId)) {
269
+ activeSessionCache.delete(userId);
270
+ }
271
+ }
272
+ }
273
+ return closed;
274
+ }
275
+ catch (err) {
276
+ logger.warn('[session-manager] Stale session sweep failed:', err);
277
+ return 0;
278
+ }
279
+ }
280
+ /**
281
+ * Start periodic stale session sweep. Safe to call multiple times (idempotent).
282
+ */
283
+ export function startStaleSessionSweep() {
284
+ if (sweepTimer)
285
+ return;
286
+ // Run once immediately, then on interval
287
+ closeStaleSessionsOnce().catch(() => { });
288
+ sweepTimer = setInterval(() => {
289
+ closeStaleSessionsOnce().catch(() => { });
290
+ }, SWEEP_INTERVAL_MS);
291
+ // Don't block process exit
292
+ if (sweepTimer && typeof sweepTimer === 'object' && 'unref' in sweepTimer) {
293
+ sweepTimer.unref();
294
+ }
295
+ logger.info(`[session-manager] Stale session sweep started (every ${SWEEP_INTERVAL_MS / 1000}s, threshold ${STALE_SESSION_MINUTES}min)`);
296
+ }
297
+ /**
298
+ * Stop the periodic sweep (for clean shutdown).
299
+ */
300
+ export function stopStaleSessionSweep() {
301
+ if (sweepTimer) {
302
+ clearInterval(sweepTimer);
303
+ sweepTimer = null;
304
+ }
305
+ }
206
306
  //# sourceMappingURL=session-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/tools/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/tools/session-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"smart-context.d.ts","sourceRoot":"","sources":["../../src/tools/smart-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoCH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC5B,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;GAwGrD"}
1
+ {"version":3,"file":"smart-context.d.ts","sourceRoot":"","sources":["../../src/tools/smart-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoCH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC5B,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;GA8GrD"}