@pan-sec/notebooklm-mcp 1.6.0 → 1.8.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 (134) hide show
  1. package/dist/config.d.ts +4 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +10 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/events/event-emitter.d.ts +45 -0
  6. package/dist/events/event-emitter.d.ts.map +1 -0
  7. package/dist/events/event-emitter.js +100 -0
  8. package/dist/events/event-emitter.js.map +1 -0
  9. package/dist/events/event-types.d.ts +124 -0
  10. package/dist/events/event-types.d.ts.map +1 -0
  11. package/dist/events/event-types.js +18 -0
  12. package/dist/events/event-types.js.map +1 -0
  13. package/dist/gemini/gemini-client.d.ts +45 -0
  14. package/dist/gemini/gemini-client.d.ts.map +1 -0
  15. package/dist/gemini/gemini-client.js +211 -0
  16. package/dist/gemini/gemini-client.js.map +1 -0
  17. package/dist/gemini/index.d.ts +8 -0
  18. package/dist/gemini/index.d.ts.map +1 -0
  19. package/dist/gemini/index.js +8 -0
  20. package/dist/gemini/index.js.map +1 -0
  21. package/dist/gemini/types.d.ts +136 -0
  22. package/dist/gemini/types.d.ts.map +1 -0
  23. package/dist/gemini/types.js +10 -0
  24. package/dist/gemini/types.js.map +1 -0
  25. package/dist/index.js +76 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/library/notebook-library.d.ts +25 -2
  28. package/dist/library/notebook-library.d.ts.map +1 -1
  29. package/dist/library/notebook-library.js +142 -2
  30. package/dist/library/notebook-library.js.map +1 -1
  31. package/dist/library/types.d.ts +15 -0
  32. package/dist/library/types.d.ts.map +1 -1
  33. package/dist/notebook-creation/audio-manager.d.ts +56 -0
  34. package/dist/notebook-creation/audio-manager.d.ts.map +1 -0
  35. package/dist/notebook-creation/audio-manager.js +335 -0
  36. package/dist/notebook-creation/audio-manager.js.map +1 -0
  37. package/dist/notebook-creation/discover-creation-flow.d.ts +8 -0
  38. package/dist/notebook-creation/discover-creation-flow.d.ts.map +1 -0
  39. package/dist/notebook-creation/discover-creation-flow.js +177 -0
  40. package/dist/notebook-creation/discover-creation-flow.js.map +1 -0
  41. package/dist/notebook-creation/discover-quota.d.ts +8 -0
  42. package/dist/notebook-creation/discover-quota.d.ts.map +1 -0
  43. package/dist/notebook-creation/discover-quota.js +195 -0
  44. package/dist/notebook-creation/discover-quota.js.map +1 -0
  45. package/dist/notebook-creation/discover-source-dialog.d.ts +8 -0
  46. package/dist/notebook-creation/discover-source-dialog.d.ts.map +1 -0
  47. package/dist/notebook-creation/discover-source-dialog.js +134 -0
  48. package/dist/notebook-creation/discover-source-dialog.js.map +1 -0
  49. package/dist/notebook-creation/discover-sources.d.ts +8 -0
  50. package/dist/notebook-creation/discover-sources.d.ts.map +1 -0
  51. package/dist/notebook-creation/discover-sources.js +273 -0
  52. package/dist/notebook-creation/discover-sources.js.map +1 -0
  53. package/dist/notebook-creation/discover-text-input.d.ts +7 -0
  54. package/dist/notebook-creation/discover-text-input.d.ts.map +1 -0
  55. package/dist/notebook-creation/discover-text-input.js +135 -0
  56. package/dist/notebook-creation/discover-text-input.js.map +1 -0
  57. package/dist/notebook-creation/index.d.ts +12 -0
  58. package/dist/notebook-creation/index.d.ts.map +1 -0
  59. package/dist/notebook-creation/index.js +12 -0
  60. package/dist/notebook-creation/index.js.map +1 -0
  61. package/dist/notebook-creation/notebook-creator.d.ts +95 -0
  62. package/dist/notebook-creation/notebook-creator.d.ts.map +1 -0
  63. package/dist/notebook-creation/notebook-creator.js +689 -0
  64. package/dist/notebook-creation/notebook-creator.js.map +1 -0
  65. package/dist/notebook-creation/notebook-sync.d.ts +93 -0
  66. package/dist/notebook-creation/notebook-sync.d.ts.map +1 -0
  67. package/dist/notebook-creation/notebook-sync.js +370 -0
  68. package/dist/notebook-creation/notebook-sync.js.map +1 -0
  69. package/dist/notebook-creation/run-discovery.d.ts +11 -0
  70. package/dist/notebook-creation/run-discovery.d.ts.map +1 -0
  71. package/dist/notebook-creation/run-discovery.js +151 -0
  72. package/dist/notebook-creation/run-discovery.js.map +1 -0
  73. package/dist/notebook-creation/selector-discovery.d.ts +65 -0
  74. package/dist/notebook-creation/selector-discovery.d.ts.map +1 -0
  75. package/dist/notebook-creation/selector-discovery.js +421 -0
  76. package/dist/notebook-creation/selector-discovery.js.map +1 -0
  77. package/dist/notebook-creation/selectors.d.ts +150 -0
  78. package/dist/notebook-creation/selectors.d.ts.map +1 -0
  79. package/dist/notebook-creation/selectors.js +225 -0
  80. package/dist/notebook-creation/selectors.js.map +1 -0
  81. package/dist/notebook-creation/source-manager.d.ts +73 -0
  82. package/dist/notebook-creation/source-manager.d.ts.map +1 -0
  83. package/dist/notebook-creation/source-manager.js +486 -0
  84. package/dist/notebook-creation/source-manager.js.map +1 -0
  85. package/dist/notebook-creation/test-create.d.ts +8 -0
  86. package/dist/notebook-creation/test-create.d.ts.map +1 -0
  87. package/dist/notebook-creation/test-create.js +72 -0
  88. package/dist/notebook-creation/test-create.js.map +1 -0
  89. package/dist/notebook-creation/types.d.ts +173 -0
  90. package/dist/notebook-creation/types.d.ts.map +1 -0
  91. package/dist/notebook-creation/types.js +5 -0
  92. package/dist/notebook-creation/types.js.map +1 -0
  93. package/dist/quota/index.d.ts +8 -0
  94. package/dist/quota/index.d.ts.map +1 -0
  95. package/dist/quota/index.js +8 -0
  96. package/dist/quota/index.js.map +1 -0
  97. package/dist/quota/quota-manager.d.ts +125 -0
  98. package/dist/quota/quota-manager.d.ts.map +1 -0
  99. package/dist/quota/quota-manager.js +330 -0
  100. package/dist/quota/quota-manager.js.map +1 -0
  101. package/dist/session/session-manager.d.ts +5 -0
  102. package/dist/session/session-manager.d.ts.map +1 -1
  103. package/dist/session/session-manager.js +6 -0
  104. package/dist/session/session-manager.js.map +1 -1
  105. package/dist/tools/definitions/gemini.d.ts +12 -0
  106. package/dist/tools/definitions/gemini.d.ts.map +1 -0
  107. package/dist/tools/definitions/gemini.js +135 -0
  108. package/dist/tools/definitions/gemini.js.map +1 -0
  109. package/dist/tools/definitions/notebook-management.d.ts.map +1 -1
  110. package/dist/tools/definitions/notebook-management.js +525 -0
  111. package/dist/tools/definitions/notebook-management.js.map +1 -1
  112. package/dist/tools/definitions/system.d.ts.map +1 -1
  113. package/dist/tools/definitions/system.js +158 -0
  114. package/dist/tools/definitions/system.js.map +1 -1
  115. package/dist/tools/definitions.d.ts.map +1 -1
  116. package/dist/tools/definitions.js +2 -0
  117. package/dist/tools/definitions.js.map +1 -1
  118. package/dist/tools/handlers.d.ts +257 -0
  119. package/dist/tools/handlers.d.ts.map +1 -1
  120. package/dist/tools/handlers.js +1097 -0
  121. package/dist/tools/handlers.js.map +1 -1
  122. package/dist/webhooks/index.d.ts +8 -0
  123. package/dist/webhooks/index.d.ts.map +1 -0
  124. package/dist/webhooks/index.js +8 -0
  125. package/dist/webhooks/index.js.map +1 -0
  126. package/dist/webhooks/types.d.ts +57 -0
  127. package/dist/webhooks/types.d.ts.map +1 -0
  128. package/dist/webhooks/types.js +5 -0
  129. package/dist/webhooks/types.js.map +1 -0
  130. package/dist/webhooks/webhook-dispatcher.d.ts +120 -0
  131. package/dist/webhooks/webhook-dispatcher.d.ts.map +1 -0
  132. package/dist/webhooks/webhook-dispatcher.js +519 -0
  133. package/dist/webhooks/webhook-dispatcher.js.map +1 -0
  134. package/package.json +2 -1
package/dist/config.d.ts CHANGED
@@ -50,6 +50,10 @@ export interface Config {
50
50
  cleanupInstancesOnShutdown: boolean;
51
51
  instanceProfileTtlHours: number;
52
52
  instanceProfileMaxCount: number;
53
+ geminiApiKey: string | null;
54
+ geminiDefaultModel: string;
55
+ geminiDeepResearchEnabled: boolean;
56
+ geminiTimeoutMs: number;
53
57
  }
54
58
  /**
55
59
  * Global configuration instance
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,mJACkH,CAAC;AAEnJ,MAAM,WAAW,MAAM;IAErB,WAAW,EAAE,MAAM,CAAC;IAGpB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAG5C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IAGvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAG3B,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,sBAAsB,EAAE,OAAO,CAAC;IAChC,yBAAyB,EAAE,OAAO,CAAC;IACnC,0BAA0B,EAAE,OAAO,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAmID;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAsB,CAAC;AAE5C;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAaxC;AAGD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,cAAc,EACxB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,MAAM,CAuCR"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,mJACkH,CAAC;AAEnJ,MAAM,WAAW,MAAM;IAErB,WAAW,EAAE,MAAM,CAAC;IAGpB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAG5C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IAGvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAG3B,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,sBAAsB,EAAE,OAAO,CAAC;IAChC,yBAAyB,EAAE,OAAO,CAAC;IACnC,0BAA0B,EAAE,OAAO,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAGhC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,OAAO,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;CACzB;AA+ID;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAsB,CAAC;AAE5C;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAaxC;AAGD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,cAAc,EACxB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,MAAM,CAuCR"}
package/dist/config.js CHANGED
@@ -68,6 +68,11 @@ const DEFAULTS = {
68
68
  cleanupInstancesOnShutdown: true,
69
69
  instanceProfileTtlHours: 72,
70
70
  instanceProfileMaxCount: 20,
71
+ // Gemini API defaults
72
+ geminiApiKey: null,
73
+ geminiDefaultModel: "gemini-2.5-flash",
74
+ geminiDeepResearchEnabled: true,
75
+ geminiTimeoutMs: 30000,
71
76
  };
72
77
  /**
73
78
  * Parse boolean from string (for env vars)
@@ -133,6 +138,11 @@ function applyEnvOverrides(config) {
133
138
  cleanupInstancesOnShutdown: parseBoolean(process.env.NOTEBOOK_CLEANUP_ON_SHUTDOWN, config.cleanupInstancesOnShutdown),
134
139
  instanceProfileTtlHours: parseInteger(process.env.NOTEBOOK_INSTANCE_TTL_HOURS, config.instanceProfileTtlHours),
135
140
  instanceProfileMaxCount: parseInteger(process.env.NOTEBOOK_INSTANCE_MAX_COUNT, config.instanceProfileMaxCount),
141
+ // Gemini API
142
+ geminiApiKey: process.env.GEMINI_API_KEY || config.geminiApiKey,
143
+ geminiDefaultModel: process.env.GEMINI_DEFAULT_MODEL || config.geminiDefaultModel,
144
+ geminiDeepResearchEnabled: parseBoolean(process.env.GEMINI_DEEP_RESEARCH_ENABLED, config.geminiDeepResearchEnabled),
145
+ geminiTimeoutMs: parseInteger(process.env.GEMINI_TIMEOUT_MS, config.geminiTimeoutMs),
136
146
  };
137
147
  }
138
148
  /**
@@ -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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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Event Emitter for NotebookLM MCP
3
+ *
4
+ * Central event bus for system-wide events.
5
+ * Events can trigger webhook notifications, logging, or other actions.
6
+ */
7
+ import type { SystemEvent, EventType } from "./event-types.js";
8
+ export type EventHandler = (event: SystemEvent) => void | Promise<void>;
9
+ declare class EventEmitter {
10
+ private handlers;
11
+ private eventHistory;
12
+ private maxHistorySize;
13
+ /**
14
+ * Subscribe to an event type
15
+ */
16
+ on(eventType: EventType | "*", handler: EventHandler): () => void;
17
+ /**
18
+ * Subscribe to an event type (one-time only)
19
+ */
20
+ once(eventType: EventType | "*", handler: EventHandler): () => void;
21
+ /**
22
+ * Emit an event
23
+ */
24
+ emit(event: SystemEvent): Promise<void>;
25
+ /**
26
+ * Get recent events
27
+ */
28
+ getHistory(limit?: number): SystemEvent[];
29
+ /**
30
+ * Get events by type
31
+ */
32
+ getEventsByType(eventType: EventType, limit?: number): SystemEvent[];
33
+ /**
34
+ * Clear event history
35
+ */
36
+ clearHistory(): void;
37
+ /**
38
+ * Get handler count for debugging
39
+ */
40
+ getHandlerCount(): Record<string, number>;
41
+ }
42
+ declare const eventEmitter: EventEmitter;
43
+ export { eventEmitter };
44
+ export default eventEmitter;
45
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/events/event-emitter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExE,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAO;IAE7B;;OAEG;IACH,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAgBjE;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAUnE;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7C;;OAEG;IACH,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE;IAKzC;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE;IAKpE;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAO1C;AAGD,QAAA,MAAM,YAAY,cAAqB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Event Emitter for NotebookLM MCP
3
+ *
4
+ * Central event bus for system-wide events.
5
+ * Events can trigger webhook notifications, logging, or other actions.
6
+ */
7
+ import { log } from "../utils/logger.js";
8
+ class EventEmitter {
9
+ handlers = new Map();
10
+ eventHistory = [];
11
+ maxHistorySize = 100;
12
+ /**
13
+ * Subscribe to an event type
14
+ */
15
+ on(eventType, handler) {
16
+ const handlers = this.handlers.get(eventType) || [];
17
+ handlers.push(handler);
18
+ this.handlers.set(eventType, handlers);
19
+ // Return unsubscribe function
20
+ return () => {
21
+ const currentHandlers = this.handlers.get(eventType) || [];
22
+ const index = currentHandlers.indexOf(handler);
23
+ if (index > -1) {
24
+ currentHandlers.splice(index, 1);
25
+ this.handlers.set(eventType, currentHandlers);
26
+ }
27
+ };
28
+ }
29
+ /**
30
+ * Subscribe to an event type (one-time only)
31
+ */
32
+ once(eventType, handler) {
33
+ const wrappedHandler = (event) => {
34
+ unsubscribe();
35
+ return handler(event);
36
+ };
37
+ const unsubscribe = this.on(eventType, wrappedHandler);
38
+ return unsubscribe;
39
+ }
40
+ /**
41
+ * Emit an event
42
+ */
43
+ async emit(event) {
44
+ log.dim(`📢 Event: ${event.type}`);
45
+ // Add to history
46
+ this.eventHistory.push(event);
47
+ if (this.eventHistory.length > this.maxHistorySize) {
48
+ this.eventHistory.shift();
49
+ }
50
+ // Get specific handlers
51
+ const specificHandlers = this.handlers.get(event.type) || [];
52
+ // Get wildcard handlers
53
+ const wildcardHandlers = this.handlers.get("*") || [];
54
+ const allHandlers = [...specificHandlers, ...wildcardHandlers];
55
+ // Execute all handlers
56
+ for (const handler of allHandlers) {
57
+ try {
58
+ await handler(event);
59
+ }
60
+ catch (error) {
61
+ log.error(`Event handler error for ${event.type}: ${error}`);
62
+ }
63
+ }
64
+ }
65
+ /**
66
+ * Get recent events
67
+ */
68
+ getHistory(limit) {
69
+ const count = limit || this.maxHistorySize;
70
+ return this.eventHistory.slice(-count);
71
+ }
72
+ /**
73
+ * Get events by type
74
+ */
75
+ getEventsByType(eventType, limit) {
76
+ const filtered = this.eventHistory.filter((e) => e.type === eventType);
77
+ return limit ? filtered.slice(-limit) : filtered;
78
+ }
79
+ /**
80
+ * Clear event history
81
+ */
82
+ clearHistory() {
83
+ this.eventHistory = [];
84
+ }
85
+ /**
86
+ * Get handler count for debugging
87
+ */
88
+ getHandlerCount() {
89
+ const counts = {};
90
+ for (const [type, handlers] of this.handlers) {
91
+ counts[type] = handlers.length;
92
+ }
93
+ return counts;
94
+ }
95
+ }
96
+ // Singleton instance
97
+ const eventEmitter = new EventEmitter();
98
+ export { eventEmitter };
99
+ export default eventEmitter;
100
+ //# sourceMappingURL=event-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../src/events/event-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Event Types for Webhook Notifications
3
+ *
4
+ * Defines all events that can trigger webhook notifications.
5
+ */
6
+ export type EventType = "question_answered" | "notebook_created" | "notebook_deleted" | "source_added" | "source_removed" | "session_created" | "session_expired" | "auth_required" | "rate_limit_hit" | "security_incident" | "quota_warning" | "audio_generated" | "batch_complete";
7
+ export interface BaseEvent {
8
+ type: EventType;
9
+ timestamp: string;
10
+ source: "notebooklm-mcp";
11
+ version: string;
12
+ }
13
+ export interface QuestionAnsweredEvent extends BaseEvent {
14
+ type: "question_answered";
15
+ payload: {
16
+ question_length: number;
17
+ answer_length: number;
18
+ session_id: string;
19
+ notebook_url?: string;
20
+ duration_ms: number;
21
+ };
22
+ }
23
+ export interface NotebookCreatedEvent extends BaseEvent {
24
+ type: "notebook_created";
25
+ payload: {
26
+ notebook_url: string;
27
+ name: string;
28
+ source_count: number;
29
+ topics?: string[];
30
+ };
31
+ }
32
+ export interface NotebookDeletedEvent extends BaseEvent {
33
+ type: "notebook_deleted";
34
+ payload: {
35
+ notebook_id: string;
36
+ name: string;
37
+ };
38
+ }
39
+ export interface SourceAddedEvent extends BaseEvent {
40
+ type: "source_added";
41
+ payload: {
42
+ notebook_url: string;
43
+ source_type: "url" | "text" | "file";
44
+ source_title?: string;
45
+ };
46
+ }
47
+ export interface SourceRemovedEvent extends BaseEvent {
48
+ type: "source_removed";
49
+ payload: {
50
+ notebook_url: string;
51
+ source_id: string;
52
+ };
53
+ }
54
+ export interface SessionCreatedEvent extends BaseEvent {
55
+ type: "session_created";
56
+ payload: {
57
+ session_id: string;
58
+ notebook_url?: string;
59
+ };
60
+ }
61
+ export interface SessionExpiredEvent extends BaseEvent {
62
+ type: "session_expired";
63
+ payload: {
64
+ session_id: string;
65
+ reason: "timeout" | "manual" | "error";
66
+ age_seconds: number;
67
+ };
68
+ }
69
+ export interface AuthRequiredEvent extends BaseEvent {
70
+ type: "auth_required";
71
+ payload: {
72
+ reason: "expired" | "invalid" | "missing";
73
+ };
74
+ }
75
+ export interface RateLimitHitEvent extends BaseEvent {
76
+ type: "rate_limit_hit";
77
+ payload: {
78
+ limit_type: "query" | "notebook" | "api";
79
+ current_count: number;
80
+ limit: number;
81
+ };
82
+ }
83
+ export interface SecurityIncidentEvent extends BaseEvent {
84
+ type: "security_incident";
85
+ payload: {
86
+ severity: "low" | "medium" | "high" | "critical";
87
+ incident_type: string;
88
+ description: string;
89
+ blocked?: boolean;
90
+ };
91
+ }
92
+ export interface QuotaWarningEvent extends BaseEvent {
93
+ type: "quota_warning";
94
+ payload: {
95
+ resource: "notebooks" | "sources" | "queries";
96
+ used: number;
97
+ limit: number;
98
+ percent: number;
99
+ };
100
+ }
101
+ export interface AudioGeneratedEvent extends BaseEvent {
102
+ type: "audio_generated";
103
+ payload: {
104
+ notebook_url: string;
105
+ duration_seconds?: number;
106
+ };
107
+ }
108
+ export interface BatchCompleteEvent extends BaseEvent {
109
+ type: "batch_complete";
110
+ payload: {
111
+ operation: "create_notebooks" | "sync_library";
112
+ total: number;
113
+ succeeded: number;
114
+ failed: number;
115
+ };
116
+ }
117
+ export type SystemEvent = QuestionAnsweredEvent | NotebookCreatedEvent | NotebookDeletedEvent | SourceAddedEvent | SourceRemovedEvent | SessionCreatedEvent | SessionExpiredEvent | AuthRequiredEvent | RateLimitHitEvent | SecurityIncidentEvent | QuotaWarningEvent | AudioGeneratedEvent | BatchCompleteEvent;
118
+ /**
119
+ * Create an event with standard fields
120
+ */
121
+ export declare function createEvent<T extends EventType>(type: T, payload: Extract<SystemEvent, {
122
+ type: T;
123
+ }>["payload"]): SystemEvent;
124
+ //# sourceMappingURL=event-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../src/events/event-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Event Types for Webhook Notifications
3
+ *
4
+ * Defines all events that can trigger webhook notifications.
5
+ */
6
+ /**
7
+ * Create an event with standard fields
8
+ */
9
+ export function createEvent(type, payload) {
10
+ return {
11
+ type,
12
+ timestamp: new Date().toISOString(),
13
+ source: "notebooklm-mcp",
14
+ version: "1.7.0",
15
+ payload,
16
+ };
17
+ }
18
+ //# sourceMappingURL=event-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../src/events/event-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4JH;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAO,EACP,OAAqD;IAErD,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,OAAO;QAChB,OAAO;KACO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Gemini Interactions API Client
3
+ *
4
+ * Provides access to Gemini models and the Deep Research agent
5
+ * via the Interactions API for stable, API-based research capabilities.
6
+ */
7
+ import type { ProgressCallback } from "../types.js";
8
+ import type { GeminiQueryOptions, GeminiInteraction, DeepResearchOptions } from "./types.js";
9
+ export { DEEP_RESEARCH_AGENT } from "./types.js";
10
+ /**
11
+ * Client for Gemini Interactions API
12
+ */
13
+ export declare class GeminiClient {
14
+ private client;
15
+ constructor(apiKey?: string);
16
+ /**
17
+ * Check if the client is available (API key configured)
18
+ */
19
+ isAvailable(): boolean;
20
+ /**
21
+ * Perform a quick query to Gemini
22
+ */
23
+ query(options: GeminiQueryOptions): Promise<GeminiInteraction>;
24
+ /**
25
+ * Start deep research using the Deep Research agent
26
+ */
27
+ deepResearch(options: DeepResearchOptions): Promise<GeminiInteraction>;
28
+ /**
29
+ * Get an existing interaction by ID
30
+ */
31
+ getInteraction(interactionId: string): Promise<GeminiInteraction>;
32
+ /**
33
+ * Poll for interaction completion
34
+ */
35
+ pollForCompletion(interactionId: string, maxWaitMs: number, progressCallback?: ProgressCallback): Promise<GeminiInteraction>;
36
+ /**
37
+ * Delete a stored interaction
38
+ */
39
+ deleteInteraction(interactionId: string): Promise<void>;
40
+ /**
41
+ * Map SDK response to our interface
42
+ */
43
+ private mapInteraction;
44
+ }
45
+ //# sourceMappingURL=gemini-client.d.ts.map
@@ -0,0 +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,EAGpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,CAAC,EAAE,MAAM;IAU3B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+CpE;;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;IAgD7B;;OAEG;IACG,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D;;OAEG;IACH,OAAO,CAAC,cAAc;CA6CvB"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Gemini Interactions API Client
3
+ *
4
+ * Provides access to Gemini models and the Deep Research agent
5
+ * via the Interactions API for stable, API-based research capabilities.
6
+ */
7
+ import { GoogleGenAI } from "@google/genai";
8
+ import { log } from "../utils/logger.js";
9
+ import { CONFIG } from "../config.js";
10
+ // Re-export the agent constant
11
+ export { DEEP_RESEARCH_AGENT } from "./types.js";
12
+ /**
13
+ * Client for Gemini Interactions API
14
+ */
15
+ export class GeminiClient {
16
+ client = null;
17
+ constructor(apiKey) {
18
+ const key = apiKey || CONFIG.geminiApiKey;
19
+ if (key) {
20
+ this.client = new GoogleGenAI({ apiKey: key });
21
+ log.info("Gemini client initialized");
22
+ }
23
+ else {
24
+ log.info("Gemini client not initialized (no API key)");
25
+ }
26
+ }
27
+ /**
28
+ * Check if the client is available (API key configured)
29
+ */
30
+ isAvailable() {
31
+ return this.client !== null;
32
+ }
33
+ /**
34
+ * Perform a quick query to Gemini
35
+ */
36
+ async query(options) {
37
+ if (!this.client) {
38
+ throw new Error("Gemini API key not configured. Set GEMINI_API_KEY environment variable.");
39
+ }
40
+ const model = options.model || CONFIG.geminiDefaultModel || "gemini-2.5-flash";
41
+ log.info(`Gemini query to ${model}: ${options.query.substring(0, 50)}...`);
42
+ try {
43
+ // Build tools array - use 'as any' to bypass strict SDK typing
44
+ const tools = [];
45
+ if (options.tools) {
46
+ for (const tool of options.tools) {
47
+ tools.push({ type: tool });
48
+ }
49
+ }
50
+ // Build input - just use string for simplicity
51
+ let input = options.query;
52
+ // If URLs are provided, append them to the query
53
+ if (options.urls && options.urls.length > 0) {
54
+ input = `${options.query}\n\nPlease analyze these URLs:\n${options.urls.join("\n")}`;
55
+ }
56
+ // Create interaction - use 'as any' to handle SDK type strictness
57
+ const response = await this.client.interactions.create({
58
+ model,
59
+ input,
60
+ tools: tools.length > 0 ? tools : undefined,
61
+ previousInteractionId: options.previousInteractionId,
62
+ store: true,
63
+ generationConfig: options.generationConfig ? {
64
+ temperature: options.generationConfig.temperature,
65
+ maxOutputTokens: options.generationConfig.maxOutputTokens,
66
+ thinkingLevel: options.generationConfig.thinkingLevel,
67
+ } : undefined,
68
+ });
69
+ return this.mapInteraction(response);
70
+ }
71
+ catch (error) {
72
+ const msg = error instanceof Error ? error.message : String(error);
73
+ log.error(`Gemini query failed: ${msg}`);
74
+ throw error;
75
+ }
76
+ }
77
+ /**
78
+ * Start deep research using the Deep Research agent
79
+ */
80
+ async deepResearch(options) {
81
+ if (!this.client) {
82
+ throw new Error("Gemini API key not configured. Set GEMINI_API_KEY environment variable.");
83
+ }
84
+ if (!CONFIG.geminiDeepResearchEnabled) {
85
+ throw new Error("Deep Research is disabled. Set GEMINI_DEEP_RESEARCH_ENABLED=true to enable.");
86
+ }
87
+ log.info(`Starting deep research: ${options.query.substring(0, 50)}...`);
88
+ try {
89
+ // Start research in background - use 'as any' to handle SDK type strictness
90
+ const response = await this.client.interactions.create({
91
+ input: options.query,
92
+ agent: "deep-research-pro-preview-12-2025",
93
+ background: options.background !== false,
94
+ store: true,
95
+ });
96
+ const interaction = this.mapInteraction(response);
97
+ log.info(`Deep research started: ${interaction.id}`);
98
+ // If waiting for completion, poll
99
+ if (options.waitForCompletion !== false) {
100
+ return this.pollForCompletion(interaction.id, options.maxWaitMs || 300000, // 5 minutes default
101
+ options.progressCallback);
102
+ }
103
+ return interaction;
104
+ }
105
+ catch (error) {
106
+ const msg = error instanceof Error ? error.message : String(error);
107
+ log.error(`Deep research failed: ${msg}`);
108
+ throw error;
109
+ }
110
+ }
111
+ /**
112
+ * Get an existing interaction by ID
113
+ */
114
+ async getInteraction(interactionId) {
115
+ if (!this.client) {
116
+ throw new Error("Gemini API key not configured.");
117
+ }
118
+ try {
119
+ const response = await this.client.interactions.get(interactionId);
120
+ return this.mapInteraction(response);
121
+ }
122
+ catch (error) {
123
+ const msg = error instanceof Error ? error.message : String(error);
124
+ log.error(`Failed to get interaction ${interactionId}: ${msg}`);
125
+ throw error;
126
+ }
127
+ }
128
+ /**
129
+ * Poll for interaction completion
130
+ */
131
+ async pollForCompletion(interactionId, maxWaitMs, progressCallback) {
132
+ const startTime = Date.now();
133
+ const pollInterval = 10000; // 10 seconds
134
+ let lastStatus = null;
135
+ log.info(`Polling for completion: ${interactionId} (max ${maxWaitMs / 1000}s)`);
136
+ while (Date.now() - startTime < maxWaitMs) {
137
+ const interaction = await this.getInteraction(interactionId);
138
+ const elapsed = Math.round((Date.now() - startTime) / 1000);
139
+ // Report progress - ProgressCallback signature is (message, progress?, total?)
140
+ if (progressCallback && interaction.status !== lastStatus) {
141
+ const progress = Math.min(90, Math.round((elapsed / (maxWaitMs / 1000)) * 100));
142
+ await progressCallback(`Research ${interaction.status}... (${elapsed}s elapsed)`, progress, 100);
143
+ lastStatus = interaction.status;
144
+ }
145
+ // Check if done
146
+ if (interaction.status === "completed") {
147
+ if (progressCallback) {
148
+ await progressCallback("Research complete", 100, 100);
149
+ }
150
+ log.success(`Research completed in ${elapsed}s`);
151
+ return interaction;
152
+ }
153
+ if (interaction.status === "failed") {
154
+ if (progressCallback) {
155
+ await progressCallback("Research failed", 100, 100);
156
+ }
157
+ log.error(`Research failed: ${interaction.error || "Unknown error"}`);
158
+ return interaction;
159
+ }
160
+ // Wait before next poll
161
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
162
+ }
163
+ // Timeout
164
+ const elapsed = Math.round((Date.now() - startTime) / 1000);
165
+ throw new Error(`Research timed out after ${elapsed} seconds`);
166
+ }
167
+ /**
168
+ * Delete a stored interaction
169
+ */
170
+ async deleteInteraction(interactionId) {
171
+ if (!this.client) {
172
+ throw new Error("Gemini API key not configured.");
173
+ }
174
+ try {
175
+ await this.client.interactions.delete(interactionId);
176
+ log.info(`Deleted interaction: ${interactionId}`);
177
+ }
178
+ catch (error) {
179
+ const msg = error instanceof Error ? error.message : String(error);
180
+ log.error(`Failed to delete interaction: ${msg}`);
181
+ throw error;
182
+ }
183
+ }
184
+ /**
185
+ * Map SDK response to our interface
186
+ */
187
+ mapInteraction(response) {
188
+ // The SDK returns an object with id, model, status, outputs, usage
189
+ const r = response;
190
+ const outputs = (r.outputs || []).map(o => ({
191
+ type: o.type || "text",
192
+ text: o.text,
193
+ name: o.name,
194
+ arguments: o.arguments,
195
+ id: o.id,
196
+ }));
197
+ return {
198
+ id: r.id || "",
199
+ model: r.model,
200
+ status: r.status || "pending",
201
+ outputs,
202
+ usage: r.usage ? {
203
+ totalTokens: r.usage.totalTokens || r.usage.total_tokens || 0,
204
+ promptTokens: r.usage.promptTokens || r.usage.prompt_tokens,
205
+ completionTokens: r.usage.completionTokens || r.usage.completion_tokens,
206
+ } : undefined,
207
+ error: r.error,
208
+ };
209
+ }
210
+ }
211
+ //# sourceMappingURL=gemini-client.js.map