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.
- package/dist/clients/shrinkChatClient.d.ts +28 -28
- package/dist/db/client.d.ts +16 -19
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +52 -62
- package/dist/db/client.js.map +1 -1
- package/dist/resources/journey-status.d.ts.map +1 -1
- package/dist/resources/journey-status.js +10 -12
- package/dist/resources/journey-status.js.map +1 -1
- package/dist/resources/session-summary.d.ts.map +1 -1
- package/dist/resources/session-summary.js +33 -33
- package/dist/resources/session-summary.js.map +1 -1
- package/dist/resources/user-context.d.ts.map +1 -1
- package/dist/resources/user-context.js +26 -41
- package/dist/resources/user-context.js.map +1 -1
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +55 -27
- package/dist/server/sse.js.map +1 -1
- package/dist/tools/checkpoint.d.ts +1 -8
- package/dist/tools/checkpoint.d.ts.map +1 -1
- package/dist/tools/checkpoint.js +47 -49
- package/dist/tools/checkpoint.js.map +1 -1
- package/dist/tools/correction-flow.d.ts +74 -0
- package/dist/tools/correction-flow.d.ts.map +1 -0
- package/dist/tools/correction-flow.js +205 -0
- package/dist/tools/correction-flow.js.map +1 -0
- package/dist/tools/generate-upgrade-report.d.ts +2 -2
- package/dist/tools/guard.d.ts +3 -3
- package/dist/tools/index.d.ts +2 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/insight.d.ts +10 -49
- package/dist/tools/insight.d.ts.map +1 -1
- package/dist/tools/insight.js +78 -91
- package/dist/tools/insight.js.map +1 -1
- package/dist/tools/journey.d.ts +5 -5
- package/dist/tools/journey.d.ts.map +1 -1
- package/dist/tools/journey.js +47 -39
- package/dist/tools/journey.js.map +1 -1
- package/dist/tools/pre-review-code.d.ts +2 -2
- package/dist/tools/prevent-ai-errors.d.ts +1 -1
- package/dist/tools/primary-tools.d.ts +20 -0
- package/dist/tools/primary-tools.d.ts.map +1 -1
- package/dist/tools/primary-tools.js +179 -32
- package/dist/tools/primary-tools.js.map +1 -1
- package/dist/tools/protect-files.d.ts +1 -1
- package/dist/tools/sendMessage.d.ts.map +1 -1
- package/dist/tools/sendMessage.js +52 -38
- package/dist/tools/sendMessage.js.map +1 -1
- package/dist/tools/session-manager.d.ts.map +1 -1
- package/dist/tools/session-manager.js +88 -70
- package/dist/tools/session-manager.js.map +1 -1
- package/dist/tools/session.d.ts +7 -86
- package/dist/tools/session.d.ts.map +1 -1
- package/dist/tools/session.js +68 -72
- package/dist/tools/session.js.map +1 -1
- package/dist/tools/smart-context.d.ts +1 -1
- package/dist/tools/status.d.ts +9 -2
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +112 -63
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/verify.d.ts +2 -2
- package/dist/tools/verify.js.map +1 -1
- package/dist/types/auth.d.ts +2 -2
- package/dist/types/checkpoint.d.ts +4 -4
- package/dist/types/file-protection.d.ts +2 -2
- package/dist/types/insight.d.ts +10 -10
- package/dist/types/journey.d.ts +40 -12
- package/dist/types/journey.d.ts.map +1 -1
- package/dist/types/journey.js +2 -0
- package/dist/types/journey.js.map +1 -1
- package/dist/types/session.d.ts +8 -8
- package/dist/workflows/engine.d.ts +2 -2
- package/dist/workflows/engine.d.ts.map +1 -1
- package/dist/workflows/engine.js +81 -82
- package/dist/workflows/engine.js.map +1 -1
- package/dist/workflows/index.d.ts +4 -4
- package/package.json +2 -10
package/dist/tools/session.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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
|
|
15
|
-
.
|
|
16
|
-
.
|
|
17
|
-
|
|
12
|
+
const user = throwOnError(await supabase
|
|
13
|
+
.from('users')
|
|
14
|
+
.upsert({
|
|
15
|
+
external_id: externalUserId,
|
|
18
16
|
preferences: {},
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
|
31
|
-
.
|
|
32
|
-
.
|
|
33
|
-
.
|
|
34
|
-
.
|
|
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
|
|
46
|
-
.
|
|
47
|
-
.
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
46
|
+
current_step: 0,
|
|
52
47
|
metadata: { context: input.context },
|
|
53
48
|
})
|
|
54
|
-
.
|
|
55
|
-
|
|
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
|
|
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
|
-
|
|
81
|
-
.
|
|
82
|
-
.
|
|
83
|
-
.
|
|
84
|
-
.
|
|
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
|
|
94
|
-
.
|
|
95
|
-
.
|
|
96
|
-
.
|
|
97
|
-
.
|
|
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
|
-
|
|
101
|
-
.
|
|
102
|
-
.
|
|
103
|
-
|
|
95
|
+
throwOnError(await supabase
|
|
96
|
+
.from('users')
|
|
97
|
+
.insert({
|
|
98
|
+
external_id: externalUserId,
|
|
104
99
|
preferences: {},
|
|
105
100
|
})
|
|
106
|
-
.
|
|
107
|
-
|
|
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
|
-
|
|
117
|
-
.
|
|
118
|
-
.
|
|
119
|
-
.
|
|
120
|
-
.
|
|
121
|
-
.
|
|
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.
|
|
130
|
-
|
|
131
|
-
.
|
|
132
|
-
.
|
|
133
|
-
.
|
|
134
|
-
.
|
|
135
|
-
if (journey && journey.steps && journey.steps[session.
|
|
136
|
-
currentStep = journey.steps[session.
|
|
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
|
|
141
|
-
.
|
|
142
|
-
.
|
|
143
|
-
.
|
|
144
|
-
.
|
|
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
|
|
147
|
-
.
|
|
148
|
-
.
|
|
141
|
+
throwOnError(await supabase
|
|
142
|
+
.from('sessions')
|
|
143
|
+
.update({
|
|
149
144
|
status: 'active',
|
|
150
|
-
|
|
145
|
+
last_active_at: new Date().toISOString(),
|
|
151
146
|
})
|
|
152
|
-
.
|
|
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":"AAAA,OAAO,EAAE,
|
|
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: "
|
|
57
|
+
type: "conversation" | "pattern" | "checkpoint" | "insight" | "decision" | "requirement" | "constraint";
|
|
58
58
|
message: string;
|
|
59
59
|
error?: undefined;
|
|
60
60
|
} | {
|
package/dist/tools/status.d.ts
CHANGED
|
@@ -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: "
|
|
17
|
+
check: "session" | "protection" | "all" | "history" | "context" | "preferences";
|
|
13
18
|
session_id?: string | undefined;
|
|
19
|
+
auth?: Record<string, unknown> | undefined;
|
|
14
20
|
}, {
|
|
15
|
-
check: "
|
|
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
|
|
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"}
|
package/dist/tools/status.js
CHANGED
|
@@ -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 {
|
|
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
|
|
91
|
-
// Find active or specified session
|
|
124
|
+
const supabase = getSupabaseClient();
|
|
92
125
|
let session;
|
|
93
126
|
if (sessionId) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
.from(sessions)
|
|
97
|
-
.
|
|
98
|
-
.
|
|
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
|
-
//
|
|
102
|
-
|
|
103
|
-
.
|
|
104
|
-
.
|
|
105
|
-
.
|
|
106
|
-
.
|
|
107
|
-
.
|
|
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
|
-
|
|
120
|
-
|
|
121
|
-
.from(checkpoints)
|
|
122
|
-
.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
137
|
-
last_activity: session.
|
|
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
|
|
152
|
-
//
|
|
153
|
-
const recentSessions = await
|
|
154
|
-
.
|
|
155
|
-
.
|
|
156
|
-
.
|
|
157
|
-
.
|
|
158
|
-
|
|
159
|
-
const sessionCountResult = await
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
.
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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
|
|
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(([,
|
|
230
|
+
.filter(([, cnt]) => cnt >= 3)
|
|
183
231
|
.sort((a, b) => b[1] - a[1])
|
|
184
232
|
.slice(0, 5)
|
|
185
|
-
.map(([tag,
|
|
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.
|
|
237
|
+
journey: s.journey_id || undefined,
|
|
190
238
|
status: s.status,
|
|
191
|
-
started_at: s.
|
|
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.
|
|
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
|
-
//
|
|
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 {
|
package/dist/tools/status.js.map
CHANGED
|
@@ -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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"}
|