couchloop-eq-mcp 2.0.2 → 2.0.4

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 (89) hide show
  1. package/README.md +11 -12
  2. package/dist/clients/shrinkChatClient.d.ts +38 -38
  3. package/dist/db/client.d.ts +11 -19
  4. package/dist/db/client.d.ts.map +1 -1
  5. package/dist/db/client.js +30 -62
  6. package/dist/db/client.js.map +1 -1
  7. package/dist/index.js +8 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/resources/journey-status.d.ts.map +1 -1
  10. package/dist/resources/journey-status.js +10 -12
  11. package/dist/resources/journey-status.js.map +1 -1
  12. package/dist/resources/session-summary.d.ts.map +1 -1
  13. package/dist/resources/session-summary.js +33 -33
  14. package/dist/resources/session-summary.js.map +1 -1
  15. package/dist/resources/user-context.d.ts.map +1 -1
  16. package/dist/resources/user-context.js +26 -41
  17. package/dist/resources/user-context.js.map +1 -1
  18. package/dist/server/http-mcp.js +2 -2
  19. package/dist/server/index.d.ts.map +1 -1
  20. package/dist/server/index.js +8 -9
  21. package/dist/server/index.js.map +1 -1
  22. package/dist/server/sse.d.ts.map +1 -1
  23. package/dist/server/sse.js +17 -17
  24. package/dist/server/sse.js.map +1 -1
  25. package/dist/tools/check-versions.d.ts +7 -7
  26. package/dist/tools/checkpoint.d.ts +1 -8
  27. package/dist/tools/checkpoint.d.ts.map +1 -1
  28. package/dist/tools/checkpoint.js +47 -49
  29. package/dist/tools/checkpoint.js.map +1 -1
  30. package/dist/tools/couchloop-v2.d.ts.map +1 -1
  31. package/dist/tools/couchloop-v2.js +15 -4
  32. package/dist/tools/couchloop-v2.js.map +1 -1
  33. package/dist/tools/detect-build-context.d.ts +1 -1
  34. package/dist/tools/generate-upgrade-report.d.ts +2 -2
  35. package/dist/tools/guard.d.ts +3 -3
  36. package/dist/tools/index.d.ts +2 -4
  37. package/dist/tools/index.d.ts.map +1 -1
  38. package/dist/tools/index.js +2 -4
  39. package/dist/tools/index.js.map +1 -1
  40. package/dist/tools/insight.d.ts +10 -49
  41. package/dist/tools/insight.d.ts.map +1 -1
  42. package/dist/tools/insight.js +78 -91
  43. package/dist/tools/insight.js.map +1 -1
  44. package/dist/tools/intent-router.d.ts.map +1 -1
  45. package/dist/tools/intent-router.js +12 -7
  46. package/dist/tools/intent-router.js.map +1 -1
  47. package/dist/tools/journey.d.ts +5 -5
  48. package/dist/tools/journey.d.ts.map +1 -1
  49. package/dist/tools/journey.js +47 -39
  50. package/dist/tools/journey.js.map +1 -1
  51. package/dist/tools/pre-review-code.d.ts +2 -2
  52. package/dist/tools/prevent-ai-errors.d.ts +3 -3
  53. package/dist/tools/primary-tools.d.ts +37 -190
  54. package/dist/tools/primary-tools.d.ts.map +1 -1
  55. package/dist/tools/primary-tools.js +204 -302
  56. package/dist/tools/primary-tools.js.map +1 -1
  57. package/dist/tools/protect-files.d.ts +1 -1
  58. package/dist/tools/sendMessage.d.ts.map +1 -1
  59. package/dist/tools/sendMessage.js +52 -38
  60. package/dist/tools/sendMessage.js.map +1 -1
  61. package/dist/tools/session-manager.d.ts.map +1 -1
  62. package/dist/tools/session-manager.js +88 -70
  63. package/dist/tools/session-manager.js.map +1 -1
  64. package/dist/tools/session.d.ts +7 -86
  65. package/dist/tools/session.d.ts.map +1 -1
  66. package/dist/tools/session.js +68 -72
  67. package/dist/tools/session.js.map +1 -1
  68. package/dist/tools/smart-context.d.ts +1 -1
  69. package/dist/tools/status.d.ts +9 -2
  70. package/dist/tools/status.d.ts.map +1 -1
  71. package/dist/tools/status.js +113 -64
  72. package/dist/tools/status.js.map +1 -1
  73. package/dist/tools/verify.d.ts +4 -4
  74. package/dist/tools/verify.js.map +1 -1
  75. package/dist/types/auth.d.ts +2 -2
  76. package/dist/types/checkpoint.d.ts +4 -4
  77. package/dist/types/file-protection.d.ts +2 -2
  78. package/dist/types/insight.d.ts +10 -10
  79. package/dist/types/journey.d.ts +40 -12
  80. package/dist/types/journey.d.ts.map +1 -1
  81. package/dist/types/journey.js +2 -0
  82. package/dist/types/journey.js.map +1 -1
  83. package/dist/types/session.d.ts +10 -10
  84. package/dist/workflows/engine.d.ts +2 -2
  85. package/dist/workflows/engine.d.ts.map +1 -1
  86. package/dist/workflows/engine.js +81 -82
  87. package/dist/workflows/engine.js.map +1 -1
  88. package/dist/workflows/index.d.ts +4 -4
  89. package/package.json +2 -10
package/README.md CHANGED
@@ -39,14 +39,13 @@ Unlike raw LLMs that can hallucinate packages, generate insecure code, and lose
39
39
 
40
40
  | Problem | CouchLoop EQ Solution |
41
41
  | ---------------------------- | ----------------------------------------------------------------------------- |
42
- | 🎭 **Hallucinated packages** | `verify` + `package_audit` catch fake npm/PyPI/Maven before install |
43
- | 🔓 **Insecure code** | `code_review` detects SQLi, XSS, hardcoded secrets |
44
- | 📉 **Code bloat** | `code_review` flags over-engineering, console.logs, missing error handling |
45
- | 🧠 **Lost context** | `remember` stores architecture decisions and checkpoints across sessions |
46
- | 🗂️ **Accidental deletion** | `protect` with automatic backups, freeze mode, and rollback |
47
- | 📚 **Deprecated APIs** | `package_audit` warns about outdated versions and breaking changes |
48
- | 🔍 **Sloppy AI code** | `verify` pre-checks AI responses for hallucinated APIs and bad imports |
49
- | 💡 **Unstructured thinking** | `brainstorm` helps think through trade-offs, compare options, decompose ideas |
42
+ | 🎭 **Hallucinated packages** | `review(mode: "packages")` catches fake npm/PyPI/Maven before install |
43
+ | 🔓 **Insecure code** | `review(mode: "code")` detects SQLi, XSS, hardcoded secrets |
44
+ | 📉 **Code bloat** | `review(mode: "code")` flags over-engineering, console.logs, missing errors |
45
+ | 🧠 **Lost context** | `memory` stores architecture decisions and checkpoints across sessions |
46
+ | 📚 **Deprecated APIs** | `review(mode: "packages")` warns about outdated versions and breaking changes |
47
+ | 🔍 **Sloppy AI code** | `review(mode: "verify")` pre-checks AI responses for hallucinated APIs |
48
+ | 🧠 **Session continuity** | `conversation` with crisis detection, journeys, and session memory |
50
49
 
51
50
  ## Architecture
52
51
 
@@ -259,14 +258,14 @@ This insight was captured mid-debugging session, preserved across context window
259
258
 
260
259
  | Feature Size | Recommended Actions |
261
260
  | --------------------- | -------------------------------------------------------------------------------------------- |
262
- | **Small fix** | `remember` with type `insight` - Quick note of what was done and why |
263
- | **Medium feature** | `remember` with type `insight` + `checkpoint` - Capture decisions and state |
264
- | **Large feature set** | Multiple `remember` calls (insight, checkpoint, decision) - Full architecture context |
261
+ | **Small fix** | `memory(action: "save")` with type `insight` Quick note of what was done and why |
262
+ | **Medium feature** | `memory(action: "save")` with type `insight` + `checkpoint` Capture decisions and state |
263
+ | **Large feature set** | Multiple `memory` saves (insight, checkpoint, decision) Full architecture context |
265
264
 
266
265
  **Why this matters:** When you need to review or debug later, you can retrieve the exact context of what was just built - even weeks later, across different AI sessions.
267
266
 
268
267
  ```
269
- "Get my insights tagged 'auth-refactor'" -> Instant recall of decisions made
268
+ memory(action: "recall") -> Instant recall of decisions made
270
269
  "Resume my Sprint 42 session" -> Pick up exactly where you left off
271
270
  ```
272
271
 
@@ -23,15 +23,15 @@ export declare const ShrinkResponseSchema: z.ZodObject<{
23
23
  }, "strip", z.ZodTypeAny, {
24
24
  type: string;
25
25
  title: string;
26
- description?: string | undefined;
27
26
  url?: string | undefined;
28
27
  phone?: string | undefined;
28
+ description?: string | undefined;
29
29
  }, {
30
30
  type: string;
31
31
  title: string;
32
- description?: string | undefined;
33
32
  url?: string | undefined;
34
33
  phone?: string | undefined;
34
+ description?: string | undefined;
35
35
  }>, "many">>;
36
36
  escalationPath: z.ZodOptional<z.ZodString>;
37
37
  threadId: z.ZodOptional<z.ZodString>;
@@ -53,31 +53,31 @@ export declare const ShrinkResponseSchema: z.ZodObject<{
53
53
  error_type: z.ZodOptional<z.ZodString>;
54
54
  message: z.ZodOptional<z.ZodString>;
55
55
  }, "strip", z.ZodTypeAny, {
56
- threadId?: string | undefined;
56
+ error?: string | undefined;
57
57
  content?: string | undefined;
58
- crisis_level?: string | number | undefined;
58
+ reply?: string | undefined;
59
+ response_text?: string | undefined;
60
+ messageId?: string | undefined;
61
+ crisisDetected?: boolean | undefined;
62
+ message?: string | undefined;
59
63
  crisisLevel?: string | number | undefined;
64
+ crisis_level?: string | number | undefined;
65
+ crisisHandled?: boolean | undefined;
66
+ crisis_confidence?: number | undefined;
67
+ crisis_requires_intervention?: boolean | undefined;
68
+ crisis_indicators?: string[] | undefined;
69
+ crisis_suggested_actions?: string[] | undefined;
70
+ emotions?: string[] | undefined;
71
+ therapeuticTechnique?: string | undefined;
60
72
  resources?: {
61
73
  type: string;
62
74
  title: string;
63
- description?: string | undefined;
64
75
  url?: string | undefined;
65
76
  phone?: string | undefined;
77
+ description?: string | undefined;
66
78
  }[] | undefined;
67
79
  escalationPath?: string | undefined;
68
- message?: string | undefined;
69
- error?: string | undefined;
70
- messageId?: string | undefined;
71
- crisis_confidence?: number | undefined;
72
- crisis_indicators?: string[] | undefined;
73
- crisisDetected?: boolean | undefined;
74
- reply?: string | undefined;
75
- response_text?: string | undefined;
76
- crisisHandled?: boolean | undefined;
77
- crisis_requires_intervention?: boolean | undefined;
78
- crisis_suggested_actions?: string[] | undefined;
79
- emotions?: string[] | undefined;
80
- therapeuticTechnique?: string | undefined;
80
+ threadId?: string | undefined;
81
81
  meta?: {
82
82
  rag_confidence?: number | undefined;
83
83
  emotionalTone?: string[] | undefined;
@@ -86,31 +86,31 @@ export declare const ShrinkResponseSchema: z.ZodObject<{
86
86
  memory_high_relevance_count?: number | undefined;
87
87
  error_type?: string | undefined;
88
88
  }, {
89
- threadId?: string | undefined;
89
+ error?: string | undefined;
90
90
  content?: string | undefined;
91
- crisis_level?: string | number | undefined;
91
+ reply?: string | undefined;
92
+ response_text?: string | undefined;
93
+ messageId?: string | undefined;
94
+ crisisDetected?: boolean | undefined;
95
+ message?: string | undefined;
92
96
  crisisLevel?: string | number | undefined;
97
+ crisis_level?: string | number | undefined;
98
+ crisisHandled?: boolean | undefined;
99
+ crisis_confidence?: number | undefined;
100
+ crisis_requires_intervention?: boolean | undefined;
101
+ crisis_indicators?: string[] | undefined;
102
+ crisis_suggested_actions?: string[] | undefined;
103
+ emotions?: string[] | undefined;
104
+ therapeuticTechnique?: string | undefined;
93
105
  resources?: {
94
106
  type: string;
95
107
  title: string;
96
- description?: string | undefined;
97
108
  url?: string | undefined;
98
109
  phone?: string | undefined;
110
+ description?: string | undefined;
99
111
  }[] | undefined;
100
112
  escalationPath?: string | undefined;
101
- message?: string | undefined;
102
- error?: string | undefined;
103
- messageId?: string | undefined;
104
- crisis_confidence?: number | undefined;
105
- crisis_indicators?: string[] | undefined;
106
- crisisDetected?: boolean | undefined;
107
- reply?: string | undefined;
108
- response_text?: string | undefined;
109
- crisisHandled?: boolean | undefined;
110
- crisis_requires_intervention?: boolean | undefined;
111
- crisis_suggested_actions?: string[] | undefined;
112
- emotions?: string[] | undefined;
113
- therapeuticTechnique?: string | undefined;
113
+ threadId?: string | undefined;
114
114
  meta?: {
115
115
  rag_confidence?: number | undefined;
116
116
  emotionalTone?: string[] | undefined;
@@ -126,17 +126,17 @@ export declare const ErrorResponseSchema: z.ZodObject<{
126
126
  code: z.ZodOptional<z.ZodString>;
127
127
  details: z.ZodOptional<z.ZodUnknown>;
128
128
  }, "strip", z.ZodTypeAny, {
129
+ error?: string | undefined;
129
130
  code?: string | undefined;
130
131
  message?: string | undefined;
131
- error?: string | undefined;
132
- details?: unknown;
133
132
  error_type?: string | undefined;
133
+ details?: unknown;
134
134
  }, {
135
+ error?: string | undefined;
135
136
  code?: string | undefined;
136
137
  message?: string | undefined;
137
- error?: string | undefined;
138
- details?: unknown;
139
138
  error_type?: string | undefined;
139
+ details?: unknown;
140
140
  }>;
141
141
  export type ShrinkResponse = z.infer<typeof ShrinkResponseSchema>;
142
142
  export type ErrorResponse = z.infer<typeof ErrorResponseSchema>;
@@ -1,23 +1,15 @@
1
- import { drizzle } from 'drizzle-orm/postgres-js';
2
- import postgres from 'postgres';
3
- import { createClient } from '@supabase/supabase-js';
4
- declare let db: ReturnType<typeof drizzle> | null;
5
- declare let supabase: ReturnType<typeof createClient> | null;
1
+ /**
2
+ * Database client — Supabase JS SDK only.
3
+ *
4
+ * All database access goes through the Supabase client.
5
+ * Drizzle ORM has been removed.
6
+ */
7
+ import { SupabaseClient } from '@supabase/supabase-js';
8
+ declare let supabase: SupabaseClient | null;
6
9
  export declare function initDatabase(): Promise<{
7
- db: import("drizzle-orm/postgres-js").PostgresJsDatabase<Record<string, unknown>>;
8
- supabase: import("@supabase/supabase-js").SupabaseClient<unknown, {
9
- PostgrestVersion: string;
10
- }, never, never, {
11
- PostgrestVersion: string;
12
- }> | null;
13
- sql: postgres.Sql<{}>;
10
+ supabase: SupabaseClient<any, "public", "public", any, any>;
14
11
  }>;
15
- export declare function getDb(): import("drizzle-orm/postgres-js").PostgresJsDatabase<Record<string, unknown>>;
16
- export declare function getSupabase(): import("@supabase/supabase-js").SupabaseClient<unknown, {
17
- PostgrestVersion: string;
18
- }, never, never, {
19
- PostgrestVersion: string;
20
- }> | null;
12
+ export declare function getSupabase(): SupabaseClient | null;
21
13
  export declare function closeDatabase(): Promise<void>;
22
- export { db, supabase };
14
+ export { supabase };
23
15
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,QAAA,IAAI,EAAE,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,IAAW,CAAC;AACjD,QAAA,IAAI,QAAQ,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,GAAG,IAAW,CAAC;AAG5D,wBAAsB,YAAY;;;;;;;;GAuDjC;AAED,wBAAgB,KAAK,kFAKpB;AAED,wBAAgB,WAAW;;;;UAM1B;AAED,wBAAsB,aAAa,kBAQlC;AAED,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGrE,QAAA,IAAI,QAAQ,EAAE,cAAc,GAAG,IAAW,CAAC;AAE3C,wBAAsB,YAAY;;GAmCjC;AAED,wBAAgB,WAAW,IAAI,cAAc,GAAG,IAAI,CAEnD;AAED,wBAAsB,aAAa,kBAGlC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/db/client.js CHANGED
@@ -1,83 +1,51 @@
1
- import { drizzle } from 'drizzle-orm/postgres-js';
2
- import postgres from 'postgres';
1
+ /**
2
+ * Database client — Supabase JS SDK only.
3
+ *
4
+ * All database access goes through the Supabase client.
5
+ * Drizzle ORM has been removed.
6
+ */
3
7
  import { createClient } from '@supabase/supabase-js';
4
8
  import { logger } from '../utils/logger.js';
5
- import * as schema from './schema.js';
6
- let db = null;
7
9
  let supabase = null;
8
- let sql = null;
9
10
  export async function initDatabase() {
10
11
  try {
11
- const databaseUrl = process.env.DATABASE_URL;
12
12
  const supabaseUrl = process.env.SUPABASE_URL;
13
- const supabaseAnonKey = process.env.SUPABASE_ANON_KEY;
14
- const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY;
15
- if (!databaseUrl) {
16
- throw new Error('DATABASE_URL is not configured');
13
+ const supabaseKey = process.env.SUPABASE_SERVICE_ROLE_KEY || process.env.SUPABASE_ANON_KEY;
14
+ if (!supabaseUrl || !supabaseKey) {
15
+ const missing = [];
16
+ if (!supabaseUrl)
17
+ missing.push('SUPABASE_URL');
18
+ if (!supabaseKey)
19
+ missing.push('SUPABASE_SERVICE_ROLE_KEY or SUPABASE_ANON_KEY');
20
+ console.error(`FATAL: Missing required env vars: ${missing.join(', ')}`);
21
+ throw new Error(`Missing required env vars: ${missing.join(', ')}`);
17
22
  }
18
- // Make Supabase optional - MCP server can work with just database
19
- const hasSupabase = supabaseUrl && supabaseAnonKey &&
20
- supabaseServiceKey &&
21
- !supabaseUrl.includes('xxx') &&
22
- !supabaseAnonKey.includes('your-') &&
23
- !supabaseServiceKey.includes('your-');
24
- // Initialize Postgres connection for Drizzle
25
- // Optimized pool configuration for better performance under load
26
- // FIX 4: Reduced pool size for transaction-mode pooler (port 6543 PgBouncer)
27
- // Supabase pooler manages its own connection limits; oversized client pool
28
- // can exhaust server-side slots, especially with multiple Railway instances
29
- sql = postgres(databaseUrl, {
30
- max: 10, // Right-sized for transaction-mode pooler
31
- idle_timeout: 30, // Shorter idle — pooler handles connection reuse
32
- connect_timeout: 10, // Keep same connection timeout
33
- prepare: false, // Required for transaction-mode pooler
23
+ logger.info(`Initializing Supabase client (using ${process.env.SUPABASE_SERVICE_ROLE_KEY ? 'service_role' : 'anon'} key)`);
24
+ supabase = createClient(supabaseUrl, supabaseKey, {
25
+ auth: {
26
+ autoRefreshToken: false,
27
+ persistSession: false,
28
+ },
34
29
  });
35
- // Initialize Drizzle ORM
36
- db = drizzle(sql, { schema });
37
- // Initialize Supabase client only if configuration is valid
38
- if (hasSupabase) {
39
- supabase = createClient(supabaseUrl, supabaseServiceKey, {
40
- auth: {
41
- autoRefreshToken: false,
42
- persistSession: false,
43
- },
44
- });
45
- logger.info('Supabase client initialized');
46
- }
47
- else {
48
- logger.info('Supabase configuration incomplete or uses placeholders - running without Supabase client');
49
- }
50
30
  // Test the connection
51
- await sql `SELECT 1`;
52
- logger.info('Database connection established successfully');
53
- return { db, supabase, sql };
31
+ const { error } = await supabase.from('users').select('id').limit(1);
32
+ if (error) {
33
+ throw new Error(`Supabase connection test failed: ${error.message}`);
34
+ }
35
+ logger.info('Supabase client initialized and connection verified');
36
+ return { supabase };
54
37
  }
55
38
  catch (error) {
56
39
  logger.error('Failed to initialize database:', error);
57
40
  throw error;
58
41
  }
59
42
  }
60
- export function getDb() {
61
- if (!db) {
62
- throw new Error('Database not initialized. Call initDatabase() first.');
63
- }
64
- return db;
65
- }
66
43
  export function getSupabase() {
67
- if (!supabase) {
68
- logger.warn('Supabase client not initialized - check environment configuration');
69
- return null;
70
- }
71
44
  return supabase;
72
45
  }
73
46
  export async function closeDatabase() {
74
- if (sql) {
75
- await sql.end();
76
- sql = null;
77
- db = null;
78
- supabase = null;
79
- logger.info('Database connections closed');
80
- }
47
+ supabase = null;
48
+ logger.info('Database connection closed');
81
49
  }
82
- export { db, supabase };
50
+ export { supabase };
83
51
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,IAAI,QAAQ,GAA0B,IAAI,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAE3F,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YACjF,OAAO,CAAC,KAAK,CAAC,qCAAqC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC;QAE3H,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE;YAChD,IAAI,EAAE;gBACJ,gBAAgB,EAAE,KAAK;gBACvB,cAAc,EAAE,KAAK;aACtB;SACF,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAEnE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -13,8 +13,8 @@ dotenv.config({ path: ".env.local" });
13
13
  // Initialize server
14
14
  async function main() {
15
15
  try {
16
- logger.info("Starting CouchLoop MCP Server v2.0...");
17
- // Initialize V2 Orchestration System (100% rollout!)
16
+ logger.info("Starting CouchLoop MCP Server v2.1...");
17
+ // Initialize orchestration system
18
18
  await initializeV2Orchestration();
19
19
  // Initialize database connection (non-fatal — server responds to tools/list even without DB)
20
20
  try {
@@ -26,8 +26,8 @@ async function main() {
26
26
  }
27
27
  // Create MCP server instance
28
28
  const server = new Server({
29
- name: "couchloop-mcp-v2",
30
- version: "2.0.0",
29
+ name: "couchloop-mcp",
30
+ version: "2.1.0",
31
31
  }, {
32
32
  capabilities: {
33
33
  tools: {},
@@ -37,9 +37,12 @@ async function main() {
37
37
  });
38
38
  // Set up tools
39
39
  const tools = await setupTools();
40
+ // Cache tools/list response — tools are static after setup, and tools/list
41
+ // accounts for ~80% of RPC traffic (IDE polling)
42
+ const cachedToolDefinitions = Object.freeze(tools.map((t) => t.definition));
40
43
  // Set up tool handlers
41
44
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
42
- tools: tools.map((t) => t.definition),
45
+ tools: cachedToolDefinitions,
43
46
  }));
44
47
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
45
48
  const toolName = request.params.name;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"journey-status.d.ts","sourceRoot":"","sources":["../../src/resources/journey-status.ts"],"names":[],"mappings":"AAKA,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,yBAsCtD"}
1
+ {"version":3,"file":"journey-status.d.ts","sourceRoot":"","sources":["../../src/resources/journey-status.ts"],"names":[],"mappings":"AAGA,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,yBAwCtD"}
@@ -1,17 +1,15 @@
1
- import { getDb } from '../db/client.js';
2
- import { journeys } from '../db/schema.js';
3
- import { eq } from 'drizzle-orm';
1
+ import { getSupabaseClient, throwOnError } from '../db/supabase-helpers.js';
4
2
  import { logger } from '../utils/logger.js';
5
3
  export function createJourneyStatusHandler(slug) {
6
4
  return async function getJourneyStatus() {
7
5
  try {
8
- const db = getDb();
6
+ const supabase = getSupabaseClient();
9
7
  // Get journey by slug
10
- const [journey] = await db
11
- .select()
12
- .from(journeys)
13
- .where(eq(journeys.slug, slug))
14
- .limit(1);
8
+ const journey = throwOnError(await supabase
9
+ .from('journeys')
10
+ .select('*')
11
+ .eq('slug', slug)
12
+ .maybeSingle());
15
13
  if (!journey) {
16
14
  return JSON.stringify({
17
15
  error: 'Journey not found',
@@ -23,11 +21,11 @@ export function createJourneyStatusHandler(slug) {
23
21
  slug: journey.slug,
24
22
  name: journey.name,
25
23
  description: journey.description,
26
- estimated_minutes: journey.estimatedMinutes,
24
+ estimated_minutes: journey.estimated_minutes,
27
25
  tags: journey.tags,
28
26
  steps: journey.steps,
29
- created_at: journey.createdAt,
30
- updated_at: journey.updatedAt,
27
+ created_at: journey.created_at,
28
+ updated_at: journey.updated_at,
31
29
  }, null, 2);
32
30
  }
33
31
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"journey-status.js","sourceRoot":"","sources":["../../src/resources/journey-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,KAAK,UAAU,gBAAgB;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YAEnB,sBAAsB;YACtB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;iBACvB,MAAM,EAAE;iBACR,IAAI,CAAC,QAAQ,CAAC;iBACd,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBAC9B,KAAK,CAAC,CAAC,CAAC,CAAC;YAEZ,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,KAAK,EAAE,mBAAmB;oBAC1B,IAAI,EAAE,IAAI;iBACX,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB;gBAC3C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,UAAU,EAAE,OAAO,CAAC,SAAS;aAC9B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"journey-status.js","sourceRoot":"","sources":["../../src/resources/journey-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,KAAK,UAAU,gBAAgB;QACpC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;YAErC,sBAAsB;YACtB,MAAM,OAAO,GAAG,YAAY,CAC1B,MAAM,QAAQ;iBACX,IAAI,CAAC,UAAU,CAAC;iBAChB,MAAM,CAAC,GAAG,CAAC;iBACX,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;iBAChB,WAAW,EAAE,CACjB,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,KAAK,EAAE,mBAAmB;oBAC1B,IAAI,EAAE,IAAI;iBACX,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-summary.d.ts","sourceRoot":"","sources":["../../src/resources/session-summary.ts"],"names":[],"mappings":"AAMA,wBAAsB,iBAAiB,oBAwFtC"}
1
+ {"version":3,"file":"session-summary.d.ts","sourceRoot":"","sources":["../../src/resources/session-summary.ts"],"names":[],"mappings":"AAIA,wBAAsB,iBAAiB,oBA+FtC"}
@@ -1,20 +1,18 @@
1
- import { getDb } from '../db/client.js';
2
- import { sessions, journeys, checkpoints, users } from '../db/schema.js';
3
- import { eq, and, desc } from 'drizzle-orm';
1
+ import { getSupabaseClient, throwOnError } from '../db/supabase-helpers.js';
4
2
  import { logger } from '../utils/logger.js';
5
3
  import { nanoid } from 'nanoid';
6
4
  export async function getSessionSummary() {
7
5
  try {
8
- const db = getDb();
6
+ const supabase = getSupabaseClient();
9
7
  // NOTE: Resources in MCP don't receive parameters, so we can't pass auth context.
10
8
  // Using a mock user ID for now. This will be addressed when we implement
11
9
  // a proper session store or modify the MCP server to maintain user context.
12
10
  const mockUserId = 'usr_' + nanoid();
13
- const [user] = await db
14
- .select()
15
- .from(users)
16
- .where(eq(users.externalId, mockUserId))
17
- .limit(1);
11
+ const user = throwOnError(await supabase
12
+ .from('users')
13
+ .select('*')
14
+ .eq('external_id', mockUserId)
15
+ .maybeSingle());
18
16
  if (!user) {
19
17
  return JSON.stringify({
20
18
  active: false,
@@ -22,12 +20,14 @@ export async function getSessionSummary() {
22
20
  }, null, 2);
23
21
  }
24
22
  // Get active session
25
- const [activeSession] = await db
26
- .select()
27
- .from(sessions)
28
- .where(and(eq(sessions.userId, user.id), eq(sessions.status, 'active')))
29
- .orderBy(desc(sessions.lastActiveAt))
30
- .limit(1);
23
+ const activeSession = throwOnError(await supabase
24
+ .from('sessions')
25
+ .select('*')
26
+ .eq('user_id', user.id)
27
+ .eq('status', 'active')
28
+ .order('last_active_at', { ascending: false })
29
+ .limit(1)
30
+ .maybeSingle());
31
31
  if (!activeSession) {
32
32
  return JSON.stringify({
33
33
  active: false,
@@ -37,30 +37,30 @@ export async function getSessionSummary() {
37
37
  // Get journey if linked
38
38
  let journey = null;
39
39
  let currentStep = null;
40
- if (activeSession.journeyId) {
41
- [journey] = await db
42
- .select()
43
- .from(journeys)
44
- .where(eq(journeys.id, activeSession.journeyId))
45
- .limit(1);
46
- if (journey && journey.steps && journey.steps[activeSession.currentStep]) {
47
- currentStep = journey.steps[activeSession.currentStep];
40
+ if (activeSession.journey_id) {
41
+ journey = throwOnError(await supabase
42
+ .from('journeys')
43
+ .select('*')
44
+ .eq('id', activeSession.journey_id)
45
+ .maybeSingle());
46
+ if (journey && journey.steps && journey.steps[activeSession.current_step]) {
47
+ currentStep = journey.steps[activeSession.current_step];
48
48
  }
49
49
  }
50
50
  // Get checkpoints
51
- const sessionCheckpoints = await db
52
- .select()
53
- .from(checkpoints)
54
- .where(eq(checkpoints.sessionId, activeSession.id))
55
- .orderBy(checkpoints.createdAt);
51
+ const sessionCheckpoints = throwOnError(await supabase
52
+ .from('checkpoints')
53
+ .select('*')
54
+ .eq('session_id', activeSession.id)
55
+ .order('created_at', { ascending: true }));
56
56
  return JSON.stringify({
57
57
  active: true,
58
58
  session: {
59
59
  id: activeSession.id,
60
60
  status: activeSession.status,
61
- started_at: activeSession.startedAt,
62
- last_active_at: activeSession.lastActiveAt,
63
- current_step_index: activeSession.currentStep,
61
+ started_at: activeSession.started_at,
62
+ last_active_at: activeSession.last_active_at,
63
+ current_step_index: activeSession.current_step,
64
64
  },
65
65
  journey: journey ? {
66
66
  name: journey.name,
@@ -68,9 +68,9 @@ export async function getSessionSummary() {
68
68
  total_steps: journey.steps?.length || 0,
69
69
  } : null,
70
70
  current_step: currentStep,
71
- checkpoints: sessionCheckpoints.map(c => ({
71
+ checkpoints: (sessionCheckpoints ?? []).map((c) => ({
72
72
  key: c.key,
73
- created_at: c.createdAt,
73
+ created_at: c.created_at,
74
74
  })),
75
75
  }, null, 2);
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-summary.js","sourceRoot":"","sources":["../../src/resources/session-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-summary.js","sourceRoot":"","sources":["../../src/resources/session-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QAErC,kFAAkF;QAClF,yEAAyE;QACzE,4EAA4E;QAC5E,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,YAAY,CACvB,MAAM,QAAQ;aACX,IAAI,CAAC,OAAO,CAAC;aACb,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;aAC7B,WAAW,EAAE,CACjB,CAAC;QAEF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,eAAe;aACzB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAED,qBAAqB;QACrB,MAAM,aAAa,GAAG,YAAY,CAChC,MAAM,QAAQ;aACX,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;aACtB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aAC7C,KAAK,CAAC,CAAC,CAAC;aACR,WAAW,EAAE,CACjB,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,mBAAmB;aAC7B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,GAAmC,IAAI,CAAC;QACnD,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YAC7B,OAAO,GAAG,YAAY,CACpB,MAAM,QAAQ;iBACX,IAAI,CAAC,UAAU,CAAC;iBAChB,MAAM,CAAC,GAAG,CAAC;iBACX,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC;iBAClC,WAAW,EAAE,CACjB,CAAC;YAEF,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,IAAK,OAAO,CAAC,KAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzF,WAAW,GAAI,OAAO,CAAC,KAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,MAAM,kBAAkB,GAAG,YAAY,CACrC,MAAM,QAAQ;aACX,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;aAClC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAC5C,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,EAAE,EAAE,aAAa,CAAC,EAAE;gBACpB,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,cAAc,EAAE,aAAa,CAAC,cAAc;gBAC5C,kBAAkB,EAAE,aAAa,CAAC,YAAY;aAC/C;YACD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAG,OAAO,CAAC,KAA0B,EAAE,MAAM,IAAI,CAAC;aAC9D,CAAC,CAAC,CAAC,IAAI;YACR,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC;gBAC3E,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,UAAU,EAAE,CAAC,CAAC,UAAU;aACzB,CAAC,CAAC;SACJ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,+BAA+B;YACtC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAClE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-context.d.ts","sourceRoot":"","sources":["../../src/resources/user-context.ts"],"names":[],"mappings":"AAMA,wBAAsB,sBAAsB,oBA6E3C"}
1
+ {"version":3,"file":"user-context.d.ts","sourceRoot":"","sources":["../../src/resources/user-context.ts"],"names":[],"mappings":"AAIA,wBAAsB,sBAAsB,oBAwE3C"}