@pan-sec/notebooklm-mcp 2026.3.3 → 2026.4.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 (466) hide show
  1. package/dist/auth/auth-manager.d.ts +0 -1
  2. package/dist/auth/auth-manager.js +0 -1
  3. package/dist/auth/mcp-auth.d.ts +0 -1
  4. package/dist/auth/mcp-auth.js +0 -1
  5. package/dist/compliance/alert-manager.d.ts +6 -2
  6. package/dist/compliance/alert-manager.js +40 -10
  7. package/dist/compliance/breach-detection.d.ts +0 -1
  8. package/dist/compliance/breach-detection.js +0 -1
  9. package/dist/compliance/change-log.d.ts +13 -1
  10. package/dist/compliance/change-log.js +82 -16
  11. package/dist/compliance/compliance-logger.d.ts +29 -3
  12. package/dist/compliance/compliance-logger.js +90 -27
  13. package/dist/compliance/compliance-tools.d.ts +0 -1
  14. package/dist/compliance/compliance-tools.js +0 -1
  15. package/dist/compliance/consent-manager.d.ts +0 -1
  16. package/dist/compliance/consent-manager.js +0 -1
  17. package/dist/compliance/dashboard.d.ts +4 -3
  18. package/dist/compliance/dashboard.js +11 -8
  19. package/dist/compliance/data-classification.d.ts +0 -1
  20. package/dist/compliance/data-classification.js +0 -1
  21. package/dist/compliance/data-erasure.d.ts +0 -1
  22. package/dist/compliance/data-erasure.js +0 -1
  23. package/dist/compliance/data-export.d.ts +0 -1
  24. package/dist/compliance/data-export.js +0 -1
  25. package/dist/compliance/data-inventory.d.ts +0 -1
  26. package/dist/compliance/data-inventory.js +0 -1
  27. package/dist/compliance/dsar-handler.d.ts +0 -1
  28. package/dist/compliance/dsar-handler.js +0 -1
  29. package/dist/compliance/evidence-collector.d.ts +0 -1
  30. package/dist/compliance/evidence-collector.js +4 -2
  31. package/dist/compliance/health-monitor.d.ts +0 -1
  32. package/dist/compliance/health-monitor.js +0 -1
  33. package/dist/compliance/incident-manager.d.ts +0 -1
  34. package/dist/compliance/incident-manager.js +0 -1
  35. package/dist/compliance/index.d.ts +0 -1
  36. package/dist/compliance/index.js +0 -1
  37. package/dist/compliance/policy-docs.d.ts +0 -1
  38. package/dist/compliance/policy-docs.js +0 -1
  39. package/dist/compliance/privacy-notice-text.d.ts +0 -1
  40. package/dist/compliance/privacy-notice-text.js +0 -1
  41. package/dist/compliance/privacy-notice.d.ts +0 -1
  42. package/dist/compliance/privacy-notice.js +0 -1
  43. package/dist/compliance/report-generator.d.ts +7 -1
  44. package/dist/compliance/report-generator.js +116 -34
  45. package/dist/compliance/retention-engine.d.ts +0 -1
  46. package/dist/compliance/retention-engine.js +0 -1
  47. package/dist/compliance/siem-exporter.d.ts +26 -2
  48. package/dist/compliance/siem-exporter.js +89 -24
  49. package/dist/compliance/types.d.ts +0 -1
  50. package/dist/compliance/types.js +0 -1
  51. package/dist/config.d.ts +0 -1
  52. package/dist/config.js +2 -3
  53. package/dist/errors.d.ts +0 -1
  54. package/dist/errors.js +0 -1
  55. package/dist/events/event-emitter.d.ts +9 -1
  56. package/dist/events/event-emitter.js +47 -8
  57. package/dist/events/event-types.d.ts +0 -1
  58. package/dist/events/event-types.js +8 -2
  59. package/dist/gemini/gemini-client.d.ts +0 -1
  60. package/dist/gemini/gemini-client.js +237 -45
  61. package/dist/gemini/index.d.ts +0 -1
  62. package/dist/gemini/index.js +0 -1
  63. package/dist/gemini/pdf-chunker.d.ts +0 -1
  64. package/dist/gemini/pdf-chunker.js +60 -35
  65. package/dist/gemini/types.d.ts +0 -1
  66. package/dist/gemini/types.js +0 -1
  67. package/dist/index.d.ts +0 -1
  68. package/dist/index.js +60 -7
  69. package/dist/library/notebook-library.d.ts +30 -2
  70. package/dist/library/notebook-library.js +345 -85
  71. package/dist/library/types.d.ts +0 -1
  72. package/dist/library/types.js +0 -1
  73. package/dist/logging/index.d.ts +0 -1
  74. package/dist/logging/index.js +0 -1
  75. package/dist/logging/query-logger.d.ts +20 -1
  76. package/dist/logging/query-logger.js +104 -21
  77. package/dist/notebook-creation/audio-manager.d.ts +0 -1
  78. package/dist/notebook-creation/audio-manager.js +111 -20
  79. package/dist/notebook-creation/browser-options.d.ts +0 -1
  80. package/dist/notebook-creation/browser-options.js +0 -1
  81. package/dist/notebook-creation/data-table-manager.d.ts +7 -1
  82. package/dist/notebook-creation/data-table-manager.js +59 -3
  83. package/dist/notebook-creation/dom-scripts.d.ts +0 -1
  84. package/dist/notebook-creation/dom-scripts.js +0 -1
  85. package/dist/notebook-creation/errors.d.ts +0 -1
  86. package/dist/notebook-creation/errors.js +0 -1
  87. package/dist/notebook-creation/index.d.ts +0 -1
  88. package/dist/notebook-creation/index.js +0 -1
  89. package/dist/notebook-creation/notebook-creator.d.ts +9 -1
  90. package/dist/notebook-creation/notebook-creator.js +50 -1
  91. package/dist/notebook-creation/notebook-nav.d.ts +0 -1
  92. package/dist/notebook-creation/notebook-nav.js +21 -6
  93. package/dist/notebook-creation/notebook-sync.d.ts +14 -2
  94. package/dist/notebook-creation/notebook-sync.js +124 -35
  95. package/dist/notebook-creation/selectors.d.ts +0 -1
  96. package/dist/notebook-creation/selectors.js +6 -4
  97. package/dist/notebook-creation/source-manager.d.ts +29 -2
  98. package/dist/notebook-creation/source-manager.js +0 -0
  99. package/dist/notebook-creation/types.d.ts +0 -1
  100. package/dist/notebook-creation/types.js +0 -1
  101. package/dist/notebook-creation/video-manager.d.ts +0 -1
  102. package/dist/notebook-creation/video-manager.js +91 -15
  103. package/dist/observability/metrics.d.ts +0 -1
  104. package/dist/observability/metrics.js +0 -1
  105. package/dist/quota/index.d.ts +0 -1
  106. package/dist/quota/index.js +0 -1
  107. package/dist/quota/quota-manager.d.ts +59 -4
  108. package/dist/quota/quota-manager.js +195 -46
  109. package/dist/resources/resource-handlers.d.ts +0 -1
  110. package/dist/resources/resource-handlers.js +33 -3
  111. package/dist/session/browser-session.d.ts +0 -1
  112. package/dist/session/browser-session.js +0 -1
  113. package/dist/session/session-manager.d.ts +0 -1
  114. package/dist/session/session-manager.js +0 -1
  115. package/dist/session/session-timeout.d.ts +0 -1
  116. package/dist/session/session-timeout.js +0 -1
  117. package/dist/session/shared-context-manager.d.ts +0 -1
  118. package/dist/session/shared-context-manager.js +0 -1
  119. package/dist/tools/annotations.d.ts +0 -1
  120. package/dist/tools/annotations.js +0 -1
  121. package/dist/tools/definitions/ask-question.d.ts +6 -3
  122. package/dist/tools/definitions/ask-question.js +12 -8
  123. package/dist/tools/definitions/chat-history.d.ts +0 -1
  124. package/dist/tools/definitions/chat-history.js +1 -1
  125. package/dist/tools/definitions/data-tables.d.ts +0 -1
  126. package/dist/tools/definitions/data-tables.js +4 -1
  127. package/dist/tools/definitions/gemini.d.ts +0 -1
  128. package/dist/tools/definitions/gemini.js +14 -7
  129. package/dist/tools/definitions/notebook-management.d.ts +0 -1
  130. package/dist/tools/definitions/notebook-management.js +7 -2
  131. package/dist/tools/definitions/query-history.d.ts +0 -1
  132. package/dist/tools/definitions/query-history.js +0 -1
  133. package/dist/tools/definitions/session-management.d.ts +0 -1
  134. package/dist/tools/definitions/session-management.js +0 -1
  135. package/dist/tools/definitions/system.d.ts +0 -1
  136. package/dist/tools/definitions/system.js +32 -12
  137. package/dist/tools/definitions/video.d.ts +0 -1
  138. package/dist/tools/definitions/video.js +6 -3
  139. package/dist/tools/definitions.d.ts +0 -1
  140. package/dist/tools/definitions.js +0 -1
  141. package/dist/tools/handlers/ask-question.d.ts +0 -1
  142. package/dist/tools/handlers/ask-question.js +47 -18
  143. package/dist/tools/handlers/audio-video.d.ts +0 -1
  144. package/dist/tools/handlers/audio-video.js +0 -1
  145. package/dist/tools/handlers/auth.d.ts +0 -1
  146. package/dist/tools/handlers/auth.js +0 -1
  147. package/dist/tools/handlers/error-utils.d.ts +0 -1
  148. package/dist/tools/handlers/error-utils.js +0 -1
  149. package/dist/tools/handlers/gemini.d.ts +0 -1
  150. package/dist/tools/handlers/gemini.js +0 -1
  151. package/dist/tools/handlers/index.d.ts +0 -1
  152. package/dist/tools/handlers/index.js +0 -1
  153. package/dist/tools/handlers/notebook-creation.d.ts +0 -1
  154. package/dist/tools/handlers/notebook-creation.js +16 -1
  155. package/dist/tools/handlers/notebook-management.d.ts +0 -1
  156. package/dist/tools/handlers/notebook-management.js +7 -2
  157. package/dist/tools/handlers/session-management.d.ts +0 -1
  158. package/dist/tools/handlers/session-management.js +0 -1
  159. package/dist/tools/handlers/system.d.ts +0 -1
  160. package/dist/tools/handlers/system.js +0 -1
  161. package/dist/tools/handlers/types.d.ts +0 -1
  162. package/dist/tools/handlers/types.js +0 -1
  163. package/dist/tools/handlers/webhooks.d.ts +0 -1
  164. package/dist/tools/handlers/webhooks.js +0 -1
  165. package/dist/tools/icons.d.ts +0 -1
  166. package/dist/tools/icons.js +0 -1
  167. package/dist/tools/index.d.ts +0 -1
  168. package/dist/tools/index.js +0 -1
  169. package/dist/types.d.ts +0 -1
  170. package/dist/types.js +0 -1
  171. package/dist/utils/audit-logger.d.ts +11 -1
  172. package/dist/utils/audit-logger.js +189 -21
  173. package/dist/utils/cleanup-manager.d.ts +0 -1
  174. package/dist/utils/cleanup-manager.js +0 -1
  175. package/dist/utils/cli-handler.d.ts +0 -1
  176. package/dist/utils/cli-handler.js +0 -1
  177. package/dist/utils/crypto.d.ts +18 -9
  178. package/dist/utils/crypto.js +93 -28
  179. package/dist/utils/file-lock.d.ts +15 -1
  180. package/dist/utils/file-lock.js +67 -59
  181. package/dist/utils/file-permissions.d.ts +0 -1
  182. package/dist/utils/file-permissions.js +35 -7
  183. package/dist/utils/logger.d.ts +0 -1
  184. package/dist/utils/logger.js +0 -1
  185. package/dist/utils/page-utils.d.ts +0 -1
  186. package/dist/utils/page-utils.js +32 -28
  187. package/dist/utils/response-validator.d.ts +0 -1
  188. package/dist/utils/response-validator.js +18 -15
  189. package/dist/utils/secrets-scanner.d.ts +0 -1
  190. package/dist/utils/secrets-scanner.js +32 -7
  191. package/dist/utils/secure-memory.d.ts +34 -16
  192. package/dist/utils/secure-memory.js +40 -25
  193. package/dist/utils/security.d.ts +0 -1
  194. package/dist/utils/security.js +66 -39
  195. package/dist/utils/settings-manager.d.ts +9 -1
  196. package/dist/utils/settings-manager.js +45 -2
  197. package/dist/utils/stealth-utils.d.ts +0 -1
  198. package/dist/utils/stealth-utils.js +11 -9
  199. package/dist/webhooks/index.d.ts +0 -1
  200. package/dist/webhooks/index.js +0 -1
  201. package/dist/webhooks/types.d.ts +0 -1
  202. package/dist/webhooks/types.js +0 -1
  203. package/dist/webhooks/webhook-dispatcher.d.ts +0 -1
  204. package/dist/webhooks/webhook-dispatcher.js +0 -1
  205. package/package.json +5 -4
  206. package/dist/auth/auth-manager.d.ts.map +0 -1
  207. package/dist/auth/auth-manager.js.map +0 -1
  208. package/dist/auth/mcp-auth.d.ts.map +0 -1
  209. package/dist/auth/mcp-auth.js.map +0 -1
  210. package/dist/compliance/alert-manager.d.ts.map +0 -1
  211. package/dist/compliance/alert-manager.js.map +0 -1
  212. package/dist/compliance/breach-detection.d.ts.map +0 -1
  213. package/dist/compliance/breach-detection.js.map +0 -1
  214. package/dist/compliance/change-log.d.ts.map +0 -1
  215. package/dist/compliance/change-log.js.map +0 -1
  216. package/dist/compliance/compliance-logger.d.ts.map +0 -1
  217. package/dist/compliance/compliance-logger.js.map +0 -1
  218. package/dist/compliance/compliance-tools.d.ts.map +0 -1
  219. package/dist/compliance/compliance-tools.js.map +0 -1
  220. package/dist/compliance/consent-manager.d.ts.map +0 -1
  221. package/dist/compliance/consent-manager.js.map +0 -1
  222. package/dist/compliance/dashboard.d.ts.map +0 -1
  223. package/dist/compliance/dashboard.js.map +0 -1
  224. package/dist/compliance/data-classification.d.ts.map +0 -1
  225. package/dist/compliance/data-classification.js.map +0 -1
  226. package/dist/compliance/data-erasure.d.ts.map +0 -1
  227. package/dist/compliance/data-erasure.js.map +0 -1
  228. package/dist/compliance/data-export.d.ts.map +0 -1
  229. package/dist/compliance/data-export.js.map +0 -1
  230. package/dist/compliance/data-inventory.d.ts.map +0 -1
  231. package/dist/compliance/data-inventory.js.map +0 -1
  232. package/dist/compliance/dsar-handler.d.ts.map +0 -1
  233. package/dist/compliance/dsar-handler.js.map +0 -1
  234. package/dist/compliance/evidence-collector.d.ts.map +0 -1
  235. package/dist/compliance/evidence-collector.js.map +0 -1
  236. package/dist/compliance/health-monitor.d.ts.map +0 -1
  237. package/dist/compliance/health-monitor.js.map +0 -1
  238. package/dist/compliance/incident-manager.d.ts.map +0 -1
  239. package/dist/compliance/incident-manager.js.map +0 -1
  240. package/dist/compliance/index.d.ts.map +0 -1
  241. package/dist/compliance/index.js.map +0 -1
  242. package/dist/compliance/policy-docs.d.ts.map +0 -1
  243. package/dist/compliance/policy-docs.js.map +0 -1
  244. package/dist/compliance/privacy-notice-text.d.ts.map +0 -1
  245. package/dist/compliance/privacy-notice-text.js.map +0 -1
  246. package/dist/compliance/privacy-notice.d.ts.map +0 -1
  247. package/dist/compliance/privacy-notice.js.map +0 -1
  248. package/dist/compliance/report-generator.d.ts.map +0 -1
  249. package/dist/compliance/report-generator.js.map +0 -1
  250. package/dist/compliance/retention-engine.d.ts.map +0 -1
  251. package/dist/compliance/retention-engine.js.map +0 -1
  252. package/dist/compliance/siem-exporter.d.ts.map +0 -1
  253. package/dist/compliance/siem-exporter.js.map +0 -1
  254. package/dist/compliance/types.d.ts.map +0 -1
  255. package/dist/compliance/types.js.map +0 -1
  256. package/dist/config.d.ts.map +0 -1
  257. package/dist/config.js.map +0 -1
  258. package/dist/errors.d.ts.map +0 -1
  259. package/dist/errors.js.map +0 -1
  260. package/dist/events/event-emitter.d.ts.map +0 -1
  261. package/dist/events/event-emitter.js.map +0 -1
  262. package/dist/events/event-types.d.ts.map +0 -1
  263. package/dist/events/event-types.js.map +0 -1
  264. package/dist/gemini/gemini-client.d.ts.map +0 -1
  265. package/dist/gemini/gemini-client.js.map +0 -1
  266. package/dist/gemini/index.d.ts.map +0 -1
  267. package/dist/gemini/index.js.map +0 -1
  268. package/dist/gemini/pdf-chunker.d.ts.map +0 -1
  269. package/dist/gemini/pdf-chunker.js.map +0 -1
  270. package/dist/gemini/types.d.ts.map +0 -1
  271. package/dist/gemini/types.js.map +0 -1
  272. package/dist/index.d.ts.map +0 -1
  273. package/dist/index.js.map +0 -1
  274. package/dist/library/notebook-library.d.ts.map +0 -1
  275. package/dist/library/notebook-library.js.map +0 -1
  276. package/dist/library/types.d.ts.map +0 -1
  277. package/dist/library/types.js.map +0 -1
  278. package/dist/logging/index.d.ts.map +0 -1
  279. package/dist/logging/index.js.map +0 -1
  280. package/dist/logging/query-logger.d.ts.map +0 -1
  281. package/dist/logging/query-logger.js.map +0 -1
  282. package/dist/notebook-creation/audio-manager.d.ts.map +0 -1
  283. package/dist/notebook-creation/audio-manager.js.map +0 -1
  284. package/dist/notebook-creation/browser-options.d.ts.map +0 -1
  285. package/dist/notebook-creation/browser-options.js.map +0 -1
  286. package/dist/notebook-creation/data-table-manager.d.ts.map +0 -1
  287. package/dist/notebook-creation/data-table-manager.js.map +0 -1
  288. package/dist/notebook-creation/discover-creation-flow.d.ts +0 -2
  289. package/dist/notebook-creation/discover-creation-flow.d.ts.map +0 -1
  290. package/dist/notebook-creation/discover-creation-flow.js +0 -177
  291. package/dist/notebook-creation/discover-creation-flow.js.map +0 -1
  292. package/dist/notebook-creation/discover-quota.d.ts +0 -2
  293. package/dist/notebook-creation/discover-quota.d.ts.map +0 -1
  294. package/dist/notebook-creation/discover-quota.js +0 -194
  295. package/dist/notebook-creation/discover-quota.js.map +0 -1
  296. package/dist/notebook-creation/discover-source-dialog.d.ts +0 -8
  297. package/dist/notebook-creation/discover-source-dialog.d.ts.map +0 -1
  298. package/dist/notebook-creation/discover-source-dialog.js +0 -134
  299. package/dist/notebook-creation/discover-source-dialog.js.map +0 -1
  300. package/dist/notebook-creation/discover-sources.d.ts +0 -8
  301. package/dist/notebook-creation/discover-sources.d.ts.map +0 -1
  302. package/dist/notebook-creation/discover-sources.js +0 -272
  303. package/dist/notebook-creation/discover-sources.js.map +0 -1
  304. package/dist/notebook-creation/discover-text-input.d.ts +0 -7
  305. package/dist/notebook-creation/discover-text-input.d.ts.map +0 -1
  306. package/dist/notebook-creation/discover-text-input.js +0 -135
  307. package/dist/notebook-creation/discover-text-input.js.map +0 -1
  308. package/dist/notebook-creation/dom-scripts.d.ts.map +0 -1
  309. package/dist/notebook-creation/dom-scripts.js.map +0 -1
  310. package/dist/notebook-creation/errors.d.ts.map +0 -1
  311. package/dist/notebook-creation/errors.js.map +0 -1
  312. package/dist/notebook-creation/index.d.ts.map +0 -1
  313. package/dist/notebook-creation/index.js.map +0 -1
  314. package/dist/notebook-creation/notebook-creator.d.ts.map +0 -1
  315. package/dist/notebook-creation/notebook-creator.js.map +0 -1
  316. package/dist/notebook-creation/notebook-nav.d.ts.map +0 -1
  317. package/dist/notebook-creation/notebook-nav.js.map +0 -1
  318. package/dist/notebook-creation/notebook-sync.d.ts.map +0 -1
  319. package/dist/notebook-creation/notebook-sync.js.map +0 -1
  320. package/dist/notebook-creation/run-discovery.d.ts +0 -11
  321. package/dist/notebook-creation/run-discovery.d.ts.map +0 -1
  322. package/dist/notebook-creation/run-discovery.js +0 -151
  323. package/dist/notebook-creation/run-discovery.js.map +0 -1
  324. package/dist/notebook-creation/selector-discovery.d.ts +0 -65
  325. package/dist/notebook-creation/selector-discovery.d.ts.map +0 -1
  326. package/dist/notebook-creation/selector-discovery.js +0 -414
  327. package/dist/notebook-creation/selector-discovery.js.map +0 -1
  328. package/dist/notebook-creation/selectors.d.ts.map +0 -1
  329. package/dist/notebook-creation/selectors.js.map +0 -1
  330. package/dist/notebook-creation/selectors.ts +0 -112
  331. package/dist/notebook-creation/source-manager.d.ts.map +0 -1
  332. package/dist/notebook-creation/source-manager.js.map +0 -1
  333. package/dist/notebook-creation/test-create.d.ts +0 -8
  334. package/dist/notebook-creation/test-create.d.ts.map +0 -1
  335. package/dist/notebook-creation/test-create.js +0 -72
  336. package/dist/notebook-creation/test-create.js.map +0 -1
  337. package/dist/notebook-creation/types.d.ts.map +0 -1
  338. package/dist/notebook-creation/types.js.map +0 -1
  339. package/dist/notebook-creation/video-manager.d.ts.map +0 -1
  340. package/dist/notebook-creation/video-manager.js.map +0 -1
  341. package/dist/observability/metrics.d.ts.map +0 -1
  342. package/dist/observability/metrics.js.map +0 -1
  343. package/dist/quota/index.d.ts.map +0 -1
  344. package/dist/quota/index.js.map +0 -1
  345. package/dist/quota/quota-manager.d.ts.map +0 -1
  346. package/dist/quota/quota-manager.js.map +0 -1
  347. package/dist/resources/resource-handlers.d.ts.map +0 -1
  348. package/dist/resources/resource-handlers.js.map +0 -1
  349. package/dist/session/browser-session.d.ts.map +0 -1
  350. package/dist/session/browser-session.js.map +0 -1
  351. package/dist/session/session-manager.d.ts.map +0 -1
  352. package/dist/session/session-manager.js.map +0 -1
  353. package/dist/session/session-timeout.d.ts.map +0 -1
  354. package/dist/session/session-timeout.js.map +0 -1
  355. package/dist/session/shared-context-manager.d.ts.map +0 -1
  356. package/dist/session/shared-context-manager.js.map +0 -1
  357. package/dist/tools/annotations.d.ts.map +0 -1
  358. package/dist/tools/annotations.js.map +0 -1
  359. package/dist/tools/definitions/ask-question.d.ts.map +0 -1
  360. package/dist/tools/definitions/ask-question.js.map +0 -1
  361. package/dist/tools/definitions/chat-history.d.ts.map +0 -1
  362. package/dist/tools/definitions/chat-history.js.map +0 -1
  363. package/dist/tools/definitions/data-tables.d.ts.map +0 -1
  364. package/dist/tools/definitions/data-tables.js.map +0 -1
  365. package/dist/tools/definitions/gemini.d.ts.map +0 -1
  366. package/dist/tools/definitions/gemini.js.map +0 -1
  367. package/dist/tools/definitions/notebook-management.d.ts.map +0 -1
  368. package/dist/tools/definitions/notebook-management.js.map +0 -1
  369. package/dist/tools/definitions/query-history.d.ts.map +0 -1
  370. package/dist/tools/definitions/query-history.js.map +0 -1
  371. package/dist/tools/definitions/session-management.d.ts.map +0 -1
  372. package/dist/tools/definitions/session-management.js.map +0 -1
  373. package/dist/tools/definitions/system.d.ts.map +0 -1
  374. package/dist/tools/definitions/system.js.map +0 -1
  375. package/dist/tools/definitions/video.d.ts.map +0 -1
  376. package/dist/tools/definitions/video.js.map +0 -1
  377. package/dist/tools/definitions.d.ts.map +0 -1
  378. package/dist/tools/definitions.js.map +0 -1
  379. package/dist/tools/handlers/ask-question.d.ts.map +0 -1
  380. package/dist/tools/handlers/ask-question.js.map +0 -1
  381. package/dist/tools/handlers/audio-video.d.ts.map +0 -1
  382. package/dist/tools/handlers/audio-video.js.map +0 -1
  383. package/dist/tools/handlers/auth.d.ts.map +0 -1
  384. package/dist/tools/handlers/auth.js.map +0 -1
  385. package/dist/tools/handlers/error-utils.d.ts.map +0 -1
  386. package/dist/tools/handlers/error-utils.js.map +0 -1
  387. package/dist/tools/handlers/gemini.d.ts.map +0 -1
  388. package/dist/tools/handlers/gemini.js.map +0 -1
  389. package/dist/tools/handlers/index.d.ts.map +0 -1
  390. package/dist/tools/handlers/index.js.map +0 -1
  391. package/dist/tools/handlers/notebook-creation.d.ts.map +0 -1
  392. package/dist/tools/handlers/notebook-creation.js.map +0 -1
  393. package/dist/tools/handlers/notebook-management.d.ts.map +0 -1
  394. package/dist/tools/handlers/notebook-management.js.map +0 -1
  395. package/dist/tools/handlers/session-management.d.ts.map +0 -1
  396. package/dist/tools/handlers/session-management.js.map +0 -1
  397. package/dist/tools/handlers/system.d.ts.map +0 -1
  398. package/dist/tools/handlers/system.js.map +0 -1
  399. package/dist/tools/handlers/types.d.ts.map +0 -1
  400. package/dist/tools/handlers/types.js.map +0 -1
  401. package/dist/tools/handlers/webhooks.d.ts.map +0 -1
  402. package/dist/tools/handlers/webhooks.js.map +0 -1
  403. package/dist/tools/handlers.d.ts +0 -666
  404. package/dist/tools/handlers.d.ts.map +0 -1
  405. package/dist/tools/handlers.js +0 -2929
  406. package/dist/tools/handlers.js.map +0 -1
  407. package/dist/tools/icons.d.ts.map +0 -1
  408. package/dist/tools/icons.js.map +0 -1
  409. package/dist/tools/index.d.ts.map +0 -1
  410. package/dist/tools/index.js.map +0 -1
  411. package/dist/types.d.ts.map +0 -1
  412. package/dist/types.js.map +0 -1
  413. package/dist/utils/audit-logger.d.ts.map +0 -1
  414. package/dist/utils/audit-logger.js.map +0 -1
  415. package/dist/utils/cert-pinning.d.ts +0 -97
  416. package/dist/utils/cert-pinning.d.ts.map +0 -1
  417. package/dist/utils/cert-pinning.js +0 -328
  418. package/dist/utils/cert-pinning.js.map +0 -1
  419. package/dist/utils/cleanup-manager.d.ts.map +0 -1
  420. package/dist/utils/cleanup-manager.js.map +0 -1
  421. package/dist/utils/cli-handler.d.ts.map +0 -1
  422. package/dist/utils/cli-handler.js.map +0 -1
  423. package/dist/utils/crypto.d.ts.map +0 -1
  424. package/dist/utils/crypto.js.map +0 -1
  425. package/dist/utils/file-lock.d.ts.map +0 -1
  426. package/dist/utils/file-lock.js.map +0 -1
  427. package/dist/utils/file-permissions.d.ts.map +0 -1
  428. package/dist/utils/file-permissions.js.map +0 -1
  429. package/dist/utils/logger.d.ts.map +0 -1
  430. package/dist/utils/logger.js.map +0 -1
  431. package/dist/utils/page-utils.d.ts.map +0 -1
  432. package/dist/utils/page-utils.js.map +0 -1
  433. package/dist/utils/response-validator.d.ts.map +0 -1
  434. package/dist/utils/response-validator.js.map +0 -1
  435. package/dist/utils/secrets-scanner.d.ts.map +0 -1
  436. package/dist/utils/secrets-scanner.js.map +0 -1
  437. package/dist/utils/secure-memory.d.ts.map +0 -1
  438. package/dist/utils/secure-memory.js.map +0 -1
  439. package/dist/utils/security.d.ts.map +0 -1
  440. package/dist/utils/security.js.map +0 -1
  441. package/dist/utils/settings-manager.d.ts.map +0 -1
  442. package/dist/utils/settings-manager.js.map +0 -1
  443. package/dist/utils/stealth-utils.d.ts.map +0 -1
  444. package/dist/utils/stealth-utils.js.map +0 -1
  445. package/dist/utils/tool-validation.d.ts +0 -93
  446. package/dist/utils/tool-validation.d.ts.map +0 -1
  447. package/dist/utils/tool-validation.js +0 -277
  448. package/dist/utils/tool-validation.js.map +0 -1
  449. package/dist/webhooks/index.d.ts.map +0 -1
  450. package/dist/webhooks/index.js.map +0 -1
  451. package/dist/webhooks/types.d.ts.map +0 -1
  452. package/dist/webhooks/types.js.map +0 -1
  453. package/dist/webhooks/webhook-dispatcher.d.ts.map +0 -1
  454. package/dist/webhooks/webhook-dispatcher.js.map +0 -1
  455. package/docs/COMPLIANCE-SPEC.md +0 -1452
  456. package/docs/MCP-DIRECTORY-LISTINGS.md +0 -91
  457. package/docs/SECURITY-FORK-OPPORTUNITIES.md +0 -79
  458. package/docs/SECURITY_IMPLEMENTATION_PLAN.md +0 -437
  459. package/docs/archive/ISSUES-legacy-2026-04-24.md +0 -644
  460. package/docs/configuration.md +0 -94
  461. package/docs/dependency-risk.md +0 -25
  462. package/docs/improvement-sprint-2026.2.10.md +0 -210
  463. package/docs/testing-runbook.md +0 -166
  464. package/docs/tools.md +0 -34
  465. package/docs/troubleshooting.md +0 -59
  466. package/docs/usage-guide.md +0 -246
@@ -22,6 +22,17 @@ export const GEMINI_LIMITS = {
22
22
  chunkPages: 500, // Pages per chunk
23
23
  chunkSizeBytes: 25 * 1024 * 1024, // 25MB target per chunk
24
24
  };
25
+ /**
26
+ * Hard DoS-protection ceilings. These are distinct from the chunking thresholds
27
+ * above (which decide *whether* to split a legitimately large file). A file
28
+ * above these ceilings is REJECTED outright — never read fully into memory or
29
+ * parsed — because an untrusted PDF (decompression bomb, deeply-nested object
30
+ * graph, absurd page count) can OOM the process from a single upload.
31
+ */
32
+ // Reject any file larger than this BEFORE reading it into memory.
33
+ const MAX_ACCEPTED_FILE_SIZE_BYTES = 200 * 1024 * 1024; // 200MB
34
+ // Reject any PDF with more pages than this AFTER load, before walking the graph.
35
+ const MAX_ACCEPTED_PAGES = 10000;
25
36
  /**
26
37
  * Analyze a PDF to determine if it needs chunking
27
38
  */
@@ -29,7 +40,12 @@ export async function analyzePdf(filePath) {
29
40
  const stats = await fs.promises.stat(filePath);
30
41
  const fileName = path.basename(filePath);
31
42
  const fileSize = stats.size;
32
- // Check file size first (quick check)
43
+ // DoS guard: reject absurdly large files BEFORE reading them into memory.
44
+ if (fileSize > MAX_ACCEPTED_FILE_SIZE_BYTES) {
45
+ throw new Error(`PDF rejected: file size ${formatBytes(fileSize)} exceeds the hard limit of ${formatBytes(MAX_ACCEPTED_FILE_SIZE_BYTES)}`);
46
+ }
47
+ // Files between the chunk threshold and the hard ceiling are legitimately
48
+ // large and get split into chunks (page count is unknown until read).
33
49
  if (fileSize > GEMINI_LIMITS.maxFileSizeBytes) {
34
50
  const estimatedChunks = Math.ceil(fileSize / GEMINI_LIMITS.chunkSizeBytes);
35
51
  return {
@@ -42,48 +58,48 @@ export async function analyzePdf(filePath) {
42
58
  reason: `File size ${formatBytes(fileSize)} exceeds 50MB limit`,
43
59
  };
44
60
  }
45
- // Read PDF to get page count
61
+ // Read PDF to get page count. Do NOT ignore encryption: refuse to decrypt
62
+ // hostile input. PDFDocument.load throws on encrypted documents when
63
+ // ignoreEncryption is false, which we treat as a fail-closed rejection below.
64
+ let pdfDoc;
46
65
  try {
47
66
  const pdfBytes = await fs.promises.readFile(filePath);
48
- const pdfDoc = await PDFDocument.load(pdfBytes, {
49
- ignoreEncryption: true,
67
+ pdfDoc = await PDFDocument.load(pdfBytes, {
68
+ ignoreEncryption: false,
50
69
  });
51
- const pageCount = pdfDoc.getPageCount();
52
- if (pageCount > GEMINI_LIMITS.maxPages) {
53
- const estimatedChunks = Math.ceil(pageCount / GEMINI_LIMITS.chunkPages);
54
- return {
55
- filePath,
56
- fileName,
57
- fileSize,
58
- pageCount,
59
- needsChunking: true,
60
- estimatedChunks,
61
- reason: `Page count ${pageCount} exceeds 1000 page limit`,
62
- };
63
- }
64
- return {
65
- filePath,
66
- fileName,
67
- fileSize,
68
- pageCount,
69
- needsChunking: false,
70
- estimatedChunks: 1,
71
- };
72
70
  }
73
71
  catch (error) {
74
- // If we can't read the PDF, assume it doesn't need chunking
75
- // and let Gemini handle the error
76
- log.warning(`Could not analyze PDF ${fileName}: ${error}`);
72
+ // FAIL CLOSED: an unparseable/encrypted/malformed PDF is rejected rather
73
+ // than passed downstream for Gemini to "handle".
74
+ const msg = error instanceof Error ? error.message : String(error);
75
+ log.warning(`Rejecting PDF ${fileName}: could not parse (it may be encrypted or malformed): ${msg}`);
76
+ throw new Error(`PDF rejected: could not parse (it may be encrypted or malformed): ${msg}`);
77
+ }
78
+ const pageCount = pdfDoc.getPageCount();
79
+ // DoS guard: reject PDFs with an absurd page count.
80
+ if (pageCount > MAX_ACCEPTED_PAGES) {
81
+ throw new Error(`PDF rejected: page count ${pageCount} exceeds the hard limit of ${MAX_ACCEPTED_PAGES}`);
82
+ }
83
+ if (pageCount > GEMINI_LIMITS.maxPages) {
84
+ const estimatedChunks = Math.ceil(pageCount / GEMINI_LIMITS.chunkPages);
77
85
  return {
78
86
  filePath,
79
87
  fileName,
80
88
  fileSize,
81
- pageCount: -1,
82
- needsChunking: false,
83
- estimatedChunks: 1,
84
- reason: `Could not analyze: ${error}`,
89
+ pageCount,
90
+ needsChunking: true,
91
+ estimatedChunks,
92
+ reason: `Page count ${pageCount} exceeds 1000 page limit`,
85
93
  };
86
94
  }
95
+ return {
96
+ filePath,
97
+ fileName,
98
+ fileSize,
99
+ pageCount,
100
+ needsChunking: false,
101
+ estimatedChunks: 1,
102
+ };
87
103
  }
88
104
  /**
89
105
  * Split a PDF into chunks
@@ -93,12 +109,22 @@ export async function chunkPdf(filePath) {
93
109
  const tempDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), "pdf-chunks-"));
94
110
  try {
95
111
  log.info(`Chunking PDF: ${filePath}`);
96
- // Read the original PDF
112
+ // DoS guard: reject absurdly large files BEFORE reading into memory.
113
+ const stats = await fs.promises.stat(filePath);
114
+ if (stats.size > MAX_ACCEPTED_FILE_SIZE_BYTES) {
115
+ throw new Error(`PDF rejected: file size ${formatBytes(stats.size)} exceeds the hard limit of ${formatBytes(MAX_ACCEPTED_FILE_SIZE_BYTES)}`);
116
+ }
117
+ // Read the original PDF. Do NOT ignore encryption: refuse to decrypt
118
+ // hostile input (load throws on encrypted PDFs when ignoreEncryption=false).
97
119
  const pdfBytes = await fs.promises.readFile(filePath);
98
120
  const pdfDoc = await PDFDocument.load(pdfBytes, {
99
- ignoreEncryption: true,
121
+ ignoreEncryption: false,
100
122
  });
101
123
  const totalPages = pdfDoc.getPageCount();
124
+ // DoS guard: reject PDFs with an absurd page count before walking the graph.
125
+ if (totalPages > MAX_ACCEPTED_PAGES) {
126
+ throw new Error(`PDF rejected: page count ${totalPages} exceeds the hard limit of ${MAX_ACCEPTED_PAGES}`);
127
+ }
102
128
  log.info(`PDF has ${totalPages} pages, splitting into chunks...`);
103
129
  const chunks = [];
104
130
  let currentPage = 0;
@@ -194,4 +220,3 @@ function formatBytes(bytes) {
194
220
  return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
195
221
  return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
196
222
  }
197
- //# sourceMappingURL=pdf-chunker.js.map
@@ -264,4 +264,3 @@ export interface ListDocumentsResult {
264
264
  /** Next page token (if more results) */
265
265
  nextPageToken?: string;
266
266
  }
267
- //# sourceMappingURL=types.d.ts.map
@@ -7,4 +7,3 @@
7
7
  * Deep Research agent ID
8
8
  */
9
9
  export const DEEP_RESEARCH_AGENT = "deep-research-pro-preview-12-2025";
10
- //# sourceMappingURL=types.js.map
package/dist/index.d.ts CHANGED
@@ -80,4 +80,3 @@ export declare class NotebookLMMCPServer {
80
80
  * Main entry point
81
81
  */
82
82
  export declare function main(): Promise<void>;
83
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -558,8 +558,10 @@ export class NotebookLMMCPServer {
558
558
  try {
559
559
  const breachDetector = getBreachDetector();
560
560
  getAuditLogger().onEvent(async (event) => {
561
- if (event.eventType !== "auth" && event.eventType !== "security")
562
- return;
561
+ // Forward ALL event types to checkEvent; it filters by event_pattern.
562
+ // A pre-filter on eventType dropped non-auth rules (secrets_detected in
563
+ // tool output, prompt_injection, data_export, encryption_error) before
564
+ // pattern matching, leaving those critical/high rules dead (M20).
563
565
  try {
564
566
  await breachDetector.checkEvent(event.eventName, event.details);
565
567
  }
@@ -575,11 +577,63 @@ export class NotebookLMMCPServer {
575
577
  // Pipe audit events to SIEM when enabled (I247). exportToSIEM is a no-op
576
578
  // when NLMCP_SIEM_ENABLED is not true.
577
579
  try {
580
+ // Event types whose SUCCESSFUL operations must still reach the SIEM so the
581
+ // tamper-evident external copy is complete (M21). Without flooring these to
582
+ // at least "warning", successful grant_consent / request_data_erasure /
583
+ // submit_dsar / config / retention events would map to "info" and be dropped
584
+ // by the default min_severity ("warning").
585
+ const SIEM_FLOOR_TYPES = new Set(["compliance", "data_access", "configuration", "retention"]);
586
+ // SIEM export crosses the local-only boundary asserted by the privacy notice
587
+ // ("Local device only"). audit-logger only sanitizes by KEY name, so free-text
588
+ // VALUES (and args_summary content) would egress raw PII to the external SIEM
589
+ // endpoint (L52). Value-scrub here before forwarding: drop known free-text PII
590
+ // fields to a short content hash + length marker, and truncate other long
591
+ // free-text values, so raw PII does not leave the host.
592
+ const SIEM_FREE_TEXT_PII_FIELDS = new Set([
593
+ "description", "reason", "details", "title", "question", "answer", "args_summary",
594
+ ]);
595
+ const SIEM_MAX_VALUE_LEN = 120;
596
+ const scrubValueForSIEM = (key, value) => {
597
+ if (typeof value === "string") {
598
+ if (SIEM_FREE_TEXT_PII_FIELDS.has(key.toLowerCase())) {
599
+ const digest = crypto.createHash("sha256").update(value).digest("hex").slice(0, 12);
600
+ return `[scrubbed sha256:${digest} len:${value.length}]`;
601
+ }
602
+ if (value.length > SIEM_MAX_VALUE_LEN) {
603
+ return `${value.slice(0, SIEM_MAX_VALUE_LEN)}…[truncated len:${value.length}]`;
604
+ }
605
+ return value;
606
+ }
607
+ if (Array.isArray(value)) {
608
+ return value.map((item) => scrubValueForSIEM(key, item));
609
+ }
610
+ if (value !== null && typeof value === "object") {
611
+ return scrubDetailsForSIEM(value);
612
+ }
613
+ return value;
614
+ };
615
+ const scrubDetailsForSIEM = (details) => {
616
+ const scrubbed = {};
617
+ for (const [key, value] of Object.entries(details)) {
618
+ scrubbed[key] = scrubValueForSIEM(key, value);
619
+ }
620
+ return scrubbed;
621
+ };
578
622
  getAuditLogger().onEvent(async (event) => {
579
- const severity = event.eventType === "security" && typeof event.details.severity === "string"
580
- ? event.details.severity
581
- : event.success ? "info" : "error";
582
- await exportToSIEM(event.eventType, event.eventName, severity, `${event.eventType}:${event.eventName}`, "audit-logger", event.details);
623
+ let severity;
624
+ if (event.eventType === "security" && typeof event.details.severity === "string") {
625
+ severity = event.details.severity;
626
+ }
627
+ else if (!event.success) {
628
+ severity = "error";
629
+ }
630
+ else if (SIEM_FLOOR_TYPES.has(event.eventType)) {
631
+ severity = "warning";
632
+ }
633
+ else {
634
+ severity = "info";
635
+ }
636
+ await exportToSIEM(event.eventType, event.eventName, severity, `${event.eventType}:${event.eventName}`, "audit-logger", scrubDetailsForSIEM(event.details));
583
637
  });
584
638
  log.info("📡 SIEM audit export bridge registered");
585
639
  }
@@ -730,4 +784,3 @@ if (isDirectRun) {
730
784
  else if (process.argv[1] && process.env.NLMCP_DEBUG) {
731
785
  log.debug(`entry-point guard: argv[1]=${process.argv[1]} did not resolve to ${import.meta.url} — main() skipped`);
732
786
  }
733
- //# sourceMappingURL=index.js.map
@@ -14,6 +14,8 @@ export declare class NotebookLibrary {
14
14
  private projectInfo;
15
15
  private useProjectLibrary;
16
16
  private saveTimer;
17
+ /** Pending use-count deltas keyed by notebook id, flushed by the debounced save. (M25) */
18
+ private pendingUseCounts;
17
19
  constructor(options?: {
18
20
  projectId?: string;
19
21
  useProjectLibrary?: boolean;
@@ -47,7 +49,24 @@ export declare class NotebookLibrary {
47
49
  */
48
50
  private saveLibrary;
49
51
  /**
50
- * Generate a unique ID from a string (slug format)
52
+ * Read the library file from disk without mutating in-memory state.
53
+ * Used inside the lock to pick up changes made by concurrent sessions. (M25)
54
+ */
55
+ private readLibraryFromDisk;
56
+ /**
57
+ * Atomically apply a read-modify-write to the library file.
58
+ *
59
+ * Holds a cross-process lock, reloads the latest library from disk (so a
60
+ * concurrent session's notebooks aren't clobbered), applies `mutate` to a
61
+ * deep copy, persists it, and only then commits it to this.library. If the
62
+ * write throws, this.library is left untouched. (M25)
63
+ */
64
+ private mutateLibrary;
65
+ /**
66
+ * Generate a unique ID from a string (slug format).
67
+ * Uniqueness is checked against the supplied library (defaults to the
68
+ * in-memory one) so callers inside mutateLibrary can de-dupe against the
69
+ * freshly-reloaded disk state. (M25)
51
70
  */
52
71
  private generateId;
53
72
  /**
@@ -86,6 +105,16 @@ export declare class NotebookLibrary {
86
105
  * Debounced save — avoids writing to disk on every single query
87
106
  */
88
107
  private debouncedSave;
108
+ /**
109
+ * Synchronously flush any pending debounced use-count updates to disk under
110
+ * the cross-process lock, re-applying the accumulated deltas to the latest
111
+ * on-disk library so concurrent sessions' notebooks and counts survive. (M25)
112
+ */
113
+ flushSave(): void;
114
+ /**
115
+ * Release resources: flush pending writes and detach shutdown handlers. (M25)
116
+ */
117
+ close(): void;
89
118
  /**
90
119
  * Get library statistics
91
120
  */
@@ -95,4 +124,3 @@ export declare class NotebookLibrary {
95
124
  */
96
125
  searchNotebooks(query: string): NotebookEntry[];
97
126
  }
98
- //# sourceMappingURL=notebook-library.d.ts.map