couchloop-eq-mcp 2.0.3 → 2.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 (78) hide show
  1. package/dist/clients/shrinkChatClient.d.ts +28 -28
  2. package/dist/db/client.d.ts +16 -19
  3. package/dist/db/client.d.ts.map +1 -1
  4. package/dist/db/client.js +52 -62
  5. package/dist/db/client.js.map +1 -1
  6. package/dist/resources/journey-status.d.ts.map +1 -1
  7. package/dist/resources/journey-status.js +10 -12
  8. package/dist/resources/journey-status.js.map +1 -1
  9. package/dist/resources/session-summary.d.ts.map +1 -1
  10. package/dist/resources/session-summary.js +33 -33
  11. package/dist/resources/session-summary.js.map +1 -1
  12. package/dist/resources/user-context.d.ts.map +1 -1
  13. package/dist/resources/user-context.js +26 -41
  14. package/dist/resources/user-context.js.map +1 -1
  15. package/dist/server/sse.d.ts.map +1 -1
  16. package/dist/server/sse.js +55 -27
  17. package/dist/server/sse.js.map +1 -1
  18. package/dist/tools/checkpoint.d.ts +1 -8
  19. package/dist/tools/checkpoint.d.ts.map +1 -1
  20. package/dist/tools/checkpoint.js +47 -49
  21. package/dist/tools/checkpoint.js.map +1 -1
  22. package/dist/tools/correction-flow.d.ts +74 -0
  23. package/dist/tools/correction-flow.d.ts.map +1 -0
  24. package/dist/tools/correction-flow.js +205 -0
  25. package/dist/tools/correction-flow.js.map +1 -0
  26. package/dist/tools/generate-upgrade-report.d.ts +2 -2
  27. package/dist/tools/guard.d.ts +3 -3
  28. package/dist/tools/index.d.ts +2 -4
  29. package/dist/tools/index.d.ts.map +1 -1
  30. package/dist/tools/index.js +2 -4
  31. package/dist/tools/index.js.map +1 -1
  32. package/dist/tools/insight.d.ts +10 -49
  33. package/dist/tools/insight.d.ts.map +1 -1
  34. package/dist/tools/insight.js +78 -91
  35. package/dist/tools/insight.js.map +1 -1
  36. package/dist/tools/journey.d.ts +5 -5
  37. package/dist/tools/journey.d.ts.map +1 -1
  38. package/dist/tools/journey.js +47 -39
  39. package/dist/tools/journey.js.map +1 -1
  40. package/dist/tools/pre-review-code.d.ts +2 -2
  41. package/dist/tools/prevent-ai-errors.d.ts +1 -1
  42. package/dist/tools/primary-tools.d.ts +20 -0
  43. package/dist/tools/primary-tools.d.ts.map +1 -1
  44. package/dist/tools/primary-tools.js +179 -32
  45. package/dist/tools/primary-tools.js.map +1 -1
  46. package/dist/tools/protect-files.d.ts +1 -1
  47. package/dist/tools/sendMessage.d.ts.map +1 -1
  48. package/dist/tools/sendMessage.js +52 -38
  49. package/dist/tools/sendMessage.js.map +1 -1
  50. package/dist/tools/session-manager.d.ts.map +1 -1
  51. package/dist/tools/session-manager.js +88 -70
  52. package/dist/tools/session-manager.js.map +1 -1
  53. package/dist/tools/session.d.ts +7 -86
  54. package/dist/tools/session.d.ts.map +1 -1
  55. package/dist/tools/session.js +68 -72
  56. package/dist/tools/session.js.map +1 -1
  57. package/dist/tools/smart-context.d.ts +1 -1
  58. package/dist/tools/status.d.ts +9 -2
  59. package/dist/tools/status.d.ts.map +1 -1
  60. package/dist/tools/status.js +112 -63
  61. package/dist/tools/status.js.map +1 -1
  62. package/dist/tools/verify.d.ts +2 -2
  63. package/dist/tools/verify.js.map +1 -1
  64. package/dist/types/auth.d.ts +2 -2
  65. package/dist/types/checkpoint.d.ts +4 -4
  66. package/dist/types/file-protection.d.ts +2 -2
  67. package/dist/types/insight.d.ts +10 -10
  68. package/dist/types/journey.d.ts +40 -12
  69. package/dist/types/journey.d.ts.map +1 -1
  70. package/dist/types/journey.js +2 -0
  71. package/dist/types/journey.js.map +1 -1
  72. package/dist/types/session.d.ts +8 -8
  73. package/dist/workflows/engine.d.ts +2 -2
  74. package/dist/workflows/engine.d.ts.map +1 -1
  75. package/dist/workflows/engine.js +81 -82
  76. package/dist/workflows/engine.js.map +1 -1
  77. package/dist/workflows/index.d.ts +4 -4
  78. package/package.json +2 -10
@@ -1,6 +1,4 @@
1
- import { getDb } from '../db/client.js';
2
- import { sessions, journeys, users, checkpoints } from '../db/schema.js';
3
- import { eq, desc, and } from 'drizzle-orm';
1
+ import { getSupabaseClient, throwOnError } from '../db/supabase-helpers.js';
4
2
  import { CreateSessionSchema, ResumeSessionSchema } from '../types/session.js';
5
3
  import { extractUserFromContext } from '../types/auth.js';
6
4
  import { handleError, NotFoundError } from '../utils/errors.js';
@@ -8,30 +6,27 @@ import { logger } from '../utils/logger.js';
8
6
  export async function createSession(args) {
9
7
  try {
10
8
  const input = CreateSessionSchema.parse(args);
11
- const db = getDb();
9
+ const supabase = getSupabaseClient();
12
10
  // Extract user ID from auth context or generate anonymous user
13
11
  const externalUserId = await extractUserFromContext(input.auth);
14
- const userResult = await db
15
- .insert(users)
16
- .values({
17
- externalId: externalUserId,
12
+ const user = throwOnError(await supabase
13
+ .from('users')
14
+ .upsert({
15
+ external_id: externalUserId,
18
16
  preferences: {},
19
- })
20
- .onConflictDoUpdate({
21
- target: users.externalId,
22
- set: { updatedAt: new Date() },
23
- })
24
- .returning();
25
- const user = userResult[0];
17
+ updated_at: new Date().toISOString(),
18
+ }, { onConflict: 'external_id' })
19
+ .select()
20
+ .single());
26
21
  // Look up journey if specified
27
22
  let journey = null;
28
23
  let currentStep = null;
29
24
  if (input.journey_slug) {
30
- const [foundJourney] = await db
31
- .select()
32
- .from(journeys)
33
- .where(eq(journeys.slug, input.journey_slug))
34
- .limit(1);
25
+ const foundJourney = throwOnError(await supabase
26
+ .from('journeys')
27
+ .select('*')
28
+ .eq('slug', input.journey_slug)
29
+ .maybeSingle());
35
30
  if (!foundJourney) {
36
31
  throw new NotFoundError('Journey with slug', input.journey_slug);
37
32
  }
@@ -42,17 +37,17 @@ export async function createSession(args) {
42
37
  }
43
38
  }
44
39
  // Create new session
45
- const sessionResult = await db
46
- .insert(sessions)
47
- .values({
48
- userId: user.id,
49
- journeyId: journey?.id || null,
40
+ const session = throwOnError(await supabase
41
+ .from('sessions')
42
+ .insert({
43
+ user_id: user.id,
44
+ journey_id: journey?.id || null,
50
45
  status: 'active',
51
- currentStep: 0,
46
+ current_step: 0,
52
47
  metadata: { context: input.context },
53
48
  })
54
- .returning();
55
- const session = sessionResult[0];
49
+ .select()
50
+ .single());
56
51
  logger.info(`Created new session: ${session.id}`);
57
52
  return {
58
53
  session_id: session.id,
@@ -71,17 +66,17 @@ export async function createSession(args) {
71
66
  export async function resumeSession(args) {
72
67
  try {
73
68
  const input = ResumeSessionSchema.parse(args);
74
- const db = getDb();
69
+ const supabase = getSupabaseClient();
75
70
  // Find session to resume
76
- let session;
71
+ let session = null;
77
72
  if (input.session_id) {
78
73
  // Direct session lookup - skip user validation
79
74
  // This allows resuming sessions when MCP clients don't maintain consistent user context
80
- [session] = await db
81
- .select()
82
- .from(sessions)
83
- .where(eq(sessions.id, input.session_id))
84
- .limit(1);
75
+ session = throwOnError(await supabase
76
+ .from('sessions')
77
+ .select('*')
78
+ .eq('id', input.session_id)
79
+ .maybeSingle());
85
80
  if (!session) {
86
81
  throw new NotFoundError('Session with ID', input.session_id);
87
82
  }
@@ -90,35 +85,35 @@ export async function resumeSession(args) {
90
85
  // Resume most recent session - requires user context
91
86
  // Extract user ID from auth context or generate anonymous user
92
87
  const externalUserId = await extractUserFromContext(input.auth);
93
- const [user] = await db
94
- .select()
95
- .from(users)
96
- .where(eq(users.externalId, externalUserId))
97
- .limit(1);
88
+ const user = throwOnError(await supabase
89
+ .from('users')
90
+ .select('*')
91
+ .eq('external_id', externalUserId)
92
+ .maybeSingle());
98
93
  if (!user) {
99
94
  // Create user if doesn't exist
100
- const [newUser] = await db
101
- .insert(users)
102
- .values({
103
- externalId: externalUserId,
95
+ throwOnError(await supabase
96
+ .from('users')
97
+ .insert({
98
+ external_id: externalUserId,
104
99
  preferences: {},
105
100
  })
106
- .returning();
107
- if (!newUser) {
108
- throw new NotFoundError('User');
109
- }
101
+ .select()
102
+ .single());
110
103
  return {
111
104
  message: 'No previous sessions found for this user. Please create a new session.',
112
105
  session: null,
113
106
  };
114
107
  }
115
108
  // Get most recent pausable session for this user
116
- [session] = await db
117
- .select()
118
- .from(sessions)
119
- .where(and(eq(sessions.userId, user.id), eq(sessions.status, 'paused')))
120
- .orderBy(desc(sessions.lastActiveAt))
121
- .limit(1);
109
+ session = throwOnError(await supabase
110
+ .from('sessions')
111
+ .select('*')
112
+ .eq('user_id', user.id)
113
+ .eq('status', 'paused')
114
+ .order('last_active_at', { ascending: false })
115
+ .limit(1)
116
+ .maybeSingle());
122
117
  if (!session) {
123
118
  throw new NotFoundError('Session to resume for user');
124
119
  }
@@ -126,30 +121,31 @@ export async function resumeSession(args) {
126
121
  // Get journey if linked
127
122
  let journey = null;
128
123
  let currentStep = null;
129
- if (session.journeyId) {
130
- [journey] = await db
131
- .select()
132
- .from(journeys)
133
- .where(eq(journeys.id, session.journeyId))
134
- .limit(1);
135
- if (journey && journey.steps && journey.steps[session.currentStep]) {
136
- currentStep = journey.steps[session.currentStep];
124
+ if (session.journey_id) {
125
+ journey = throwOnError(await supabase
126
+ .from('journeys')
127
+ .select('*')
128
+ .eq('id', session.journey_id)
129
+ .maybeSingle());
130
+ if (journey && journey.steps && journey.steps[session.current_step]) {
131
+ currentStep = journey.steps[session.current_step];
137
132
  }
138
133
  }
139
134
  // Get existing checkpoints
140
- const existingCheckpoints = await db
141
- .select()
142
- .from(checkpoints)
143
- .where(eq(checkpoints.sessionId, session.id))
144
- .orderBy(checkpoints.createdAt);
135
+ const existingCheckpoints = throwOnError(await supabase
136
+ .from('checkpoints')
137
+ .select('*')
138
+ .eq('session_id', session.id)
139
+ .order('created_at', { ascending: true }));
145
140
  // Update session status to active
146
- await db
147
- .update(sessions)
148
- .set({
141
+ throwOnError(await supabase
142
+ .from('sessions')
143
+ .update({
149
144
  status: 'active',
150
- lastActiveAt: new Date(),
145
+ last_active_at: new Date().toISOString(),
151
146
  })
152
- .where(eq(sessions.id, session.id));
147
+ .eq('id', session.id)
148
+ .select());
153
149
  logger.info(`Resumed session: ${session.id}`);
154
150
  return {
155
151
  session: session,
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ export declare const smartContextTool: {
54
54
  };
55
55
  export declare function handleSmartContext(args: unknown): Promise<{
56
56
  success: boolean;
57
- type: "checkpoint" | "conversation" | "pattern" | "insight" | "decision" | "requirement" | "constraint";
57
+ type: "conversation" | "pattern" | "checkpoint" | "insight" | "decision" | "requirement" | "constraint";
58
58
  message: string;
59
59
  error?: undefined;
60
60
  } | {
@@ -3,17 +3,24 @@
3
3
  *
4
4
  * Dashboard and quick status checks for session, history, context, protection, and preferences.
5
5
  * Provides personalized status with actionable next steps.
6
+ *
7
+ * SECURITY: All database queries (sessions, checkpoints, insights) are scoped
8
+ * to the authenticated user. Context and protection checks use machine-local
9
+ * storage and are not user-scoped.
6
10
  */
7
11
  import { z } from 'zod';
8
12
  declare const StatusInputSchema: z.ZodObject<{
9
13
  check: z.ZodEnum<["session", "history", "context", "protection", "preferences", "all"]>;
10
14
  session_id: z.ZodOptional<z.ZodString>;
15
+ auth: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
11
16
  }, "strip", z.ZodTypeAny, {
12
- check: "preferences" | "session" | "protection" | "all" | "history" | "context";
17
+ check: "session" | "protection" | "all" | "history" | "context" | "preferences";
13
18
  session_id?: string | undefined;
19
+ auth?: Record<string, unknown> | undefined;
14
20
  }, {
15
- check: "preferences" | "session" | "protection" | "all" | "history" | "context";
21
+ check: "session" | "protection" | "all" | "history" | "context" | "preferences";
16
22
  session_id?: string | undefined;
23
+ auth?: Record<string, unknown> | undefined;
17
24
  }>;
18
25
  export type StatusInput = z.infer<typeof StatusInputSchema>;
19
26
  export declare const statusTool: {
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,QAAA,MAAM,iBAAiB;;;;;;;;;EAGrB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BtB,CAAC;AAEF,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO;WAgcvC,MAAM;eACF,MAAM;cACP,aAAa;cACb,aAAa;cACb,aAAa;iBACV,gBAAgB;kBACf,iBAAiB;cACrB,MAAM;iBACH,MAAM,EAAE;;;;;;GAzZtB;AAMD,UAAU,aAAa;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyED,UAAU,aAAa;IACrB,eAAe,EAAE,KAAK,CAAC;QACrB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AA8ED,UAAU,aAAa;IACrB,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA0DD,UAAU,gBAAgB;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmCD,UAAU,iBAAiB;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAIrB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BtB,CAAC;AA2BF,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO;WAwevC,MAAM;eACF,MAAM;cACP,aAAa;cACb,aAAa;cACb,aAAa;iBACV,gBAAgB;kBACf,iBAAiB;cACrB,MAAM;iBACH,MAAM,EAAE;;;;;;GApbtB;AAMD,UAAU,aAAa;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoFD,UAAU,aAAa;IACrB,eAAe,EAAE,KAAK,CAAC;QACrB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AA6FD,UAAU,aAAa;IACrB,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA0DD,UAAU,gBAAgB;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmCD,UAAU,iBAAiB;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -3,19 +3,23 @@
3
3
  *
4
4
  * Dashboard and quick status checks for session, history, context, protection, and preferences.
5
5
  * Provides personalized status with actionable next steps.
6
+ *
7
+ * SECURITY: All database queries (sessions, checkpoints, insights) are scoped
8
+ * to the authenticated user. Context and protection checks use machine-local
9
+ * storage and are not user-scoped.
6
10
  */
7
11
  import { z } from 'zod';
8
- import { getDb } from '../db/client.js';
9
- import { sessions, checkpoints, insights } from '../db/schema.js';
10
- import { eq, desc, count } from 'drizzle-orm';
12
+ import { getSupabaseClient, throwOnError } from '../db/supabase-helpers.js';
11
13
  import { WorkflowEngine } from '../workflows/engine.js';
12
14
  import { getContextManager } from '../developer/managers/context-manager.js';
13
15
  import { getProtectionStatus, listBackups } from './protect-files.js';
14
16
  import { getUserContext } from './insight.js';
17
+ import { extractUserFromContext } from '../types/auth.js';
15
18
  import { logger } from '../utils/logger.js';
16
19
  const StatusInputSchema = z.object({
17
20
  check: z.enum(['session', 'history', 'context', 'protection', 'preferences', 'all']).describe('What to check'),
18
21
  session_id: z.string().optional().describe('Session ID for session-specific status'),
22
+ auth: z.record(z.unknown()).optional().describe('Authentication context'),
19
23
  });
20
24
  export const statusTool = {
21
25
  definition: {
@@ -45,20 +49,50 @@ export const statusTool = {
45
49
  },
46
50
  handler: handleStatus,
47
51
  };
52
+ // ============================================================
53
+ // USER RESOLUTION (single point of entry for all status queries)
54
+ // ============================================================
55
+ /**
56
+ * Resolve the calling user's internal UUID from auth context.
57
+ * Returns null if user has never interacted with the system.
58
+ * This is the ONLY function that touches the users table — all
59
+ * downstream queries receive an already-validated userId.
60
+ */
61
+ async function resolveUserId(authContext) {
62
+ const supabase = getSupabaseClient();
63
+ const externalId = await extractUserFromContext(authContext);
64
+ const user = throwOnError(await supabase
65
+ .from('users')
66
+ .select('id')
67
+ .eq('external_id', externalId)
68
+ .maybeSingle());
69
+ return user?.id ?? null;
70
+ }
48
71
  export async function handleStatus(args) {
49
72
  try {
50
73
  const input = StatusInputSchema.parse(args);
51
74
  logger.info('Running status check', { check: input.check });
75
+ // Resolve the calling user ONCE — all queries scope to this userId
76
+ const userId = await resolveUserId(input.auth);
77
+ if (!userId) {
78
+ return {
79
+ success: true,
80
+ check: input.check,
81
+ timestamp: new Date().toISOString(),
82
+ summary: 'No user data found. Start a session or save a memory to get started.',
83
+ next_steps: ['Start your first session with "start a reflection" or "let\'s begin"'],
84
+ };
85
+ }
52
86
  const result = {
53
87
  check: input.check,
54
88
  timestamp: new Date().toISOString(),
55
89
  };
56
- // Run appropriate checks based on type
90
+ // Run appropriate checks based on type — all scoped to userId
57
91
  if (input.check === 'session' || input.check === 'all') {
58
- result.session = await getSessionStatus(input.session_id);
92
+ result.session = await getSessionStatus(userId, input.session_id);
59
93
  }
60
94
  if (input.check === 'history' || input.check === 'all') {
61
- result.history = await getHistoryStatus();
95
+ result.history = await getHistoryStatus(userId);
62
96
  }
63
97
  if (input.check === 'context' || input.check === 'all') {
64
98
  result.context = await getContextStatus();
@@ -67,7 +101,7 @@ export async function handleStatus(args) {
67
101
  result.protection = await getProtectionStatusSummary();
68
102
  }
69
103
  if (input.check === 'preferences' || input.check === 'all') {
70
- result.preferences = await getPreferencesStatus();
104
+ result.preferences = await getPreferencesStatus(input.auth);
71
105
  }
72
106
  // Generate personalized summary and next steps
73
107
  result.summary = generateSummary(result);
@@ -85,26 +119,29 @@ export async function handleStatus(args) {
85
119
  };
86
120
  }
87
121
  }
88
- async function getSessionStatus(sessionId) {
122
+ async function getSessionStatus(userId, sessionId) {
89
123
  try {
90
- const db = getDb();
91
- // Find active or specified session
124
+ const supabase = getSupabaseClient();
92
125
  let session;
93
126
  if (sessionId) {
94
- [session] = await db
95
- .select()
96
- .from(sessions)
97
- .where(eq(sessions.id, sessionId))
98
- .limit(1);
127
+ // Explicit session lookup MUST belong to this user
128
+ session = throwOnError(await supabase
129
+ .from('sessions')
130
+ .select('*')
131
+ .eq('id', sessionId)
132
+ .eq('user_id', userId)
133
+ .maybeSingle());
99
134
  }
100
135
  else {
101
- // Get most recent active session
102
- [session] = await db
103
- .select()
104
- .from(sessions)
105
- .where(eq(sessions.status, 'active'))
106
- .orderBy(desc(sessions.lastActiveAt))
107
- .limit(1);
136
+ // Most recent active session FOR THIS USER
137
+ session = throwOnError(await supabase
138
+ .from('sessions')
139
+ .select('*')
140
+ .eq('user_id', userId)
141
+ .eq('status', 'active')
142
+ .order('last_active_at', { ascending: false })
143
+ .limit(1)
144
+ .maybeSingle());
108
145
  }
109
146
  if (!session) {
110
147
  return {
@@ -115,26 +152,28 @@ async function getSessionStatus(sessionId) {
115
152
  // Get progress
116
153
  const engine = new WorkflowEngine();
117
154
  const progress = await engine.getSessionProgress(session.id);
118
- // Get checkpoint count
119
- const sessionCheckpoints = await db
120
- .select()
121
- .from(checkpoints)
122
- .where(eq(checkpoints.sessionId, session.id));
155
+ // Get checkpoint count (session is already user-scoped, but checkpoints
156
+ // are keyed by sessionId which is user-owned)
157
+ const sessionCheckpoints = throwOnError(await supabase
158
+ .from('checkpoints')
159
+ .select('*')
160
+ .eq('session_id', session.id));
123
161
  // Calculate time elapsed
124
- const startTime = new Date(session.startedAt);
162
+ // Supabase returns ISO strings, not Date objects
163
+ const startTime = new Date(session.started_at);
125
164
  const now = new Date();
126
165
  const timeElapsedMinutes = Math.round((now.getTime() - startTime.getTime()) / 60000);
127
166
  return {
128
167
  has_active_session: true,
129
168
  session_id: session.id,
130
- journey_name: session.journeyId || undefined,
169
+ journey_name: session.journey_id || undefined,
131
170
  current_step: progress.currentStep,
132
171
  total_steps: progress.totalSteps,
133
172
  percent_complete: progress.percentComplete,
134
- checkpoints_saved: sessionCheckpoints.length,
173
+ checkpoints_saved: (sessionCheckpoints ?? []).length,
135
174
  time_elapsed_minutes: timeElapsedMinutes,
136
- started_at: session.startedAt.toISOString(),
137
- last_activity: session.lastActiveAt?.toISOString(),
175
+ started_at: session.started_at,
176
+ last_activity: session.last_active_at ?? undefined,
138
177
  status: session.status,
139
178
  };
140
179
  }
@@ -146,30 +185,39 @@ async function getSessionStatus(sessionId) {
146
185
  };
147
186
  }
148
187
  }
149
- async function getHistoryStatus() {
188
+ async function getHistoryStatus(userId) {
150
189
  try {
151
- const db = getDb();
152
- // Get recent sessions
153
- const recentSessions = await db
154
- .select()
155
- .from(sessions)
156
- .orderBy(desc(sessions.startedAt))
157
- .limit(5);
158
- // Get total session count efficiently
159
- const sessionCountResult = await db.select({ value: count() }).from(sessions);
160
- const sessionCount = sessionCountResult[0]?.value ?? 0;
161
- // Get recent insights
162
- const recentInsights = await db
163
- .select()
164
- .from(insights)
165
- .orderBy(desc(insights.createdAt))
166
- .limit(5);
167
- // Get only tags for pattern detection (not full rows)
168
- const allInsightTags = await db.select({ tags: insights.tags }).from(insights);
169
- const insightCount = allInsightTags.length;
190
+ const supabase = getSupabaseClient();
191
+ // All queries scoped to this user's data only
192
+ const recentSessions = throwOnError(await supabase
193
+ .from('sessions')
194
+ .select('*')
195
+ .eq('user_id', userId)
196
+ .order('started_at', { ascending: false })
197
+ .limit(5));
198
+ const sessionCountResult = await supabase
199
+ .from('sessions')
200
+ .select('*', { count: 'exact', head: true })
201
+ .eq('user_id', userId);
202
+ if (sessionCountResult.error)
203
+ throw new Error(sessionCountResult.error.message);
204
+ const sessionCount = sessionCountResult.count ?? 0;
205
+ const recentInsights = throwOnError(await supabase
206
+ .from('insights')
207
+ .select('*')
208
+ .eq('user_id', userId)
209
+ .order('created_at', { ascending: false })
210
+ .limit(5));
211
+ // Tags query also scoped to this user
212
+ const allInsightTags = throwOnError(await supabase
213
+ .from('insights')
214
+ .select('tags')
215
+ .eq('user_id', userId));
216
+ const safeInsightTags = allInsightTags ?? [];
217
+ const insightCount = safeInsightTags.length;
170
218
  // Detect patterns from insight tags
171
219
  const tagCounts = {};
172
- for (const insight of allInsightTags) {
220
+ for (const insight of safeInsightTags) {
173
221
  const tags = insight.tags;
174
222
  if (tags) {
175
223
  for (const tag of tags) {
@@ -179,23 +227,23 @@ async function getHistoryStatus() {
179
227
  }
180
228
  // Find recurring patterns (tags that appear 3+ times)
181
229
  const patterns = Object.entries(tagCounts)
182
- .filter(([, count]) => count >= 3)
230
+ .filter(([, cnt]) => cnt >= 3)
183
231
  .sort((a, b) => b[1] - a[1])
184
232
  .slice(0, 5)
185
- .map(([tag, count]) => `${tag} (${count} occurrences)`);
233
+ .map(([tag, cnt]) => `${tag} (${cnt} occurrences)`);
186
234
  return {
187
- recent_sessions: recentSessions.map(s => ({
235
+ recent_sessions: (recentSessions ?? []).map((s) => ({
188
236
  id: s.id,
189
- journey: s.journeyId || undefined,
237
+ journey: s.journey_id || undefined,
190
238
  status: s.status,
191
- started_at: s.startedAt.toISOString(),
239
+ started_at: s.started_at,
192
240
  })),
193
- total_sessions: sessionCount,
241
+ total_sessions: sessionCount ?? 0,
194
242
  total_insights: insightCount,
195
- recent_insights: recentInsights.map(i => ({
243
+ recent_insights: (recentInsights ?? []).map((i) => ({
196
244
  content: i.content.substring(0, 100) + (i.content.length > 100 ? '...' : ''),
197
245
  tags: i.tags,
198
- created_at: i.createdAt.toISOString(),
246
+ created_at: i.created_at,
199
247
  })),
200
248
  patterns_detected: patterns,
201
249
  };
@@ -286,12 +334,13 @@ async function getProtectionStatusSummary() {
286
334
  };
287
335
  }
288
336
  }
289
- async function getPreferencesStatus() {
337
+ async function getPreferencesStatus(authContext) {
290
338
  try {
291
- // Get user preferences (using anonymous user for now)
339
+ // Pass auth context through so getUserContext resolves the correct user
292
340
  const userContext = await getUserContext({
293
341
  include_recent_insights: false,
294
342
  include_session_history: false,
343
+ auth: authContext,
295
344
  });
296
345
  const prefs = userContext.preferences || {};
297
346
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"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"}