@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
package/dist/config.js CHANGED
@@ -16,11 +16,12 @@ import { SecureCredential } from "./utils/secure-memory.js";
16
16
  /**
17
17
  * Clamp an integer to a [min, max] range
18
18
  */
19
- function clampInteger(value, min, max) {
19
+ export function clampInteger(value, min, max) {
20
20
  return Math.max(min, Math.min(max, value));
21
21
  }
22
22
  /** Credential TTL: 30 minutes */
23
23
  const CREDENTIAL_TTL_MS = 30 * 60 * 1000;
24
+ const DEFAULT_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.";
24
25
  /** Secure credential holders (module-level so they persist) */
25
26
  let secureLoginPassword = null;
26
27
  let secureGeminiApiKey = null;
@@ -34,6 +35,7 @@ const paths = envPaths("notebooklm-mcp", { suffix: "" });
34
35
  * Google NotebookLM Auth URL (used by setup_auth)
35
36
  * This is the base Google login URL that redirects to NotebookLM
36
37
  */
38
+ export const NOTEBOOKLM_URL = "https://notebooklm.google.com/";
37
39
  export const NOTEBOOKLM_AUTH_URL = "https://accounts.google.com/v3/signin/identifier?continue=https%3A%2F%2Fnotebooklm.google.com%2F&flowName=GlifWebSignIn&flowEntry=ServiceLogin";
38
40
  /**
39
41
  * Default Configuration (works out of the box!)
@@ -90,7 +92,7 @@ const DEFAULTS = {
90
92
  // NotebookLM response timeout
91
93
  responseTimeout: 120000, // 2 minutes
92
94
  // Follow-up reminder
93
- followUpReminder: "\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.",
95
+ followUpReminder: DEFAULT_FOLLOW_UP_REMINDER,
94
96
  followUpEnabled: true,
95
97
  };
96
98
  /**
@@ -112,16 +114,22 @@ export function parseBoolean(value, defaultValue) {
112
114
  export function parseInteger(value, defaultValue) {
113
115
  if (value === undefined)
114
116
  return defaultValue;
115
- const parsed = Number.parseInt(value, 10);
116
- return Number.isNaN(parsed) ? defaultValue : parsed;
117
+ if (value.trim() === "")
118
+ return defaultValue;
119
+ const parsed = Number(value);
120
+ const result = Math.trunc(parsed);
121
+ if (!Number.isFinite(result) || !Number.isInteger(result)) {
122
+ return defaultValue;
123
+ }
124
+ return result;
117
125
  }
118
126
  /**
119
- * Parse comma-separated array (for env vars)
127
+ * Parse comma/semicolon-separated array (for env vars)
120
128
  */
121
129
  export function parseArray(value, defaultValue) {
122
130
  if (!value)
123
131
  return defaultValue;
124
- return value.split(",").map((s) => s.trim()).filter((s) => s.length > 0);
132
+ return value.split(/[,;]/).map((s) => s.trim()).filter((s) => s.length > 0);
125
133
  }
126
134
  /**
127
135
  * Apply environment variable overrides (legacy support)
@@ -182,8 +190,14 @@ function applyEnvOverrides(config) {
182
190
  noGemini: parseBoolean(process.env.NOTEBOOKLM_NO_GEMINI, config.noGemini),
183
191
  // NotebookLM response timeout
184
192
  responseTimeout: parseInteger(process.env.NLMCP_RESPONSE_TIMEOUT_MS, config.responseTimeout),
185
- // Follow-up reminder
186
- followUpReminder: process.env.NLMCP_FOLLOW_UP_REMINDER || config.followUpReminder,
193
+ // Follow-up reminder — validate to prevent env-based prompt injection (I318)
194
+ followUpReminder: (() => {
195
+ const raw = process.env.NLMCP_FOLLOW_UP_REMINDER;
196
+ if (!raw)
197
+ return config.followUpReminder;
198
+ // Strip any embedded null bytes or control chars (except newline/tab)
199
+ return raw.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, "").slice(0, 2000);
200
+ })(),
187
201
  followUpEnabled: parseBoolean(process.env.NLMCP_FOLLOW_UP_ENABLED, config.followUpEnabled),
188
202
  };
189
203
  }
@@ -211,17 +225,14 @@ function buildConfig() {
211
225
  * Global configuration instance
212
226
  */
213
227
  export const CONFIG = buildConfig();
214
- /**
215
- * Get configuration (alias for CONFIG, used by compliance modules)
216
- */
217
- export function getConfig() {
218
- return CONFIG;
219
- }
220
228
  /**
221
229
  * Ensure all required directories exist
222
230
  * NOTE: We do NOT create configDir - it's not needed!
223
231
  */
224
232
  export function ensureDirectories() {
233
+ if (process.env.NODE_ENV === "test") {
234
+ return;
235
+ }
225
236
  const dirs = [
226
237
  CONFIG.dataDir,
227
238
  CONFIG.browserStateDir,
@@ -234,54 +245,5 @@ export function ensureDirectories() {
234
245
  }
235
246
  }
236
247
  }
237
- /**
238
- * Apply browser options to CONFIG (returns modified copy, doesn't mutate global CONFIG)
239
- */
240
- export function applyBrowserOptions(options, legacyShowBrowser) {
241
- const config = { ...CONFIG };
242
- // Handle legacy show_browser parameter
243
- if (legacyShowBrowser !== undefined) {
244
- config.headless = !legacyShowBrowser;
245
- }
246
- // Apply browser_options (takes precedence over legacy parameter)
247
- if (options) {
248
- if (options.show !== undefined) {
249
- config.headless = !options.show;
250
- }
251
- if (options.headless !== undefined) {
252
- config.headless = options.headless;
253
- }
254
- if (options.timeout_ms !== undefined) {
255
- config.browserTimeout = options.timeout_ms;
256
- }
257
- if (options.stealth) {
258
- const s = options.stealth;
259
- if (s.enabled !== undefined)
260
- config.stealthEnabled = s.enabled;
261
- if (s.random_delays !== undefined)
262
- config.stealthRandomDelays = s.random_delays;
263
- if (s.human_typing !== undefined)
264
- config.stealthHumanTyping = s.human_typing;
265
- if (s.mouse_movements !== undefined)
266
- config.stealthMouseMovements = s.mouse_movements;
267
- if (s.typing_wpm_min !== undefined)
268
- config.typingWpmMin = s.typing_wpm_min;
269
- if (s.typing_wpm_max !== undefined)
270
- config.typingWpmMax = s.typing_wpm_max;
271
- if (s.delay_min_ms !== undefined)
272
- config.minDelayMs = s.delay_min_ms;
273
- if (s.delay_max_ms !== undefined)
274
- config.maxDelayMs = s.delay_max_ms;
275
- }
276
- if (options.viewport) {
277
- config.viewport = {
278
- width: options.viewport.width ?? config.viewport.width,
279
- height: options.viewport.height ?? config.viewport.height,
280
- };
281
- }
282
- }
283
- return config;
284
- }
285
- // Create directories on import
286
- ensureDirectories();
248
+ export { applyBrowserOptions } from "./notebook-creation/browser-options.js";
287
249
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -20,7 +20,27 @@ export declare class RateLimitError extends Error {
20
20
  * Especially useful when upgrading from old installation (notebooklm-mcp-nodejs).
21
21
  */
22
22
  export declare class AuthenticationError extends Error {
23
- suggestCleanup: boolean;
24
- constructor(message: string, suggestCleanup?: boolean);
23
+ constructor(message: string);
24
+ }
25
+ export declare class ValidationError extends Error {
26
+ field?: string;
27
+ constructor(message: string, field?: string);
28
+ }
29
+ export declare class QuotaError extends Error {
30
+ constructor(message: string);
31
+ }
32
+ export declare class NotFoundError extends Error {
33
+ constructor(message: string);
34
+ }
35
+ export declare class UpstreamError extends Error {
36
+ statusCode?: number;
37
+ constructor(message: string, statusCode?: number);
38
+ }
39
+ export declare class BrowserError extends Error {
40
+ constructor(message: string);
41
+ }
42
+ export declare class SessionExpiredError extends Error {
43
+ sessionId?: string;
44
+ constructor(message: string, sessionId?: string);
25
45
  }
26
46
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,GAAE,MAA2E;CASjG;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,cAAc,EAAE,OAAO,CAAC;gBAEZ,OAAO,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe;CAU7D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,GAAE,MAA2E;CASjG;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAQ5B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAM5C;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBACR,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAMjD;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;gBACP,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAMhD"}
package/dist/errors.js CHANGED
@@ -27,15 +27,66 @@ export class RateLimitError extends Error {
27
27
  * Especially useful when upgrading from old installation (notebooklm-mcp-nodejs).
28
28
  */
29
29
  export class AuthenticationError extends Error {
30
- suggestCleanup;
31
- constructor(message, suggestCleanup = false) {
30
+ constructor(message) {
32
31
  super(message);
33
32
  this.name = "AuthenticationError";
34
- this.suggestCleanup = suggestCleanup;
35
- // Maintain proper stack trace for where error was thrown (V8 only)
36
33
  if (Error.captureStackTrace) {
37
34
  Error.captureStackTrace(this, AuthenticationError);
38
35
  }
39
36
  }
40
37
  }
38
+ export class ValidationError extends Error {
39
+ field;
40
+ constructor(message, field) {
41
+ super(message);
42
+ this.name = "ValidationError";
43
+ this.field = field;
44
+ if (Error.captureStackTrace)
45
+ Error.captureStackTrace(this, ValidationError);
46
+ }
47
+ }
48
+ export class QuotaError extends Error {
49
+ constructor(message) {
50
+ super(message);
51
+ this.name = "QuotaError";
52
+ if (Error.captureStackTrace)
53
+ Error.captureStackTrace(this, QuotaError);
54
+ }
55
+ }
56
+ export class NotFoundError extends Error {
57
+ constructor(message) {
58
+ super(message);
59
+ this.name = "NotFoundError";
60
+ if (Error.captureStackTrace)
61
+ Error.captureStackTrace(this, NotFoundError);
62
+ }
63
+ }
64
+ export class UpstreamError extends Error {
65
+ statusCode;
66
+ constructor(message, statusCode) {
67
+ super(message);
68
+ this.name = "UpstreamError";
69
+ this.statusCode = statusCode;
70
+ if (Error.captureStackTrace)
71
+ Error.captureStackTrace(this, UpstreamError);
72
+ }
73
+ }
74
+ export class BrowserError extends Error {
75
+ constructor(message) {
76
+ super(message);
77
+ this.name = "BrowserError";
78
+ if (Error.captureStackTrace)
79
+ Error.captureStackTrace(this, BrowserError);
80
+ }
81
+ }
82
+ export class SessionExpiredError extends Error {
83
+ sessionId;
84
+ constructor(message, sessionId) {
85
+ super(message);
86
+ this.name = "SessionExpiredError";
87
+ this.sessionId = sessionId;
88
+ if (Error.captureStackTrace)
89
+ Error.captureStackTrace(this, SessionExpiredError);
90
+ }
91
+ }
41
92
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,UAAkB,kEAAkE;QAC9F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAE7B,mEAAmE;QACnE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,cAAc,CAAU;IAExB,YAAY,OAAe,EAAE,iBAA0B,KAAK;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,mEAAmE;QACnE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,UAAkB,kEAAkE;QAC9F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAE7B,mEAAmE;QACnE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAElC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,KAAK,CAAU;IACf,YAAY,OAAe,EAAE,KAAc;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,KAAK,CAAC,iBAAiB;YAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC9E,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,KAAK,CAAC,iBAAiB;YAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,KAAK,CAAC,iBAAiB;YAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,UAAU,CAAU;IACpB,YAAY,OAAe,EAAE,UAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,KAAK,CAAC,iBAAiB;YAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,KAAK,CAAC,iBAAiB;YAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,SAAS,CAAU;IACnB,YAAY,OAAe,EAAE,SAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,KAAK,CAAC,iBAAiB;YAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAClF,CAAC;CACF"}
@@ -17,6 +17,7 @@ export declare class GeminiClient {
17
17
  * Check if the client is available (API key configured)
18
18
  */
19
19
  isAvailable(): boolean;
20
+ private requireClient;
20
21
  /**
21
22
  * Perform a quick query to Gemini
22
23
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-client.d.ts","sourceRoot":"","sources":["../../src/gemini/gemini-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EAGnB,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA2CjD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,CAAC,EAAE,MAAM;IAW3B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkEpE;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwC5E;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAevE;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAwD7B;;OAEG;IACG,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqEnF;;OAEG;YACW,gBAAgB;IA2E9B;;OAEG;YACW,qBAAqB;IAsBnC;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAepD;;OAEG;IACG,SAAS,CAAC,QAAQ,SAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyBjF;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAejD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6EhF;;;OAGG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,mBAAmB,CAAC;IA2E/B;;OAEG;IACH,OAAO,CAAC,OAAO;IA0Bf;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAK5B"}
1
+ {"version":3,"file":"gemini-client.d.ts","sourceRoot":"","sources":["../../src/gemini/gemini-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EAGnB,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAuJjD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,CAAC,EAAE,MAAM;IAW3B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8DpE;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwC5E;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAavE;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAwD7B;;OAEG;IACG,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7D;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuEnF;;OAEG;YACW,gBAAgB;IA+E9B;;OAEG;YACW,qBAAqB;IAsBnC;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAapD;;OAEG;IACG,SAAS,CAAC,QAAQ,SAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuBjF;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2EhF;;;OAGG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,mBAAmB,CAAC;IA2E/B;;OAEG;IACH,OAAO,CAAC,OAAO;IA0Bf;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAK5B"}
@@ -46,6 +46,11 @@ async function retryWithBackoff(fn, options = {}) {
46
46
  }
47
47
  throw lastError;
48
48
  }
49
+ function normalizeGeminiModel(model) {
50
+ return model === "gemini-3-pro-preview"
51
+ ? "gemini-3-pro-preview"
52
+ : "gemini-3-flash-preview";
53
+ }
49
54
  /**
50
55
  * Client for Gemini Interactions API
51
56
  */
@@ -68,14 +73,18 @@ export class GeminiClient {
68
73
  isAvailable() {
69
74
  return this.client !== null;
70
75
  }
76
+ requireClient() {
77
+ if (!this.client) {
78
+ throw new Error("Gemini API key not configured. Set GEMINI_API_KEY environment variable.");
79
+ }
80
+ return this.client;
81
+ }
71
82
  /**
72
83
  * Perform a quick query to Gemini
73
84
  */
74
85
  async query(options) {
75
- if (!this.client) {
76
- throw new Error("Gemini API key not configured. Set GEMINI_API_KEY environment variable.");
77
- }
78
- const model = options.model || CONFIG.geminiDefaultModel || "gemini-3-flash-preview";
86
+ const client = this.requireClient();
87
+ const model = normalizeGeminiModel(options.model || CONFIG.geminiDefaultModel);
79
88
  log.info(`Gemini query to ${model}: ${options.query.substring(0, 50)}...`);
80
89
  // Check for deprecated model
81
90
  const deprecationWarning = this.getDeprecationWarning(model);
@@ -83,7 +92,6 @@ export class GeminiClient {
83
92
  log.warning(`[DEPRECATION] ${deprecationWarning}`);
84
93
  }
85
94
  try {
86
- // Build tools array - use 'as any' to bypass strict SDK typing
87
95
  const tools = [];
88
96
  if (options.tools) {
89
97
  for (const tool of options.tools) {
@@ -98,8 +106,7 @@ export class GeminiClient {
98
106
  }
99
107
  // Retry with exponential backoff on transient errors
100
108
  const response = await retryWithBackoff(async () => {
101
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
- return this.client.interactions.create({
109
+ return client.interactions.create({
103
110
  model,
104
111
  input,
105
112
  tools: tools.length > 0 ? tools : undefined,
@@ -135,8 +142,8 @@ export class GeminiClient {
135
142
  */
136
143
  getDeprecationWarning(model) {
137
144
  const DEPRECATED_MODELS = {
138
- "gemini-2.5-flash": "gemini-2.5-flash is retiring March 31, 2026. Migrate to gemini-3-flash-preview.",
139
- "gemini-2.5-pro": "gemini-2.5-pro is retiring March 31, 2026. Migrate to gemini-3-pro-preview.",
145
+ "gemini-2.5-flash": "gemini-2.5-flash was retired March 31, 2026. Use gemini-3-flash-preview instead.",
146
+ "gemini-2.5-pro": "gemini-2.5-pro was retired March 31, 2026. Use gemini-3-pro-preview instead.",
140
147
  };
141
148
  return DEPRECATED_MODELS[model] || null;
142
149
  }
@@ -144,18 +151,18 @@ export class GeminiClient {
144
151
  * Start deep research using the Deep Research agent
145
152
  */
146
153
  async deepResearch(options) {
147
- if (!this.client) {
148
- throw new Error("Gemini API key not configured. Set GEMINI_API_KEY environment variable.");
149
- }
154
+ const client = this.requireClient();
150
155
  if (!CONFIG.geminiDeepResearchEnabled) {
151
156
  throw new Error("Deep Research is disabled. Set GEMINI_DEEP_RESEARCH_ENABLED=true to enable.");
152
157
  }
153
158
  log.info(`Starting deep research: ${options.query.substring(0, 50)}...`);
154
159
  try {
155
- // Start research in background - use 'as any' to handle SDK type strictness
156
- const response = await this.client.interactions.create({
160
+ const response = await client.interactions.create({
157
161
  input: options.query,
158
162
  agent: "deep-research-pro-preview-12-2025",
163
+ ...(options.thinkingLevel && {
164
+ generationConfig: { thinkingLevel: options.thinkingLevel },
165
+ }),
159
166
  background: options.background !== false,
160
167
  store: true,
161
168
  });
@@ -178,11 +185,9 @@ export class GeminiClient {
178
185
  * Get an existing interaction by ID
179
186
  */
180
187
  async getInteraction(interactionId) {
181
- if (!this.client) {
182
- throw new Error("Gemini API key not configured.");
183
- }
188
+ const client = this.requireClient();
184
189
  try {
185
- const response = await this.client.interactions.get(interactionId);
190
+ const response = await client.interactions.get(interactionId);
186
191
  return this.mapInteraction(response);
187
192
  }
188
193
  catch (error) {
@@ -241,11 +246,9 @@ export class GeminiClient {
241
246
  * Delete a stored interaction
242
247
  */
243
248
  async deleteInteraction(interactionId) {
244
- if (!this.client) {
245
- throw new Error("Gemini API key not configured.");
246
- }
249
+ const client = this.requireClient();
247
250
  try {
248
- await this.client.interactions.delete(interactionId);
251
+ await client.interactions.delete(interactionId);
249
252
  log.info(`Deleted interaction: ${interactionId}`);
250
253
  }
251
254
  catch (error) {
@@ -289,9 +292,7 @@ export class GeminiClient {
289
292
  * Large PDFs (>50MB or >1000 pages) are automatically chunked
290
293
  */
291
294
  async uploadDocument(options) {
292
- if (!this.client) {
293
- throw new Error("Gemini API key not configured. Set GEMINI_API_KEY environment variable.");
294
- }
295
+ const client = this.requireClient();
295
296
  const { filePath, displayName, mimeType } = options;
296
297
  // Verify file exists
297
298
  if (!fs.existsSync(filePath)) {
@@ -317,7 +318,7 @@ export class GeminiClient {
317
318
  log.info(`Uploading document: ${fileName} (${this.formatBytes(stats.size)})`);
318
319
  try {
319
320
  // Upload file using SDK
320
- const uploadResult = await this.client.files.upload({
321
+ const uploadResult = await client.files.upload({
321
322
  file: filePath,
322
323
  config: {
323
324
  displayName: fileName,
@@ -325,7 +326,11 @@ export class GeminiClient {
325
326
  },
326
327
  });
327
328
  // Poll for processing completion
328
- let file = await this.waitForFileProcessing(uploadResult.name);
329
+ const uploadedFileName = uploadResult.name;
330
+ if (!uploadedFileName) {
331
+ throw new Error("Files API upload response did not include a file name");
332
+ }
333
+ let file = await this.waitForFileProcessing(uploadedFileName);
329
334
  log.success(`Document uploaded: ${file.name}`);
330
335
  return {
331
336
  fileName: file.name,
@@ -360,7 +365,7 @@ export class GeminiClient {
360
365
  // Upload each chunk
361
366
  for (const chunk of chunkResult.chunks) {
362
367
  log.info(` Uploading chunk ${chunk.chunkIndex + 1}/${chunk.totalChunks} (pages ${chunk.pageStart}-${chunk.pageEnd})...`);
363
- const uploadResult = await this.client.files.upload({
368
+ const uploadResult = await this.requireClient().files.upload({
364
369
  file: chunk.filePath,
365
370
  config: {
366
371
  displayName: `${displayName} (Part ${chunk.chunkIndex + 1}/${chunk.totalChunks})`,
@@ -368,7 +373,11 @@ export class GeminiClient {
368
373
  },
369
374
  });
370
375
  // Wait for processing
371
- const file = await this.waitForFileProcessing(uploadResult.name);
376
+ const uploadedFileName = uploadResult.name;
377
+ if (!uploadedFileName) {
378
+ throw new Error("Files API upload response did not include a file name");
379
+ }
380
+ const file = await this.waitForFileProcessing(uploadedFileName);
372
381
  uploadedChunks.push({
373
382
  fileName: file.name,
374
383
  chunkIndex: chunk.chunkIndex,
@@ -428,11 +437,9 @@ export class GeminiClient {
428
437
  * Get file metadata
429
438
  */
430
439
  async getFile(fileName) {
431
- if (!this.client) {
432
- throw new Error("Gemini API key not configured.");
433
- }
440
+ const client = this.requireClient();
434
441
  try {
435
- const response = await this.client.files.get({ name: fileName });
442
+ const response = await client.files.get({ name: fileName });
436
443
  return this.mapFile(response);
437
444
  }
438
445
  catch (error) {
@@ -445,11 +452,9 @@ export class GeminiClient {
445
452
  * List all uploaded files
446
453
  */
447
454
  async listFiles(pageSize = 100, pageToken) {
448
- if (!this.client) {
449
- throw new Error("Gemini API key not configured.");
450
- }
455
+ const client = this.requireClient();
451
456
  try {
452
- const response = await this.client.files.list({
457
+ const response = await client.files.list({
453
458
  pageSize,
454
459
  pageToken,
455
460
  });
@@ -470,11 +475,9 @@ export class GeminiClient {
470
475
  * Delete an uploaded file
471
476
  */
472
477
  async deleteFile(fileName) {
473
- if (!this.client) {
474
- throw new Error("Gemini API key not configured.");
475
- }
478
+ const client = this.requireClient();
476
479
  try {
477
- await this.client.files.delete({ name: fileName });
480
+ await client.files.delete({ name: fileName });
478
481
  log.info(`Deleted file: ${fileName}`);
479
482
  }
480
483
  catch (error) {
@@ -487,11 +490,9 @@ export class GeminiClient {
487
490
  * Query an uploaded document
488
491
  */
489
492
  async queryDocument(options) {
490
- if (!this.client) {
491
- throw new Error("Gemini API key not configured. Set GEMINI_API_KEY environment variable.");
492
- }
493
+ const client = this.requireClient();
493
494
  const { fileName, query, model, additionalFiles, generationConfig } = options;
494
- const modelId = model || CONFIG.geminiDefaultModel || "gemini-2.5-flash";
495
+ const modelId = normalizeGeminiModel(model || CONFIG.geminiDefaultModel);
495
496
  log.info(`Querying document ${fileName}: ${query.substring(0, 50)}...`);
496
497
  try {
497
498
  // Get file metadata for URI
@@ -517,7 +518,7 @@ export class GeminiClient {
517
518
  }
518
519
  }
519
520
  // Generate content with the document
520
- const response = await this.client.models.generateContent({
521
+ const response = await client.models.generateContent({
521
522
  model: modelId,
522
523
  contents: [
523
524
  {
@@ -569,10 +570,10 @@ export class GeminiClient {
569
570
  return this.queryDocument({
570
571
  fileName: fileNames[0],
571
572
  query,
572
- model: options?.model,
573
+ model: normalizeGeminiModel(options?.model || CONFIG.geminiDefaultModel),
573
574
  });
574
575
  }
575
- const modelId = options?.model || CONFIG.geminiDefaultModel || "gemini-2.5-flash";
576
+ const modelId = normalizeGeminiModel(options?.model || CONFIG.geminiDefaultModel);
576
577
  log.info(`Querying ${fileNames.length} document chunks...`);
577
578
  // Query each chunk
578
579
  const chunkResults = [];
@@ -582,7 +583,7 @@ export class GeminiClient {
582
583
  const result = await this.queryDocument({
583
584
  fileName: fileNames[i],
584
585
  query,
585
- model: options?.model,
586
+ model: modelId,
586
587
  });
587
588
  chunkResults.push({
588
589
  chunkIndex: i,