ghagga-db 2.0.0 → 2.1.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 JNZader & Gentleman Programming Community
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Database migration script.
3
+ *
4
+ * Runs Drizzle migrations + custom SQL (tsvector) in order.
5
+ * Usage: DATABASE_URL=... tsx src/migrate.ts
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Database migration script.
3
+ *
4
+ * Runs Drizzle migrations + custom SQL (tsvector) in order.
5
+ * Usage: DATABASE_URL=... tsx src/migrate.ts
6
+ */
7
+ import { drizzle } from 'drizzle-orm/node-postgres';
8
+ import { migrate } from 'drizzle-orm/node-postgres/migrator';
9
+ import pg from 'pg';
10
+ import { readFileSync } from 'node:fs';
11
+ import { join, dirname } from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+ const __dirname = dirname(fileURLToPath(import.meta.url));
14
+ async function main() {
15
+ const url = process.env.DATABASE_URL;
16
+ if (!url) {
17
+ console.error('❌ DATABASE_URL is required');
18
+ process.exit(1);
19
+ }
20
+ console.log('🔄 Running Drizzle migrations...');
21
+ const pool = new pg.Pool({ connectionString: url, max: 1 });
22
+ const db = drizzle(pool);
23
+ // Step 1: Run Drizzle-managed migrations
24
+ await migrate(db, {
25
+ migrationsFolder: join(__dirname, '..', 'drizzle'),
26
+ });
27
+ console.log('✅ Drizzle migrations complete');
28
+ // Step 2: Run custom SQL (tsvector, triggers)
29
+ const customSqlPath = join(__dirname, '..', 'drizzle', '0001_add_tsvector.sql');
30
+ try {
31
+ const customSql = readFileSync(customSqlPath, 'utf-8');
32
+ console.log('🔄 Running custom SQL (tsvector + triggers)...');
33
+ await pool.query(customSql);
34
+ console.log('✅ Custom SQL complete');
35
+ }
36
+ catch (error) {
37
+ // If the file doesn't exist or SQL fails on "already exists", that's fine
38
+ const message = error instanceof Error ? error.message : String(error);
39
+ if (message.includes('ENOENT')) {
40
+ console.log('⏭️ No custom SQL file found, skipping');
41
+ }
42
+ else {
43
+ console.warn('⚠️ Custom SQL warning (may be safe to ignore):', message);
44
+ }
45
+ }
46
+ await pool.end();
47
+ console.log('🎉 Database ready');
48
+ }
49
+ main().catch((err) => {
50
+ console.error('❌ Migration failed:', err);
51
+ process.exit(1);
52
+ });
53
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,yCAAyC;IACzC,MAAM,OAAO,CAAC,EAAE,EAAE;QAChB,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC;KACnD,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,8CAA8C;IAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAChF,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACnC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/dist/queries.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Database } from './client.js';
2
- import { type RepoSettings } from './schema.js';
2
+ import { type RepoSettings, type DbProviderChainEntry } from './schema.js';
3
3
  export declare function upsertInstallation(db: Database, data: {
4
4
  githubInstallationId: number;
5
5
  accountLogin: string;
@@ -14,6 +14,78 @@ export declare function upsertInstallation(db: Database, data: {
14
14
  updatedAt: Date;
15
15
  }>;
16
16
  export declare function deactivateInstallation(db: Database, githubInstallationId: number): Promise<void>;
17
+ export declare function getInstallationByGitHubId(db: Database, githubInstallationId: number): Promise<{
18
+ id: number;
19
+ githubInstallationId: number;
20
+ accountLogin: string;
21
+ accountType: string;
22
+ isActive: boolean;
23
+ createdAt: Date;
24
+ updatedAt: Date;
25
+ }>;
26
+ export declare function getInstallationsByAccountLogin(db: Database, accountLogin: string): Promise<{
27
+ id: number;
28
+ githubInstallationId: number;
29
+ accountLogin: string;
30
+ accountType: string;
31
+ isActive: boolean;
32
+ createdAt: Date;
33
+ updatedAt: Date;
34
+ }[]>;
35
+ export declare function getInstallationSettings(db: Database, installationId: number): Promise<{
36
+ id: number;
37
+ installationId: number;
38
+ providerChain: DbProviderChainEntry[];
39
+ aiReviewEnabled: boolean;
40
+ reviewMode: string;
41
+ settings: RepoSettings;
42
+ createdAt: Date;
43
+ updatedAt: Date;
44
+ }>;
45
+ export declare function upsertInstallationSettings(db: Database, installationId: number, updates: {
46
+ providerChain?: DbProviderChainEntry[];
47
+ aiReviewEnabled?: boolean;
48
+ reviewMode?: string;
49
+ settings?: RepoSettings;
50
+ }): Promise<{
51
+ id: number;
52
+ createdAt: Date;
53
+ updatedAt: Date;
54
+ installationId: number;
55
+ providerChain: DbProviderChainEntry[];
56
+ aiReviewEnabled: boolean;
57
+ reviewMode: string;
58
+ settings: RepoSettings;
59
+ }>;
60
+ export declare function getInstallationById(db: Database, installationId: number): Promise<{
61
+ id: number;
62
+ githubInstallationId: number;
63
+ accountLogin: string;
64
+ accountType: string;
65
+ isActive: boolean;
66
+ createdAt: Date;
67
+ updatedAt: Date;
68
+ }>;
69
+ /**
70
+ * Resolve the effective settings for a repository.
71
+ * If use_global_settings is true, returns installation-level settings.
72
+ * Otherwise returns the repo's own settings.
73
+ */
74
+ export interface EffectiveSettings {
75
+ providerChain: DbProviderChainEntry[];
76
+ aiReviewEnabled: boolean;
77
+ reviewMode: string;
78
+ settings: RepoSettings;
79
+ source: 'global' | 'repo';
80
+ }
81
+ export declare function getEffectiveRepoSettings(db: Database, repo: {
82
+ installationId: number;
83
+ useGlobalSettings: boolean;
84
+ providerChain: DbProviderChainEntry[] | unknown;
85
+ aiReviewEnabled: boolean;
86
+ reviewMode: string;
87
+ settings: RepoSettings | unknown;
88
+ }): Promise<EffectiveSettings>;
17
89
  export declare function upsertRepository(db: Database, data: {
18
90
  githubRepoId: number;
19
91
  installationId: number;
@@ -23,14 +95,17 @@ export declare function upsertRepository(db: Database, data: {
23
95
  isActive: boolean;
24
96
  createdAt: Date;
25
97
  updatedAt: Date;
26
- githubRepoId: number;
27
98
  installationId: number;
28
- fullName: string;
99
+ providerChain: DbProviderChainEntry[];
100
+ aiReviewEnabled: boolean;
101
+ reviewMode: string;
29
102
  settings: RepoSettings;
103
+ githubRepoId: number;
104
+ fullName: string;
105
+ useGlobalSettings: boolean;
30
106
  encryptedApiKey: string | null;
31
107
  llmProvider: string;
32
108
  llmModel: string | null;
33
- reviewMode: string;
34
109
  }>;
35
110
  export declare function getRepoByFullName(db: Database, fullName: string): Promise<{
36
111
  id: number;
@@ -39,10 +114,13 @@ export declare function getRepoByFullName(db: Database, fullName: string): Promi
39
114
  fullName: string;
40
115
  isActive: boolean;
41
116
  settings: RepoSettings;
117
+ reviewMode: string;
118
+ useGlobalSettings: boolean;
119
+ providerChain: DbProviderChainEntry[];
120
+ aiReviewEnabled: boolean;
42
121
  encryptedApiKey: string | null;
43
122
  llmProvider: string;
44
123
  llmModel: string | null;
45
- reviewMode: string;
46
124
  createdAt: Date;
47
125
  updatedAt: Date;
48
126
  }>;
@@ -53,10 +131,13 @@ export declare function getRepoByGithubId(db: Database, githubRepoId: number): P
53
131
  fullName: string;
54
132
  isActive: boolean;
55
133
  settings: RepoSettings;
134
+ reviewMode: string;
135
+ useGlobalSettings: boolean;
136
+ providerChain: DbProviderChainEntry[];
137
+ aiReviewEnabled: boolean;
56
138
  encryptedApiKey: string | null;
57
139
  llmProvider: string;
58
140
  llmModel: string | null;
59
- reviewMode: string;
60
141
  createdAt: Date;
61
142
  updatedAt: Date;
62
143
  }>;
@@ -65,6 +146,9 @@ export declare function updateRepoSettings(db: Database, repoId: number, updates
65
146
  llmProvider?: string;
66
147
  llmModel?: string;
67
148
  reviewMode?: string;
149
+ providerChain?: DbProviderChainEntry[];
150
+ aiReviewEnabled?: boolean;
151
+ useGlobalSettings?: boolean;
68
152
  }): Promise<void>;
69
153
  export declare function saveRepoApiKey(db: Database, repoId: number, encryptedKey: string): Promise<void>;
70
154
  export declare function removeRepoApiKey(db: Database, repoId: number): Promise<void>;
@@ -75,10 +159,13 @@ export declare function getReposByInstallationId(db: Database, installationId: n
75
159
  fullName: string;
76
160
  isActive: boolean;
77
161
  settings: RepoSettings;
162
+ reviewMode: string;
163
+ useGlobalSettings: boolean;
164
+ providerChain: DbProviderChainEntry[];
165
+ aiReviewEnabled: boolean;
78
166
  encryptedApiKey: string | null;
79
167
  llmProvider: string;
80
168
  llmModel: string | null;
81
- reviewMode: string;
82
169
  createdAt: Date;
83
170
  updatedAt: Date;
84
171
  }[]>;
@@ -146,8 +233,11 @@ export declare function getSessionsByProject(db: Database, project: string, opti
146
233
  project: string;
147
234
  prNumber: number | null;
148
235
  summary: string | null;
149
- startedAt: Date;
150
- endedAt: Date | null;
236
+ createdAt: Date;
237
+ observationCount: number;
238
+ criticalCount: number;
239
+ highCount: number;
240
+ mediumCount: number;
151
241
  }[]>;
152
242
  export declare function saveObservation(db: Database, data: {
153
243
  sessionId?: number;
@@ -157,6 +247,7 @@ export declare function saveObservation(db: Database, data: {
157
247
  content: string;
158
248
  topicKey?: string;
159
249
  filePaths?: string[];
250
+ severity?: string;
160
251
  }): Promise<{
161
252
  id: number;
162
253
  createdAt: Date;
@@ -166,6 +257,7 @@ export declare function saveObservation(db: Database, data: {
166
257
  type: string;
167
258
  title: string;
168
259
  content: string;
260
+ severity: string | null;
169
261
  topicKey: string | null;
170
262
  filePaths: string[] | null;
171
263
  contentHash: string | null;
@@ -185,6 +277,7 @@ export declare function searchObservations(db: Database, project: string, query:
185
277
  type: string;
186
278
  title: string;
187
279
  content: string;
280
+ severity: string | null;
188
281
  topicKey: string | null;
189
282
  filePaths: string[] | null;
190
283
  contentHash: string | null;
@@ -199,6 +292,7 @@ export declare function getObservationsBySession(db: Database, sessionId: number
199
292
  type: string;
200
293
  title: string;
201
294
  content: string;
295
+ severity: string | null;
202
296
  topicKey: string | null;
203
297
  filePaths: string[] | null;
204
298
  contentHash: string | null;
@@ -206,6 +300,75 @@ export declare function getObservationsBySession(db: Database, sessionId: number
206
300
  createdAt: Date;
207
301
  updatedAt: Date;
208
302
  }[]>;
303
+ /**
304
+ * Delete a single observation by ID, scoped to installation.
305
+ * Uses subquery to verify the observation's project belongs to a repository
306
+ * owned by the given installation. Returns true if deleted, false if not
307
+ * found or not authorized.
308
+ */
309
+ export declare function deleteMemoryObservation(db: Database, installationId: number, observationId: number): Promise<boolean>;
310
+ /**
311
+ * Clear all observations for a specific project, scoped to installation.
312
+ * Verifies the project belongs to a repository owned by the installation.
313
+ * Returns the count of deleted rows.
314
+ */
315
+ export declare function clearMemoryObservationsByProject(db: Database, installationId: number, project: string): Promise<number>;
316
+ /**
317
+ * Clear all observations for all repos belonging to an installation.
318
+ * Returns the count of deleted rows.
319
+ */
320
+ export declare function clearAllMemoryObservations(db: Database, installationId: number): Promise<number>;
321
+ /**
322
+ * Get a single observation by ID, scoped to installation.
323
+ * Returns the observation detail or null if not found / not authorized.
324
+ */
325
+ export declare function getMemoryObservation(db: Database, installationId: number, observationId: number): Promise<{
326
+ id: number;
327
+ sessionId: number | null;
328
+ project: string;
329
+ type: string;
330
+ title: string;
331
+ content: string;
332
+ severity: string | null;
333
+ topicKey: string | null;
334
+ filePaths: string[] | null;
335
+ contentHash: string | null;
336
+ revisionCount: number;
337
+ createdAt: Date;
338
+ updatedAt: Date;
339
+ }>;
340
+ /**
341
+ * List observations with optional filtering, scoped to installation.
342
+ * Supports filtering by project, type, and pagination (limit/offset).
343
+ */
344
+ export declare function listMemoryObservations(db: Database, installationId: number, options?: {
345
+ project?: string;
346
+ type?: string;
347
+ limit?: number;
348
+ offset?: number;
349
+ }): Promise<any>;
350
+ /**
351
+ * Get aggregate memory statistics for an installation.
352
+ * Returns total count, breakdown by type and project, oldest/newest dates.
353
+ */
354
+ export declare function getMemoryStats(db: Database, installationId: number): Promise<{
355
+ totalObservations: number;
356
+ oldestDate: Date | null;
357
+ newestDate: Date | null;
358
+ byType: {
359
+ type: string;
360
+ count: number;
361
+ }[];
362
+ byProject: {
363
+ project: string;
364
+ count: number;
365
+ }[];
366
+ }>;
367
+ /**
368
+ * Upsert a user-installation mapping using the composite key (github_user_id, installation_id).
369
+ * If the combination already exists, updates github_login. Otherwise inserts a new mapping.
370
+ * This allows the same user to have mappings to multiple installations.
371
+ */
209
372
  export declare function upsertUserMapping(db: Database, data: {
210
373
  githubUserId: number;
211
374
  githubLogin: string;
@@ -217,6 +380,16 @@ export declare function upsertUserMapping(db: Database, data: {
217
380
  githubUserId: number;
218
381
  githubLogin: string;
219
382
  }>;
383
+ /**
384
+ * Get active installations for a user by their GitHub user ID.
385
+ *
386
+ * This function joins user mappings with the installations table and
387
+ * filters by `is_active = true`. This means it will NOT return installations
388
+ * that have been deactivated (uninstalled). If a user has mappings pointing
389
+ * to deactivated installations, those are silently excluded from the result.
390
+ *
391
+ * To get raw mappings without the active filter, use `getRawMappingsByUserId`.
392
+ */
220
393
  export declare function getInstallationsByUserId(db: Database, githubUserId: number): Promise<{
221
394
  id: number;
222
395
  githubInstallationId: number;
@@ -226,4 +399,45 @@ export declare function getInstallationsByUserId(db: Database, githubUserId: num
226
399
  createdAt: Date;
227
400
  updatedAt: Date;
228
401
  }[]>;
402
+ /**
403
+ * Get raw user mappings WITHOUT filtering by active installation.
404
+ * Returns all mappings for a user, including those pointing to
405
+ * deactivated or non-existent installations.
406
+ *
407
+ * Used by the auth middleware to detect stale mappings.
408
+ */
409
+ export declare function getRawMappingsByUserId(db: Database, githubUserId: number): Promise<Array<{
410
+ id: number;
411
+ githubUserId: number;
412
+ githubLogin: string;
413
+ installationId: number;
414
+ }>>;
415
+ /**
416
+ * Delete specific user mappings by their IDs.
417
+ * Used to clean up stale mappings that point to deactivated installations.
418
+ * No-op if mappingIds is empty.
419
+ */
420
+ export declare function deleteStaleUserMappings(db: Database, mappingIds: number[]): Promise<void>;
421
+ /**
422
+ * Delete ALL user mappings for a given installation.
423
+ * Used by the webhook handler when an installation is deleted/uninstalled.
424
+ * No-op if no mappings exist for the installation.
425
+ */
426
+ export declare function deleteMappingsByInstallationId(db: Database, installationId: number): Promise<void>;
427
+ /**
428
+ * Delete a single memory session, scoped to installation.
429
+ * CASCADE will handle deleting associated observations.
430
+ * Returns whether a session was actually deleted.
431
+ */
432
+ export declare function deleteMemorySession(db: Database, installationId: number, sessionId: number): Promise<{
433
+ deleted: boolean;
434
+ }>;
435
+ /**
436
+ * Delete all empty memory sessions (sessions with 0 observations).
437
+ * Scoped to installation, with optional project filter.
438
+ * Returns the count of deleted sessions.
439
+ */
440
+ export declare function clearEmptyMemorySessions(db: Database, installationId: number, project?: string): Promise<{
441
+ deletedCount: number;
442
+ }>;
229
443
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"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"}