notebooklm-mcp-ultimate 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +420 -0
  3. package/dist/api/batch-execute-client.d.ts +232 -0
  4. package/dist/api/batch-execute-client.d.ts.map +1 -0
  5. package/dist/api/batch-execute-client.js +672 -0
  6. package/dist/api/batch-execute-client.js.map +1 -0
  7. package/dist/api/content-types.d.ts +44 -0
  8. package/dist/api/content-types.d.ts.map +1 -0
  9. package/dist/api/content-types.js +89 -0
  10. package/dist/api/content-types.js.map +1 -0
  11. package/dist/api/csrf-manager.d.ts +94 -0
  12. package/dist/api/csrf-manager.d.ts.map +1 -0
  13. package/dist/api/csrf-manager.js +178 -0
  14. package/dist/api/csrf-manager.js.map +1 -0
  15. package/dist/api/index.d.ts +27 -0
  16. package/dist/api/index.d.ts.map +1 -0
  17. package/dist/api/index.js +56 -0
  18. package/dist/api/index.js.map +1 -0
  19. package/dist/api/operation-poller.d.ts +67 -0
  20. package/dist/api/operation-poller.d.ts.map +1 -0
  21. package/dist/api/operation-poller.js +132 -0
  22. package/dist/api/operation-poller.js.map +1 -0
  23. package/dist/api/request-builder.d.ts +196 -0
  24. package/dist/api/request-builder.d.ts.map +1 -0
  25. package/dist/api/request-builder.js +371 -0
  26. package/dist/api/request-builder.js.map +1 -0
  27. package/dist/api/response-parser.d.ts +124 -0
  28. package/dist/api/response-parser.d.ts.map +1 -0
  29. package/dist/api/response-parser.js +595 -0
  30. package/dist/api/response-parser.js.map +1 -0
  31. package/dist/api/rpc-ids.d.ts +92 -0
  32. package/dist/api/rpc-ids.d.ts.map +1 -0
  33. package/dist/api/rpc-ids.js +138 -0
  34. package/dist/api/rpc-ids.js.map +1 -0
  35. package/dist/api/streaming-chat-client.d.ts +50 -0
  36. package/dist/api/streaming-chat-client.d.ts.map +1 -0
  37. package/dist/api/streaming-chat-client.js +198 -0
  38. package/dist/api/streaming-chat-client.js.map +1 -0
  39. package/dist/api/types.d.ts +318 -0
  40. package/dist/api/types.d.ts.map +1 -0
  41. package/dist/api/types.js +22 -0
  42. package/dist/api/types.js.map +1 -0
  43. package/dist/auth/auth-manager.d.ts +163 -0
  44. package/dist/auth/auth-manager.d.ts.map +1 -0
  45. package/dist/auth/auth-manager.js +1055 -0
  46. package/dist/auth/auth-manager.js.map +1 -0
  47. package/dist/auth/cookie-store.d.ts +121 -0
  48. package/dist/auth/cookie-store.d.ts.map +1 -0
  49. package/dist/auth/cookie-store.js +283 -0
  50. package/dist/auth/cookie-store.js.map +1 -0
  51. package/dist/config.d.ts +89 -0
  52. package/dist/config.d.ts.map +1 -0
  53. package/dist/config.js +217 -0
  54. package/dist/config.js.map +1 -0
  55. package/dist/errors.d.ts +26 -0
  56. package/dist/errors.d.ts.map +1 -0
  57. package/dist/errors.js +41 -0
  58. package/dist/errors.js.map +1 -0
  59. package/dist/index.d.ts +32 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +439 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/library/notebook-library.d.ts +79 -0
  64. package/dist/library/notebook-library.d.ts.map +1 -0
  65. package/dist/library/notebook-library.js +296 -0
  66. package/dist/library/notebook-library.js.map +1 -0
  67. package/dist/library/types.d.ts +67 -0
  68. package/dist/library/types.d.ts.map +1 -0
  69. package/dist/library/types.js +8 -0
  70. package/dist/library/types.js.map +1 -0
  71. package/dist/operations/content-operations.d.ts +78 -0
  72. package/dist/operations/content-operations.d.ts.map +1 -0
  73. package/dist/operations/content-operations.js +162 -0
  74. package/dist/operations/content-operations.js.map +1 -0
  75. package/dist/operations/hybrid-executor.d.ts +47 -0
  76. package/dist/operations/hybrid-executor.d.ts.map +1 -0
  77. package/dist/operations/hybrid-executor.js +114 -0
  78. package/dist/operations/hybrid-executor.js.map +1 -0
  79. package/dist/operations/notebook-crud-operations.d.ts +52 -0
  80. package/dist/operations/notebook-crud-operations.d.ts.map +1 -0
  81. package/dist/operations/notebook-crud-operations.js +248 -0
  82. package/dist/operations/notebook-crud-operations.js.map +1 -0
  83. package/dist/operations/research-operations.d.ts +42 -0
  84. package/dist/operations/research-operations.d.ts.map +1 -0
  85. package/dist/operations/research-operations.js +189 -0
  86. package/dist/operations/research-operations.js.map +1 -0
  87. package/dist/operations/source-operations.d.ts +59 -0
  88. package/dist/operations/source-operations.d.ts.map +1 -0
  89. package/dist/operations/source-operations.js +280 -0
  90. package/dist/operations/source-operations.js.map +1 -0
  91. package/dist/operations/studio-operations.d.ts +98 -0
  92. package/dist/operations/studio-operations.d.ts.map +1 -0
  93. package/dist/operations/studio-operations.js +309 -0
  94. package/dist/operations/studio-operations.js.map +1 -0
  95. package/dist/resources/resource-handlers.d.ts +22 -0
  96. package/dist/resources/resource-handlers.d.ts.map +1 -0
  97. package/dist/resources/resource-handlers.js +216 -0
  98. package/dist/resources/resource-handlers.js.map +1 -0
  99. package/dist/session/browser-session.d.ts +113 -0
  100. package/dist/session/browser-session.d.ts.map +1 -0
  101. package/dist/session/browser-session.js +670 -0
  102. package/dist/session/browser-session.js.map +1 -0
  103. package/dist/session/session-manager.d.ts +88 -0
  104. package/dist/session/session-manager.d.ts.map +1 -0
  105. package/dist/session/session-manager.js +314 -0
  106. package/dist/session/session-manager.js.map +1 -0
  107. package/dist/session/shared-context-manager.d.ts +107 -0
  108. package/dist/session/shared-context-manager.d.ts.map +1 -0
  109. package/dist/session/shared-context-manager.js +447 -0
  110. package/dist/session/shared-context-manager.js.map +1 -0
  111. package/dist/tools/definitions/ask-question.d.ts +8 -0
  112. package/dist/tools/definitions/ask-question.d.ts.map +1 -0
  113. package/dist/tools/definitions/ask-question.js +213 -0
  114. package/dist/tools/definitions/ask-question.js.map +1 -0
  115. package/dist/tools/definitions/content-generation.d.ts +52 -0
  116. package/dist/tools/definitions/content-generation.d.ts.map +1 -0
  117. package/dist/tools/definitions/content-generation.js +236 -0
  118. package/dist/tools/definitions/content-generation.js.map +1 -0
  119. package/dist/tools/definitions/notebook-crud.d.ts +9 -0
  120. package/dist/tools/definitions/notebook-crud.d.ts.map +1 -0
  121. package/dist/tools/definitions/notebook-crud.js +156 -0
  122. package/dist/tools/definitions/notebook-crud.js.map +1 -0
  123. package/dist/tools/definitions/notebook-management.d.ts +3 -0
  124. package/dist/tools/definitions/notebook-management.d.ts.map +1 -0
  125. package/dist/tools/definitions/notebook-management.js +243 -0
  126. package/dist/tools/definitions/notebook-management.js.map +1 -0
  127. package/dist/tools/definitions/research.d.ts +23 -0
  128. package/dist/tools/definitions/research.d.ts.map +1 -0
  129. package/dist/tools/definitions/research.js +108 -0
  130. package/dist/tools/definitions/research.js.map +1 -0
  131. package/dist/tools/definitions/session-management.d.ts +3 -0
  132. package/dist/tools/definitions/session-management.d.ts.map +1 -0
  133. package/dist/tools/definitions/session-management.js +41 -0
  134. package/dist/tools/definitions/session-management.js.map +1 -0
  135. package/dist/tools/definitions/source-management.d.ts +39 -0
  136. package/dist/tools/definitions/source-management.d.ts.map +1 -0
  137. package/dist/tools/definitions/source-management.js +224 -0
  138. package/dist/tools/definitions/source-management.js.map +1 -0
  139. package/dist/tools/definitions/studio.d.ts +36 -0
  140. package/dist/tools/definitions/studio.d.ts.map +1 -0
  141. package/dist/tools/definitions/studio.js +153 -0
  142. package/dist/tools/definitions/studio.js.map +1 -0
  143. package/dist/tools/definitions/system.d.ts +3 -0
  144. package/dist/tools/definitions/system.d.ts.map +1 -0
  145. package/dist/tools/definitions/system.js +143 -0
  146. package/dist/tools/definitions/system.js.map +1 -0
  147. package/dist/tools/definitions.d.ts +12 -0
  148. package/dist/tools/definitions.d.ts.map +1 -0
  149. package/dist/tools/definitions.js +36 -0
  150. package/dist/tools/definitions.js.map +1 -0
  151. package/dist/tools/handlers/content-handlers.d.ts +287 -0
  152. package/dist/tools/handlers/content-handlers.d.ts.map +1 -0
  153. package/dist/tools/handlers/content-handlers.js +244 -0
  154. package/dist/tools/handlers/content-handlers.js.map +1 -0
  155. package/dist/tools/handlers/notebook-crud-handlers.d.ts +69 -0
  156. package/dist/tools/handlers/notebook-crud-handlers.d.ts.map +1 -0
  157. package/dist/tools/handlers/notebook-crud-handlers.js +117 -0
  158. package/dist/tools/handlers/notebook-crud-handlers.js.map +1 -0
  159. package/dist/tools/handlers/research-handlers.d.ts +37 -0
  160. package/dist/tools/handlers/research-handlers.d.ts.map +1 -0
  161. package/dist/tools/handlers/research-handlers.js +87 -0
  162. package/dist/tools/handlers/research-handlers.js.map +1 -0
  163. package/dist/tools/handlers/source-handlers.d.ts +52 -0
  164. package/dist/tools/handlers/source-handlers.d.ts.map +1 -0
  165. package/dist/tools/handlers/source-handlers.js +177 -0
  166. package/dist/tools/handlers/source-handlers.js.map +1 -0
  167. package/dist/tools/handlers/studio-handlers.d.ts +125 -0
  168. package/dist/tools/handlers/studio-handlers.d.ts.map +1 -0
  169. package/dist/tools/handlers/studio-handlers.js +183 -0
  170. package/dist/tools/handlers/studio-handlers.js.map +1 -0
  171. package/dist/tools/handlers.d.ts +629 -0
  172. package/dist/tools/handlers.d.ts.map +1 -0
  173. package/dist/tools/handlers.js +833 -0
  174. package/dist/tools/handlers.js.map +1 -0
  175. package/dist/tools/index.d.ts +8 -0
  176. package/dist/tools/index.d.ts.map +1 -0
  177. package/dist/tools/index.js +8 -0
  178. package/dist/tools/index.js.map +1 -0
  179. package/dist/types.d.ts +82 -0
  180. package/dist/types.d.ts.map +1 -0
  181. package/dist/types.js +5 -0
  182. package/dist/types.js.map +1 -0
  183. package/dist/utils/cleanup-manager.d.ts +133 -0
  184. package/dist/utils/cleanup-manager.d.ts.map +1 -0
  185. package/dist/utils/cleanup-manager.js +673 -0
  186. package/dist/utils/cleanup-manager.js.map +1 -0
  187. package/dist/utils/cli-handler.d.ts +16 -0
  188. package/dist/utils/cli-handler.d.ts.map +1 -0
  189. package/dist/utils/cli-handler.js +102 -0
  190. package/dist/utils/cli-handler.js.map +1 -0
  191. package/dist/utils/logger.d.ts +61 -0
  192. package/dist/utils/logger.d.ts.map +1 -0
  193. package/dist/utils/logger.js +92 -0
  194. package/dist/utils/logger.js.map +1 -0
  195. package/dist/utils/page-utils.d.ts +54 -0
  196. package/dist/utils/page-utils.d.ts.map +1 -0
  197. package/dist/utils/page-utils.js +405 -0
  198. package/dist/utils/page-utils.js.map +1 -0
  199. package/dist/utils/settings-manager.d.ts +37 -0
  200. package/dist/utils/settings-manager.d.ts.map +1 -0
  201. package/dist/utils/settings-manager.js +120 -0
  202. package/dist/utils/settings-manager.js.map +1 -0
  203. package/dist/utils/stealth-utils.d.ts +135 -0
  204. package/dist/utils/stealth-utils.d.ts.map +1 -0
  205. package/dist/utils/stealth-utils.js +398 -0
  206. package/dist/utils/stealth-utils.js.map +1 -0
  207. package/package.json +63 -0
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Audio Studio Tool Handlers
3
+ *
4
+ * Implements the handler logic for audio studio tools.
5
+ */
6
+ import { getAudioStatus, createAudio, updateAudio, deleteAudio, getAudioDownloadURL, } from '../../operations/studio-operations.js';
7
+ import { log } from '../../utils/logger.js';
8
+ /**
9
+ * Create studio handlers with dependencies
10
+ */
11
+ export function createStudioHandlers(deps) {
12
+ const { library } = deps;
13
+ /**
14
+ * Get notebook ID, using active notebook if not specified
15
+ */
16
+ async function resolveNotebookId(notebookId) {
17
+ if (notebookId) {
18
+ return notebookId;
19
+ }
20
+ const activeNotebook = library.getActiveNotebook();
21
+ if (!activeNotebook) {
22
+ log.warning('⚠️ No notebook specified and no active notebook selected');
23
+ return null;
24
+ }
25
+ return activeNotebook.id;
26
+ }
27
+ return {
28
+ /**
29
+ * Handle get_audio_status tool call
30
+ */
31
+ async handleGetAudioStatus(args, sendProgress) {
32
+ await sendProgress?.('Resolving notebook...', 1, 3);
33
+ const notebookId = await resolveNotebookId(args.notebook_id);
34
+ if (!notebookId) {
35
+ return {
36
+ success: false,
37
+ error: 'No notebook specified. Use notebook_id parameter or select a notebook first.',
38
+ };
39
+ }
40
+ await sendProgress?.('Checking audio status...', 2, 3);
41
+ const result = await getAudioStatus(notebookId);
42
+ await sendProgress?.('Done!', 3, 3);
43
+ if (!result.success) {
44
+ return {
45
+ success: false,
46
+ error: result.error || 'Failed to get audio status',
47
+ };
48
+ }
49
+ return {
50
+ success: true,
51
+ status: result.status,
52
+ audio_url: result.audioUrl,
53
+ duration_seconds: result.durationSeconds,
54
+ transcript: result.transcript,
55
+ progress: result.progress,
56
+ notebook_id: notebookId,
57
+ };
58
+ },
59
+ /**
60
+ * Handle create_audio tool call
61
+ */
62
+ async handleCreateAudio(args, sendProgress) {
63
+ await sendProgress?.('Resolving notebook...', 1, 4);
64
+ const notebookId = await resolveNotebookId(args.notebook_id);
65
+ if (!notebookId) {
66
+ return {
67
+ success: false,
68
+ error: 'No notebook specified. Use notebook_id parameter or select a notebook first.',
69
+ };
70
+ }
71
+ await sendProgress?.('Creating audio overview...', 2, 4);
72
+ const result = await createAudio({
73
+ notebookId,
74
+ customInstructions: args.custom_instructions,
75
+ focusTopics: args.focus_topics,
76
+ targetAudience: args.target_audience,
77
+ });
78
+ await sendProgress?.('Audio generation started!', 4, 4);
79
+ if (!result.success) {
80
+ return {
81
+ success: false,
82
+ error: result.error || 'Failed to create audio',
83
+ };
84
+ }
85
+ return {
86
+ success: true,
87
+ status: result.status,
88
+ notebook_id: notebookId,
89
+ message: 'Audio generation started. Use get_audio_status to check progress.',
90
+ };
91
+ },
92
+ /**
93
+ * Handle update_audio tool call
94
+ */
95
+ async handleUpdateAudio(args, sendProgress) {
96
+ await sendProgress?.('Resolving notebook...', 1, 4);
97
+ const notebookId = await resolveNotebookId(args.notebook_id);
98
+ if (!notebookId) {
99
+ return {
100
+ success: false,
101
+ error: 'No notebook specified. Use notebook_id parameter or select a notebook first.',
102
+ };
103
+ }
104
+ await sendProgress?.('Updating audio overview...', 2, 4);
105
+ const result = await updateAudio({
106
+ notebookId,
107
+ customInstructions: args.custom_instructions,
108
+ focusTopics: args.focus_topics,
109
+ targetAudience: args.target_audience,
110
+ });
111
+ await sendProgress?.('Audio update started!', 4, 4);
112
+ if (!result.success) {
113
+ return {
114
+ success: false,
115
+ error: result.error || 'Failed to update audio',
116
+ };
117
+ }
118
+ return {
119
+ success: true,
120
+ status: result.status,
121
+ notebook_id: notebookId,
122
+ message: 'Audio regeneration started. Use get_audio_status to check progress.',
123
+ };
124
+ },
125
+ /**
126
+ * Handle delete_audio tool call
127
+ */
128
+ async handleDeleteAudio(args, sendProgress) {
129
+ await sendProgress?.('Resolving notebook...', 1, 3);
130
+ const notebookId = await resolveNotebookId(args.notebook_id);
131
+ if (!notebookId) {
132
+ return {
133
+ success: false,
134
+ error: 'No notebook specified. Use notebook_id parameter or select a notebook first.',
135
+ };
136
+ }
137
+ await sendProgress?.('Deleting audio...', 2, 3);
138
+ const result = await deleteAudio(notebookId);
139
+ await sendProgress?.('Done!', 3, 3);
140
+ if (!result.success) {
141
+ return {
142
+ success: false,
143
+ error: result.error || 'Failed to delete audio',
144
+ };
145
+ }
146
+ return {
147
+ success: true,
148
+ status: result.status,
149
+ notebook_id: notebookId,
150
+ message: 'Audio overview deleted successfully.',
151
+ };
152
+ },
153
+ /**
154
+ * Handle download_audio tool call
155
+ */
156
+ async handleDownloadAudio(args, sendProgress) {
157
+ await sendProgress?.('Resolving notebook...', 1, 4);
158
+ const notebookId = await resolveNotebookId(args.notebook_id);
159
+ if (!notebookId) {
160
+ return {
161
+ success: false,
162
+ error: 'No notebook specified. Use notebook_id parameter or select a notebook first.',
163
+ };
164
+ }
165
+ await sendProgress?.('Getting download URL...', 2, 4);
166
+ const result = await getAudioDownloadURL(notebookId);
167
+ await sendProgress?.('Done!', 4, 4);
168
+ if (!result.success) {
169
+ return {
170
+ success: false,
171
+ error: result.error || 'Failed to get download URL',
172
+ };
173
+ }
174
+ return {
175
+ success: true,
176
+ download_url: result.url,
177
+ notebook_id: notebookId,
178
+ message: 'Audio download URL retrieved. The URL may be temporary.',
179
+ };
180
+ },
181
+ };
182
+ }
183
+ //# sourceMappingURL=studio-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/studio-handlers.ts"],"names":[],"mappings":"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"}