@pan-sec/notebooklm-mcp 2026.2.11 → 2026.3.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.
Files changed (302) hide show
  1. package/README.md +58 -17
  2. package/SECURITY.md +31 -61
  3. package/dist/auth/auth-manager.d.ts +2 -1
  4. package/dist/auth/auth-manager.d.ts.map +1 -1
  5. package/dist/auth/auth-manager.js +97 -42
  6. package/dist/auth/auth-manager.js.map +1 -1
  7. package/dist/auth/mcp-auth.d.ts +22 -4
  8. package/dist/auth/mcp-auth.d.ts.map +1 -1
  9. package/dist/auth/mcp-auth.js +120 -19
  10. package/dist/auth/mcp-auth.js.map +1 -1
  11. package/dist/compliance/alert-manager.d.ts.map +1 -1
  12. package/dist/compliance/alert-manager.js +7 -4
  13. package/dist/compliance/alert-manager.js.map +1 -1
  14. package/dist/compliance/breach-detection.d.ts.map +1 -1
  15. package/dist/compliance/breach-detection.js +14 -7
  16. package/dist/compliance/breach-detection.js.map +1 -1
  17. package/dist/compliance/change-log.d.ts.map +1 -1
  18. package/dist/compliance/change-log.js +7 -4
  19. package/dist/compliance/change-log.js.map +1 -1
  20. package/dist/compliance/compliance-logger.d.ts.map +1 -1
  21. package/dist/compliance/compliance-logger.js +11 -6
  22. package/dist/compliance/compliance-logger.js.map +1 -1
  23. package/dist/compliance/consent-manager.d.ts.map +1 -1
  24. package/dist/compliance/consent-manager.js +5 -3
  25. package/dist/compliance/consent-manager.js.map +1 -1
  26. package/dist/compliance/data-erasure.d.ts +1 -1
  27. package/dist/compliance/data-erasure.d.ts.map +1 -1
  28. package/dist/compliance/data-erasure.js +142 -83
  29. package/dist/compliance/data-erasure.js.map +1 -1
  30. package/dist/compliance/data-export.d.ts.map +1 -1
  31. package/dist/compliance/data-export.js +23 -12
  32. package/dist/compliance/data-export.js.map +1 -1
  33. package/dist/compliance/data-inventory.d.ts.map +1 -1
  34. package/dist/compliance/data-inventory.js +7 -6
  35. package/dist/compliance/data-inventory.js.map +1 -1
  36. package/dist/compliance/dsar-handler.d.ts +7 -1
  37. package/dist/compliance/dsar-handler.d.ts.map +1 -1
  38. package/dist/compliance/dsar-handler.js +74 -61
  39. package/dist/compliance/dsar-handler.js.map +1 -1
  40. package/dist/compliance/evidence-collector.d.ts.map +1 -1
  41. package/dist/compliance/evidence-collector.js +10 -6
  42. package/dist/compliance/evidence-collector.js.map +1 -1
  43. package/dist/compliance/health-monitor.d.ts.map +1 -1
  44. package/dist/compliance/health-monitor.js +15 -9
  45. package/dist/compliance/health-monitor.js.map +1 -1
  46. package/dist/compliance/incident-manager.d.ts.map +1 -1
  47. package/dist/compliance/incident-manager.js +5 -3
  48. package/dist/compliance/incident-manager.js.map +1 -1
  49. package/dist/compliance/policy-docs.d.ts.map +1 -1
  50. package/dist/compliance/policy-docs.js +14 -11
  51. package/dist/compliance/policy-docs.js.map +1 -1
  52. package/dist/compliance/privacy-notice-text.d.ts.map +1 -1
  53. package/dist/compliance/privacy-notice-text.js +3 -4
  54. package/dist/compliance/privacy-notice-text.js.map +1 -1
  55. package/dist/compliance/privacy-notice.d.ts.map +1 -1
  56. package/dist/compliance/privacy-notice.js +5 -3
  57. package/dist/compliance/privacy-notice.js.map +1 -1
  58. package/dist/compliance/report-generator.d.ts.map +1 -1
  59. package/dist/compliance/report-generator.js +5 -3
  60. package/dist/compliance/report-generator.js.map +1 -1
  61. package/dist/compliance/retention-engine.d.ts.map +1 -1
  62. package/dist/compliance/retention-engine.js +18 -10
  63. package/dist/compliance/retention-engine.js.map +1 -1
  64. package/dist/compliance/siem-exporter.d.ts.map +1 -1
  65. package/dist/compliance/siem-exporter.js +40 -16
  66. package/dist/compliance/siem-exporter.js.map +1 -1
  67. package/dist/config.d.ts +4 -31
  68. package/dist/config.d.ts.map +1 -1
  69. package/dist/config.js +25 -63
  70. package/dist/config.js.map +1 -1
  71. package/dist/errors.d.ts +21 -0
  72. package/dist/errors.d.ts.map +1 -1
  73. package/dist/errors.js +54 -1
  74. package/dist/errors.js.map +1 -1
  75. package/dist/gemini/gemini-client.d.ts +1 -0
  76. package/dist/gemini/gemini-client.d.ts.map +1 -1
  77. package/dist/gemini/gemini-client.js +50 -49
  78. package/dist/gemini/gemini-client.js.map +1 -1
  79. package/dist/gemini/types.d.ts +3 -1
  80. package/dist/gemini/types.d.ts.map +1 -1
  81. package/dist/gemini/types.js.map +1 -1
  82. package/dist/index.d.ts +52 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +399 -85
  85. package/dist/index.js.map +1 -1
  86. package/dist/library/notebook-library.d.ts.map +1 -1
  87. package/dist/library/notebook-library.js +2 -1
  88. package/dist/library/notebook-library.js.map +1 -1
  89. package/dist/logging/query-logger.d.ts +13 -1
  90. package/dist/logging/query-logger.d.ts.map +1 -1
  91. package/dist/logging/query-logger.js +62 -10
  92. package/dist/logging/query-logger.js.map +1 -1
  93. package/dist/notebook-creation/audio-manager.d.ts.map +1 -1
  94. package/dist/notebook-creation/audio-manager.js +19 -24
  95. package/dist/notebook-creation/audio-manager.js.map +1 -1
  96. package/dist/notebook-creation/browser-options.d.ts +28 -0
  97. package/dist/notebook-creation/browser-options.d.ts.map +1 -0
  98. package/dist/notebook-creation/browser-options.js +75 -0
  99. package/dist/notebook-creation/browser-options.js.map +1 -0
  100. package/dist/notebook-creation/data-table-manager.d.ts.map +1 -1
  101. package/dist/notebook-creation/data-table-manager.js +20 -21
  102. package/dist/notebook-creation/data-table-manager.js.map +1 -1
  103. package/dist/notebook-creation/discover-creation-flow.d.ts +0 -6
  104. package/dist/notebook-creation/discover-creation-flow.d.ts.map +1 -1
  105. package/dist/notebook-creation/discover-creation-flow.js +10 -10
  106. package/dist/notebook-creation/discover-creation-flow.js.map +1 -1
  107. package/dist/notebook-creation/discover-quota.d.ts +0 -6
  108. package/dist/notebook-creation/discover-quota.d.ts.map +1 -1
  109. package/dist/notebook-creation/discover-quota.js +12 -13
  110. package/dist/notebook-creation/discover-quota.js.map +1 -1
  111. package/dist/notebook-creation/discover-sources.js +15 -16
  112. package/dist/notebook-creation/discover-sources.js.map +1 -1
  113. package/dist/notebook-creation/dom-scripts.d.ts +10 -0
  114. package/dist/notebook-creation/dom-scripts.d.ts.map +1 -0
  115. package/dist/notebook-creation/dom-scripts.js +58 -0
  116. package/dist/notebook-creation/dom-scripts.js.map +1 -0
  117. package/dist/notebook-creation/errors.d.ts +18 -0
  118. package/dist/notebook-creation/errors.d.ts.map +1 -0
  119. package/dist/notebook-creation/errors.js +20 -0
  120. package/dist/notebook-creation/errors.js.map +1 -0
  121. package/dist/notebook-creation/index.d.ts +2 -0
  122. package/dist/notebook-creation/index.d.ts.map +1 -1
  123. package/dist/notebook-creation/index.js +2 -0
  124. package/dist/notebook-creation/index.js.map +1 -1
  125. package/dist/notebook-creation/notebook-creator.d.ts +6 -82
  126. package/dist/notebook-creation/notebook-creator.d.ts.map +1 -1
  127. package/dist/notebook-creation/notebook-creator.js +49 -835
  128. package/dist/notebook-creation/notebook-creator.js.map +1 -1
  129. package/dist/notebook-creation/notebook-nav.d.ts +19 -0
  130. package/dist/notebook-creation/notebook-nav.d.ts.map +1 -0
  131. package/dist/notebook-creation/notebook-nav.js +239 -0
  132. package/dist/notebook-creation/notebook-nav.js.map +1 -0
  133. package/dist/notebook-creation/notebook-sync.d.ts.map +1 -1
  134. package/dist/notebook-creation/notebook-sync.js +36 -38
  135. package/dist/notebook-creation/notebook-sync.js.map +1 -1
  136. package/dist/notebook-creation/selector-discovery.d.ts.map +1 -1
  137. package/dist/notebook-creation/selector-discovery.js +17 -24
  138. package/dist/notebook-creation/selector-discovery.js.map +1 -1
  139. package/dist/notebook-creation/selectors.d.ts +23 -19
  140. package/dist/notebook-creation/selectors.d.ts.map +1 -1
  141. package/dist/notebook-creation/selectors.js +69 -33
  142. package/dist/notebook-creation/selectors.js.map +1 -1
  143. package/dist/notebook-creation/source-manager.d.ts +22 -0
  144. package/dist/notebook-creation/source-manager.d.ts.map +1 -1
  145. package/dist/notebook-creation/source-manager.js +716 -50
  146. package/dist/notebook-creation/source-manager.js.map +1 -1
  147. package/dist/notebook-creation/types.d.ts +4 -0
  148. package/dist/notebook-creation/types.d.ts.map +1 -1
  149. package/dist/notebook-creation/video-manager.d.ts.map +1 -1
  150. package/dist/notebook-creation/video-manager.js +33 -35
  151. package/dist/notebook-creation/video-manager.js.map +1 -1
  152. package/dist/observability/metrics.d.ts +19 -0
  153. package/dist/observability/metrics.d.ts.map +1 -0
  154. package/dist/observability/metrics.js +35 -0
  155. package/dist/observability/metrics.js.map +1 -0
  156. package/dist/quota/quota-manager.d.ts +11 -3
  157. package/dist/quota/quota-manager.d.ts.map +1 -1
  158. package/dist/quota/quota-manager.js +139 -47
  159. package/dist/quota/quota-manager.js.map +1 -1
  160. package/dist/resources/resource-handlers.d.ts.map +1 -1
  161. package/dist/resources/resource-handlers.js +29 -12
  162. package/dist/resources/resource-handlers.js.map +1 -1
  163. package/dist/session/browser-session.d.ts.map +1 -1
  164. package/dist/session/browser-session.js +22 -22
  165. package/dist/session/browser-session.js.map +1 -1
  166. package/dist/session/session-timeout.d.ts.map +1 -1
  167. package/dist/session/session-timeout.js +4 -2
  168. package/dist/session/session-timeout.js.map +1 -1
  169. package/dist/session/shared-context-manager.d.ts.map +1 -1
  170. package/dist/session/shared-context-manager.js +31 -30
  171. package/dist/session/shared-context-manager.js.map +1 -1
  172. package/dist/tools/annotations.js +9 -9
  173. package/dist/tools/annotations.js.map +1 -1
  174. package/dist/tools/definitions/ask-question.d.ts.map +1 -1
  175. package/dist/tools/definitions/ask-question.js +35 -100
  176. package/dist/tools/definitions/ask-question.js.map +1 -1
  177. package/dist/tools/definitions/chat-history.d.ts +47 -1
  178. package/dist/tools/definitions/chat-history.d.ts.map +1 -1
  179. package/dist/tools/definitions/chat-history.js +10 -1
  180. package/dist/tools/definitions/chat-history.js.map +1 -1
  181. package/dist/tools/definitions/data-tables.d.ts.map +1 -1
  182. package/dist/tools/definitions/data-tables.js +2 -0
  183. package/dist/tools/definitions/data-tables.js.map +1 -1
  184. package/dist/tools/definitions/gemini.d.ts.map +1 -1
  185. package/dist/tools/definitions/gemini.js +40 -10
  186. package/dist/tools/definitions/gemini.js.map +1 -1
  187. package/dist/tools/definitions/notebook-management.d.ts.map +1 -1
  188. package/dist/tools/definitions/notebook-management.js +100 -70
  189. package/dist/tools/definitions/notebook-management.js.map +1 -1
  190. package/dist/tools/definitions/query-history.d.ts +47 -1
  191. package/dist/tools/definitions/query-history.d.ts.map +1 -1
  192. package/dist/tools/definitions/query-history.js +7 -0
  193. package/dist/tools/definitions/query-history.js.map +1 -1
  194. package/dist/tools/definitions/session-management.d.ts.map +1 -1
  195. package/dist/tools/definitions/session-management.js +5 -0
  196. package/dist/tools/definitions/session-management.js.map +1 -1
  197. package/dist/tools/definitions/system.d.ts.map +1 -1
  198. package/dist/tools/definitions/system.js +71 -100
  199. package/dist/tools/definitions/system.js.map +1 -1
  200. package/dist/tools/definitions/video.d.ts.map +1 -1
  201. package/dist/tools/definitions/video.js +3 -0
  202. package/dist/tools/definitions/video.js.map +1 -1
  203. package/dist/tools/definitions.d.ts.map +1 -1
  204. package/dist/tools/definitions.js +4 -0
  205. package/dist/tools/definitions.js.map +1 -1
  206. package/dist/tools/handlers/ask-question.d.ts +1 -1
  207. package/dist/tools/handlers/ask-question.d.ts.map +1 -1
  208. package/dist/tools/handlers/ask-question.js +56 -12
  209. package/dist/tools/handlers/ask-question.js.map +1 -1
  210. package/dist/tools/handlers/audio-video.d.ts.map +1 -1
  211. package/dist/tools/handlers/audio-video.js +15 -7
  212. package/dist/tools/handlers/audio-video.js.map +1 -1
  213. package/dist/tools/handlers/auth.d.ts +14 -19
  214. package/dist/tools/handlers/auth.d.ts.map +1 -1
  215. package/dist/tools/handlers/auth.js +77 -121
  216. package/dist/tools/handlers/auth.js.map +1 -1
  217. package/dist/tools/handlers/error-utils.d.ts +7 -0
  218. package/dist/tools/handlers/error-utils.d.ts.map +1 -0
  219. package/dist/tools/handlers/error-utils.js +17 -0
  220. package/dist/tools/handlers/error-utils.js.map +1 -0
  221. package/dist/tools/handlers/gemini.d.ts +1 -0
  222. package/dist/tools/handlers/gemini.d.ts.map +1 -1
  223. package/dist/tools/handlers/gemini.js +81 -51
  224. package/dist/tools/handlers/gemini.js.map +1 -1
  225. package/dist/tools/handlers/index.d.ts +39 -47
  226. package/dist/tools/handlers/index.d.ts.map +1 -1
  227. package/dist/tools/handlers/index.js +13 -2
  228. package/dist/tools/handlers/index.js.map +1 -1
  229. package/dist/tools/handlers/notebook-creation.d.ts.map +1 -1
  230. package/dist/tools/handlers/notebook-creation.js +99 -20
  231. package/dist/tools/handlers/notebook-creation.js.map +1 -1
  232. package/dist/tools/handlers/notebook-management.d.ts +8 -8
  233. package/dist/tools/handlers/notebook-management.d.ts.map +1 -1
  234. package/dist/tools/handlers/notebook-management.js +34 -80
  235. package/dist/tools/handlers/notebook-management.js.map +1 -1
  236. package/dist/tools/handlers/session-management.d.ts.map +1 -1
  237. package/dist/tools/handlers/session-management.js +12 -5
  238. package/dist/tools/handlers/session-management.js.map +1 -1
  239. package/dist/tools/handlers/system.d.ts.map +1 -1
  240. package/dist/tools/handlers/system.js +45 -10
  241. package/dist/tools/handlers/system.js.map +1 -1
  242. package/dist/tools/handlers/types.d.ts +1 -1
  243. package/dist/tools/handlers/types.d.ts.map +1 -1
  244. package/dist/tools/handlers/webhooks.d.ts.map +1 -1
  245. package/dist/tools/handlers/webhooks.js +15 -13
  246. package/dist/tools/handlers/webhooks.js.map +1 -1
  247. package/dist/types.d.ts +7 -17
  248. package/dist/types.d.ts.map +1 -1
  249. package/dist/utils/audit-logger.d.ts +19 -1
  250. package/dist/utils/audit-logger.d.ts.map +1 -1
  251. package/dist/utils/audit-logger.js +193 -27
  252. package/dist/utils/audit-logger.js.map +1 -1
  253. package/dist/utils/cleanup-manager.d.ts.map +1 -1
  254. package/dist/utils/cleanup-manager.js +6 -3
  255. package/dist/utils/cleanup-manager.js.map +1 -1
  256. package/dist/utils/crypto.d.ts +4 -1
  257. package/dist/utils/crypto.d.ts.map +1 -1
  258. package/dist/utils/crypto.js +32 -21
  259. package/dist/utils/crypto.js.map +1 -1
  260. package/dist/utils/file-lock.d.ts.map +1 -1
  261. package/dist/utils/file-lock.js +80 -16
  262. package/dist/utils/file-lock.js.map +1 -1
  263. package/dist/utils/file-permissions.d.ts +2 -0
  264. package/dist/utils/file-permissions.d.ts.map +1 -1
  265. package/dist/utils/file-permissions.js +2 -1
  266. package/dist/utils/file-permissions.js.map +1 -1
  267. package/dist/utils/logger.d.ts +4 -0
  268. package/dist/utils/logger.d.ts.map +1 -1
  269. package/dist/utils/logger.js +16 -0
  270. package/dist/utils/logger.js.map +1 -1
  271. package/dist/utils/page-utils.d.ts.map +1 -1
  272. package/dist/utils/page-utils.js +22 -39
  273. package/dist/utils/page-utils.js.map +1 -1
  274. package/dist/utils/response-validator.d.ts.map +1 -1
  275. package/dist/utils/response-validator.js +27 -22
  276. package/dist/utils/response-validator.js.map +1 -1
  277. package/dist/utils/secrets-scanner.d.ts +11 -0
  278. package/dist/utils/secrets-scanner.d.ts.map +1 -1
  279. package/dist/utils/secrets-scanner.js +63 -15
  280. package/dist/utils/secrets-scanner.js.map +1 -1
  281. package/dist/utils/secure-memory.d.ts +9 -31
  282. package/dist/utils/secure-memory.d.ts.map +1 -1
  283. package/dist/utils/secure-memory.js +17 -102
  284. package/dist/utils/secure-memory.js.map +1 -1
  285. package/dist/utils/security.d.ts +4 -3
  286. package/dist/utils/security.d.ts.map +1 -1
  287. package/dist/utils/security.js +41 -11
  288. package/dist/utils/security.js.map +1 -1
  289. package/dist/utils/stealth-utils.d.ts.map +1 -1
  290. package/dist/utils/stealth-utils.js +4 -4
  291. package/dist/utils/stealth-utils.js.map +1 -1
  292. package/dist/webhooks/types.d.ts +2 -0
  293. package/dist/webhooks/types.d.ts.map +1 -1
  294. package/dist/webhooks/webhook-dispatcher.d.ts +80 -12
  295. package/dist/webhooks/webhook-dispatcher.d.ts.map +1 -1
  296. package/dist/webhooks/webhook-dispatcher.js +472 -72
  297. package/dist/webhooks/webhook-dispatcher.js.map +1 -1
  298. package/docs/archive/ISSUES-legacy-2026-04-24.md +644 -0
  299. package/docs/dependency-risk.md +25 -0
  300. package/docs/testing-runbook.md +166 -0
  301. package/docs/usage-guide.md +2 -1
  302. package/package.json +32 -15
@@ -5,11 +5,20 @@
5
5
  * upload_document, query_document, list_documents, delete_document,
6
6
  * query_chunked_document, get_query_history, and get_notebook_chat_history tools.
7
7
  */
8
- import { CONFIG, applyBrowserOptions } from "../../config.js";
8
+ import { CONFIG } from "../../config.js";
9
+ import { applyBrowserOptions } from "../../notebook-creation/browser-options.js";
9
10
  import { log } from "../../utils/logger.js";
10
11
  import { audit } from "../../utils/audit-logger.js";
11
12
  import { validateNotebookUrl, validateNotebookId, sanitizeForLogging, } from "../../utils/security.js";
12
13
  import { getQueryLogger } from "../../logging/index.js";
14
+ import { getErrorAuditArgs, getSanitizedErrorMessage, } from "./error-utils.js";
15
+ function getConfiguredGeminiClient(ctx) {
16
+ const geminiClient = ctx.getGeminiClient();
17
+ if (!geminiClient) {
18
+ return null;
19
+ }
20
+ return geminiClient;
21
+ }
13
22
  /**
14
23
  * Handle deep_research tool
15
24
  */
@@ -18,11 +27,13 @@ export async function handleDeepResearch(ctx, args, sendProgress) {
18
27
  log.info(`🔧 [TOOL] deep_research called`);
19
28
  log.info(` Query: "${sanitizeForLogging(args.query.substring(0, 100))}"...`);
20
29
  // Check if Gemini is available
21
- if (!ctx.geminiClient.isAvailable()) {
30
+ const geminiClient = getConfiguredGeminiClient(ctx);
31
+ if (!geminiClient) {
22
32
  log.error(`❌ [TOOL] deep_research failed: Gemini API key not configured`);
23
33
  return {
24
34
  success: false,
25
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
35
+ data: null,
36
+ error: "GEMINI_API_KEY is not configured.",
26
37
  };
27
38
  }
28
39
  try {
@@ -40,8 +51,9 @@ export async function handleDeepResearch(ctx, args, sendProgress) {
40
51
  await sendProgress("Starting deep research...", 0, 100);
41
52
  }
42
53
  // Start the research
43
- const interaction = await ctx.geminiClient.deepResearch({
54
+ const interaction = await geminiClient.deepResearch({
44
55
  query: args.query,
56
+ thinkingLevel: args.thinking_level,
45
57
  background: true,
46
58
  waitForCompletion: args.wait_for_completion !== false,
47
59
  maxWaitMs,
@@ -66,11 +78,11 @@ export async function handleDeepResearch(ctx, args, sendProgress) {
66
78
  };
67
79
  }
68
80
  catch (error) {
69
- const errorMessage = error instanceof Error ? error.message : String(error);
81
+ const errorMessage = getSanitizedErrorMessage(error);
70
82
  const durationMs = Date.now() - startTime;
71
83
  log.error(`❌ [TOOL] deep_research failed: ${errorMessage}`);
72
- await audit.tool("deep_research", { query: sanitizeForLogging(args.query) }, false, durationMs, errorMessage);
73
- return { success: false, error: errorMessage };
84
+ await audit.tool("deep_research", getErrorAuditArgs("deep_research", errorMessage), false, durationMs, errorMessage);
85
+ return { success: false, data: null, error: errorMessage };
74
86
  }
75
87
  }
76
88
  /**
@@ -84,11 +96,13 @@ export async function handleGeminiQuery(ctx, args) {
84
96
  if (args.tools)
85
97
  log.info(` Tools: ${args.tools.join(", ")}`);
86
98
  // Check if Gemini is available
87
- if (!ctx.geminiClient.isAvailable()) {
99
+ const geminiClient = getConfiguredGeminiClient(ctx);
100
+ if (!geminiClient) {
88
101
  log.error(`❌ [TOOL] gemini_query failed: Gemini API key not configured`);
89
102
  return {
90
103
  success: false,
91
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
104
+ data: null,
105
+ error: "GEMINI_API_KEY is not configured.",
92
106
  };
93
107
  }
94
108
  try {
@@ -121,7 +135,7 @@ export async function handleGeminiQuery(ctx, args) {
121
135
  responseSchema: args.response_schema,
122
136
  }),
123
137
  } : undefined;
124
- const interaction = await ctx.geminiClient.query({
138
+ const interaction = await geminiClient.query({
125
139
  query: args.query,
126
140
  model: args.model,
127
141
  tools,
@@ -157,11 +171,11 @@ export async function handleGeminiQuery(ctx, args) {
157
171
  };
158
172
  }
159
173
  catch (error) {
160
- const errorMessage = error instanceof Error ? error.message : String(error);
174
+ const errorMessage = getSanitizedErrorMessage(error);
161
175
  const durationMs = Date.now() - startTime;
162
176
  log.error(`❌ [TOOL] gemini_query failed: ${errorMessage}`);
163
- await audit.tool("gemini_query", { query: sanitizeForLogging(args.query) }, false, durationMs, errorMessage);
164
- return { success: false, error: errorMessage };
177
+ await audit.tool("gemini_query", getErrorAuditArgs("gemini_query", errorMessage), false, durationMs, errorMessage);
178
+ return { success: false, data: null, error: errorMessage };
165
179
  }
166
180
  }
167
181
  /**
@@ -171,11 +185,13 @@ export async function handleGetResearchStatus(ctx, args) {
171
185
  log.info(`🔧 [TOOL] get_research_status called`);
172
186
  log.info(` Interaction ID: ${args.interaction_id}`);
173
187
  // Check if Gemini is available
174
- if (!ctx.geminiClient.isAvailable()) {
188
+ const geminiClient = getConfiguredGeminiClient(ctx);
189
+ if (!geminiClient) {
175
190
  log.error(`❌ [TOOL] get_research_status failed: Gemini API key not configured`);
176
191
  return {
177
192
  success: false,
178
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
193
+ data: null,
194
+ error: "GEMINI_API_KEY is not configured.",
179
195
  };
180
196
  }
181
197
  try {
@@ -183,7 +199,7 @@ export async function handleGetResearchStatus(ctx, args) {
183
199
  if (!args.interaction_id || args.interaction_id.trim().length === 0) {
184
200
  throw new Error("Interaction ID cannot be empty");
185
201
  }
186
- const interaction = await ctx.geminiClient.getInteraction(args.interaction_id);
202
+ const interaction = await geminiClient.getInteraction(args.interaction_id);
187
203
  log.success(`✅ [TOOL] get_research_status: ${interaction.status}`);
188
204
  return {
189
205
  success: true,
@@ -191,9 +207,9 @@ export async function handleGetResearchStatus(ctx, args) {
191
207
  };
192
208
  }
193
209
  catch (error) {
194
- const errorMessage = error instanceof Error ? error.message : String(error);
210
+ const errorMessage = getSanitizedErrorMessage(error);
195
211
  log.error(`❌ [TOOL] get_research_status failed: ${errorMessage}`);
196
- return { success: false, error: errorMessage };
212
+ return { success: false, data: null, error: errorMessage };
197
213
  }
198
214
  }
199
215
  // ==================== DOCUMENT TOOLS (v1.9.0) ====================
@@ -205,11 +221,13 @@ export async function handleUploadDocument(ctx, args) {
205
221
  log.info(`🔧 [TOOL] upload_document called`);
206
222
  log.info(` File: ${args.file_path}`);
207
223
  // Check if Gemini is available
208
- if (!ctx.geminiClient.isAvailable()) {
224
+ const geminiClient = getConfiguredGeminiClient(ctx);
225
+ if (!geminiClient) {
209
226
  log.error(`❌ [TOOL] upload_document failed: Gemini API key not configured`);
210
227
  return {
211
228
  success: false,
212
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
229
+ data: null,
230
+ error: "GEMINI_API_KEY is not configured.",
213
231
  };
214
232
  }
215
233
  try {
@@ -217,7 +235,7 @@ export async function handleUploadDocument(ctx, args) {
217
235
  if (!args.file_path || args.file_path.trim().length === 0) {
218
236
  throw new Error("File path cannot be empty");
219
237
  }
220
- const result = await ctx.geminiClient.uploadDocument({
238
+ const result = await geminiClient.uploadDocument({
221
239
  filePath: args.file_path,
222
240
  displayName: args.display_name,
223
241
  });
@@ -230,11 +248,11 @@ export async function handleUploadDocument(ctx, args) {
230
248
  };
231
249
  }
232
250
  catch (error) {
233
- const errorMessage = error instanceof Error ? error.message : String(error);
251
+ const errorMessage = getSanitizedErrorMessage(error);
234
252
  const durationMs = Date.now() - startTime;
235
- await audit.tool("upload_document", { file: sanitizeForLogging(args.file_path) }, false, durationMs, errorMessage);
253
+ await audit.tool("upload_document", getErrorAuditArgs("upload_document", errorMessage), false, durationMs, errorMessage);
236
254
  log.error(`❌ [TOOL] upload_document failed: ${errorMessage}`);
237
- return { success: false, error: errorMessage };
255
+ return { success: false, data: null, error: errorMessage };
238
256
  }
239
257
  }
240
258
  /**
@@ -246,11 +264,13 @@ export async function handleQueryDocument(ctx, args) {
246
264
  log.info(` File: ${args.file_name}`);
247
265
  log.info(` Query: ${args.query.substring(0, 50)}...`);
248
266
  // Check if Gemini is available
249
- if (!ctx.geminiClient.isAvailable()) {
267
+ const geminiClient = getConfiguredGeminiClient(ctx);
268
+ if (!geminiClient) {
250
269
  log.error(`❌ [TOOL] query_document failed: Gemini API key not configured`);
251
270
  return {
252
271
  success: false,
253
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
272
+ data: null,
273
+ error: "GEMINI_API_KEY is not configured.",
254
274
  };
255
275
  }
256
276
  try {
@@ -261,7 +281,7 @@ export async function handleQueryDocument(ctx, args) {
261
281
  if (!args.query || args.query.trim().length === 0) {
262
282
  throw new Error("Query cannot be empty");
263
283
  }
264
- const result = await ctx.geminiClient.queryDocument({
284
+ const result = await geminiClient.queryDocument({
265
285
  fileName: args.file_name,
266
286
  query: args.query,
267
287
  model: args.model,
@@ -276,11 +296,11 @@ export async function handleQueryDocument(ctx, args) {
276
296
  };
277
297
  }
278
298
  catch (error) {
279
- const errorMessage = error instanceof Error ? error.message : String(error);
299
+ const errorMessage = getSanitizedErrorMessage(error);
280
300
  const durationMs = Date.now() - startTime;
281
- await audit.tool("query_document", { file: args.file_name }, false, durationMs, errorMessage);
301
+ await audit.tool("query_document", getErrorAuditArgs("query_document", errorMessage), false, durationMs, errorMessage);
282
302
  log.error(`❌ [TOOL] query_document failed: ${errorMessage}`);
283
- return { success: false, error: errorMessage };
303
+ return { success: false, data: null, error: errorMessage };
284
304
  }
285
305
  }
286
306
  /**
@@ -289,15 +309,17 @@ export async function handleQueryDocument(ctx, args) {
289
309
  export async function handleListDocuments(ctx, args) {
290
310
  log.info(`🔧 [TOOL] list_documents called`);
291
311
  // Check if Gemini is available
292
- if (!ctx.geminiClient.isAvailable()) {
312
+ const geminiClient = getConfiguredGeminiClient(ctx);
313
+ if (!geminiClient) {
293
314
  log.error(`❌ [TOOL] list_documents failed: Gemini API key not configured`);
294
315
  return {
295
316
  success: false,
296
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
317
+ data: null,
318
+ error: "GEMINI_API_KEY is not configured.",
297
319
  };
298
320
  }
299
321
  try {
300
- const result = await ctx.geminiClient.listFiles(args.page_size || 100);
322
+ const result = await geminiClient.listFiles(args.page_size || 100);
301
323
  log.success(`✅ [TOOL] list_documents: ${result.totalCount} files`);
302
324
  return {
303
325
  success: true,
@@ -305,9 +327,9 @@ export async function handleListDocuments(ctx, args) {
305
327
  };
306
328
  }
307
329
  catch (error) {
308
- const errorMessage = error instanceof Error ? error.message : String(error);
330
+ const errorMessage = getSanitizedErrorMessage(error);
309
331
  log.error(`❌ [TOOL] list_documents failed: ${errorMessage}`);
310
- return { success: false, error: errorMessage };
332
+ return { success: false, data: null, error: errorMessage };
311
333
  }
312
334
  }
313
335
  /**
@@ -317,11 +339,13 @@ export async function handleDeleteDocument(ctx, args) {
317
339
  log.info(`🔧 [TOOL] delete_document called`);
318
340
  log.info(` File: ${args.file_name}`);
319
341
  // Check if Gemini is available
320
- if (!ctx.geminiClient.isAvailable()) {
342
+ const geminiClient = getConfiguredGeminiClient(ctx);
343
+ if (!geminiClient) {
321
344
  log.error(`❌ [TOOL] delete_document failed: Gemini API key not configured`);
322
345
  return {
323
346
  success: false,
324
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
347
+ data: null,
348
+ error: "GEMINI_API_KEY is not configured.",
325
349
  };
326
350
  }
327
351
  try {
@@ -329,7 +353,7 @@ export async function handleDeleteDocument(ctx, args) {
329
353
  if (!args.file_name || args.file_name.trim().length === 0) {
330
354
  throw new Error("File name cannot be empty");
331
355
  }
332
- await ctx.geminiClient.deleteFile(args.file_name);
356
+ await geminiClient.deleteFile(args.file_name);
333
357
  log.success(`✅ [TOOL] delete_document: ${args.file_name} deleted`);
334
358
  return {
335
359
  success: true,
@@ -337,9 +361,9 @@ export async function handleDeleteDocument(ctx, args) {
337
361
  };
338
362
  }
339
363
  catch (error) {
340
- const errorMessage = error instanceof Error ? error.message : String(error);
364
+ const errorMessage = getSanitizedErrorMessage(error);
341
365
  log.error(`❌ [TOOL] delete_document failed: ${errorMessage}`);
342
- return { success: false, error: errorMessage };
366
+ return { success: false, data: null, error: errorMessage };
343
367
  }
344
368
  }
345
369
  /**
@@ -351,11 +375,13 @@ export async function handleQueryChunkedDocument(ctx, args) {
351
375
  log.info(` Chunks: ${args.file_names.length}`);
352
376
  log.info(` Query: ${args.query.substring(0, 50)}...`);
353
377
  // Check if Gemini is available
354
- if (!ctx.geminiClient.isAvailable()) {
378
+ const geminiClient = getConfiguredGeminiClient(ctx);
379
+ if (!geminiClient) {
355
380
  log.error(`❌ [TOOL] query_chunked_document failed: Gemini API key not configured`);
356
381
  return {
357
382
  success: false,
358
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
383
+ data: null,
384
+ error: "GEMINI_API_KEY is not configured.",
359
385
  };
360
386
  }
361
387
  try {
@@ -366,7 +392,7 @@ export async function handleQueryChunkedDocument(ctx, args) {
366
392
  if (!args.query || args.query.trim().length === 0) {
367
393
  throw new Error("Query cannot be empty");
368
394
  }
369
- const result = await ctx.geminiClient.queryChunkedDocument(args.file_names, args.query, { model: args.model });
395
+ const result = await geminiClient.queryChunkedDocument(args.file_names, args.query, { model: args.model });
370
396
  log.success(`✅ [TOOL] query_chunked_document completed`);
371
397
  return {
372
398
  success: true,
@@ -380,9 +406,9 @@ export async function handleQueryChunkedDocument(ctx, args) {
380
406
  };
381
407
  }
382
408
  catch (error) {
383
- const errorMessage = error instanceof Error ? error.message : String(error);
409
+ const errorMessage = getSanitizedErrorMessage(error);
384
410
  log.error(`❌ [TOOL] query_chunked_document failed: ${errorMessage}`);
385
- return { success: false, error: errorMessage };
411
+ return { success: false, data: null, error: errorMessage };
386
412
  }
387
413
  }
388
414
  // ==================== QUERY HISTORY ====================
@@ -432,10 +458,11 @@ export async function handleGetQueryHistory(_ctx, args) {
432
458
  };
433
459
  }
434
460
  catch (error) {
435
- const errorMessage = error instanceof Error ? error.message : String(error);
461
+ const errorMessage = getSanitizedErrorMessage(error);
436
462
  log.error(`❌ [TOOL] get_query_history failed: ${errorMessage}`);
437
463
  return {
438
464
  success: false,
465
+ data: null,
439
466
  error: errorMessage,
440
467
  };
441
468
  }
@@ -461,6 +488,7 @@ export async function handleGetNotebookChatHistory(ctx, args) {
461
488
  if (!notebook) {
462
489
  return {
463
490
  success: false,
491
+ data: null,
464
492
  error: `Notebook not found: ${args.notebook_id}. Use list_notebooks to see available notebooks.`,
465
493
  };
466
494
  }
@@ -473,6 +501,7 @@ export async function handleGetNotebookChatHistory(ctx, args) {
473
501
  if (!activeNotebook) {
474
502
  return {
475
503
  success: false,
504
+ data: null,
476
505
  error: "No notebook specified. Provide notebook_id or notebook_url, or set an active notebook.",
477
506
  };
478
507
  }
@@ -496,13 +525,13 @@ export async function handleGetNotebookChatHistory(ctx, args) {
496
525
  // Wait a bit for the chat history to fully load
497
526
  await page.waitForTimeout(2000);
498
527
  const messages = await page.evaluate(() => {
528
+ const doc = globalThis;
499
529
  const result = [];
500
530
  // Get all message containers (both user and assistant)
501
531
  // User messages: .from-user-container / Assistant messages: .to-user-container
502
- // @ts-expect-error - DOM types available in browser context
503
- const allContainers = document.querySelectorAll(".from-user-container, .to-user-container");
532
+ const allContainers = doc.document.querySelectorAll(".from-user-container, .to-user-container");
504
533
  let idx = 0;
505
- allContainers.forEach((container) => {
534
+ for (const container of allContainers) {
506
535
  const isUser = container.classList?.contains("from-user-container");
507
536
  const isAssistant = container.classList?.contains("to-user-container");
508
537
  if (isUser) {
@@ -532,7 +561,7 @@ export async function handleGetNotebookChatHistory(ctx, args) {
532
561
  }
533
562
  }
534
563
  }
535
- });
564
+ }
536
565
  return result;
537
566
  });
538
567
  // Calculate stats
@@ -615,10 +644,11 @@ export async function handleGetNotebookChatHistory(ctx, args) {
615
644
  }
616
645
  }
617
646
  catch (error) {
618
- const errorMessage = error instanceof Error ? error.message : String(error);
647
+ const errorMessage = getSanitizedErrorMessage(error);
619
648
  log.error(`❌ [TOOL] get_notebook_chat_history failed: ${errorMessage}`);
620
649
  return {
621
650
  success: false,
651
+ data: null,
622
652
  error: errorMessage,
623
653
  };
624
654
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/tools/handlers/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/tools/handlers/gemini.ts"],"names":[],"mappings":"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"}