reportify-sdk 0.2.8 → 0.2.10

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.
package/dist/index.d.mts CHANGED
@@ -51,8 +51,17 @@ interface SearchOptions {
51
51
  num?: number;
52
52
  categories?: string[];
53
53
  symbols?: string[];
54
- startDate?: string;
55
- endDate?: string;
54
+ industries?: string[];
55
+ channelIds?: string[];
56
+ startDatetime?: string;
57
+ endDatetime?: string;
58
+ }
59
+ interface EarningsSearchOptions {
60
+ num?: number;
61
+ startDatetime?: string;
62
+ endDatetime?: string;
63
+ fiscalYear?: string;
64
+ fiscalQuarter?: string;
56
65
  }
57
66
  interface CompanyOverview {
58
67
  symbol: string;
@@ -110,9 +119,9 @@ interface IPOEvent {
110
119
  priceRange?: string;
111
120
  [key: string]: unknown;
112
121
  }
113
- type Period = 'annual' | 'quarterly';
114
- type Interval = '1d' | '1w' | '1m';
115
- type PriceAdjust = 'forward' | 'backward' | 'none';
122
+ type Period = 'annual' | 'quarterly' | 'cumulative quarterly';
123
+ type Calendar = 'calendar' | 'fiscal';
124
+ type ShareholderType = 'shareholders' | 'outstanding_shareholders';
116
125
  type Market = 'us' | 'hk' | 'cn';
117
126
  type IPOStatus = 'Filing' | 'Hearing' | 'Priced';
118
127
  interface IndustryConstituent {
@@ -136,15 +145,113 @@ interface IndexFund {
136
145
  symbol: string;
137
146
  [key: string]: unknown;
138
147
  }
139
- interface TimelineOptions {
140
- num?: number;
148
+ interface DocsListOptions {
149
+ symbols?: string[];
150
+ categories?: string[];
151
+ markets?: string[];
152
+ institutions?: string[];
153
+ tags?: Record<string, unknown[]>;
154
+ startDate?: string;
155
+ endDate?: string;
156
+ minScore?: number;
157
+ extendedFilters?: Record<string, unknown>[];
158
+ folderIds?: string[];
159
+ pageNum?: number;
160
+ pageSize?: number;
141
161
  }
142
- interface KBSearchOptions {
162
+ interface ChunkSearchOptions {
163
+ symbols?: string[];
164
+ categories?: string[];
143
165
  folderIds?: string[];
144
166
  docIds?: string[];
167
+ markets?: string[];
168
+ institutions?: string[];
169
+ tags?: Record<string, unknown[]>;
145
170
  startDate?: string;
146
171
  endDate?: string;
172
+ minScore?: number;
173
+ extendedFilters?: Record<string, unknown>[];
147
174
  num?: number;
175
+ includeDocExtraDetails?: boolean;
176
+ refineQuestion?: boolean;
177
+ dateRange?: 'h' | 'd' | 'w' | 'm' | 'y';
178
+ }
179
+ interface UploadDocRequest {
180
+ url: string;
181
+ name?: string;
182
+ metadatas?: Record<string, unknown>;
183
+ publishedAt?: number;
184
+ tags?: Record<string, unknown[]>;
185
+ }
186
+ interface Channel {
187
+ id: string;
188
+ name: string;
189
+ description?: string;
190
+ avatarUrl?: string;
191
+ following?: boolean;
192
+ }
193
+ type ChatMode = 'concise' | 'comprehensive' | 'deepresearch';
194
+ interface ChatCompletionOptions {
195
+ folderIds?: string[];
196
+ docIds?: string[];
197
+ categories?: string[];
198
+ markets?: string[];
199
+ institutions?: string[];
200
+ symbols?: string[];
201
+ tags?: Record<string, unknown[]>;
202
+ startDate?: string;
203
+ endDate?: string;
204
+ minScore?: number;
205
+ extendedFilters?: Record<string, unknown>[];
206
+ mode?: ChatMode;
207
+ sessionId?: string;
208
+ stream?: boolean;
209
+ }
210
+ interface ChatCompletionResponse {
211
+ type: string;
212
+ messageId: string;
213
+ message: string;
214
+ extra?: Record<string, unknown>;
215
+ }
216
+ interface AgentConversation {
217
+ id: number;
218
+ userId: number;
219
+ agentId: number;
220
+ type: string;
221
+ title?: string;
222
+ status: string;
223
+ createdAt: number;
224
+ updatedAt: number;
225
+ }
226
+ interface AgentMessage {
227
+ id: number;
228
+ userId: number;
229
+ conversationId: number;
230
+ turnId: number;
231
+ role: 'user' | 'assistant';
232
+ replyToMessageId?: number;
233
+ content?: Record<string, unknown>;
234
+ status: string;
235
+ errorInfo?: Record<string, unknown>;
236
+ assistantMessageId?: string;
237
+ createdAt: number;
238
+ updatedAt: number;
239
+ assistantEvents?: Record<string, unknown>[];
240
+ }
241
+ interface DocumentInput {
242
+ docId: string;
243
+ docTitle: string;
244
+ fileType?: string;
245
+ }
246
+ interface FollowedCompany {
247
+ symbol: string;
248
+ ticker?: string;
249
+ market?: string;
250
+ name?: string;
251
+ chineseName?: string;
252
+ englishName?: string;
253
+ logo?: string;
254
+ followedAt?: number;
148
255
  }
149
256
  declare class ReportifyError extends Error {
150
257
  statusCode?: number;
@@ -204,49 +311,92 @@ declare class StockModule {
204
311
  * Get list of major shareholders
205
312
  *
206
313
  * @param symbol - Stock symbol
314
+ * @param options.type - Type of shareholders ('shareholders' or 'outstanding_shareholders')
315
+ * @param options.limit - Number of results to return (default: 10)
207
316
  */
208
- shareholders(symbol: string): Promise<Shareholder[]>;
317
+ shareholders(symbol: string, options?: {
318
+ type?: ShareholderType;
319
+ limit?: number;
320
+ }): Promise<Shareholder[]>;
209
321
  /**
210
322
  * Get income statement data
211
323
  *
212
324
  * @param symbol - Stock symbol
213
- * @param options.period - "annual" or "quarterly"
214
- * @param options.limit - Number of periods to return
325
+ * @param options.period - "annual", "quarterly", or "cumulative quarterly"
326
+ * @param options.limit - Number of periods to return (default: 8)
327
+ * @param options.startDate - Start date (YYYY-MM-DD)
328
+ * @param options.endDate - End date (YYYY-MM-DD)
329
+ * @param options.calendar - "calendar" or "fiscal" (default: "fiscal")
330
+ * @param options.fiscalYear - Specific fiscal year (e.g., "2023")
331
+ * @param options.fiscalQuarter - Specific fiscal quarter (Q1, Q2, Q3, Q4, FY, H1)
215
332
  */
216
333
  incomeStatement(symbol: string, options?: {
217
334
  period?: Period;
218
335
  limit?: number;
336
+ startDate?: string;
337
+ endDate?: string;
338
+ calendar?: Calendar;
339
+ fiscalYear?: string;
340
+ fiscalQuarter?: string;
219
341
  }): Promise<FinancialStatement[]>;
220
342
  /**
221
343
  * Get balance sheet data
222
344
  *
223
345
  * @param symbol - Stock symbol
224
346
  * @param options.period - "annual" or "quarterly"
225
- * @param options.limit - Number of periods to return
347
+ * @param options.limit - Number of periods to return (default: 8)
348
+ * @param options.startDate - Start date (YYYY-MM-DD)
349
+ * @param options.endDate - End date (YYYY-MM-DD)
350
+ * @param options.calendar - "calendar" or "fiscal" (default: "fiscal")
351
+ * @param options.fiscalYear - Specific fiscal year (e.g., "2023")
352
+ * @param options.fiscalQuarter - Specific fiscal quarter (Q1, Q2, Q3, Q4, FY)
226
353
  */
227
354
  balanceSheet(symbol: string, options?: {
228
- period?: Period;
355
+ period?: 'annual' | 'quarterly';
229
356
  limit?: number;
357
+ startDate?: string;
358
+ endDate?: string;
359
+ calendar?: Calendar;
360
+ fiscalYear?: string;
361
+ fiscalQuarter?: string;
230
362
  }): Promise<FinancialStatement[]>;
231
363
  /**
232
364
  * Get cash flow statement data
233
365
  *
234
366
  * @param symbol - Stock symbol
235
- * @param options.period - "annual" or "quarterly"
236
- * @param options.limit - Number of periods to return
367
+ * @param options.period - "annual", "quarterly", or "cumulative quarterly"
368
+ * @param options.limit - Number of periods to return (default: 8)
369
+ * @param options.startDate - Start date (YYYY-MM-DD)
370
+ * @param options.endDate - End date (YYYY-MM-DD)
371
+ * @param options.calendar - "calendar" or "fiscal" (default: "fiscal")
372
+ * @param options.fiscalYear - Specific fiscal year (e.g., "2023")
373
+ * @param options.fiscalQuarter - Specific fiscal quarter (Q1, Q2, Q3, Q4, FY, H1)
237
374
  */
238
375
  cashflowStatement(symbol: string, options?: {
239
376
  period?: Period;
240
377
  limit?: number;
378
+ startDate?: string;
379
+ endDate?: string;
380
+ calendar?: Calendar;
381
+ fiscalYear?: string;
382
+ fiscalQuarter?: string;
241
383
  }): Promise<FinancialStatement[]>;
242
384
  /**
243
- * Get revenue breakdown by segment, product, or region
385
+ * Get revenue breakdown
244
386
  *
245
387
  * @param symbol - Stock symbol
246
- * @param options.breakdownType - Type of breakdown
388
+ * @param options.period - Report cycle (e.g., "FY", "Q2")
389
+ * @param options.limit - Number of records to return (default: 6)
390
+ * @param options.startDate - Start date (YYYY-MM-DD)
391
+ * @param options.endDate - End date (YYYY-MM-DD)
392
+ * @param options.fiscalYear - Specific fiscal year (e.g., "2023")
247
393
  */
248
394
  revenueBreakdown(symbol: string, options?: {
249
- breakdownType?: 'segment' | 'product' | 'region';
395
+ period?: string;
396
+ limit?: number;
397
+ startDate?: string;
398
+ endDate?: string;
399
+ fiscalYear?: string;
250
400
  }): Promise<FinancialStatement[]>;
251
401
  /**
252
402
  * Get historical stock prices
@@ -257,63 +407,61 @@ declare class StockModule {
257
407
  prices(symbol: string, options?: {
258
408
  startDate?: string;
259
409
  endDate?: string;
260
- limit?: number;
261
410
  }): Promise<PriceData[]>;
262
411
  /**
263
- * Get K-line (candlestick) data
412
+ * Get real-time stock quote
264
413
  *
265
414
  * @param symbol - Stock symbol
266
- * @param options - Query options
267
415
  */
268
- kline(symbol: string, options?: {
269
- interval?: Interval;
270
- adjust?: PriceAdjust;
271
- startDate?: string;
272
- endDate?: string;
273
- limit?: number;
274
- }): Promise<PriceData[]>;
275
- /**
276
- * Get real-time stock quotes
277
- *
278
- * @param symbols - Single symbol or array of symbols
279
- */
280
- quote(symbols: string | string[]): Promise<Quote[]>;
416
+ quote(symbol: string): Promise<Quote>;
281
417
  /**
282
418
  * Get stock index prices
283
419
  *
284
- * @param symbol - Index symbol
420
+ * @param symbol - Index symbol (e.g., HSI, SPX, DJI)
285
421
  * @param options - Query options
286
422
  */
287
423
  indexPrices(symbol: string, options?: {
288
424
  startDate?: string;
289
425
  endDate?: string;
290
- limit?: number;
291
426
  }): Promise<PriceData[]>;
292
427
  /**
293
428
  * Screen stocks based on various criteria
294
429
  */
295
430
  screener(options?: {
296
- market?: string;
297
- sector?: string;
298
- minMarketCap?: number;
299
- maxMarketCap?: number;
300
- minPe?: number;
301
- maxPe?: number;
431
+ marketCapMoreThan?: number;
432
+ marketCapLowerThan?: number;
433
+ priceMoreThan?: number;
434
+ priceLowerThan?: number;
435
+ changePercentageMoreThan?: number;
436
+ changePercentageLowerThan?: number;
437
+ volumeMoreThan?: number;
438
+ volumeLowerThan?: number;
439
+ country?: string;
440
+ exchange?: string;
441
+ dividendYieldMoreThan?: number;
442
+ dividendYieldLowerThan?: number;
443
+ peTtmMoreThan?: number;
444
+ peTtmLowerThan?: number;
302
445
  limit?: number;
303
446
  }): Promise<CompanyOverview[]>;
304
447
  /**
305
448
  * Get earnings announcement calendar
449
+ *
450
+ * @param options.market - Required: Stock market (cn, hk, us)
451
+ * @param options.startDate - Required: Start date (YYYY-MM-DD)
452
+ * @param options.endDate - Required: End date (YYYY-MM-DD)
453
+ * @param options.symbol - Optional: Stock symbol
306
454
  */
307
- earningsCalendar(options?: {
308
- market?: Market;
309
- startDate?: string;
310
- endDate?: string;
455
+ earningsCalendar(options: {
456
+ market: Market;
457
+ startDate: string;
458
+ endDate: string;
311
459
  symbol?: string;
312
460
  }): Promise<EarningsEvent[]>;
313
461
  /**
314
462
  * Get Hong Kong IPO calendar
315
463
  */
316
- ipoCalendarHK(status?: IPOStatus): Promise<IPOEvent[]>;
464
+ ipoCalendarHK(status: IPOStatus): Promise<IPOEvent[]>;
317
465
  /**
318
466
  * Get constituent stocks of an industry
319
467
  *
@@ -367,84 +515,6 @@ declare class StockModule {
367
515
  private normalizeArrayResponse;
368
516
  }
369
517
 
370
- /**
371
- * Timeline Module
372
- *
373
- * Provides access to timeline feeds based on user's followed entities.
374
- */
375
-
376
- declare class TimelineModule {
377
- private client;
378
- constructor(client: Reportify);
379
- /**
380
- * Get timeline for followed companies
381
- *
382
- * Returns recent content related to companies the user is following.
383
- *
384
- * @param options.num - Number of items to return (default: 10, max: 100)
385
- */
386
- companies(options?: TimelineOptions): Promise<Document[]>;
387
- /**
388
- * Get timeline for followed topics
389
- *
390
- * Returns recent content related to custom topics the user is following.
391
- *
392
- * @param options.num - Number of items to return
393
- */
394
- topics(options?: TimelineOptions): Promise<Document[]>;
395
- /**
396
- * Get timeline for followed professional institutes
397
- *
398
- * Returns recent content from research institutions, banks, etc.
399
- *
400
- * @param options.num - Number of items to return
401
- */
402
- institutes(options?: TimelineOptions): Promise<Document[]>;
403
- /**
404
- * Get timeline for followed public media
405
- *
406
- * Returns recent content from public media accounts.
407
- *
408
- * @param options.num - Number of items to return
409
- */
410
- publicMedia(options?: TimelineOptions): Promise<Document[]>;
411
- /**
412
- * Get timeline for followed social media
413
- *
414
- * Returns recent content from social media accounts.
415
- *
416
- * @param options.num - Number of items to return
417
- */
418
- socialMedia(options?: TimelineOptions): Promise<Document[]>;
419
- }
420
-
421
- /**
422
- * Knowledge Base Module
423
- *
424
- * Provides access to user's personal knowledge base for searching
425
- * uploaded documents.
426
- */
427
-
428
- declare class KBModule {
429
- private client;
430
- constructor(client: Reportify);
431
- /**
432
- * Search user's knowledge base
433
- *
434
- * Performs semantic search across documents the user has uploaded.
435
- *
436
- * @param query - Search query string
437
- * @param options - Search options
438
- *
439
- * @example
440
- * ```typescript
441
- * const results = await client.kb.search('quarterly revenue', { num: 5 });
442
- * results.forEach(chunk => console.log(chunk.content));
443
- * ```
444
- */
445
- search(query: string, options?: KBSearchOptions): Promise<Chunk[]>;
446
- }
447
-
448
518
  /**
449
519
  * Documents Module
450
520
  *
@@ -467,21 +537,6 @@ interface DocSummary {
467
537
  keyPoints?: string[];
468
538
  [key: string]: unknown;
469
539
  }
470
- interface DocsListOptions {
471
- symbols?: string[];
472
- categories?: string[];
473
- startDate?: string;
474
- endDate?: string;
475
- page?: number;
476
- pageSize?: number;
477
- }
478
- interface ChunkSearchOptions {
479
- symbols?: string[];
480
- categories?: string[];
481
- startDate?: string;
482
- endDate?: string;
483
- num?: number;
484
- }
485
540
  declare class DocsModule {
486
541
  private client;
487
542
  constructor(client: Reportify);
@@ -509,6 +564,34 @@ declare class DocsModule {
509
564
  * @param options - Filter options
510
565
  */
511
566
  list(options?: DocsListOptions): Promise<PaginatedResponse<Document>>;
567
+ /**
568
+ * Query documents by symbols
569
+ *
570
+ * @param symbols - Required: Stock symbols
571
+ * @param options - Filter options
572
+ */
573
+ queryBySymbols(symbols: string[], options?: {
574
+ categories?: string[];
575
+ markets?: string[];
576
+ startDate?: string;
577
+ endDate?: string;
578
+ pageNum?: number;
579
+ pageSize?: number;
580
+ }): Promise<PaginatedResponse<Document>>;
581
+ /**
582
+ * Query documents by tags
583
+ *
584
+ * @param tags - Required: Document tags
585
+ * @param options - Filter options
586
+ */
587
+ queryByTags(tags: Record<string, unknown[]>, options?: {
588
+ categories?: string[];
589
+ markets?: string[];
590
+ startDate?: string;
591
+ endDate?: string;
592
+ pageNum?: number;
593
+ pageSize?: number;
594
+ }): Promise<PaginatedResponse<Document>>;
512
595
  /**
513
596
  * Search document chunks semantically
514
597
  *
@@ -516,6 +599,78 @@ declare class DocsModule {
516
599
  * @param options - Search options
517
600
  */
518
601
  searchChunks(query: string, options?: ChunkSearchOptions): Promise<Chunk[]>;
602
+ /**
603
+ * Create a new document folder
604
+ *
605
+ * @param name - Folder name
606
+ * @returns Folder ID
607
+ */
608
+ createFolder(name: string): Promise<{
609
+ folderId: string;
610
+ }>;
611
+ /**
612
+ * Delete a document folder and all files within it
613
+ *
614
+ * @param folderId - Folder ID to delete
615
+ * @returns Deleted folder ID and document IDs
616
+ */
617
+ deleteFolder(folderId: string): Promise<{
618
+ folderId: string;
619
+ docIds: string[];
620
+ }>;
621
+ /**
622
+ * Upload documents by URL
623
+ *
624
+ * @param docs - Array of document upload requests
625
+ * @param options.folderId - Optional folder ID
626
+ * @param options.pdfParsingMode - PDF parsing mode (1: by page, 3: by logic)
627
+ */
628
+ uploadDocs(docs: UploadDocRequest[], options?: {
629
+ folderId?: string;
630
+ pdfParsingMode?: number;
631
+ }): Promise<{
632
+ docs: Array<{
633
+ id: string;
634
+ title: string;
635
+ originalUrl: string;
636
+ }>;
637
+ }>;
638
+ /**
639
+ * Upload documents by URL asynchronously
640
+ *
641
+ * @param docs - Array of document upload requests
642
+ * @param options.folderId - Optional folder ID
643
+ * @param options.pdfParsingMode - PDF parsing mode (1: by page, 3: by logic)
644
+ */
645
+ uploadDocsAsync(docs: UploadDocRequest[], options?: {
646
+ folderId?: string;
647
+ pdfParsingMode?: number;
648
+ }): Promise<{
649
+ docs: Array<{
650
+ id: string;
651
+ title: string;
652
+ originalUrl: string;
653
+ }>;
654
+ }>;
655
+ /**
656
+ * Get upload status of a document
657
+ *
658
+ * @param docId - Document ID
659
+ * @returns Upload status (pending, processing, completed)
660
+ */
661
+ getUploadStatus(docId: string): Promise<{
662
+ id: string;
663
+ status: 'pending' | 'processing' | 'completed';
664
+ }>;
665
+ /**
666
+ * Delete documents
667
+ *
668
+ * @param docIds - Array of document IDs to delete
669
+ * @returns Deleted document IDs
670
+ */
671
+ deleteDocs(docIds: string[]): Promise<{
672
+ docIds: string[];
673
+ }>;
519
674
  }
520
675
 
521
676
  /**
@@ -925,6 +1080,369 @@ declare class ConceptsModule {
925
1080
  today(): Promise<ConceptFeed[]>;
926
1081
  }
927
1082
 
1083
+ /**
1084
+ * Channels Module
1085
+ *
1086
+ * Provides access to channel search, following, and document feeds.
1087
+ */
1088
+
1089
+ declare class ChannelsModule {
1090
+ private client;
1091
+ constructor(client: Reportify);
1092
+ /**
1093
+ * Search for channels by query string
1094
+ *
1095
+ * @param query - Search query string
1096
+ * @param options - Pagination options
1097
+ */
1098
+ search(query: string, options?: {
1099
+ pageNum?: number;
1100
+ pageSize?: number;
1101
+ }): Promise<PaginatedResponse<Channel>>;
1102
+ /**
1103
+ * Get list of channels user is following
1104
+ *
1105
+ * @param options - Pagination options
1106
+ */
1107
+ getFollowings(options?: {
1108
+ pageNum?: number;
1109
+ pageSize?: number;
1110
+ }): Promise<PaginatedResponse<Channel>>;
1111
+ /**
1112
+ * Follow a channel
1113
+ *
1114
+ * @param channelId - Channel ID to follow
1115
+ */
1116
+ follow(channelId: string): Promise<Channel>;
1117
+ /**
1118
+ * Unfollow a channel
1119
+ *
1120
+ * @param channelId - Channel ID to unfollow
1121
+ */
1122
+ unfollow(channelId: string): Promise<{
1123
+ status: boolean;
1124
+ message: string;
1125
+ }>;
1126
+ /**
1127
+ * Get documents from followed channels
1128
+ *
1129
+ * @param options - Query options
1130
+ */
1131
+ getDocs(options?: {
1132
+ channelIds?: string;
1133
+ pageNum?: number;
1134
+ pageSize?: number;
1135
+ }): Promise<PaginatedResponse<Document>>;
1136
+ }
1137
+
1138
+ /**
1139
+ * Chat Module
1140
+ *
1141
+ * Provides chat completion based on document content.
1142
+ */
1143
+
1144
+ declare class ChatModule {
1145
+ private client;
1146
+ constructor(client: Reportify);
1147
+ /**
1148
+ * Chat completion based on document content
1149
+ *
1150
+ * @param query - User query
1151
+ * @param options - Chat options
1152
+ */
1153
+ completion(query: string, options?: ChatCompletionOptions): Promise<ChatCompletionResponse>;
1154
+ }
1155
+
1156
+ /**
1157
+ * Agent Module
1158
+ *
1159
+ * Provides access to agent conversations and chat functionality.
1160
+ */
1161
+
1162
+ declare class AgentModule {
1163
+ private client;
1164
+ constructor(client: Reportify);
1165
+ /**
1166
+ * Create a new agent conversation
1167
+ *
1168
+ * @param agentId - Agent ID
1169
+ * @param title - Optional conversation title
1170
+ */
1171
+ createConversation(agentId: number, title?: string): Promise<AgentConversation>;
1172
+ /**
1173
+ * Chat with agent in a conversation
1174
+ *
1175
+ * @param conversationId - Conversation ID
1176
+ * @param message - User message
1177
+ * @param options - Chat options
1178
+ */
1179
+ chat(conversationId: number, message: string, options?: {
1180
+ documents?: DocumentInput[];
1181
+ stream?: boolean;
1182
+ }): Promise<unknown>;
1183
+ /**
1184
+ * Get conversation details
1185
+ *
1186
+ * @param conversationId - Conversation ID
1187
+ */
1188
+ getConversation(conversationId: number): Promise<AgentConversation>;
1189
+ /**
1190
+ * List messages in a conversation
1191
+ *
1192
+ * @param conversationId - Conversation ID
1193
+ * @param options - Query options
1194
+ */
1195
+ listMessages(conversationId: number, options?: {
1196
+ limit?: number;
1197
+ beforeMessageId?: number;
1198
+ }): Promise<{
1199
+ messages: AgentMessage[];
1200
+ }>;
1201
+ /**
1202
+ * Get assistant message events (streaming or non-streaming)
1203
+ *
1204
+ * @param conversationId - Conversation ID
1205
+ * @param assistantMessageId - Assistant message ID from chat response header
1206
+ * @param options - Query options
1207
+ */
1208
+ getAssistantMessageEvents(conversationId: number, assistantMessageId: string, options?: {
1209
+ stream?: boolean;
1210
+ timeout?: number;
1211
+ fromOffset?: number;
1212
+ }): Promise<unknown>;
1213
+ /**
1214
+ * Cancel agent execution
1215
+ *
1216
+ * @param conversationId - Conversation ID
1217
+ * @param assistantMessageId - Assistant message ID
1218
+ */
1219
+ cancelExecution(conversationId: number, assistantMessageId: string): Promise<{
1220
+ responseId: string;
1221
+ status: string;
1222
+ }>;
1223
+ /**
1224
+ * Get agent generated file
1225
+ *
1226
+ * @param fileId - Agent generated file ID
1227
+ * @returns File content as ArrayBuffer
1228
+ *
1229
+ * @example
1230
+ * ```typescript
1231
+ * const fileContent = await client.agent.getFile('file_abc123');
1232
+ * // Save to file in Node.js
1233
+ * fs.writeFileSync('output.xlsx', Buffer.from(fileContent));
1234
+ * ```
1235
+ */
1236
+ getFile(fileId: string): Promise<ArrayBuffer>;
1237
+ }
1238
+
1239
+ /**
1240
+ * Knowledge Base Module
1241
+ *
1242
+ * Provides access to user's personal knowledge base for searching
1243
+ * uploaded documents.
1244
+ *
1245
+ * NOTE: This module uses internal APIs that are not documented in the public OpenAPI spec.
1246
+ * These endpoints may change without notice. For production use, consider using
1247
+ * the documented docs.searchChunks() method instead.
1248
+ */
1249
+
1250
+ interface KBSearchOptions {
1251
+ folderIds?: string[];
1252
+ docIds?: string[];
1253
+ startDate?: string;
1254
+ endDate?: string;
1255
+ num?: number;
1256
+ }
1257
+ declare class KBModule {
1258
+ private client;
1259
+ constructor(client: Reportify);
1260
+ /**
1261
+ * Search user's knowledge base
1262
+ *
1263
+ * @deprecated This method uses an internal API not documented in the public OpenAPI spec.
1264
+ * Consider using client.docs.searchChunks() instead.
1265
+ *
1266
+ * Performs semantic search across documents the user has uploaded
1267
+ * to their personal knowledge base.
1268
+ *
1269
+ * @param query - Search query string
1270
+ * @param options - Search options
1271
+ *
1272
+ * @example
1273
+ * ```typescript
1274
+ * const results = await client.kb.search('quarterly revenue', { num: 5 });
1275
+ * results.forEach(chunk => console.log(chunk.content));
1276
+ * ```
1277
+ */
1278
+ search(query: string, options?: KBSearchOptions): Promise<Chunk[]>;
1279
+ }
1280
+
1281
+ /**
1282
+ * Timeline Module
1283
+ *
1284
+ * Provides access to timeline feeds based on user's followed entities.
1285
+ *
1286
+ * NOTE: This module uses internal APIs that are not documented in the public OpenAPI spec.
1287
+ * These endpoints may change without notice.
1288
+ */
1289
+
1290
+ interface TimelineOptions {
1291
+ num?: number;
1292
+ }
1293
+ declare class TimelineModule {
1294
+ private client;
1295
+ constructor(client: Reportify);
1296
+ /**
1297
+ * Get timeline for followed companies
1298
+ *
1299
+ * @deprecated This method uses an internal API not documented in the public OpenAPI spec.
1300
+ *
1301
+ * Returns recent content related to companies the user is following.
1302
+ *
1303
+ * @param options.num - Number of items to return (default: 10, max: 100)
1304
+ */
1305
+ companies(options?: TimelineOptions): Promise<Document[]>;
1306
+ /**
1307
+ * Get timeline for followed topics
1308
+ *
1309
+ * @deprecated This method uses an internal API not documented in the public OpenAPI spec.
1310
+ *
1311
+ * Returns recent content related to custom topics the user is following.
1312
+ *
1313
+ * @param options.num - Number of items to return
1314
+ */
1315
+ topics(options?: TimelineOptions): Promise<Document[]>;
1316
+ /**
1317
+ * Get timeline for followed professional institutes
1318
+ *
1319
+ * @deprecated This method uses an internal API not documented in the public OpenAPI spec.
1320
+ *
1321
+ * Returns recent content from research institutions, banks, etc.
1322
+ *
1323
+ * @param options.num - Number of items to return
1324
+ */
1325
+ institutes(options?: TimelineOptions): Promise<Document[]>;
1326
+ /**
1327
+ * Get timeline for followed public media
1328
+ *
1329
+ * @deprecated This method uses an internal API not documented in the public OpenAPI spec.
1330
+ *
1331
+ * Returns recent content from public media accounts.
1332
+ *
1333
+ * @param options.num - Number of items to return
1334
+ */
1335
+ publicMedia(options?: TimelineOptions): Promise<Document[]>;
1336
+ /**
1337
+ * Get timeline for followed social media
1338
+ *
1339
+ * @deprecated This method uses an internal API not documented in the public OpenAPI spec.
1340
+ *
1341
+ * Returns recent content from social media accounts.
1342
+ *
1343
+ * @param options.num - Number of items to return
1344
+ */
1345
+ socialMedia(options?: TimelineOptions): Promise<Document[]>;
1346
+ }
1347
+
1348
+ /**
1349
+ * User Module
1350
+ *
1351
+ * Provides access to user-related tools and data.
1352
+ */
1353
+
1354
+ declare class UserModule {
1355
+ private client;
1356
+ constructor(client: Reportify);
1357
+ /**
1358
+ * Get all companies followed by the user
1359
+ *
1360
+ * Returns a list of companies that the user is following,
1361
+ * including company details like symbol, name, logo, and follow timestamp.
1362
+ *
1363
+ * @example
1364
+ * ```typescript
1365
+ * const companies = await client.user.followedCompanies();
1366
+ * companies.forEach(company => {
1367
+ * console.log(`${company.symbol}: ${company.name}`);
1368
+ * });
1369
+ * ```
1370
+ */
1371
+ followedCompanies(): Promise<FollowedCompany[]>;
1372
+ }
1373
+
1374
+ /**
1375
+ * Search Module
1376
+ *
1377
+ * Provides document search functionality across various categories.
1378
+ */
1379
+
1380
+ /**
1381
+ * Search module for document search functionality.
1382
+ *
1383
+ * @example
1384
+ * ```typescript
1385
+ * const results = await client.search.all('Tesla earnings');
1386
+ * const news = await client.search.news('Apple iPhone');
1387
+ * ```
1388
+ */
1389
+ declare class SearchModule {
1390
+ private client;
1391
+ constructor(client: Reportify);
1392
+ /**
1393
+ * Search documents across all categories
1394
+ *
1395
+ * @param query - Search query string
1396
+ * @param options - Search options
1397
+ * @returns List of matching documents
1398
+ */
1399
+ all(query: string, options?: SearchOptions): Promise<Document[]>;
1400
+ /**
1401
+ * Search news articles
1402
+ */
1403
+ news(query: string, options?: SearchOptions): Promise<Document[]>;
1404
+ /**
1405
+ * Search research reports
1406
+ */
1407
+ reports(query: string, options?: SearchOptions): Promise<Document[]>;
1408
+ /**
1409
+ * Search company filings
1410
+ *
1411
+ * @param query - Search query string
1412
+ * @param symbols - Required: Stock symbols to filter by
1413
+ * @param options - Search options
1414
+ */
1415
+ filings(query: string, symbols: string[], options?: Omit<SearchOptions, 'symbols' | 'categories' | 'industries' | 'channelIds'>): Promise<Document[]>;
1416
+ /**
1417
+ * Search earnings call transcripts and slides
1418
+ *
1419
+ * @param query - Search query string
1420
+ * @param symbols - Required: Stock symbols to filter by
1421
+ * @param options - Search options including fiscal year/quarter filters
1422
+ */
1423
+ conferenceCalls(query: string, symbols: string[], options?: EarningsSearchOptions): Promise<Document[]>;
1424
+ /**
1425
+ * Search earnings financial reports
1426
+ *
1427
+ * @param query - Search query string
1428
+ * @param symbols - Required: Stock symbols to filter by
1429
+ * @param options - Search options including fiscal year/quarter filters
1430
+ */
1431
+ earningsPack(query: string, symbols: string[], options?: EarningsSearchOptions): Promise<Document[]>;
1432
+ /**
1433
+ * Search conference calls and IR (Investor Relations) meetings
1434
+ */
1435
+ minutes(query: string, options?: SearchOptions): Promise<Document[]>;
1436
+ /**
1437
+ * Search social media content
1438
+ */
1439
+ socials(query: string, options?: SearchOptions): Promise<Document[]>;
1440
+ /**
1441
+ * Search webpage content
1442
+ */
1443
+ webpages(query: string, options?: Omit<SearchOptions, 'symbols' | 'categories' | 'industries' | 'channelIds'>): Promise<Document[]>;
1444
+ }
1445
+
928
1446
  /**
929
1447
  * Reportify Client
930
1448
  *
@@ -949,12 +1467,17 @@ declare class Reportify {
949
1467
  private apiKey;
950
1468
  private baseUrl;
951
1469
  private timeout;
1470
+ readonly search: SearchModule;
952
1471
  readonly stock: StockModule;
953
- readonly timeline: TimelineModule;
954
- readonly kb: KBModule;
955
1472
  readonly docs: DocsModule;
956
1473
  readonly quant: QuantModule;
957
1474
  readonly concepts: ConceptsModule;
1475
+ readonly channels: ChannelsModule;
1476
+ readonly chat: ChatModule;
1477
+ readonly agent: AgentModule;
1478
+ readonly kb: KBModule;
1479
+ readonly timeline: TimelineModule;
1480
+ readonly user: UserModule;
958
1481
  constructor(config: ReportifyConfig);
959
1482
  /**
960
1483
  * Make an HTTP request to the API
@@ -972,35 +1495,13 @@ declare class Reportify {
972
1495
  */
973
1496
  post<T = unknown>(path: string, body?: Record<string, unknown>): Promise<T>;
974
1497
  /**
975
- * Search documents across all categories
976
- *
977
- * @param query - Search query string
978
- * @param options - Search options
979
- * @returns List of matching documents
980
- *
981
- * @example
982
- * ```typescript
983
- * const docs = await client.search('Tesla earnings', { num: 10 });
984
- * docs.forEach(doc => console.log(doc.title));
985
- * ```
986
- */
987
- search(query: string, options?: SearchOptions): Promise<Document[]>;
988
- /**
989
- * Search news articles
990
- */
991
- searchNews(query: string, options?: SearchOptions): Promise<Document[]>;
992
- /**
993
- * Search research reports
994
- */
995
- searchReports(query: string, options?: SearchOptions): Promise<Document[]>;
996
- /**
997
- * Search company filings
1498
+ * Make a DELETE request
998
1499
  */
999
- searchFilings(query: string, options?: SearchOptions): Promise<Document[]>;
1500
+ delete<T = unknown>(path: string, body?: Record<string, unknown>): Promise<T>;
1000
1501
  /**
1001
- * Search earnings call transcripts
1502
+ * Make a GET request and return raw bytes (for file downloads)
1002
1503
  */
1003
- searchTranscripts(query: string, options?: SearchOptions): Promise<Document[]>;
1504
+ getBytes(path: string): Promise<ArrayBuffer>;
1004
1505
  }
1005
1506
 
1006
- export { APIError, AuthenticationError, type BacktestParams, type BacktestResult, type BatchOHLCVParams, type Chunk, type CompanyInfo, type CompanyOverview, type Concept, type ConceptDoc, type ConceptEvent, type ConceptFeed, type ConceptStock, ConceptsModule, DocsModule, type Document, type EarningsEvent, type FactorComputeParams, type FactorMeta, type FinancialStatement, type IPOEvent, type IPOStatus, type IndexConstituent, type IndexFund, type IndicatorComputeParams, type IndicatorData, type IndicatorMeta, type IndustryConstituent, type Interval, KBModule, type KBSearchOptions, type Market, NotFoundError, type OHLCVData, type OHLCVParams, type PaginatedResponse, type Period, type PriceAdjust, type PriceData, QuantModule, type Quote, RateLimitError, Reportify, type ReportifyConfig, ReportifyError, type ScreenParams, type ScreenedStock, type SearchOptions, type Shareholder, type StockInfo, type StockMarket, StockModule, TimelineModule, type TimelineOptions };
1507
+ export { APIError, type AgentConversation, type AgentMessage, AgentModule, AuthenticationError, type BacktestParams, type BacktestResult, type BatchOHLCVParams, type Calendar, type Channel, ChannelsModule, type ChatCompletionOptions, type ChatCompletionResponse, type ChatMode, ChatModule, type Chunk, type ChunkSearchOptions, type CompanyInfo, type CompanyOverview, type Concept, type ConceptDoc, type ConceptEvent, type ConceptFeed, type ConceptStock, ConceptsModule, type DocsListOptions, DocsModule, type Document, type DocumentInput, type EarningsEvent, type EarningsSearchOptions, type FactorComputeParams, type FactorMeta, type FinancialStatement, type FollowedCompany, type IPOEvent, type IPOStatus, type IndexConstituent, type IndexFund, type IndicatorComputeParams, type IndicatorData, type IndicatorMeta, type IndustryConstituent, KBModule, type KBSearchOptions, type Market, NotFoundError, type OHLCVData, type OHLCVParams, type PaginatedResponse, type Period, type PriceData, QuantModule, type Quote, RateLimitError, Reportify, type ReportifyConfig, ReportifyError, type ScreenParams, type ScreenedStock, SearchModule, type SearchOptions, type Shareholder, type ShareholderType, type StockInfo, type StockMarket, StockModule, TimelineModule, type TimelineOptions, type UploadDocRequest, UserModule };