@pan-sec/notebooklm-mcp 2026.2.11 → 2026.3.1

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 (305) hide show
  1. package/README.md +62 -19
  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 +117 -44
  6. package/dist/auth/auth-manager.js.map +1 -1
  7. package/dist/auth/mcp-auth.d.ts +24 -4
  8. package/dist/auth/mcp-auth.d.ts.map +1 -1
  9. package/dist/auth/mcp-auth.js +149 -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 +24 -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 +8 -31
  68. package/dist/config.d.ts.map +1 -1
  69. package/dist/config.js +26 -64
  70. package/dist/config.js.map +1 -1
  71. package/dist/errors.d.ts +22 -2
  72. package/dist/errors.d.ts.map +1 -1
  73. package/dist/errors.js +55 -4
  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 +412 -89
  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 -1
  122. package/dist/notebook-creation/index.d.ts.map +1 -1
  123. package/dist/notebook-creation/index.js +2 -1
  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 +240 -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 -37
  140. package/dist/notebook-creation/selectors.d.ts.map +1 -1
  141. package/dist/notebook-creation/selectors.js +56 -60
  142. package/dist/notebook-creation/selectors.js.map +1 -1
  143. package/dist/notebook-creation/source-manager.d.ts +25 -0
  144. package/dist/notebook-creation/source-manager.d.ts.map +1 -1
  145. package/dist/notebook-creation/source-manager.js +689 -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 +39 -17
  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.d.ts.map +1 -1
  173. package/dist/tools/annotations.js +9 -56
  174. package/dist/tools/annotations.js.map +1 -1
  175. package/dist/tools/definitions/ask-question.d.ts.map +1 -1
  176. package/dist/tools/definitions/ask-question.js +35 -100
  177. package/dist/tools/definitions/ask-question.js.map +1 -1
  178. package/dist/tools/definitions/chat-history.d.ts +47 -1
  179. package/dist/tools/definitions/chat-history.d.ts.map +1 -1
  180. package/dist/tools/definitions/chat-history.js +10 -1
  181. package/dist/tools/definitions/chat-history.js.map +1 -1
  182. package/dist/tools/definitions/data-tables.d.ts.map +1 -1
  183. package/dist/tools/definitions/data-tables.js +2 -0
  184. package/dist/tools/definitions/data-tables.js.map +1 -1
  185. package/dist/tools/definitions/gemini.d.ts.map +1 -1
  186. package/dist/tools/definitions/gemini.js +54 -11
  187. package/dist/tools/definitions/gemini.js.map +1 -1
  188. package/dist/tools/definitions/notebook-management.d.ts.map +1 -1
  189. package/dist/tools/definitions/notebook-management.js +100 -70
  190. package/dist/tools/definitions/notebook-management.js.map +1 -1
  191. package/dist/tools/definitions/query-history.d.ts +47 -1
  192. package/dist/tools/definitions/query-history.d.ts.map +1 -1
  193. package/dist/tools/definitions/query-history.js +7 -0
  194. package/dist/tools/definitions/query-history.js.map +1 -1
  195. package/dist/tools/definitions/session-management.d.ts.map +1 -1
  196. package/dist/tools/definitions/session-management.js +5 -0
  197. package/dist/tools/definitions/session-management.js.map +1 -1
  198. package/dist/tools/definitions/system.d.ts.map +1 -1
  199. package/dist/tools/definitions/system.js +71 -100
  200. package/dist/tools/definitions/system.js.map +1 -1
  201. package/dist/tools/definitions/video.d.ts.map +1 -1
  202. package/dist/tools/definitions/video.js +4 -1
  203. package/dist/tools/definitions/video.js.map +1 -1
  204. package/dist/tools/definitions.d.ts.map +1 -1
  205. package/dist/tools/definitions.js +4 -0
  206. package/dist/tools/definitions.js.map +1 -1
  207. package/dist/tools/handlers/ask-question.d.ts +1 -1
  208. package/dist/tools/handlers/ask-question.d.ts.map +1 -1
  209. package/dist/tools/handlers/ask-question.js +57 -13
  210. package/dist/tools/handlers/ask-question.js.map +1 -1
  211. package/dist/tools/handlers/audio-video.d.ts.map +1 -1
  212. package/dist/tools/handlers/audio-video.js +22 -161
  213. package/dist/tools/handlers/audio-video.js.map +1 -1
  214. package/dist/tools/handlers/auth.d.ts +14 -19
  215. package/dist/tools/handlers/auth.d.ts.map +1 -1
  216. package/dist/tools/handlers/auth.js +77 -121
  217. package/dist/tools/handlers/auth.js.map +1 -1
  218. package/dist/tools/handlers/error-utils.d.ts +16 -0
  219. package/dist/tools/handlers/error-utils.d.ts.map +1 -0
  220. package/dist/tools/handlers/error-utils.js +39 -0
  221. package/dist/tools/handlers/error-utils.js.map +1 -0
  222. package/dist/tools/handlers/gemini.d.ts +2 -0
  223. package/dist/tools/handlers/gemini.d.ts.map +1 -1
  224. package/dist/tools/handlers/gemini.js +88 -51
  225. package/dist/tools/handlers/gemini.js.map +1 -1
  226. package/dist/tools/handlers/index.d.ts +39 -47
  227. package/dist/tools/handlers/index.d.ts.map +1 -1
  228. package/dist/tools/handlers/index.js +15 -4
  229. package/dist/tools/handlers/index.js.map +1 -1
  230. package/dist/tools/handlers/notebook-creation.d.ts.map +1 -1
  231. package/dist/tools/handlers/notebook-creation.js +102 -86
  232. package/dist/tools/handlers/notebook-creation.js.map +1 -1
  233. package/dist/tools/handlers/notebook-management.d.ts +8 -8
  234. package/dist/tools/handlers/notebook-management.d.ts.map +1 -1
  235. package/dist/tools/handlers/notebook-management.js +34 -80
  236. package/dist/tools/handlers/notebook-management.js.map +1 -1
  237. package/dist/tools/handlers/session-management.d.ts +8 -10
  238. package/dist/tools/handlers/session-management.d.ts.map +1 -1
  239. package/dist/tools/handlers/session-management.js +34 -63
  240. package/dist/tools/handlers/session-management.js.map +1 -1
  241. package/dist/tools/handlers/system.d.ts.map +1 -1
  242. package/dist/tools/handlers/system.js +45 -10
  243. package/dist/tools/handlers/system.js.map +1 -1
  244. package/dist/tools/handlers/types.d.ts +1 -1
  245. package/dist/tools/handlers/types.d.ts.map +1 -1
  246. package/dist/tools/handlers/webhooks.d.ts.map +1 -1
  247. package/dist/tools/handlers/webhooks.js +15 -13
  248. package/dist/tools/handlers/webhooks.js.map +1 -1
  249. package/dist/types.d.ts +7 -17
  250. package/dist/types.d.ts.map +1 -1
  251. package/dist/utils/audit-logger.d.ts +19 -1
  252. package/dist/utils/audit-logger.d.ts.map +1 -1
  253. package/dist/utils/audit-logger.js +198 -30
  254. package/dist/utils/audit-logger.js.map +1 -1
  255. package/dist/utils/cleanup-manager.d.ts.map +1 -1
  256. package/dist/utils/cleanup-manager.js +6 -3
  257. package/dist/utils/cleanup-manager.js.map +1 -1
  258. package/dist/utils/crypto.d.ts +4 -1
  259. package/dist/utils/crypto.d.ts.map +1 -1
  260. package/dist/utils/crypto.js +32 -21
  261. package/dist/utils/crypto.js.map +1 -1
  262. package/dist/utils/file-lock.d.ts.map +1 -1
  263. package/dist/utils/file-lock.js +87 -16
  264. package/dist/utils/file-lock.js.map +1 -1
  265. package/dist/utils/file-permissions.d.ts +2 -0
  266. package/dist/utils/file-permissions.d.ts.map +1 -1
  267. package/dist/utils/file-permissions.js +2 -1
  268. package/dist/utils/file-permissions.js.map +1 -1
  269. package/dist/utils/logger.d.ts +4 -0
  270. package/dist/utils/logger.d.ts.map +1 -1
  271. package/dist/utils/logger.js +16 -0
  272. package/dist/utils/logger.js.map +1 -1
  273. package/dist/utils/page-utils.d.ts +13 -0
  274. package/dist/utils/page-utils.d.ts.map +1 -1
  275. package/dist/utils/page-utils.js +61 -39
  276. package/dist/utils/page-utils.js.map +1 -1
  277. package/dist/utils/response-validator.d.ts.map +1 -1
  278. package/dist/utils/response-validator.js +27 -22
  279. package/dist/utils/response-validator.js.map +1 -1
  280. package/dist/utils/secrets-scanner.d.ts +11 -0
  281. package/dist/utils/secrets-scanner.d.ts.map +1 -1
  282. package/dist/utils/secrets-scanner.js +65 -17
  283. package/dist/utils/secrets-scanner.js.map +1 -1
  284. package/dist/utils/secure-memory.d.ts +9 -31
  285. package/dist/utils/secure-memory.d.ts.map +1 -1
  286. package/dist/utils/secure-memory.js +17 -102
  287. package/dist/utils/secure-memory.js.map +1 -1
  288. package/dist/utils/security.d.ts +4 -3
  289. package/dist/utils/security.d.ts.map +1 -1
  290. package/dist/utils/security.js +43 -13
  291. package/dist/utils/security.js.map +1 -1
  292. package/dist/utils/stealth-utils.d.ts.map +1 -1
  293. package/dist/utils/stealth-utils.js +4 -4
  294. package/dist/utils/stealth-utils.js.map +1 -1
  295. package/dist/webhooks/types.d.ts +4 -0
  296. package/dist/webhooks/types.d.ts.map +1 -1
  297. package/dist/webhooks/webhook-dispatcher.d.ts +80 -12
  298. package/dist/webhooks/webhook-dispatcher.d.ts.map +1 -1
  299. package/dist/webhooks/webhook-dispatcher.js +497 -74
  300. package/dist/webhooks/webhook-dispatcher.js.map +1 -1
  301. package/docs/archive/ISSUES-legacy-2026-04-24.md +644 -0
  302. package/docs/dependency-risk.md +25 -0
  303. package/docs/testing-runbook.md +166 -0
  304. package/docs/usage-guide.md +2 -1
  305. package/package.json +34 -16
@@ -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
  /**
@@ -316,12 +338,21 @@ export async function handleListDocuments(ctx, args) {
316
338
  export async function handleDeleteDocument(ctx, args) {
317
339
  log.info(`🔧 [TOOL] delete_document called`);
318
340
  log.info(` File: ${args.file_name}`);
341
+ if (args.confirm !== true) {
342
+ return {
343
+ success: false,
344
+ data: null,
345
+ error: 'Deletion requires confirm: true to prevent accidental data loss.',
346
+ };
347
+ }
319
348
  // Check if Gemini is available
320
- if (!ctx.geminiClient.isAvailable()) {
349
+ const geminiClient = getConfiguredGeminiClient(ctx);
350
+ if (!geminiClient) {
321
351
  log.error(`❌ [TOOL] delete_document failed: Gemini API key not configured`);
322
352
  return {
323
353
  success: false,
324
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
354
+ data: null,
355
+ error: "GEMINI_API_KEY is not configured.",
325
356
  };
326
357
  }
327
358
  try {
@@ -329,7 +360,7 @@ export async function handleDeleteDocument(ctx, args) {
329
360
  if (!args.file_name || args.file_name.trim().length === 0) {
330
361
  throw new Error("File name cannot be empty");
331
362
  }
332
- await ctx.geminiClient.deleteFile(args.file_name);
363
+ await geminiClient.deleteFile(args.file_name);
333
364
  log.success(`✅ [TOOL] delete_document: ${args.file_name} deleted`);
334
365
  return {
335
366
  success: true,
@@ -337,9 +368,9 @@ export async function handleDeleteDocument(ctx, args) {
337
368
  };
338
369
  }
339
370
  catch (error) {
340
- const errorMessage = error instanceof Error ? error.message : String(error);
371
+ const errorMessage = getSanitizedErrorMessage(error);
341
372
  log.error(`❌ [TOOL] delete_document failed: ${errorMessage}`);
342
- return { success: false, error: errorMessage };
373
+ return { success: false, data: null, error: errorMessage };
343
374
  }
344
375
  }
345
376
  /**
@@ -351,11 +382,13 @@ export async function handleQueryChunkedDocument(ctx, args) {
351
382
  log.info(` Chunks: ${args.file_names.length}`);
352
383
  log.info(` Query: ${args.query.substring(0, 50)}...`);
353
384
  // Check if Gemini is available
354
- if (!ctx.geminiClient.isAvailable()) {
385
+ const geminiClient = getConfiguredGeminiClient(ctx);
386
+ if (!geminiClient) {
355
387
  log.error(`❌ [TOOL] query_chunked_document failed: Gemini API key not configured`);
356
388
  return {
357
389
  success: false,
358
- error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
390
+ data: null,
391
+ error: "GEMINI_API_KEY is not configured.",
359
392
  };
360
393
  }
361
394
  try {
@@ -366,7 +399,7 @@ export async function handleQueryChunkedDocument(ctx, args) {
366
399
  if (!args.query || args.query.trim().length === 0) {
367
400
  throw new Error("Query cannot be empty");
368
401
  }
369
- const result = await ctx.geminiClient.queryChunkedDocument(args.file_names, args.query, { model: args.model });
402
+ const result = await geminiClient.queryChunkedDocument(args.file_names, args.query, { model: args.model });
370
403
  log.success(`✅ [TOOL] query_chunked_document completed`);
371
404
  return {
372
405
  success: true,
@@ -380,9 +413,9 @@ export async function handleQueryChunkedDocument(ctx, args) {
380
413
  };
381
414
  }
382
415
  catch (error) {
383
- const errorMessage = error instanceof Error ? error.message : String(error);
416
+ const errorMessage = getSanitizedErrorMessage(error);
384
417
  log.error(`❌ [TOOL] query_chunked_document failed: ${errorMessage}`);
385
- return { success: false, error: errorMessage };
418
+ return { success: false, data: null, error: errorMessage };
386
419
  }
387
420
  }
388
421
  // ==================== QUERY HISTORY ====================
@@ -432,10 +465,11 @@ export async function handleGetQueryHistory(_ctx, args) {
432
465
  };
433
466
  }
434
467
  catch (error) {
435
- const errorMessage = error instanceof Error ? error.message : String(error);
468
+ const errorMessage = getSanitizedErrorMessage(error);
436
469
  log.error(`❌ [TOOL] get_query_history failed: ${errorMessage}`);
437
470
  return {
438
471
  success: false,
472
+ data: null,
439
473
  error: errorMessage,
440
474
  };
441
475
  }
@@ -461,6 +495,7 @@ export async function handleGetNotebookChatHistory(ctx, args) {
461
495
  if (!notebook) {
462
496
  return {
463
497
  success: false,
498
+ data: null,
464
499
  error: `Notebook not found: ${args.notebook_id}. Use list_notebooks to see available notebooks.`,
465
500
  };
466
501
  }
@@ -473,6 +508,7 @@ export async function handleGetNotebookChatHistory(ctx, args) {
473
508
  if (!activeNotebook) {
474
509
  return {
475
510
  success: false,
511
+ data: null,
476
512
  error: "No notebook specified. Provide notebook_id or notebook_url, or set an active notebook.",
477
513
  };
478
514
  }
@@ -496,13 +532,13 @@ export async function handleGetNotebookChatHistory(ctx, args) {
496
532
  // Wait a bit for the chat history to fully load
497
533
  await page.waitForTimeout(2000);
498
534
  const messages = await page.evaluate(() => {
535
+ const doc = globalThis;
499
536
  const result = [];
500
537
  // Get all message containers (both user and assistant)
501
538
  // 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");
539
+ const allContainers = doc.document.querySelectorAll(".from-user-container, .to-user-container");
504
540
  let idx = 0;
505
- allContainers.forEach((container) => {
541
+ for (const container of allContainers) {
506
542
  const isUser = container.classList?.contains("from-user-container");
507
543
  const isAssistant = container.classList?.contains("to-user-container");
508
544
  if (isUser) {
@@ -532,7 +568,7 @@ export async function handleGetNotebookChatHistory(ctx, args) {
532
568
  }
533
569
  }
534
570
  }
535
- });
571
+ }
536
572
  return result;
537
573
  });
538
574
  // Calculate stats
@@ -615,10 +651,11 @@ export async function handleGetNotebookChatHistory(ctx, args) {
615
651
  }
616
652
  }
617
653
  catch (error) {
618
- const errorMessage = error instanceof Error ? error.message : String(error);
654
+ const errorMessage = getSanitizedErrorMessage(error);
619
655
  log.error(`❌ [TOOL] get_notebook_chat_history failed: ${errorMessage}`);
620
656
  return {
621
657
  success: false,
658
+ data: null,
622
659
  error: errorMessage,
623
660
  };
624
661
  }
@@ -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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"}