@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
@@ -26,7 +26,9 @@ export type { HandlerContext } from "./types.js";
26
26
  */
27
27
  export declare class ToolHandlers {
28
28
  private ctx;
29
+ private geminiClient;
29
30
  constructor(sessionManager: SessionManager, authManager: AuthManager, library: NotebookLibrary);
31
+ private getGeminiClient;
30
32
  handleAskQuestion(args: Parameters<typeof handleAskQuestion>[1], sendProgress?: ProgressCallback): Promise<import("../../types.js").ToolResult<import("../../types.js").AskQuestionResult>>;
31
33
  handleListSessions(): Promise<import("../../types.js").ToolResult<{
32
34
  active_sessions: number;
@@ -34,7 +36,7 @@ export declare class ToolHandlers {
34
36
  session_timeout: number;
35
37
  oldest_session_seconds: number;
36
38
  total_messages: number;
37
- sessions: Array<{
39
+ sessions: {
38
40
  id: string;
39
41
  created_at: number;
40
42
  last_activity: number;
@@ -42,7 +44,7 @@ export declare class ToolHandlers {
42
44
  inactive_seconds: number;
43
45
  message_count: number;
44
46
  notebook_url: string;
45
- }>;
47
+ }[];
46
48
  }>>;
47
49
  handleCloseSession(args: Parameters<typeof handleCloseSession>[1]): Promise<import("../../types.js").ToolResult<{
48
50
  status: string;
@@ -65,56 +67,46 @@ export declare class ToolHandlers {
65
67
  headless: boolean;
66
68
  auto_login_enabled: boolean;
67
69
  stealth_enabled: boolean;
68
- chat_ui_accessible?: boolean;
69
- deep_check_notebook?: string;
70
- troubleshooting_tip?: string;
71
- }>>;
72
- handleSetupAuth(args: Parameters<typeof handleSetupAuth>[1], sendProgress?: ProgressCallback): Promise<import("../../types.js").ToolResult<{
73
- status: string;
74
- message: string;
75
- authenticated: boolean;
76
- duration_seconds?: number;
77
- }>>;
78
- handleReAuth(args: Parameters<typeof handleReAuth>[1], sendProgress?: ProgressCallback): Promise<import("../../types.js").ToolResult<{
79
- status: string;
80
- message: string;
81
- authenticated: boolean;
82
- duration_seconds?: number;
70
+ chat_ui_accessible?: boolean | undefined;
71
+ deep_check_notebook?: string | undefined;
72
+ troubleshooting_tip?: string | undefined;
83
73
  }>>;
74
+ handleSetupAuth(args: Parameters<typeof handleSetupAuth>[1], sendProgress?: ProgressCallback): Promise<import("../../types.js").ToolResult<import("./auth.js").AuthResult>>;
75
+ handleReAuth(args: Parameters<typeof handleReAuth>[1], sendProgress?: ProgressCallback): Promise<import("../../types.js").ToolResult<import("./auth.js").AuthResult>>;
84
76
  handleAddNotebook(args: Parameters<typeof handleAddNotebook>[1]): Promise<import("../../types.js").ToolResult<{
85
- notebook: any;
77
+ notebook: import("../../library/types.js").NotebookEntry;
86
78
  }>>;
87
79
  handleListNotebooks(): Promise<import("../../types.js").ToolResult<{
88
- notebooks: any[];
80
+ notebooks: import("../../library/types.js").NotebookEntry[];
89
81
  }>>;
90
82
  handleGetNotebook(args: Parameters<typeof handleGetNotebook>[1]): Promise<import("../../types.js").ToolResult<{
91
- notebook: any;
83
+ notebook: import("../../library/types.js").NotebookEntry;
92
84
  }>>;
93
85
  handleSelectNotebook(args: Parameters<typeof handleSelectNotebook>[1]): Promise<import("../../types.js").ToolResult<{
94
- notebook: any;
86
+ notebook: import("../../library/types.js").NotebookEntry;
95
87
  }>>;
96
88
  handleUpdateNotebook(args: Parameters<typeof handleUpdateNotebook>[1]): Promise<import("../../types.js").ToolResult<{
97
- notebook: any;
89
+ notebook: import("../../library/types.js").NotebookEntry;
98
90
  }>>;
99
91
  handleRemoveNotebook(args: Parameters<typeof handleRemoveNotebook>[1]): Promise<import("../../types.js").ToolResult<{
100
92
  removed: boolean;
101
93
  closed_sessions: number;
102
94
  }>>;
103
95
  handleSearchNotebooks(args: Parameters<typeof handleSearchNotebooks>[1]): Promise<import("../../types.js").ToolResult<{
104
- notebooks: any[];
96
+ notebooks: import("../../library/types.js").NotebookEntry[];
105
97
  }>>;
106
- handleGetLibraryStats(): Promise<import("../../types.js").ToolResult<any>>;
98
+ handleGetLibraryStats(): Promise<import("../../types.js").ToolResult<import("../../library/types.js").LibraryStats>>;
107
99
  handleCreateNotebook(args: Parameters<typeof handleCreateNotebook>[1], sendProgress?: ProgressCallback): Promise<import("../../types.js").ToolResult<import("../../notebook-creation/types.js").CreatedNotebook>>;
108
100
  handleBatchCreateNotebooks(args: Parameters<typeof handleBatchCreateNotebooks>[1], sendProgress?: ProgressCallback): Promise<import("../../types.js").ToolResult<{
109
101
  total: number;
110
102
  succeeded: number;
111
103
  failed: number;
112
- results: Array<{
104
+ results: {
113
105
  name: string;
114
106
  success: boolean;
115
- url?: string;
116
- error?: string;
117
- }>;
107
+ url?: string | undefined;
108
+ error?: string | undefined;
109
+ }[];
118
110
  }>>;
119
111
  handleSyncLibrary(args: Parameters<typeof handleSyncLibrary>[1]): Promise<import("../../types.js").ToolResult<import("../../notebook-creation/notebook-sync.js").SyncResult>>;
120
112
  handleListSources(args: Parameters<typeof handleListSources>[1]): Promise<import("../../types.js").ToolResult<import("../../notebook-creation/source-manager.js").ListSourcesResult>>;
@@ -125,10 +117,10 @@ export declare class ToolHandlers {
125
117
  files_failed: number;
126
118
  files_skipped: number;
127
119
  notebooks_used: string[];
128
- failed_files: Array<{
120
+ failed_files: {
129
121
  file: string;
130
122
  error: string;
131
- }>;
123
+ }[];
132
124
  dry_run: boolean;
133
125
  }>>;
134
126
  handleRemoveSource(args: Parameters<typeof handleRemoveSource>[1]): Promise<import("../../types.js").ToolResult<import("../../notebook-creation/source-manager.js").RemoveSourceResult>>;
@@ -180,8 +172,8 @@ export declare class ToolHandlers {
180
172
  google_quota?: {
181
173
  used: number;
182
174
  limit: number;
183
- } | null;
184
- rate_limit_detected?: boolean;
175
+ } | null | undefined;
176
+ rate_limit_detected?: boolean | undefined;
185
177
  }>>;
186
178
  handleSetQuotaTier(args: Parameters<typeof handleSetQuotaTier>[1]): Promise<import("../../types.js").ToolResult<{
187
179
  tier: string;
@@ -196,16 +188,16 @@ export declare class ToolHandlers {
196
188
  status: string;
197
189
  mode: string;
198
190
  preview?: {
199
- categories: Array<{
191
+ categories: {
200
192
  name: string;
201
193
  description: string;
202
194
  paths: string[];
203
195
  totalBytes: number;
204
196
  optional: boolean;
205
- }>;
197
+ }[];
206
198
  totalPaths: number;
207
199
  totalSizeBytes: number;
208
- };
200
+ } | undefined;
209
201
  result?: {
210
202
  deletedPaths: string[];
211
203
  failedPaths: string[];
@@ -214,7 +206,7 @@ export declare class ToolHandlers {
214
206
  count: number;
215
207
  bytes: number;
216
208
  }>;
217
- };
209
+ } | undefined;
218
210
  }>>;
219
211
  handleGenerateAudioOverview(args: Parameters<typeof handleGenerateAudioOverview>[1]): Promise<import("../../types.js").ToolResult<import("../../notebook-creation/audio-manager.js").GenerateAudioResult>>;
220
212
  handleGetAudioStatus(args: Parameters<typeof handleGetAudioStatus>[1]): Promise<import("../../types.js").ToolResult<import("../../notebook-creation/audio-manager.js").AudioStatus>>;
@@ -249,19 +241,19 @@ export declare class ToolHandlers {
249
241
  handleQueryChunkedDocument(args: Parameters<typeof handleQueryChunkedDocument>[1]): Promise<import("../../types.js").ToolResult<{
250
242
  answer: string;
251
243
  model: string;
252
- tokensUsed?: number;
244
+ tokensUsed?: number | undefined;
253
245
  chunksQueried: number;
254
246
  filesUsed: string[];
255
247
  }>>;
256
248
  handleGetQueryHistory(args: Parameters<typeof handleGetQueryHistory>[1]): Promise<import("../../types.js").ToolResult<{
257
249
  count: number;
258
- queries: Array<{
250
+ queries: {
259
251
  timestamp: string;
260
252
  queryId: string;
261
253
  sessionId: string;
262
- notebookId?: string;
254
+ notebookId?: string | undefined;
263
255
  notebookUrl: string;
264
- notebookName?: string;
256
+ notebookName?: string | undefined;
265
257
  question: string;
266
258
  answer: string;
267
259
  answerLength: number;
@@ -272,23 +264,23 @@ export declare class ToolHandlers {
272
264
  remaining: number;
273
265
  tier: string;
274
266
  };
275
- }>;
267
+ }[];
276
268
  }>>;
277
269
  handleGetNotebookChatHistory(args: Parameters<typeof handleGetNotebookChatHistory>[1]): Promise<import("../../types.js").ToolResult<{
278
270
  notebook_url: string;
279
- notebook_name?: string;
271
+ notebook_name?: string | undefined;
280
272
  total_messages: number;
281
273
  returned_messages: number;
282
274
  user_messages: number;
283
275
  assistant_messages: number;
284
- offset?: number;
285
- has_more?: boolean;
286
- output_file?: string;
287
- messages?: Array<{
276
+ offset?: number | undefined;
277
+ has_more?: boolean | undefined;
278
+ output_file?: string | undefined;
279
+ messages?: {
288
280
  role: "user" | "assistant";
289
281
  content: string;
290
282
  index: number;
291
- }>;
283
+ }[] | undefined;
292
284
  }>>;
293
285
  cleanup(): Promise<void>;
294
286
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/index.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ import { handleExportLibrary, handleGetProjectInfo, handleGetQuota, handleSetQuo
16
16
  import { handleGenerateAudioOverview, handleGetAudioStatus, handleDownloadAudio, handleGenerateVideoOverview, handleGetVideoStatus, handleGenerateDataTable, handleGetDataTable, } from "./audio-video.js";
17
17
  import { handleConfigureWebhook, handleListWebhooks, handleTestWebhook, handleRemoveWebhook, } from "./webhooks.js";
18
18
  import { handleDeepResearch, handleGeminiQuery, handleGetResearchStatus, handleUploadDocument, handleQueryDocument, handleListDocuments, handleDeleteDocument, handleQueryChunkedDocument, handleGetQueryHistory, handleGetNotebookChatHistory, } from "./gemini.js";
19
+ const RATE_LIMIT_MAX_REQUESTS = 100;
20
+ const RATE_LIMIT_WINDOW_MS = 60000; // 1 minute
19
21
  /**
20
22
  * ToolHandlers — facade class that delegates to domain handler functions.
21
23
  *
@@ -24,15 +26,24 @@ import { handleDeepResearch, handleGeminiQuery, handleGetResearchStatus, handleU
24
26
  */
25
27
  export class ToolHandlers {
26
28
  ctx;
29
+ geminiClient = null;
27
30
  constructor(sessionManager, authManager, library) {
28
31
  this.ctx = {
29
32
  sessionManager,
30
33
  authManager,
31
34
  library,
32
- rateLimiter: new RateLimiter(100, 60000),
33
- geminiClient: new GeminiClient(),
35
+ rateLimiter: new RateLimiter(RATE_LIMIT_MAX_REQUESTS, RATE_LIMIT_WINDOW_MS),
36
+ getGeminiClient: () => this.getGeminiClient(),
34
37
  };
35
38
  }
39
+ getGeminiClient() {
40
+ const apiKey = process.env.GEMINI_API_KEY?.trim();
41
+ if (!apiKey) {
42
+ return null;
43
+ }
44
+ this.geminiClient ??= new GeminiClient(apiKey);
45
+ return this.geminiClient;
46
+ }
36
47
  // === Ask Question ===
37
48
  handleAskQuestion(args, sendProgress) {
38
49
  return handleAskQuestion(this.ctx, args, sendProgress);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/handlers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/handlers/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notebook-creation.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/notebook-creation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notebook-creation.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/notebook-creation.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { validateNotebookUrl } from "../../utils/security.js";
11
11
  import { getQuotaManager } from "../../quota/index.js";
12
12
  import { log } from "../../utils/logger.js";
13
13
  import { audit } from "../../utils/audit-logger.js";
14
+ import { getErrorAuditArgs, getSanitizedErrorMessage, } from "./error-utils.js";
14
15
  export async function handleCreateNotebook(ctx, args, sendProgress) {
15
16
  log.info(`🔧 [TOOL] create_notebook called`);
16
17
  log.info(` Name: ${args.name}`);
@@ -35,7 +36,8 @@ export async function handleCreateNotebook(ctx, args, sendProgress) {
35
36
  try {
36
37
  new URL(source.value);
37
38
  }
38
- catch {
39
+ catch (err) {
40
+ log.debug(`notebook-creation: validating source URL: ${err instanceof Error ? err.message : String(err)}`);
39
41
  throw new Error(`Invalid URL: ${source.value}`);
40
42
  }
41
43
  }
@@ -47,6 +49,7 @@ export async function handleCreateNotebook(ctx, args, sendProgress) {
47
49
  log.warning(`⚠️ Quota limit: ${canCreate.reason}`);
48
50
  return {
49
51
  success: false,
52
+ data: null,
50
53
  error: canCreate.reason || "Notebook quota limit reached",
51
54
  };
52
55
  }
@@ -57,6 +60,7 @@ export async function handleCreateNotebook(ctx, args, sendProgress) {
57
60
  log.warning(`⚠️ Quota limit: ${reason}`);
58
61
  return {
59
62
  success: false,
63
+ data: null,
60
64
  error: reason,
61
65
  };
62
66
  }
@@ -101,14 +105,12 @@ export async function handleCreateNotebook(ctx, args, sendProgress) {
101
105
  };
102
106
  }
103
107
  catch (error) {
104
- const errorMessage = error instanceof Error ? error.message : String(error);
108
+ const errorMessage = getSanitizedErrorMessage(error);
105
109
  log.error(`❌ [TOOL] create_notebook failed: ${errorMessage}`);
106
- await audit.tool("create_notebook", {
107
- name: args.name,
108
- error: errorMessage,
109
- }, false, 0, errorMessage);
110
+ await audit.tool("create_notebook", getErrorAuditArgs("create_notebook", errorMessage), false, 0, errorMessage);
110
111
  return {
111
112
  success: false,
113
+ data: null,
112
114
  error: errorMessage,
113
115
  };
114
116
  }
@@ -169,7 +171,7 @@ export async function handleBatchCreateNotebooks(ctx, args, sendProgress) {
169
171
  }
170
172
  }
171
173
  catch (error) {
172
- const errorMessage = error instanceof Error ? error.message : String(error);
174
+ const errorMessage = getSanitizedErrorMessage(error);
173
175
  results.push({
174
176
  name: notebook.name,
175
177
  success: false,
@@ -201,10 +203,11 @@ export async function handleBatchCreateNotebooks(ctx, args, sendProgress) {
201
203
  };
202
204
  }
203
205
  catch (error) {
204
- const errorMessage = error instanceof Error ? error.message : String(error);
206
+ const errorMessage = getSanitizedErrorMessage(error);
205
207
  log.error(`❌ [TOOL] batch_create_notebooks failed: ${errorMessage}`);
206
208
  return {
207
209
  success: false,
210
+ data: null,
208
211
  error: errorMessage,
209
212
  };
210
213
  }
@@ -236,13 +239,12 @@ export async function handleSyncLibrary(ctx, args) {
236
239
  };
237
240
  }
238
241
  catch (error) {
239
- const errorMessage = error instanceof Error ? error.message : String(error);
242
+ const errorMessage = getSanitizedErrorMessage(error);
240
243
  log.error(`❌ [TOOL] sync_library failed: ${errorMessage}`);
241
- await audit.tool("sync_library", {
242
- error: errorMessage,
243
- }, false, 0, errorMessage);
244
+ await audit.tool("sync_library", getErrorAuditArgs("sync_library", errorMessage), false, 0, errorMessage);
244
245
  return {
245
246
  success: false,
247
+ data: null,
246
248
  error: errorMessage,
247
249
  };
248
250
  }
@@ -284,10 +286,11 @@ export async function handleListSources(ctx, args) {
284
286
  };
285
287
  }
286
288
  catch (error) {
287
- const errorMessage = error instanceof Error ? error.message : String(error);
289
+ const errorMessage = getSanitizedErrorMessage(error);
288
290
  log.error(`❌ [TOOL] list_sources failed: ${errorMessage}`);
289
291
  return {
290
292
  success: false,
293
+ data: null,
291
294
  error: errorMessage,
292
295
  };
293
296
  }
@@ -343,18 +346,92 @@ export async function handleAddSource(ctx, args) {
343
346
  };
344
347
  }
345
348
  catch (error) {
346
- const errorMessage = error instanceof Error ? error.message : String(error);
349
+ const errorMessage = getSanitizedErrorMessage(error);
347
350
  log.error(`❌ [TOOL] add_source failed: ${errorMessage}`);
348
351
  return {
349
352
  success: false,
353
+ data: null,
350
354
  error: errorMessage,
351
355
  };
352
356
  }
353
357
  }
358
+ /**
359
+ * Resolve `add_folder` input path and enforce the allowlist/denylist.
360
+ *
361
+ * - Allowlist: `NLMCP_FOLDER_ALLOWLIST` (colon-separated absolute paths).
362
+ * Defaults to the user's home directory when unset.
363
+ * - Denylist: paths that touch common credential/config dirs are rejected
364
+ * even when inside an allowed base (defence in depth).
365
+ *
366
+ * Rationale: `add_folder` uploads every file it finds to Google's NotebookLM.
367
+ * Without constraints an authenticated caller can exfiltrate SSH keys,
368
+ * cloud credentials, or kernel interfaces via a legitimate-looking user
369
+ * action. See ISSUES.md:I316.
370
+ */
371
+ async function resolveFolderPath(userPath) {
372
+ const path = await import("path");
373
+ const os = await import("os");
374
+ if (!userPath || userPath.trim().length === 0) {
375
+ throw new Error("folder_path is required");
376
+ }
377
+ const resolved = path.resolve(userPath);
378
+ // Allowlist.
379
+ const envList = process.env.NLMCP_FOLDER_ALLOWLIST?.trim();
380
+ const allowedBases = envList && envList.length > 0
381
+ ? envList.split(":").map((p) => path.resolve(p.trim())).filter((p) => p.length > 0)
382
+ : [path.resolve(os.homedir())];
383
+ const inAllowedBase = allowedBases.some((base) => {
384
+ const rel = path.relative(base, resolved);
385
+ return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
386
+ });
387
+ if (!inAllowedBase) {
388
+ throw new Error(`folder_path must be inside one of: ${allowedBases.join(", ")}. ` +
389
+ `Set NLMCP_FOLDER_ALLOWLIST to extend the list.`);
390
+ }
391
+ // Denylist (sensitive subpaths — checked after allowlist).
392
+ const deniedSegments = [
393
+ ".ssh",
394
+ ".aws",
395
+ ".gnupg",
396
+ ".docker",
397
+ ".kube",
398
+ ".config/gcloud",
399
+ ".config/git",
400
+ ".netrc",
401
+ ".npmrc",
402
+ ".mcpregistry_github_token",
403
+ ".mcpregistry_registry_token",
404
+ ];
405
+ const deniedAbsolute = ["/etc", "/root", "/proc", "/sys", "/var/log"];
406
+ const segments = resolved.split(path.sep);
407
+ for (const denied of deniedSegments) {
408
+ const parts = denied.split("/");
409
+ for (let i = 0; i <= segments.length - parts.length; i++) {
410
+ if (parts.every((p, j) => segments[i + j] === p)) {
411
+ throw new Error(`folder_path traverses a sensitive directory (${denied}); refusing to upload.`);
412
+ }
413
+ }
414
+ }
415
+ for (const denied of deniedAbsolute) {
416
+ if (resolved === denied || resolved.startsWith(denied + path.sep)) {
417
+ throw new Error(`folder_path is inside a protected system directory (${denied}); refusing to upload.`);
418
+ }
419
+ }
420
+ return resolved;
421
+ }
354
422
  export async function handleAddFolder(ctx, args, sendProgress) {
355
423
  const { promises: fs } = await import("fs");
356
424
  const path = await import("path");
357
- const folderPath = args.folder_path;
425
+ // Validate and resolve first so the denylist runs before any filesystem read.
426
+ let folderPath;
427
+ try {
428
+ folderPath = await resolveFolderPath(args.folder_path);
429
+ }
430
+ catch (error) {
431
+ const errorMessage = getSanitizedErrorMessage(error);
432
+ log.error(`❌ [TOOL] add_folder failed: ${errorMessage}`);
433
+ return { success: false, data: null, error: errorMessage };
434
+ }
358
435
  const recursive = args.recursive ?? false;
359
436
  const dryRun = args.dry_run ?? false;
360
437
  const fileTypes = (args.file_types ?? [".pdf", ".txt", ".md", ".docx"]).map((e) => e.startsWith(".") ? e.toLowerCase() : `.${e.toLowerCase()}`);
@@ -369,7 +446,8 @@ export async function handleAddFolder(ctx, args, sendProgress) {
369
446
  try {
370
447
  stat = await fs.stat(folderPath);
371
448
  }
372
- catch {
449
+ catch (err) {
450
+ log.debug(`notebook-creation: stat-ing folder path in bulk create handler: ${err instanceof Error ? err.message : String(err)}`);
373
451
  throw new Error(`Folder not found: ${folderPath}`);
374
452
  }
375
453
  if (!stat.isDirectory()) {
@@ -509,7 +587,7 @@ export async function handleAddFolder(ctx, args, sendProgress) {
509
587
  }
510
588
  }
511
589
  catch (err) {
512
- const msg = err instanceof Error ? err.message : String(err);
590
+ const msg = getSanitizedErrorMessage(err);
513
591
  failedFiles.push({ file: filePath, error: msg });
514
592
  log.warning(` ⚠️ Error: ${fileName} — ${msg}`);
515
593
  }
@@ -534,9 +612,9 @@ export async function handleAddFolder(ctx, args, sendProgress) {
534
612
  };
535
613
  }
536
614
  catch (error) {
537
- const errorMessage = error instanceof Error ? error.message : String(error);
615
+ const errorMessage = getSanitizedErrorMessage(error);
538
616
  log.error(`❌ [TOOL] add_folder failed: ${errorMessage}`);
539
- return { success: false, error: errorMessage };
617
+ return { success: false, data: null, error: errorMessage };
540
618
  }
541
619
  }
542
620
  export async function handleRemoveSource(ctx, args) {
@@ -587,10 +665,11 @@ export async function handleRemoveSource(ctx, args) {
587
665
  };
588
666
  }
589
667
  catch (error) {
590
- const errorMessage = error instanceof Error ? error.message : String(error);
668
+ const errorMessage = getSanitizedErrorMessage(error);
591
669
  log.error(`❌ [TOOL] remove_source failed: ${errorMessage}`);
592
670
  return {
593
671
  success: false,
672
+ data: null,
594
673
  error: errorMessage,
595
674
  };
596
675
  }