paprflare-sdk 0.0.13 → 0.0.15
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 +392 -59
- package/dist/index.d.ts +392 -59
- package/dist/index.js +17 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -17
- package/dist/index.mjs.map +1 -1
- package/dist/react/index.d.mts +0 -2
- package/dist/react/index.d.ts +0 -2
- package/dist/react/index.js +2 -2
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +2 -2
- package/dist/react/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.d.mts
CHANGED
|
@@ -7,12 +7,35 @@ import EventEmitter from 'eventemitter3';
|
|
|
7
7
|
interface DatabaseAdapter {
|
|
8
8
|
createConversation(userId: string, metadata?: Record<string, unknown>): Promise<string>;
|
|
9
9
|
getConversation(conversationId: string): Promise<Conversation | null>;
|
|
10
|
-
listConversations(userId: string, limit?: number): Promise<Conversation[]>;
|
|
10
|
+
listConversations(userId: string, limit?: number, offset?: number): Promise<Conversation[]>;
|
|
11
|
+
updateConversation(conversationId: string, updates: Partial<Conversation>): Promise<void>;
|
|
11
12
|
deleteConversation(conversationId: string): Promise<void>;
|
|
13
|
+
deleteAllConversations(userId: string): Promise<void>;
|
|
14
|
+
countConversations(userId: string): Promise<number>;
|
|
15
|
+
conversationExists(conversationId: string): Promise<boolean>;
|
|
16
|
+
searchConversations(userId: string, query: string): Promise<Conversation[]>;
|
|
12
17
|
saveMessage(conversationId: string, message: Message): Promise<void>;
|
|
13
|
-
|
|
18
|
+
saveManyMessages(conversationId: string, messages: Message[]): Promise<void>;
|
|
19
|
+
getMessage(messageId: string): Promise<Message | null>;
|
|
20
|
+
getMessages(conversationId: string, limit?: number, offset?: number): Promise<Message[]>;
|
|
21
|
+
getMessagesByRole(conversationId: string, role: Message['role']): Promise<Message[]>;
|
|
14
22
|
updateMessage(messageId: string, updates: Partial<Message>): Promise<void>;
|
|
23
|
+
deleteMessage(messageId: string): Promise<void>;
|
|
24
|
+
deleteAllMessages(conversationId: string): Promise<void>;
|
|
25
|
+
countMessages(conversationId: string): Promise<number>;
|
|
26
|
+
getLastMessage(conversationId: string): Promise<Message | null>;
|
|
27
|
+
searchMessages(conversationId: string, query: string): Promise<Message[]>;
|
|
15
28
|
updateConversationMetadata(conversationId: string, metadata: Record<string, unknown>): Promise<void>;
|
|
29
|
+
getConversationMetadata(conversationId: string): Promise<Record<string, unknown> | null>;
|
|
30
|
+
deleteConversationMetadata(conversationId: string, keys: string[]): Promise<void>;
|
|
31
|
+
userExists(userId: string): Promise<boolean>;
|
|
32
|
+
deleteUser(userId: string): Promise<void>;
|
|
33
|
+
exportConversation(conversationId: string): Promise<ConversationExport>;
|
|
34
|
+
importConversation(userId: string, data: ConversationExport): Promise<string>;
|
|
35
|
+
connect(): Promise<void>;
|
|
36
|
+
disconnect(): Promise<void>;
|
|
37
|
+
healthCheck(): Promise<boolean>;
|
|
38
|
+
purge(): Promise<void>;
|
|
16
39
|
}
|
|
17
40
|
interface Conversation {
|
|
18
41
|
id: string;
|
|
@@ -22,6 +45,11 @@ interface Conversation {
|
|
|
22
45
|
createdAt: Date;
|
|
23
46
|
updatedAt: Date;
|
|
24
47
|
}
|
|
48
|
+
interface ConversationExport {
|
|
49
|
+
conversation: Conversation;
|
|
50
|
+
messages: Message[];
|
|
51
|
+
exportedAt: Date;
|
|
52
|
+
}
|
|
25
53
|
|
|
26
54
|
/**
|
|
27
55
|
* Drizzle ORM adapter
|
|
@@ -30,14 +58,37 @@ declare class DrizzleAdapter implements DatabaseAdapter {
|
|
|
30
58
|
private db;
|
|
31
59
|
private schema;
|
|
32
60
|
constructor(db: any, schema: any);
|
|
61
|
+
connect(): Promise<void>;
|
|
62
|
+
disconnect(): Promise<void>;
|
|
63
|
+
healthCheck(): Promise<boolean>;
|
|
64
|
+
purge(): Promise<void>;
|
|
33
65
|
createConversation(userId: string, metadata?: Record<string, unknown>): Promise<string>;
|
|
34
66
|
getConversation(conversationId: string): Promise<Conversation | null>;
|
|
35
|
-
listConversations(userId: string, limit?: number): Promise<Conversation[]>;
|
|
67
|
+
listConversations(userId: string, limit?: number, offset?: number): Promise<Conversation[]>;
|
|
68
|
+
updateConversation(conversationId: string, updates: Partial<Conversation>): Promise<void>;
|
|
36
69
|
deleteConversation(conversationId: string): Promise<void>;
|
|
70
|
+
deleteAllConversations(userId: string): Promise<void>;
|
|
71
|
+
countConversations(userId: string): Promise<number>;
|
|
72
|
+
conversationExists(conversationId: string): Promise<boolean>;
|
|
73
|
+
searchConversations(userId: string, query: string): Promise<Conversation[]>;
|
|
37
74
|
saveMessage(conversationId: string, message: Message): Promise<void>;
|
|
38
|
-
|
|
75
|
+
saveManyMessages(conversationId: string, messages: Message[]): Promise<void>;
|
|
76
|
+
getMessage(messageId: string): Promise<Message | null>;
|
|
77
|
+
getMessages(conversationId: string, limit?: number, offset?: number): Promise<Message[]>;
|
|
78
|
+
getMessagesByRole(conversationId: string, role: Message['role']): Promise<Message[]>;
|
|
39
79
|
updateMessage(messageId: string, updates: Partial<Message>): Promise<void>;
|
|
80
|
+
deleteMessage(messageId: string): Promise<void>;
|
|
81
|
+
deleteAllMessages(conversationId: string): Promise<void>;
|
|
82
|
+
countMessages(conversationId: string): Promise<number>;
|
|
83
|
+
getLastMessage(conversationId: string): Promise<Message | null>;
|
|
84
|
+
searchMessages(conversationId: string, query: string): Promise<Message[]>;
|
|
40
85
|
updateConversationMetadata(conversationId: string, metadata: Record<string, unknown>): Promise<void>;
|
|
86
|
+
getConversationMetadata(conversationId: string): Promise<Record<string, unknown> | null>;
|
|
87
|
+
deleteConversationMetadata(conversationId: string, keys: string[]): Promise<void>;
|
|
88
|
+
userExists(userId: string): Promise<boolean>;
|
|
89
|
+
deleteUser(userId: string): Promise<void>;
|
|
90
|
+
exportConversation(conversationId: string): Promise<ConversationExport>;
|
|
91
|
+
importConversation(userId: string, data: ConversationExport): Promise<string>;
|
|
41
92
|
}
|
|
42
93
|
|
|
43
94
|
/**
|
|
@@ -46,11 +97,37 @@ declare class DrizzleAdapter implements DatabaseAdapter {
|
|
|
46
97
|
declare class DatabaseManager {
|
|
47
98
|
private adapter;
|
|
48
99
|
constructor(adapter: DatabaseAdapter);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
100
|
+
connect(): Promise<void>;
|
|
101
|
+
disconnect(): Promise<void>;
|
|
102
|
+
healthCheck(): Promise<boolean>;
|
|
103
|
+
purge(): Promise<void>;
|
|
104
|
+
create(userId: string, systemPrompt?: string): Promise<string>;
|
|
105
|
+
getConversation(conversationId: string): Promise<Conversation | null>;
|
|
106
|
+
listConversations(userId: string, limit?: number, offset?: number): Promise<Conversation[]>;
|
|
107
|
+
updateConversation(conversationId: string, updates: Partial<Conversation>): Promise<void>;
|
|
52
108
|
deleteConversation(conversationId: string): Promise<void>;
|
|
53
|
-
|
|
109
|
+
deleteAllConversations(userId: string): Promise<void>;
|
|
110
|
+
countConversations(userId: string): Promise<number>;
|
|
111
|
+
conversationExists(conversationId: string): Promise<boolean>;
|
|
112
|
+
searchConversations(userId: string, query: string): Promise<Conversation[]>;
|
|
113
|
+
addMessage(conversationId: string, message: Message): Promise<void>;
|
|
114
|
+
addManyMessages(conversationId: string, messages: Message[]): Promise<void>;
|
|
115
|
+
getMessage(messageId: string): Promise<Message | null>;
|
|
116
|
+
getConversationHistory(conversationId: string, limit?: number, offset?: number): Promise<Message[]>;
|
|
117
|
+
getMessagesByRole(conversationId: string, role: Message['role']): Promise<Message[]>;
|
|
118
|
+
updateMessage(messageId: string, updates: Partial<Message>): Promise<void>;
|
|
119
|
+
deleteMessage(messageId: string): Promise<void>;
|
|
120
|
+
deleteAllMessages(conversationId: string): Promise<void>;
|
|
121
|
+
countMessages(conversationId: string): Promise<number>;
|
|
122
|
+
getLastMessage(conversationId: string): Promise<Message | null>;
|
|
123
|
+
searchMessages(conversationId: string, query: string): Promise<Message[]>;
|
|
124
|
+
updateConversationMetadata(conversationId: string, metadata: Record<string, unknown>): Promise<void>;
|
|
125
|
+
getConversationMetadata(conversationId: string): Promise<Record<string, unknown> | null>;
|
|
126
|
+
deleteConversationMetadata(conversationId: string, keys: string[]): Promise<void>;
|
|
127
|
+
userExists(userId: string): Promise<boolean>;
|
|
128
|
+
deleteUser(userId: string): Promise<void>;
|
|
129
|
+
exportConversation(conversationId: string): Promise<ConversationExport>;
|
|
130
|
+
importConversation(userId: string, data: ConversationExport): Promise<string>;
|
|
54
131
|
}
|
|
55
132
|
|
|
56
133
|
/**
|
|
@@ -59,14 +136,37 @@ declare class DatabaseManager {
|
|
|
59
136
|
declare class MemoryAdapter implements DatabaseAdapter {
|
|
60
137
|
private conversations;
|
|
61
138
|
private messages;
|
|
139
|
+
connect(): Promise<void>;
|
|
140
|
+
disconnect(): Promise<void>;
|
|
141
|
+
healthCheck(): Promise<boolean>;
|
|
142
|
+
purge(): Promise<void>;
|
|
62
143
|
createConversation(userId: string, metadata?: Record<string, unknown>): Promise<string>;
|
|
63
144
|
getConversation(conversationId: string): Promise<Conversation | null>;
|
|
64
|
-
listConversations(userId: string, limit?: number): Promise<Conversation[]>;
|
|
145
|
+
listConversations(userId: string, limit?: number, offset?: number): Promise<Conversation[]>;
|
|
146
|
+
updateConversation(conversationId: string, updates: Partial<Conversation>): Promise<void>;
|
|
65
147
|
deleteConversation(conversationId: string): Promise<void>;
|
|
148
|
+
deleteAllConversations(userId: string): Promise<void>;
|
|
149
|
+
countConversations(userId: string): Promise<number>;
|
|
150
|
+
conversationExists(conversationId: string): Promise<boolean>;
|
|
151
|
+
searchConversations(userId: string, query: string): Promise<Conversation[]>;
|
|
66
152
|
saveMessage(conversationId: string, message: Message): Promise<void>;
|
|
67
|
-
|
|
153
|
+
saveManyMessages(conversationId: string, messages: Message[]): Promise<void>;
|
|
154
|
+
getMessage(messageId: string): Promise<Message | null>;
|
|
155
|
+
getMessages(conversationId: string, limit?: number, offset?: number): Promise<Message[]>;
|
|
156
|
+
getMessagesByRole(conversationId: string, role: Message['role']): Promise<Message[]>;
|
|
68
157
|
updateMessage(messageId: string, updates: Partial<Message>): Promise<void>;
|
|
158
|
+
deleteMessage(messageId: string): Promise<void>;
|
|
159
|
+
deleteAllMessages(conversationId: string): Promise<void>;
|
|
160
|
+
countMessages(conversationId: string): Promise<number>;
|
|
161
|
+
getLastMessage(conversationId: string): Promise<Message | null>;
|
|
162
|
+
searchMessages(conversationId: string, query: string): Promise<Message[]>;
|
|
69
163
|
updateConversationMetadata(conversationId: string, metadata: Record<string, unknown>): Promise<void>;
|
|
164
|
+
getConversationMetadata(conversationId: string): Promise<Record<string, unknown> | null>;
|
|
165
|
+
deleteConversationMetadata(conversationId: string, keys: string[]): Promise<void>;
|
|
166
|
+
userExists(userId: string): Promise<boolean>;
|
|
167
|
+
deleteUser(userId: string): Promise<void>;
|
|
168
|
+
exportConversation(conversationId: string): Promise<ConversationExport>;
|
|
169
|
+
importConversation(userId: string, data: ConversationExport): Promise<string>;
|
|
70
170
|
}
|
|
71
171
|
|
|
72
172
|
/**
|
|
@@ -75,14 +175,38 @@ declare class MemoryAdapter implements DatabaseAdapter {
|
|
|
75
175
|
declare class PrismaAdapter implements DatabaseAdapter {
|
|
76
176
|
private prisma;
|
|
77
177
|
constructor(prisma: any);
|
|
178
|
+
connect(): Promise<void>;
|
|
179
|
+
disconnect(): Promise<void>;
|
|
180
|
+
healthCheck(): Promise<boolean>;
|
|
181
|
+
purge(): Promise<void>;
|
|
78
182
|
createConversation(userId: string, metadata?: Record<string, unknown>): Promise<string>;
|
|
79
183
|
getConversation(conversationId: string): Promise<Conversation | null>;
|
|
80
|
-
listConversations(userId: string, limit?: number): Promise<Conversation[]>;
|
|
184
|
+
listConversations(userId: string, limit?: number, offset?: number): Promise<Conversation[]>;
|
|
185
|
+
updateConversation(conversationId: string, updates: Partial<Conversation>): Promise<void>;
|
|
81
186
|
deleteConversation(conversationId: string): Promise<void>;
|
|
187
|
+
deleteAllConversations(userId: string): Promise<void>;
|
|
188
|
+
countConversations(userId: string): Promise<number>;
|
|
189
|
+
conversationExists(conversationId: string): Promise<boolean>;
|
|
190
|
+
searchConversations(userId: string, query: string): Promise<Conversation[]>;
|
|
191
|
+
private toMessage;
|
|
82
192
|
saveMessage(conversationId: string, message: Message): Promise<void>;
|
|
83
|
-
|
|
193
|
+
saveManyMessages(conversationId: string, messages: Message[]): Promise<void>;
|
|
194
|
+
getMessage(messageId: string): Promise<Message | null>;
|
|
195
|
+
getMessages(conversationId: string, limit?: number, offset?: number): Promise<Message[]>;
|
|
196
|
+
getMessagesByRole(conversationId: string, role: Message['role']): Promise<Message[]>;
|
|
84
197
|
updateMessage(messageId: string, updates: Partial<Message>): Promise<void>;
|
|
198
|
+
deleteMessage(messageId: string): Promise<void>;
|
|
199
|
+
deleteAllMessages(conversationId: string): Promise<void>;
|
|
200
|
+
countMessages(conversationId: string): Promise<number>;
|
|
201
|
+
getLastMessage(conversationId: string): Promise<Message | null>;
|
|
202
|
+
searchMessages(conversationId: string, query: string): Promise<Message[]>;
|
|
85
203
|
updateConversationMetadata(conversationId: string, metadata: Record<string, unknown>): Promise<void>;
|
|
204
|
+
getConversationMetadata(conversationId: string): Promise<Record<string, unknown> | null>;
|
|
205
|
+
deleteConversationMetadata(conversationId: string, keys: string[]): Promise<void>;
|
|
206
|
+
userExists(userId: string): Promise<boolean>;
|
|
207
|
+
deleteUser(userId: string): Promise<void>;
|
|
208
|
+
exportConversation(conversationId: string): Promise<ConversationExport>;
|
|
209
|
+
importConversation(userId: string, data: ConversationExport): Promise<string>;
|
|
86
210
|
}
|
|
87
211
|
|
|
88
212
|
interface Message {
|
|
@@ -341,9 +465,7 @@ interface ChatState {
|
|
|
341
465
|
*/
|
|
342
466
|
interface UsePaprFlareConfig {
|
|
343
467
|
apiEndpoint: string;
|
|
344
|
-
apiKey?: string;
|
|
345
468
|
headers?: Record<string, string>;
|
|
346
|
-
defaultConfig?: Partial<ChatConfig>;
|
|
347
469
|
onError?: (error: Error) => void;
|
|
348
470
|
onComplete?: (message: Message) => void;
|
|
349
471
|
onArtifact?: (artifact: Artifact) => void;
|
|
@@ -451,29 +573,163 @@ interface Thread {
|
|
|
451
573
|
messages: Message[];
|
|
452
574
|
config?: ChatConfig;
|
|
453
575
|
metadata: Record<string, unknown>;
|
|
576
|
+
tags: string[];
|
|
577
|
+
title?: string;
|
|
454
578
|
createdAt: number;
|
|
455
579
|
updatedAt: number;
|
|
456
|
-
|
|
580
|
+
lastActiveAt: number;
|
|
581
|
+
status: 'active' | 'paused' | 'completed' | 'error' | 'archived';
|
|
582
|
+
priority: 'low' | 'normal' | 'high';
|
|
583
|
+
messageCount: number;
|
|
584
|
+
tokenCount?: number;
|
|
585
|
+
errorCount: number;
|
|
586
|
+
lastError?: string;
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Thread filter options
|
|
590
|
+
*/
|
|
591
|
+
interface ThreadFilter {
|
|
592
|
+
status?: Thread['status'] | Thread['status'][];
|
|
593
|
+
priority?: Thread['priority'];
|
|
594
|
+
tags?: string[];
|
|
595
|
+
createdAfter?: number;
|
|
596
|
+
createdBefore?: number;
|
|
597
|
+
updatedAfter?: number;
|
|
598
|
+
search?: string;
|
|
599
|
+
}
|
|
600
|
+
/**
|
|
601
|
+
* Thread sort options
|
|
602
|
+
*/
|
|
603
|
+
interface ThreadSortOptions {
|
|
604
|
+
field: 'createdAt' | 'updatedAt' | 'lastActiveAt' | 'messageCount' | 'priority';
|
|
605
|
+
direction: 'asc' | 'desc';
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* Thread pagination options
|
|
609
|
+
*/
|
|
610
|
+
interface ThreadPaginationOptions {
|
|
611
|
+
limit?: number;
|
|
612
|
+
offset?: number;
|
|
613
|
+
sort?: ThreadSortOptions;
|
|
614
|
+
}
|
|
615
|
+
/**
|
|
616
|
+
* Thread statistics
|
|
617
|
+
*/
|
|
618
|
+
interface ThreadStats {
|
|
619
|
+
total: number;
|
|
620
|
+
active: number;
|
|
621
|
+
paused: number;
|
|
622
|
+
completed: number;
|
|
623
|
+
error: number;
|
|
624
|
+
archived: number;
|
|
625
|
+
totalMessages: number;
|
|
626
|
+
totalTokens: number;
|
|
627
|
+
averageMessagesPerThread: number;
|
|
628
|
+
oldestThread?: number;
|
|
629
|
+
newestThread?: number;
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* Thread export format
|
|
633
|
+
*/
|
|
634
|
+
interface ThreadExport {
|
|
635
|
+
thread: Thread;
|
|
636
|
+
messages: Message[];
|
|
637
|
+
exportedAt: number;
|
|
638
|
+
version: string;
|
|
457
639
|
}
|
|
458
640
|
/**
|
|
459
641
|
* Thread events
|
|
460
642
|
*/
|
|
461
643
|
type ThreadEvent = {
|
|
644
|
+
type: 'thread-created';
|
|
645
|
+
threadId: string;
|
|
646
|
+
thread: Thread;
|
|
647
|
+
} | {
|
|
648
|
+
type: 'thread-deleted';
|
|
649
|
+
threadId: string;
|
|
650
|
+
} | {
|
|
651
|
+
type: 'thread-archived';
|
|
652
|
+
threadId: string;
|
|
653
|
+
} | {
|
|
654
|
+
type: 'thread-restored';
|
|
655
|
+
threadId: string;
|
|
656
|
+
} | {
|
|
657
|
+
type: 'thread-cleared';
|
|
658
|
+
threadId: string;
|
|
659
|
+
} | {
|
|
660
|
+
type: 'thread-merged';
|
|
661
|
+
threadId: string;
|
|
662
|
+
sourceThreadId: string;
|
|
663
|
+
} | {
|
|
664
|
+
type: 'thread-forked';
|
|
665
|
+
threadId: string;
|
|
666
|
+
parentThreadId: string;
|
|
667
|
+
} | {
|
|
462
668
|
type: 'message-added';
|
|
463
669
|
threadId: string;
|
|
464
670
|
message: Message;
|
|
671
|
+
} | {
|
|
672
|
+
type: 'message-updated';
|
|
673
|
+
threadId: string;
|
|
674
|
+
messageId: string;
|
|
675
|
+
updates: Partial<Message>;
|
|
676
|
+
} | {
|
|
677
|
+
type: 'message-deleted';
|
|
678
|
+
threadId: string;
|
|
679
|
+
messageId: string;
|
|
680
|
+
} | {
|
|
681
|
+
type: 'messages-cleared';
|
|
682
|
+
threadId: string;
|
|
683
|
+
} | {
|
|
684
|
+
type: 'stream-started';
|
|
685
|
+
threadId: string;
|
|
465
686
|
} | {
|
|
466
687
|
type: 'stream-event';
|
|
467
688
|
threadId: string;
|
|
468
689
|
event: StreamEvent;
|
|
690
|
+
} | {
|
|
691
|
+
type: 'stream-completed';
|
|
692
|
+
threadId: string;
|
|
693
|
+
message: Message;
|
|
694
|
+
} | {
|
|
695
|
+
type: 'stream-error';
|
|
696
|
+
threadId: string;
|
|
697
|
+
error: Error;
|
|
469
698
|
} | {
|
|
470
699
|
type: 'status-changed';
|
|
471
700
|
threadId: string;
|
|
472
701
|
status: Thread['status'];
|
|
702
|
+
previousStatus: Thread['status'];
|
|
703
|
+
} | {
|
|
704
|
+
type: 'priority-changed';
|
|
705
|
+
threadId: string;
|
|
706
|
+
priority: Thread['priority'];
|
|
707
|
+
} | {
|
|
708
|
+
type: 'metadata-updated';
|
|
709
|
+
threadId: string;
|
|
710
|
+
metadata: Record<string, unknown>;
|
|
711
|
+
} | {
|
|
712
|
+
type: 'tags-updated';
|
|
713
|
+
threadId: string;
|
|
714
|
+
tags: string[];
|
|
715
|
+
} | {
|
|
716
|
+
type: 'title-updated';
|
|
717
|
+
threadId: string;
|
|
718
|
+
title: string;
|
|
719
|
+
} | {
|
|
720
|
+
type: 'config-updated';
|
|
721
|
+
threadId: string;
|
|
722
|
+
config: ChatConfig;
|
|
473
723
|
} | {
|
|
474
724
|
type: 'error';
|
|
475
725
|
threadId: string;
|
|
476
726
|
error: Error;
|
|
727
|
+
} | {
|
|
728
|
+
type: 'cleanup';
|
|
729
|
+
deletedCount: number;
|
|
730
|
+
} | {
|
|
731
|
+
type: 'pool-stats';
|
|
732
|
+
stats: ThreadStats;
|
|
477
733
|
};
|
|
478
734
|
|
|
479
735
|
/**
|
|
@@ -482,79 +738,157 @@ type ThreadEvent = {
|
|
|
482
738
|
*/
|
|
483
739
|
declare class ThreadManager extends EventEmitter {
|
|
484
740
|
private client;
|
|
485
|
-
|
|
741
|
+
threads: Map<string, Thread>;
|
|
486
742
|
constructor(client: PaprFlare);
|
|
743
|
+
createThread(userId: string, config?: ChatConfig, metadata?: Record<string, unknown>, options?: {
|
|
744
|
+
title?: string;
|
|
745
|
+
tags?: string[];
|
|
746
|
+
priority?: Thread['priority'];
|
|
747
|
+
}): Promise<string>;
|
|
487
748
|
/**
|
|
488
|
-
*
|
|
749
|
+
* Fork a thread — creates a new thread with a copy of messages up to a given point
|
|
489
750
|
*/
|
|
490
|
-
|
|
751
|
+
forkThread(threadId: string, upToMessageId?: string): Promise<string>;
|
|
491
752
|
/**
|
|
492
|
-
*
|
|
753
|
+
* Merge another thread's messages into this thread
|
|
493
754
|
*/
|
|
755
|
+
mergeThread(targetThreadId: string, sourceThreadId: string): Promise<void>;
|
|
494
756
|
getThread(threadId: string): Thread | null;
|
|
757
|
+
threadExists(threadId: string): boolean;
|
|
758
|
+
getUserThreads(userId: string, options?: ThreadPaginationOptions): Thread[];
|
|
759
|
+
filterThreads(userId: string, filter: ThreadFilter, options?: ThreadPaginationOptions): Thread[];
|
|
760
|
+
countThreads(userId: string, filter?: ThreadFilter): number;
|
|
761
|
+
updateThreadStatus(threadId: string, status: Thread['status']): void;
|
|
762
|
+
updateThreadPriority(threadId: string, priority: Thread['priority']): void;
|
|
763
|
+
updateThreadMetadata(threadId: string, metadata: Record<string, unknown>): void;
|
|
764
|
+
setThreadTitle(threadId: string, title: string): void;
|
|
765
|
+
updateThreadConfig(threadId: string, config: Partial<ChatConfig>): void;
|
|
766
|
+
addTags(threadId: string, tags: string[]): void;
|
|
767
|
+
removeTags(threadId: string, tags: string[]): void;
|
|
768
|
+
setTags(threadId: string, tags: string[]): void;
|
|
769
|
+
addMessage(threadId: string, message: Message): Promise<void>;
|
|
770
|
+
addManyMessages(threadId: string, messages: Message[]): Promise<void>;
|
|
771
|
+
getMessage(threadId: string, messageId: string): Message | null;
|
|
772
|
+
getMessages(threadId: string, options?: {
|
|
773
|
+
limit?: number;
|
|
774
|
+
offset?: number;
|
|
775
|
+
role?: Message['role'];
|
|
776
|
+
}): Message[];
|
|
777
|
+
getLastMessage(threadId: string): Message | null;
|
|
778
|
+
updateMessage(threadId: string, messageId: string, updates: Partial<Message>): void;
|
|
779
|
+
deleteMessage(threadId: string, messageId: string): void;
|
|
780
|
+
searchMessages(threadId: string, query: string): Message[];
|
|
781
|
+
clearThread(threadId: string): void;
|
|
782
|
+
trimThread(threadId: string, keepLast: number): void;
|
|
783
|
+
archiveThread(threadId: string): void;
|
|
784
|
+
restoreThread(threadId: string): void;
|
|
785
|
+
pauseThread(threadId: string): void;
|
|
786
|
+
resumeThread(threadId: string): void;
|
|
787
|
+
completeThread(threadId: string): void;
|
|
788
|
+
markThreadError(threadId: string, error: Error): void;
|
|
789
|
+
deleteThread(threadId: string): void;
|
|
790
|
+
deleteAllThreads(userId: string): void;
|
|
791
|
+
getStats(userId?: string): ThreadStats;
|
|
792
|
+
exportThread(threadId: string): ThreadExport;
|
|
793
|
+
importThread(userId: string, data: ThreadExport): string;
|
|
794
|
+
cleanup(maxAge?: number): void;
|
|
795
|
+
private requireThread;
|
|
796
|
+
private sortThreads;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* Thread pool for managing multiple threads across multiple users efficiently
|
|
801
|
+
*/
|
|
802
|
+
declare class ThreadPool {
|
|
803
|
+
private client;
|
|
804
|
+
private managers;
|
|
805
|
+
constructor(client: PaprFlare);
|
|
495
806
|
/**
|
|
496
|
-
*
|
|
807
|
+
* Get or create a thread manager for a user
|
|
497
808
|
*/
|
|
498
|
-
|
|
809
|
+
getManager(userId: string): ThreadManager;
|
|
499
810
|
/**
|
|
500
|
-
*
|
|
811
|
+
* Check if a manager exists for a user
|
|
501
812
|
*/
|
|
502
|
-
|
|
813
|
+
hasManager(userId: string): boolean;
|
|
503
814
|
/**
|
|
504
|
-
*
|
|
815
|
+
* Remove and destroy a user's thread manager
|
|
505
816
|
*/
|
|
506
|
-
|
|
817
|
+
removeManager(userId: string): void;
|
|
507
818
|
/**
|
|
508
|
-
*
|
|
819
|
+
* List all user IDs that have active managers
|
|
509
820
|
*/
|
|
510
|
-
|
|
821
|
+
listUsers(): string[];
|
|
511
822
|
/**
|
|
512
|
-
*
|
|
823
|
+
* Total number of managers (users) in the pool
|
|
513
824
|
*/
|
|
514
|
-
|
|
825
|
+
managerCount(): number;
|
|
515
826
|
/**
|
|
516
|
-
*
|
|
827
|
+
* Get all threads across all users
|
|
517
828
|
*/
|
|
518
|
-
|
|
829
|
+
getAllThreads(): Thread[];
|
|
519
830
|
/**
|
|
520
|
-
* Get
|
|
831
|
+
* Get all active threads across all users
|
|
521
832
|
*/
|
|
522
|
-
|
|
523
|
-
total: number;
|
|
524
|
-
active: number;
|
|
525
|
-
paused: number;
|
|
526
|
-
completed: number;
|
|
527
|
-
error: number;
|
|
528
|
-
};
|
|
833
|
+
getAllActiveThreads(): Thread[];
|
|
529
834
|
/**
|
|
530
|
-
*
|
|
835
|
+
* Get all threads matching a filter across all users
|
|
531
836
|
*/
|
|
532
|
-
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
/**
|
|
536
|
-
* Thread pool for managing multiple threads efficiently
|
|
537
|
-
*/
|
|
538
|
-
declare class ThreadPool {
|
|
539
|
-
private client;
|
|
540
|
-
private managers;
|
|
541
|
-
constructor(client: PaprFlare);
|
|
837
|
+
findThreads(filter: ThreadFilter, options?: ThreadPaginationOptions): Thread[];
|
|
542
838
|
/**
|
|
543
|
-
*
|
|
839
|
+
* Find a specific thread by ID across all users
|
|
544
840
|
*/
|
|
545
|
-
|
|
841
|
+
findThread(threadId: string): Thread | null;
|
|
546
842
|
/**
|
|
547
|
-
*
|
|
843
|
+
* Find which user owns a thread
|
|
548
844
|
*/
|
|
549
|
-
|
|
845
|
+
findThreadOwner(threadId: string): string | null;
|
|
550
846
|
/**
|
|
551
|
-
*
|
|
847
|
+
* Aggregate stats across all users
|
|
552
848
|
*/
|
|
553
|
-
|
|
849
|
+
getGlobalStats(): ThreadStats & {
|
|
850
|
+
userCount: number;
|
|
851
|
+
};
|
|
852
|
+
/**
|
|
853
|
+
* Get per-user stats summary
|
|
854
|
+
*/
|
|
855
|
+
getUserStats(): Record<string, ThreadStats>;
|
|
554
856
|
/**
|
|
555
|
-
*
|
|
857
|
+
* Total thread count across all users
|
|
858
|
+
*/
|
|
859
|
+
totalThreadCount(): number;
|
|
860
|
+
/**
|
|
861
|
+
* Cleanup inactive threads across all managers
|
|
556
862
|
*/
|
|
557
863
|
cleanupAll(maxAge?: number): void;
|
|
864
|
+
/**
|
|
865
|
+
* Archive all completed or errored threads older than maxAge
|
|
866
|
+
*/
|
|
867
|
+
archiveStale(maxAge?: number): number;
|
|
868
|
+
/**
|
|
869
|
+
* Delete all threads and managers for a user
|
|
870
|
+
*/
|
|
871
|
+
deleteUser(userId: string): void;
|
|
872
|
+
/**
|
|
873
|
+
* Delete all threads and managers across the entire pool
|
|
874
|
+
*/
|
|
875
|
+
purge(): void;
|
|
876
|
+
/**
|
|
877
|
+
* Export a thread by ID, searching across all managers
|
|
878
|
+
*/
|
|
879
|
+
exportThread(threadId: string): ThreadExport | null;
|
|
880
|
+
/**
|
|
881
|
+
* Import a thread for a user
|
|
882
|
+
*/
|
|
883
|
+
importThread(userId: string, data: ThreadExport): string;
|
|
884
|
+
/**
|
|
885
|
+
* Export all threads for a user
|
|
886
|
+
*/
|
|
887
|
+
exportUserThreads(userId: string): ThreadExport[];
|
|
888
|
+
/**
|
|
889
|
+
* Import multiple threads for a user
|
|
890
|
+
*/
|
|
891
|
+
importUserThreads(userId: string, exports: ThreadExport[]): string[];
|
|
558
892
|
}
|
|
559
893
|
|
|
560
894
|
/**
|
|
@@ -771,7 +1105,6 @@ declare function createOpenAIProvider(config: OpenAIConfig): ProviderCallback;
|
|
|
771
1105
|
|
|
772
1106
|
interface SarvamConfig extends ProviderConfig {
|
|
773
1107
|
model?: string;
|
|
774
|
-
language?: 'hi' | 'en' | 'ta' | 'te' | 'ml' | 'kn' | 'mr' | 'gu' | 'bn' | 'pa';
|
|
775
1108
|
}
|
|
776
1109
|
/**
|
|
777
1110
|
* Sarvam AI provider - Indian multilingual LLM
|
|
@@ -1158,4 +1491,4 @@ declare function streamToConsole(stream: AsyncGenerator<StreamEvent>, options?:
|
|
|
1158
1491
|
*/
|
|
1159
1492
|
declare function toHTTPResponse(stream: AsyncGenerator<StreamEvent>, target?: any): Promise<Response | void>;
|
|
1160
1493
|
|
|
1161
|
-
export { type AnthropicConfig, AnthropicProvider, type Artifact, type ArtifactMetadata, type CacheConfig, CacheManager, type CacheOptions, type ChatConfig, type ChatOptions, type ChatResponse, type ChatState, type CloudModeConfig, type CommonConfig, type Conversation, type DatabaseAdapter, DatabaseManager, DrizzleAdapter, type GoogleConfig, GoogleProvider, type ICache, MemoryAdapter, MemoryCache, type Message, type OpenAIConfig, OpenAIProvider, PaprFlare, type PaprFlareConfig, PaprFlareError, PrismaAdapter, type ProviderCallback, type ProviderConfig, ProviderError, RateLimitError, RedisCache, type SarvamConfig, SarvamProvider, type SelfManagedConfig, type StreamEvent, type StreamHandlers, StreamWriter, type StreamingChatResponse, type Thread, type ThreadEvent, ThreadManager, ThreadPool, type TokenUsage, type Tool, type ToolCall, type ToolResult, type UIMessage, type UIStreamEvent, type UsePaprFlareConfig, ValidationError, batchStream, chunk, collectStream, collectText, createAnthropicProvider, createCacheKey, createGoogleProvider, createOpenAIProvider, createSarvamProvider, createStreamWriter, createUIMessageStream, debounce, deepMerge, filterStream, formatMessages, generateId, isPlainObject, measureTime, mergeStreams, parseSSEStream, pipeToResponse, processStream, retry, safeJsonParse, sleep, streamToArray, streamToConsole, structuredOutput, takeStream, throttle, toHTTPResponse, toReadableStream, toUIStream, transformStream };
|
|
1494
|
+
export { type AnthropicConfig, AnthropicProvider, type Artifact, type ArtifactMetadata, type CacheConfig, CacheManager, type CacheOptions, type ChatConfig, type ChatOptions, type ChatResponse, type ChatState, type CloudModeConfig, type CommonConfig, type Conversation, type ConversationExport, type DatabaseAdapter, DatabaseManager, DrizzleAdapter, type GoogleConfig, GoogleProvider, type ICache, MemoryAdapter, MemoryCache, type Message, type OpenAIConfig, OpenAIProvider, PaprFlare, type PaprFlareConfig, PaprFlareError, PrismaAdapter, type ProviderCallback, type ProviderConfig, ProviderError, RateLimitError, RedisCache, type SarvamConfig, SarvamProvider, type SelfManagedConfig, type StreamEvent, type StreamHandlers, StreamWriter, type StreamingChatResponse, type Thread, type ThreadEvent, type ThreadExport, type ThreadFilter, ThreadManager, type ThreadPaginationOptions, ThreadPool, type ThreadSortOptions, type ThreadStats, type TokenUsage, type Tool, type ToolCall, type ToolResult, type UIMessage, type UIStreamEvent, type UsePaprFlareConfig, ValidationError, batchStream, chunk, collectStream, collectText, createAnthropicProvider, createCacheKey, createGoogleProvider, createOpenAIProvider, createSarvamProvider, createStreamWriter, createUIMessageStream, debounce, deepMerge, filterStream, formatMessages, generateId, isPlainObject, measureTime, mergeStreams, parseSSEStream, pipeToResponse, processStream, retry, safeJsonParse, sleep, streamToArray, streamToConsole, structuredOutput, takeStream, throttle, toHTTPResponse, toReadableStream, toUIStream, transformStream };
|