@pan-sec/notebooklm-mcp 1.10.5 → 1.10.9

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 (48) hide show
  1. package/README.md +50 -0
  2. package/dist/auth/auth-manager.d.ts +3 -0
  3. package/dist/auth/auth-manager.d.ts.map +1 -1
  4. package/dist/auth/auth-manager.js +87 -70
  5. package/dist/auth/auth-manager.js.map +1 -1
  6. package/dist/index.js +9 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/logging/index.d.ts +7 -0
  9. package/dist/logging/index.d.ts.map +1 -0
  10. package/dist/logging/index.js +7 -0
  11. package/dist/logging/index.js.map +1 -0
  12. package/dist/logging/query-logger.d.ts +144 -0
  13. package/dist/logging/query-logger.d.ts.map +1 -0
  14. package/dist/logging/query-logger.js +282 -0
  15. package/dist/logging/query-logger.js.map +1 -0
  16. package/dist/quota/quota-manager.d.ts +66 -2
  17. package/dist/quota/quota-manager.d.ts.map +1 -1
  18. package/dist/quota/quota-manager.js +220 -2
  19. package/dist/quota/quota-manager.js.map +1 -1
  20. package/dist/session/shared-context-manager.d.ts +4 -0
  21. package/dist/session/shared-context-manager.d.ts.map +1 -1
  22. package/dist/session/shared-context-manager.js +43 -11
  23. package/dist/session/shared-context-manager.js.map +1 -1
  24. package/dist/tools/definitions/chat-history.d.ts +10 -0
  25. package/dist/tools/definitions/chat-history.d.ts.map +1 -0
  26. package/dist/tools/definitions/chat-history.js +57 -0
  27. package/dist/tools/definitions/chat-history.js.map +1 -0
  28. package/dist/tools/definitions/query-history.d.ts +9 -0
  29. package/dist/tools/definitions/query-history.d.ts.map +1 -0
  30. package/dist/tools/definitions/query-history.js +44 -0
  31. package/dist/tools/definitions/query-history.js.map +1 -0
  32. package/dist/tools/definitions/system.d.ts.map +1 -1
  33. package/dist/tools/definitions/system.js +12 -4
  34. package/dist/tools/definitions/system.js.map +1 -1
  35. package/dist/tools/definitions.d.ts.map +1 -1
  36. package/dist/tools/definitions.js +4 -0
  37. package/dist/tools/definitions.js.map +1 -1
  38. package/dist/tools/handlers.d.ts +68 -1
  39. package/dist/tools/handlers.d.ts.map +1 -1
  40. package/dist/tools/handlers.js +276 -10
  41. package/dist/tools/handlers.js.map +1 -1
  42. package/dist/types.d.ts +13 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/utils/file-lock.d.ts +79 -0
  45. package/dist/utils/file-lock.d.ts.map +1 -0
  46. package/dist/utils/file-lock.js +222 -0
  47. package/dist/utils/file-lock.js.map +1 -0
  48. package/package.json +1 -1
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Query History Tool Definition
3
+ *
4
+ * Allows users to retrieve and search past NotebookLM Q&A interactions.
5
+ */
6
+ export const queryHistoryTool = {
7
+ name: "get_query_history",
8
+ description: `Retrieve past NotebookLM queries and answers for reviewing research sessions.
9
+
10
+ Use this tool to:
11
+ - Review past research conversations
12
+ - Find specific information from previous queries
13
+ - Track which notebooks and sessions you've used
14
+ - Search through question and answer content
15
+
16
+ Returns query entries with question, answer, notebook, session, and timing info.`,
17
+ inputSchema: {
18
+ type: "object",
19
+ properties: {
20
+ session_id: {
21
+ type: "string",
22
+ description: "Filter queries by session ID",
23
+ },
24
+ notebook_id: {
25
+ type: "string",
26
+ description: "Filter queries by notebook ID (from your library)",
27
+ },
28
+ date: {
29
+ type: "string",
30
+ description: "Filter queries by date (format: YYYY-MM-DD)",
31
+ },
32
+ search: {
33
+ type: "string",
34
+ description: "Search pattern to find in questions or answers",
35
+ },
36
+ limit: {
37
+ type: "number",
38
+ description: "Maximum number of entries to return (default: 50, max: 500)",
39
+ },
40
+ },
41
+ },
42
+ };
43
+ export const queryHistoryTools = [queryHistoryTool];
44
+ //# sourceMappingURL=query-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-history.js","sourceRoot":"","sources":["../../../src/tools/definitions/query-history.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;;;;;;;;iFAQkE;IAC/E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;aACjE;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gDAAgD;aAC9D;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6DAA6D;aAC3E;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,gBAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../src/tools/definitions/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,eAAO,MAAM,WAAW,EAAE,IAAI,EA2T7B,CAAC"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../src/tools/definitions/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,eAAO,MAAM,WAAW,EAAE,IAAI,EAoU7B,CAAC"}
@@ -144,18 +144,26 @@ export const systemTools = [
144
144
  description: "Get current quota status including license tier, usage, and limits.\n\n" +
145
145
  "Returns:\n" +
146
146
  "- tier: 'free', 'pro', 'ultra', or 'unknown'\n" +
147
- "- notebooks: used/limit/percent\n" +
147
+ "- notebooks: used/limit/remaining/percent\n" +
148
148
  "- sources: limit per notebook\n" +
149
- "- queries: used today/limit/percent\n\n" +
149
+ "- queries: used/limit/remaining/percent/should_stop/reset_time\n" +
150
+ "- warnings: array of warning messages\n\n" +
150
151
  "Quota Limits by Tier:\n" +
151
152
  "- Free: 100 notebooks, 50 sources/notebook, 50 queries/day\n" +
152
153
  "- Pro: 500 notebooks, 300 sources/notebook, 500 queries/day\n" +
153
154
  "- Ultra: 500 notebooks, 600 sources/notebook, 5000 queries/day\n\n" +
154
- "The tier is auto-detected from NotebookLM UI when you use the service. " +
155
+ "Use sync=true to fetch actual quota from Google's NotebookLM UI (requires browser). " +
156
+ "Without sync, returns locally tracked counts which may differ if you used NotebookLM directly in browser. " +
155
157
  "Query counts reset daily at midnight.",
156
158
  inputSchema: {
157
159
  type: "object",
158
- properties: {},
160
+ properties: {
161
+ sync: {
162
+ type: "boolean",
163
+ description: "If true, navigate to NotebookLM and fetch actual quota from Google's UI. " +
164
+ "More accurate but requires browser automation. Default: false (use local tracking).",
165
+ },
166
+ },
159
167
  },
160
168
  },
161
169
  {
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/tools/definitions/system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/tools/definitions/system.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAUjE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,EAAE,CAcrE"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAYjE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,EAAE,CAgBrE"}
@@ -8,6 +8,8 @@ import { notebookManagementTools } from "./definitions/notebook-management.js";
8
8
  import { sessionManagementTools } from "./definitions/session-management.js";
9
9
  import { systemTools } from "./definitions/system.js";
10
10
  import { geminiTools } from "./definitions/gemini.js";
11
+ import { queryHistoryTools } from "./definitions/query-history.js";
12
+ import { chatHistoryTools } from "./definitions/chat-history.js";
11
13
  /**
12
14
  * Build Tool Definitions with NotebookLibrary context
13
15
  */
@@ -23,6 +25,8 @@ export function buildToolDefinitions(library) {
23
25
  ...sessionManagementTools,
24
26
  ...systemTools,
25
27
  ...geminiTools,
28
+ ...queryHistoryTools,
29
+ ...chatHistoryTools,
26
30
  ];
27
31
  }
28
32
  //# sourceMappingURL=definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,eAAe,EACf,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAC3D,qEAAqE;IACrE,MAAM,sBAAsB,GAAG;QAC7B,GAAG,eAAe;QAClB,WAAW,EAAE,2BAA2B,CAAC,OAAO,CAAC;KAClD,CAAC;IAEF,OAAO;QACL,sBAAsB;QACtB,GAAG,uBAAuB;QAC1B,GAAG,sBAAsB;QACzB,GAAG,WAAW;QACd,GAAG,WAAW;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,eAAe,EACf,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAC3D,qEAAqE;IACrE,MAAM,sBAAsB,GAAG;QAC7B,GAAG,eAAe;QAClB,WAAW,EAAE,2BAA2B,CAAC,OAAO,CAAC;KAClD,CAAC;IAEF,OAAO;QACL,sBAAsB;QACtB,GAAG,uBAAuB;QAC1B,GAAG,sBAAsB;QACzB,GAAG,WAAW;QACd,GAAG,WAAW;QACd,GAAG,iBAAiB;QACpB,GAAG,gBAAgB;KACpB,CAAC;AACJ,CAAC"}
@@ -219,12 +219,16 @@ export declare class ToolHandlers {
219
219
  * Handle get_quota tool
220
220
  *
221
221
  * Returns current quota status including license tier, usage, and limits.
222
+ * If sync=true, navigates to NotebookLM to fetch actual quota from Google.
222
223
  */
223
- handleGetQuota(): Promise<ToolResult<{
224
+ handleGetQuota(args?: {
225
+ sync?: boolean;
226
+ }): Promise<ToolResult<{
224
227
  tier: string;
225
228
  notebooks: {
226
229
  used: number;
227
230
  limit: number;
231
+ remaining: number;
228
232
  percent: number;
229
233
  };
230
234
  sources: {
@@ -233,10 +237,20 @@ export declare class ToolHandlers {
233
237
  queries: {
234
238
  used: number;
235
239
  limit: number;
240
+ remaining: number;
236
241
  percent: number;
242
+ should_stop: boolean;
243
+ reset_time: string;
237
244
  };
245
+ warnings: string[];
238
246
  auto_detected: boolean;
239
247
  last_updated: string;
248
+ synced_from_google: boolean;
249
+ google_quota?: {
250
+ used: number;
251
+ limit: number;
252
+ } | null;
253
+ rate_limit_detected?: boolean;
240
254
  }>>;
241
255
  /**
242
256
  * Handle set_quota_tier tool
@@ -508,6 +522,59 @@ export declare class ToolHandlers {
508
522
  chunksQueried: number;
509
523
  filesUsed: string[];
510
524
  }>>;
525
+ /**
526
+ * Handle get_query_history tool
527
+ *
528
+ * Retrieves past NotebookLM queries for reviewing research sessions.
529
+ */
530
+ handleGetQueryHistory(args: {
531
+ session_id?: string;
532
+ notebook_id?: string;
533
+ date?: string;
534
+ search?: string;
535
+ limit?: number;
536
+ }): Promise<ToolResult<{
537
+ count: number;
538
+ queries: Array<{
539
+ timestamp: string;
540
+ queryId: string;
541
+ sessionId: string;
542
+ notebookId?: string;
543
+ notebookUrl: string;
544
+ notebookName?: string;
545
+ question: string;
546
+ answer: string;
547
+ answerLength: number;
548
+ durationMs: number;
549
+ quotaInfo: {
550
+ used: number;
551
+ limit: number;
552
+ remaining: number;
553
+ tier: string;
554
+ };
555
+ }>;
556
+ }>>;
557
+ /**
558
+ * Handle get_notebook_chat_history tool
559
+ *
560
+ * Extracts conversation history from a NotebookLM notebook's chat UI
561
+ * using browser automation.
562
+ */
563
+ handleGetNotebookChatHistory(args: {
564
+ notebook_id?: string;
565
+ notebook_url?: string;
566
+ limit?: number;
567
+ show_browser?: boolean;
568
+ }): Promise<ToolResult<{
569
+ notebook_url: string;
570
+ notebook_name?: string;
571
+ message_count: number;
572
+ messages: Array<{
573
+ role: "user" | "assistant";
574
+ content: string;
575
+ index: number;
576
+ }>;
577
+ }>>;
511
578
  /**
512
579
  * Cleanup all resources (called on server shutdown)
513
580
  */
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { SourceManager } from "../notebook-creation/source-manager.js";
16
16
  import { AudioManager } from "../notebook-creation/audio-manager.js";
17
17
  import { getWebhookDispatcher } from "../webhooks/index.js";
18
18
  import { getQuotaManager } from "../quota/index.js";
19
+ import { getQueryLogger } from "../logging/index.js";
19
20
  import { GeminiClient, } from "../gemini/index.js";
20
21
  const FOLLOW_UP_REMINDER = "\n\nEXTREMELY IMPORTANT: Is that ALL you need to know? You can always ask another question using the same session ID! Think about it carefully: before you reply to the user, review their original request and this answer. If anything is still unclear or missing, ask me another question first.";
21
22
  /**
@@ -177,6 +178,8 @@ export class ToolHandlers {
177
178
  const answer = `${finalAnswer.trimEnd()}${FOLLOW_UP_REMINDER}`;
178
179
  // Get session info
179
180
  const sessionInfo = session.getInfo();
181
+ // Get quota status for response visibility
182
+ const quotaStatus = getQuotaManager().getDetailedStatus();
180
183
  const result = {
181
184
  status: "success",
182
185
  question: safeQuestion,
@@ -188,14 +191,42 @@ export class ToolHandlers {
188
191
  message_count: sessionInfo.message_count,
189
192
  last_activity: sessionInfo.last_activity,
190
193
  },
194
+ // Include quota info for visibility
195
+ quota_info: {
196
+ queries_remaining: quotaStatus.queries.remaining,
197
+ queries_used_today: quotaStatus.queries.used,
198
+ queries_limit: quotaStatus.queries.limit,
199
+ should_stop: quotaStatus.queries.shouldStop,
200
+ tier: quotaStatus.tier,
201
+ warnings: quotaStatus.warnings,
202
+ },
191
203
  // Include security warnings if any
192
204
  ...(securityWarnings.length > 0 && { security_warnings: securityWarnings }),
193
205
  };
194
206
  // Progress: Complete
195
207
  await sendProgress?.("Question answered successfully!", 5, 5);
196
208
  log.success(`✅ [TOOL] ask_question completed successfully`);
197
- // Update quota tracking
198
- getQuotaManager().incrementQueryCount();
209
+ // Update quota tracking (atomic for concurrent session safety)
210
+ await getQuotaManager().incrementQueryCountAtomic();
211
+ // Log query for research history (Phase 1)
212
+ const queryLogger = getQueryLogger();
213
+ const resolvedNotebook = safeNotebookId ? this.library.getNotebook(safeNotebookId) : null;
214
+ await queryLogger.logQuery({
215
+ sessionId: session.sessionId,
216
+ notebookId: safeNotebookId,
217
+ notebookUrl: session.notebookUrl,
218
+ notebookName: resolvedNotebook?.name,
219
+ question: safeQuestion,
220
+ answer: finalAnswer,
221
+ answerLength: finalAnswer.length,
222
+ durationMs: Date.now() - startTime,
223
+ quotaInfo: {
224
+ used: quotaStatus.queries.used + 1, // +1 because we just incremented
225
+ limit: quotaStatus.queries.limit,
226
+ remaining: quotaStatus.queries.remaining - 1,
227
+ tier: quotaStatus.tier,
228
+ },
229
+ });
199
230
  // Audit: successful tool call
200
231
  await audit.tool("ask_question", {
201
232
  question_length: safeQuestion.length,
@@ -862,23 +893,77 @@ export class ToolHandlers {
862
893
  * Handle get_quota tool
863
894
  *
864
895
  * Returns current quota status including license tier, usage, and limits.
896
+ * If sync=true, navigates to NotebookLM to fetch actual quota from Google.
865
897
  */
866
- async handleGetQuota() {
867
- log.info(`🔧 [TOOL] get_quota called`);
898
+ async handleGetQuota(args = {}) {
899
+ const { sync = false } = args;
900
+ log.info(`🔧 [TOOL] get_quota called (sync=${sync})`);
868
901
  try {
869
902
  const quotaManager = getQuotaManager();
870
- const status = quotaManager.getStatus();
903
+ let syncedFromGoogle = false;
904
+ let googleQuota = null;
905
+ let rateLimitDetected = false;
906
+ // If sync requested, navigate to NotebookLM and scrape quota
907
+ if (sync) {
908
+ log.info("📊 Syncing quota from Google NotebookLM...");
909
+ try {
910
+ // Get the shared context manager from session manager
911
+ const contextManager = this.sessionManager.getContextManager();
912
+ const context = await contextManager.getOrCreateContext();
913
+ // Create a new page to check quota
914
+ const page = await context.newPage();
915
+ try {
916
+ // Navigate to NotebookLM homepage
917
+ await page.goto("https://notebooklm.google.com/", {
918
+ waitUntil: "networkidle",
919
+ timeout: 30000,
920
+ });
921
+ // Wait for page to load
922
+ await page.waitForTimeout(2000);
923
+ // Update quota from UI
924
+ const syncResult = await quotaManager.updateFromUI(page);
925
+ syncedFromGoogle = true;
926
+ googleQuota = syncResult.queryUsageFromGoogle;
927
+ rateLimitDetected = syncResult.rateLimitDetected;
928
+ log.success(`✅ Synced quota from Google: ${googleQuota ? `${googleQuota.used}/${googleQuota.limit}` : "usage not displayed in UI"}`);
929
+ }
930
+ finally {
931
+ await page.close();
932
+ }
933
+ }
934
+ catch (syncError) {
935
+ const syncErrorMsg = syncError instanceof Error ? syncError.message : String(syncError);
936
+ log.warning(`⚠️ Could not sync from Google: ${syncErrorMsg}. Using local tracking.`);
937
+ }
938
+ }
939
+ const detailedStatus = quotaManager.getDetailedStatus();
871
940
  const settings = quotaManager.getSettings();
872
- log.success(`✅ [TOOL] get_quota completed (tier: ${status.tier})`);
941
+ log.success(`✅ [TOOL] get_quota completed (tier: ${detailedStatus.tier}, ${detailedStatus.queries.remaining} queries remaining, synced=${syncedFromGoogle})`);
873
942
  return {
874
943
  success: true,
875
944
  data: {
876
- tier: status.tier,
877
- notebooks: status.notebooks,
878
- sources: status.sources,
879
- queries: status.queries,
945
+ tier: detailedStatus.tier,
946
+ notebooks: {
947
+ used: detailedStatus.notebooks.used,
948
+ limit: detailedStatus.notebooks.limit,
949
+ remaining: detailedStatus.notebooks.remaining,
950
+ percent: detailedStatus.notebooks.percentUsed,
951
+ },
952
+ sources: detailedStatus.sources,
953
+ queries: {
954
+ used: detailedStatus.queries.used,
955
+ limit: detailedStatus.queries.limit,
956
+ remaining: detailedStatus.queries.remaining,
957
+ percent: detailedStatus.queries.percentUsed,
958
+ should_stop: detailedStatus.queries.shouldStop,
959
+ reset_time: detailedStatus.queries.resetTime,
960
+ },
961
+ warnings: detailedStatus.warnings,
880
962
  auto_detected: settings.autoDetected,
881
963
  last_updated: settings.usage.lastUpdated,
964
+ synced_from_google: syncedFromGoogle,
965
+ google_quota: googleQuota,
966
+ rate_limit_detected: rateLimitDetected,
882
967
  },
883
968
  };
884
969
  }
@@ -2086,6 +2171,187 @@ export class ToolHandlers {
2086
2171
  return { success: false, error: errorMessage };
2087
2172
  }
2088
2173
  }
2174
+ // ==================== QUERY HISTORY ====================
2175
+ /**
2176
+ * Handle get_query_history tool
2177
+ *
2178
+ * Retrieves past NotebookLM queries for reviewing research sessions.
2179
+ */
2180
+ async handleGetQueryHistory(args) {
2181
+ log.info(`🔧 [TOOL] get_query_history called`);
2182
+ try {
2183
+ const queryLogger = getQueryLogger();
2184
+ const limit = Math.min(args.limit ?? 50, 500); // Cap at 500
2185
+ let queries;
2186
+ if (args.search) {
2187
+ // Search across all queries
2188
+ queries = await queryLogger.searchQueries(args.search, { limit });
2189
+ log.info(` Searching for: "${args.search}"`);
2190
+ }
2191
+ else if (args.session_id) {
2192
+ // Filter by session
2193
+ queries = await queryLogger.getQueriesForSession(args.session_id);
2194
+ log.info(` Filtering by session: ${args.session_id}`);
2195
+ }
2196
+ else if (args.notebook_id) {
2197
+ // Filter by notebook
2198
+ queries = await queryLogger.getQueriesForNotebookId(args.notebook_id);
2199
+ log.info(` Filtering by notebook: ${args.notebook_id}`);
2200
+ }
2201
+ else if (args.date) {
2202
+ // Filter by date
2203
+ queries = await queryLogger.getQueriesForDate(args.date);
2204
+ log.info(` Filtering by date: ${args.date}`);
2205
+ }
2206
+ else {
2207
+ // Get recent queries
2208
+ queries = await queryLogger.getRecentQueries(limit);
2209
+ log.info(` Getting recent queries (limit: ${limit})`);
2210
+ }
2211
+ // Apply limit
2212
+ const limitedQueries = queries.slice(0, limit);
2213
+ log.success(`✅ [TOOL] get_query_history completed (${limitedQueries.length} queries)`);
2214
+ return {
2215
+ success: true,
2216
+ data: {
2217
+ count: limitedQueries.length,
2218
+ queries: limitedQueries,
2219
+ },
2220
+ };
2221
+ }
2222
+ catch (error) {
2223
+ const errorMessage = error instanceof Error ? error.message : String(error);
2224
+ log.error(`❌ [TOOL] get_query_history failed: ${errorMessage}`);
2225
+ return {
2226
+ success: false,
2227
+ error: errorMessage,
2228
+ };
2229
+ }
2230
+ }
2231
+ // ==================== CHAT HISTORY ====================
2232
+ /**
2233
+ * Handle get_notebook_chat_history tool
2234
+ *
2235
+ * Extracts conversation history from a NotebookLM notebook's chat UI
2236
+ * using browser automation.
2237
+ */
2238
+ async handleGetNotebookChatHistory(args) {
2239
+ log.info(`🔧 [TOOL] get_notebook_chat_history called`);
2240
+ try {
2241
+ // Resolve notebook URL
2242
+ let notebookUrl;
2243
+ let notebookName;
2244
+ if (args.notebook_url) {
2245
+ notebookUrl = validateNotebookUrl(args.notebook_url);
2246
+ }
2247
+ else if (args.notebook_id) {
2248
+ validateNotebookId(args.notebook_id);
2249
+ const notebook = this.library.getNotebook(args.notebook_id);
2250
+ if (!notebook) {
2251
+ return {
2252
+ success: false,
2253
+ error: `Notebook not found: ${args.notebook_id}. Use list_notebooks to see available notebooks.`,
2254
+ };
2255
+ }
2256
+ notebookUrl = notebook.url;
2257
+ notebookName = notebook.name;
2258
+ }
2259
+ else {
2260
+ // Try to use active notebook
2261
+ const activeNotebook = this.library.getActiveNotebook();
2262
+ if (!activeNotebook) {
2263
+ return {
2264
+ success: false,
2265
+ error: "No notebook specified. Provide notebook_id or notebook_url, or set an active notebook.",
2266
+ };
2267
+ }
2268
+ notebookUrl = activeNotebook.url;
2269
+ notebookName = activeNotebook.name;
2270
+ }
2271
+ log.info(` 📓 Extracting chat history from: ${notebookUrl}`);
2272
+ // Apply browser options if show_browser is set
2273
+ if (args.show_browser !== undefined) {
2274
+ applyBrowserOptions({ show: args.show_browser });
2275
+ }
2276
+ // Create a temporary session to navigate to the notebook
2277
+ const sessionId = `chat-history-${Date.now()}`;
2278
+ const session = await this.sessionManager.getOrCreateSession(sessionId, notebookUrl);
2279
+ try {
2280
+ // Get the page from the session
2281
+ const page = session.getPage();
2282
+ if (!page) {
2283
+ throw new Error("Failed to get page from session");
2284
+ }
2285
+ // Wait a bit for the chat history to fully load
2286
+ await page.waitForTimeout(2000);
2287
+ const messages = await page.evaluate(() => {
2288
+ const result = [];
2289
+ // Get all message containers (both user and assistant)
2290
+ // User messages: .from-user-container / Assistant messages: .to-user-container
2291
+ // @ts-expect-error - DOM types available in browser context
2292
+ const allContainers = document.querySelectorAll(".from-user-container, .to-user-container");
2293
+ let idx = 0;
2294
+ allContainers.forEach((container) => {
2295
+ const isUser = container.classList?.contains("from-user-container");
2296
+ const isAssistant = container.classList?.contains("to-user-container");
2297
+ if (isUser) {
2298
+ // User message - look for query text
2299
+ const queryText = container.querySelector(".query-text, .message-text-content, .user-message");
2300
+ if (queryText) {
2301
+ const content = queryText.innerText?.trim();
2302
+ if (content) {
2303
+ result.push({ role: "user", content, index: idx++ });
2304
+ }
2305
+ }
2306
+ else {
2307
+ // Fallback: get container text directly
2308
+ const content = container.innerText?.trim();
2309
+ if (content) {
2310
+ result.push({ role: "user", content, index: idx++ });
2311
+ }
2312
+ }
2313
+ }
2314
+ else if (isAssistant) {
2315
+ // Assistant message
2316
+ const textContent = container.querySelector(".message-text-content");
2317
+ if (textContent) {
2318
+ const content = textContent.innerText?.trim();
2319
+ if (content) {
2320
+ result.push({ role: "assistant", content, index: idx++ });
2321
+ }
2322
+ }
2323
+ }
2324
+ });
2325
+ return result;
2326
+ });
2327
+ // Apply limit
2328
+ const limit = Math.min(args.limit ?? 50, 200);
2329
+ const limitedMessages = messages.slice(-limit * 2); // Get last N pairs (user + assistant = 2 per pair)
2330
+ log.success(`✅ [TOOL] get_notebook_chat_history completed (${limitedMessages.length} messages)`);
2331
+ return {
2332
+ success: true,
2333
+ data: {
2334
+ notebook_url: notebookUrl,
2335
+ notebook_name: notebookName,
2336
+ message_count: limitedMessages.length,
2337
+ messages: limitedMessages,
2338
+ },
2339
+ };
2340
+ }
2341
+ finally {
2342
+ // Close the temporary session
2343
+ await this.sessionManager.closeSession(sessionId);
2344
+ }
2345
+ }
2346
+ catch (error) {
2347
+ const errorMessage = error instanceof Error ? error.message : String(error);
2348
+ log.error(`❌ [TOOL] get_notebook_chat_history failed: ${errorMessage}`);
2349
+ return {
2350
+ success: false,
2351
+ error: errorMessage,
2352
+ };
2353
+ }
2354
+ }
2089
2355
  // ==================== CLEANUP ====================
2090
2356
  /**
2091
2357
  * Cleanup all resources (called on server shutdown)