@pan-sec/notebooklm-mcp 1.10.4 → 1.10.8

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 (55) hide show
  1. package/dist/auth/auth-manager.d.ts +3 -0
  2. package/dist/auth/auth-manager.d.ts.map +1 -1
  3. package/dist/auth/auth-manager.js +87 -70
  4. package/dist/auth/auth-manager.js.map +1 -1
  5. package/dist/config.js +1 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/index.js +5 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/logging/index.d.ts +7 -0
  10. package/dist/logging/index.d.ts.map +1 -0
  11. package/dist/logging/index.js +7 -0
  12. package/dist/logging/index.js.map +1 -0
  13. package/dist/logging/query-logger.d.ts +144 -0
  14. package/dist/logging/query-logger.d.ts.map +1 -0
  15. package/dist/logging/query-logger.js +282 -0
  16. package/dist/logging/query-logger.js.map +1 -0
  17. package/dist/notebook-creation/notebook-creator.d.ts.map +1 -1
  18. package/dist/notebook-creation/notebook-creator.js +171 -43
  19. package/dist/notebook-creation/notebook-creator.js.map +1 -1
  20. package/dist/notebook-creation/selectors.d.ts +3 -3
  21. package/dist/notebook-creation/selectors.d.ts.map +1 -1
  22. package/dist/notebook-creation/selectors.js +6 -5
  23. package/dist/notebook-creation/selectors.js.map +1 -1
  24. package/dist/notebook-creation/source-manager.d.ts.map +1 -1
  25. package/dist/notebook-creation/source-manager.js +106 -58
  26. package/dist/notebook-creation/source-manager.js.map +1 -1
  27. package/dist/quota/quota-manager.d.ts +66 -2
  28. package/dist/quota/quota-manager.d.ts.map +1 -1
  29. package/dist/quota/quota-manager.js +220 -2
  30. package/dist/quota/quota-manager.js.map +1 -1
  31. package/dist/session/shared-context-manager.d.ts +4 -0
  32. package/dist/session/shared-context-manager.d.ts.map +1 -1
  33. package/dist/session/shared-context-manager.js +43 -11
  34. package/dist/session/shared-context-manager.js.map +1 -1
  35. package/dist/tools/definitions/query-history.d.ts +9 -0
  36. package/dist/tools/definitions/query-history.d.ts.map +1 -0
  37. package/dist/tools/definitions/query-history.js +44 -0
  38. package/dist/tools/definitions/query-history.js.map +1 -0
  39. package/dist/tools/definitions/system.d.ts.map +1 -1
  40. package/dist/tools/definitions/system.js +12 -4
  41. package/dist/tools/definitions/system.js.map +1 -1
  42. package/dist/tools/definitions.d.ts.map +1 -1
  43. package/dist/tools/definitions.js +2 -0
  44. package/dist/tools/definitions.js.map +1 -1
  45. package/dist/tools/handlers.d.ts +47 -1
  46. package/dist/tools/handlers.d.ts.map +1 -1
  47. package/dist/tools/handlers.js +152 -10
  48. package/dist/tools/handlers.js.map +1 -1
  49. package/dist/types.d.ts +13 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/dist/utils/file-lock.d.ts +79 -0
  52. package/dist/utils/file-lock.d.ts.map +1 -0
  53. package/dist/utils/file-lock.js +222 -0
  54. package/dist/utils/file-lock.js.map +1 -0
  55. package/package.json +1 -1
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Query Logger for NotebookLM MCP Server
3
+ *
4
+ * Provides persistent logging of all Q&A interactions with NotebookLM:
5
+ * - Full question and answer content
6
+ * - Session and notebook context
7
+ * - Quota information at time of query
8
+ * - Duration and metadata
9
+ *
10
+ * Features:
11
+ * - JSONL format with daily rotation
12
+ * - 90-day retention (configurable)
13
+ * - Search and retrieval by session, notebook, date
14
+ * - Full content storage for research review
15
+ */
16
+ /**
17
+ * Query log entry structure
18
+ */
19
+ export interface QueryLogEntry {
20
+ timestamp: string;
21
+ queryId: string;
22
+ sessionId: string;
23
+ notebookId?: string;
24
+ notebookUrl: string;
25
+ notebookName?: string;
26
+ question: string;
27
+ answer: string;
28
+ answerLength: number;
29
+ durationMs: number;
30
+ quotaInfo: {
31
+ used: number;
32
+ limit: number;
33
+ remaining: number;
34
+ tier: string;
35
+ };
36
+ metadata?: Record<string, unknown>;
37
+ }
38
+ /**
39
+ * Query logger configuration
40
+ */
41
+ export interface QueryLoggerConfig {
42
+ enabled: boolean;
43
+ logDir: string;
44
+ retentionDays: number;
45
+ }
46
+ /**
47
+ * Search options for query retrieval
48
+ */
49
+ export interface QuerySearchOptions {
50
+ limit?: number;
51
+ startDate?: string;
52
+ endDate?: string;
53
+ caseSensitive?: boolean;
54
+ }
55
+ /**
56
+ * Query Logger Class
57
+ *
58
+ * Logs all Q&A interactions to JSONL files for later review.
59
+ */
60
+ export declare class QueryLogger {
61
+ private config;
62
+ private currentLogFile;
63
+ private writeQueue;
64
+ private isWriting;
65
+ private stats;
66
+ constructor(config?: Partial<QueryLoggerConfig>);
67
+ /**
68
+ * Ensure query log directory exists
69
+ */
70
+ private ensureLogDirectory;
71
+ /**
72
+ * Initialize log file for today
73
+ */
74
+ private initializeLogFile;
75
+ /**
76
+ * Clean up old log files based on retention policy
77
+ */
78
+ private cleanOldLogs;
79
+ /**
80
+ * Write entry to log file
81
+ */
82
+ private writeEntry;
83
+ /**
84
+ * Log a query (Q&A pair)
85
+ */
86
+ logQuery(entry: Omit<QueryLogEntry, "timestamp" | "queryId">): Promise<string>;
87
+ /**
88
+ * Get all queries for a specific session
89
+ */
90
+ getQueriesForSession(sessionId: string): Promise<QueryLogEntry[]>;
91
+ /**
92
+ * Get all queries for a specific notebook URL
93
+ */
94
+ getQueriesForNotebook(notebookUrl: string): Promise<QueryLogEntry[]>;
95
+ /**
96
+ * Get all queries for a specific notebook ID
97
+ */
98
+ getQueriesForNotebookId(notebookId: string): Promise<QueryLogEntry[]>;
99
+ /**
100
+ * Get all queries for a specific date (YYYY-MM-DD)
101
+ */
102
+ getQueriesForDate(date: string): Promise<QueryLogEntry[]>;
103
+ /**
104
+ * Get recent queries
105
+ */
106
+ getRecentQueries(limit?: number): Promise<QueryLogEntry[]>;
107
+ /**
108
+ * Search queries by pattern in question or answer
109
+ */
110
+ searchQueries(pattern: string, options?: QuerySearchOptions): Promise<QueryLogEntry[]>;
111
+ /**
112
+ * Get all available log files
113
+ */
114
+ getLogFiles(): string[];
115
+ /**
116
+ * Get statistics
117
+ */
118
+ getStats(): typeof this.stats;
119
+ /**
120
+ * Force flush any pending writes
121
+ */
122
+ flush(): Promise<void>;
123
+ /**
124
+ * Read and parse a log file
125
+ */
126
+ private readLogFile;
127
+ /**
128
+ * Get all queries from all log files
129
+ */
130
+ private getAllQueries;
131
+ /**
132
+ * Filter queries across all log files
133
+ */
134
+ private filterQueries;
135
+ }
136
+ /**
137
+ * Get or create the global query logger
138
+ */
139
+ export declare function getQueryLogger(): QueryLogger;
140
+ /**
141
+ * Convenience function for quick query logging
142
+ */
143
+ export declare function logQuery(entry: Omit<QueryLogEntry, "timestamp" | "queryId">): Promise<string>;
144
+ //# sourceMappingURL=query-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-logger.d.ts","sourceRoot":"","sources":["../../src/logging/query-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Query Logger for NotebookLM MCP Server
3
+ *
4
+ * Provides persistent logging of all Q&A interactions with NotebookLM:
5
+ * - Full question and answer content
6
+ * - Session and notebook context
7
+ * - Quota information at time of query
8
+ * - Duration and metadata
9
+ *
10
+ * Features:
11
+ * - JSONL format with daily rotation
12
+ * - 90-day retention (configurable)
13
+ * - Search and retrieval by session, notebook, date
14
+ * - Full content storage for research review
15
+ */
16
+ import fs from "fs";
17
+ import path from "path";
18
+ import crypto from "crypto";
19
+ import { CONFIG } from "../config.js";
20
+ import { mkdirSecure, appendFileSecure, PERMISSION_MODES, } from "../utils/file-permissions.js";
21
+ import { log } from "../utils/logger.js";
22
+ /**
23
+ * Get query logger configuration from environment
24
+ */
25
+ function getQueryLoggerConfig() {
26
+ return {
27
+ enabled: process.env.NLMCP_QUERY_LOG_ENABLED !== "false",
28
+ logDir: process.env.NLMCP_QUERY_LOG_DIR || path.join(CONFIG.dataDir, "query_logs"),
29
+ retentionDays: parseInt(process.env.NLMCP_QUERY_LOG_RETENTION_DAYS || "90", 10),
30
+ };
31
+ }
32
+ /**
33
+ * Generate unique query ID
34
+ */
35
+ function generateQueryId() {
36
+ return crypto.randomBytes(8).toString("hex");
37
+ }
38
+ /**
39
+ * Query Logger Class
40
+ *
41
+ * Logs all Q&A interactions to JSONL files for later review.
42
+ */
43
+ export class QueryLogger {
44
+ config;
45
+ currentLogFile = "";
46
+ writeQueue = [];
47
+ isWriting = false;
48
+ stats = {
49
+ totalQueries: 0,
50
+ queriesThisSession: 0,
51
+ };
52
+ constructor(config) {
53
+ this.config = { ...getQueryLoggerConfig(), ...config };
54
+ if (this.config.enabled) {
55
+ this.ensureLogDirectory();
56
+ this.initializeLogFile();
57
+ this.cleanOldLogs();
58
+ }
59
+ }
60
+ /**
61
+ * Ensure query log directory exists
62
+ */
63
+ ensureLogDirectory() {
64
+ mkdirSecure(this.config.logDir, PERMISSION_MODES.OWNER_FULL);
65
+ }
66
+ /**
67
+ * Initialize log file for today
68
+ */
69
+ initializeLogFile() {
70
+ const today = new Date().toISOString().split("T")[0];
71
+ this.currentLogFile = path.join(this.config.logDir, `query-log-${today}.jsonl`);
72
+ }
73
+ /**
74
+ * Clean up old log files based on retention policy
75
+ */
76
+ cleanOldLogs() {
77
+ try {
78
+ const files = fs.readdirSync(this.config.logDir);
79
+ const cutoffDate = new Date();
80
+ cutoffDate.setDate(cutoffDate.getDate() - this.config.retentionDays);
81
+ let deletedCount = 0;
82
+ for (const file of files) {
83
+ if (!file.startsWith("query-log-") || !file.endsWith(".jsonl"))
84
+ continue;
85
+ // Extract date from filename (query-log-YYYY-MM-DD.jsonl)
86
+ const dateStr = file.slice(10, 20);
87
+ const fileDate = new Date(dateStr);
88
+ if (fileDate < cutoffDate) {
89
+ fs.unlinkSync(path.join(this.config.logDir, file));
90
+ deletedCount++;
91
+ }
92
+ }
93
+ if (deletedCount > 0) {
94
+ log.info(`🗑️ Cleaned ${deletedCount} old query log files`);
95
+ }
96
+ }
97
+ catch {
98
+ // Ignore cleanup errors
99
+ }
100
+ }
101
+ /**
102
+ * Write entry to log file
103
+ */
104
+ async writeEntry(entry) {
105
+ this.writeQueue.push(entry);
106
+ if (this.isWriting)
107
+ return;
108
+ this.isWriting = true;
109
+ try {
110
+ while (this.writeQueue.length > 0) {
111
+ const batch = this.writeQueue.splice(0, 100);
112
+ const lines = batch.map(e => JSON.stringify(e)).join("\n") + "\n";
113
+ // Check if we need to rotate to new day's file
114
+ const today = new Date().toISOString().split("T")[0];
115
+ const expectedFile = path.join(this.config.logDir, `query-log-${today}.jsonl`);
116
+ if (this.currentLogFile !== expectedFile) {
117
+ this.currentLogFile = expectedFile;
118
+ }
119
+ appendFileSecure(this.currentLogFile, lines, PERMISSION_MODES.OWNER_READ_WRITE);
120
+ }
121
+ }
122
+ finally {
123
+ this.isWriting = false;
124
+ }
125
+ }
126
+ /**
127
+ * Log a query (Q&A pair)
128
+ */
129
+ async logQuery(entry) {
130
+ if (!this.config.enabled)
131
+ return "";
132
+ const queryId = generateQueryId();
133
+ const fullEntry = {
134
+ timestamp: new Date().toISOString(),
135
+ queryId,
136
+ ...entry,
137
+ };
138
+ this.stats.totalQueries++;
139
+ this.stats.queriesThisSession++;
140
+ await this.writeEntry(fullEntry);
141
+ log.debug(`📝 Logged query ${queryId} (${entry.question.slice(0, 50)}...)`);
142
+ return queryId;
143
+ }
144
+ /**
145
+ * Get all queries for a specific session
146
+ */
147
+ async getQueriesForSession(sessionId) {
148
+ return this.filterQueries(entry => entry.sessionId === sessionId);
149
+ }
150
+ /**
151
+ * Get all queries for a specific notebook URL
152
+ */
153
+ async getQueriesForNotebook(notebookUrl) {
154
+ return this.filterQueries(entry => entry.notebookUrl === notebookUrl);
155
+ }
156
+ /**
157
+ * Get all queries for a specific notebook ID
158
+ */
159
+ async getQueriesForNotebookId(notebookId) {
160
+ return this.filterQueries(entry => entry.notebookId === notebookId);
161
+ }
162
+ /**
163
+ * Get all queries for a specific date (YYYY-MM-DD)
164
+ */
165
+ async getQueriesForDate(date) {
166
+ const logFile = path.join(this.config.logDir, `query-log-${date}.jsonl`);
167
+ return this.readLogFile(logFile);
168
+ }
169
+ /**
170
+ * Get recent queries
171
+ */
172
+ async getRecentQueries(limit = 50) {
173
+ const allQueries = await this.getAllQueries();
174
+ // Sort by timestamp descending (most recent first)
175
+ allQueries.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
176
+ return allQueries.slice(0, limit);
177
+ }
178
+ /**
179
+ * Search queries by pattern in question or answer
180
+ */
181
+ async searchQueries(pattern, options) {
182
+ const limit = options?.limit ?? 100;
183
+ const caseSensitive = options?.caseSensitive ?? false;
184
+ const searchPattern = caseSensitive ? pattern : pattern.toLowerCase();
185
+ const matches = await this.filterQueries(entry => {
186
+ const question = caseSensitive ? entry.question : entry.question.toLowerCase();
187
+ const answer = caseSensitive ? entry.answer : entry.answer.toLowerCase();
188
+ return question.includes(searchPattern) || answer.includes(searchPattern);
189
+ });
190
+ // Sort by timestamp descending
191
+ matches.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
192
+ return matches.slice(0, limit);
193
+ }
194
+ /**
195
+ * Get all available log files
196
+ */
197
+ getLogFiles() {
198
+ try {
199
+ const files = fs.readdirSync(this.config.logDir);
200
+ return files
201
+ .filter(f => f.startsWith("query-log-") && f.endsWith(".jsonl"))
202
+ .sort()
203
+ .reverse(); // Most recent first
204
+ }
205
+ catch {
206
+ return [];
207
+ }
208
+ }
209
+ /**
210
+ * Get statistics
211
+ */
212
+ getStats() {
213
+ return { ...this.stats };
214
+ }
215
+ /**
216
+ * Force flush any pending writes
217
+ */
218
+ async flush() {
219
+ while (this.isWriting || this.writeQueue.length > 0) {
220
+ await new Promise(resolve => setTimeout(resolve, 10));
221
+ }
222
+ }
223
+ // ============================================================================
224
+ // Private Helper Methods
225
+ // ============================================================================
226
+ /**
227
+ * Read and parse a log file
228
+ */
229
+ readLogFile(filePath) {
230
+ if (!fs.existsSync(filePath))
231
+ return [];
232
+ try {
233
+ const content = fs.readFileSync(filePath, "utf-8");
234
+ const lines = content.trim().split("\n").filter(l => l.length > 0);
235
+ return lines.map(line => JSON.parse(line));
236
+ }
237
+ catch (error) {
238
+ log.warning(`⚠️ Failed to read query log ${filePath}: ${error}`);
239
+ return [];
240
+ }
241
+ }
242
+ /**
243
+ * Get all queries from all log files
244
+ */
245
+ async getAllQueries() {
246
+ const logFiles = this.getLogFiles();
247
+ const allQueries = [];
248
+ for (const file of logFiles) {
249
+ const filePath = path.join(this.config.logDir, file);
250
+ const entries = this.readLogFile(filePath);
251
+ allQueries.push(...entries);
252
+ }
253
+ return allQueries;
254
+ }
255
+ /**
256
+ * Filter queries across all log files
257
+ */
258
+ async filterQueries(predicate) {
259
+ const allQueries = await this.getAllQueries();
260
+ return allQueries.filter(predicate);
261
+ }
262
+ }
263
+ /**
264
+ * Global query logger instance
265
+ */
266
+ let globalQueryLogger = null;
267
+ /**
268
+ * Get or create the global query logger
269
+ */
270
+ export function getQueryLogger() {
271
+ if (!globalQueryLogger) {
272
+ globalQueryLogger = new QueryLogger();
273
+ }
274
+ return globalQueryLogger;
275
+ }
276
+ /**
277
+ * Convenience function for quick query logging
278
+ */
279
+ export async function logQuery(entry) {
280
+ return getQueryLogger().logQuery(entry);
281
+ }
282
+ //# sourceMappingURL=query-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-logger.js","sourceRoot":"","sources":["../../src/logging/query-logger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notebook-creator.d.ts","sourceRoot":"","sources":["../../src/notebook-creation/notebook-creator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EAGhB,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAM5E;;GAEG;AACH,qBAAa,eAAe;IAIxB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IAJxB,OAAO,CAAC,IAAI,CAAqB;gBAGvB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,oBAAoB;IAG9C;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IA+D9E;;OAEG;YACW,UAAU;IAmCxB;;OAEG;YACW,gBAAgB;IAsD9B;;OAEG;YACW,eAAe;IAiC7B;;OAEG;YACW,SAAS;IA6BvB;;OAEG;YACW,kBAAkB;IAoBhC;;OAEG;YACW,cAAc;IA2D5B;;OAEG;YACW,YAAY;IAgC1B;;OAEG;YACW,aAAa;IA4F3B;;;;;OAKG;YACW,aAAa;IAmH3B;;OAEG;YACW,qBAAqB;IAmCnC;;OAEG;YACW,iBAAiB;IAqB/B;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,uBAAuB;IAsCrC;;OAEG;YACW,8BAA8B;IAuC5C;;OAEG;YACW,iBAAiB;IA4B/B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;YACW,OAAO;CAUtB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,oBAAoB,EACpC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAG1B"}
1
+ {"version":3,"file":"notebook-creator.d.ts","sourceRoot":"","sources":["../../src/notebook-creation/notebook-creator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EAGhB,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAM5E;;GAEG;AACH,qBAAa,eAAe;IAIxB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IAJxB,OAAO,CAAC,IAAI,CAAqB;gBAGvB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,oBAAoB;IAG9C;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IA8E9E;;OAEG;YACW,UAAU;IAmCxB;;OAEG;YACW,gBAAgB;IAsD9B;;OAEG;YACW,eAAe;IAiC7B;;OAEG;YACW,SAAS;IA+CvB;;OAEG;YACW,kBAAkB;IA+ChC;;OAEG;YACW,cAAc;IAkJ5B;;OAEG;YACW,YAAY;IAgC1B;;OAEG;YACW,aAAa;IA4F3B;;;;;OAKG;YACW,aAAa;IAmH3B;;OAEG;YACW,qBAAqB;IAmCnC;;OAEG;YACW,iBAAiB;IAqB/B;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,uBAAuB;IAsCrC;;OAEG;YACW,8BAA8B;IAuC5C;;OAEG;YACW,iBAAiB;IA4B/B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;YACW,OAAO;CAUtB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,oBAAoB,EACpC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAG1B"}