@letta-ai/letta-react 0.0.5 → 0.0.6
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.
@@ -35,6 +35,17 @@ function extendContent(content, nextContent) {
|
|
35
35
|
}
|
36
36
|
}
|
37
37
|
}
|
38
|
+
function dedupeMessages(messages) {
|
39
|
+
const messageIndex = new Set(messages.map((message) => `${message.id}${message.messageType}`));
|
40
|
+
return messages.filter((message) => {
|
41
|
+
// if we have seen this message before, return false
|
42
|
+
if (messageIndex.has(`${message.id}${message.messageType}`)) {
|
43
|
+
messageIndex.delete(`${message.id}${message.messageType}`);
|
44
|
+
return true;
|
45
|
+
}
|
46
|
+
return false;
|
47
|
+
}, []);
|
48
|
+
}
|
38
49
|
export function useAgentMessages(options) {
|
39
50
|
const { client = {}, method = 'stream', messageOptions = {}, limit = 20, agentId, } = options;
|
40
51
|
const localClient = useLettaClient(client);
|
@@ -175,7 +186,7 @@ export function useAgentMessages(options) {
|
|
175
186
|
const messages = yield localClient.agents.messages.list(agentId, Object.assign({ before, limit: limit + 1 }, messageOptions));
|
176
187
|
const messagesToAdd = messages.slice(1, messages.length);
|
177
188
|
const nextCursor = messages.length > limit ? messages[0] : undefined;
|
178
|
-
setLocalMessages((prevState) => (Object.assign(Object.assign({}, prevState), { messages: [...messagesToAdd, ...prevState.messages], nextCursor: nextCursor === null || nextCursor === void 0 ? void 0 : nextCursor.id })));
|
189
|
+
setLocalMessages((prevState) => (Object.assign(Object.assign({}, prevState), { messages: dedupeMessages([...messagesToAdd, ...prevState.messages]), nextCursor: nextCursor === null || nextCursor === void 0 ? void 0 : nextCursor.id })));
|
179
190
|
}
|
180
191
|
catch (e) {
|
181
192
|
setLoadingError(e);
|
@@ -35,6 +35,17 @@ function extendContent(content, nextContent) {
|
|
35
35
|
}
|
36
36
|
}
|
37
37
|
}
|
38
|
+
function dedupeMessages(messages) {
|
39
|
+
const messageIndex = new Set(messages.map((message) => `${message.id}${message.messageType}`));
|
40
|
+
return messages.filter((message) => {
|
41
|
+
// if we have seen this message before, return false
|
42
|
+
if (messageIndex.has(`${message.id}${message.messageType}`)) {
|
43
|
+
messageIndex.delete(`${message.id}${message.messageType}`);
|
44
|
+
return true;
|
45
|
+
}
|
46
|
+
return false;
|
47
|
+
}, []);
|
48
|
+
}
|
38
49
|
export function useAgentMessages(options) {
|
39
50
|
const { client = {}, method = 'stream', messageOptions = {}, limit = 20, agentId, } = options;
|
40
51
|
const localClient = useLettaClient(client);
|
@@ -175,7 +186,7 @@ export function useAgentMessages(options) {
|
|
175
186
|
const messages = yield localClient.agents.messages.list(agentId, Object.assign({ before, limit: limit + 1 }, messageOptions));
|
176
187
|
const messagesToAdd = messages.slice(1, messages.length);
|
177
188
|
const nextCursor = messages.length > limit ? messages[0] : undefined;
|
178
|
-
setLocalMessages((prevState) => (Object.assign(Object.assign({}, prevState), { messages: [...messagesToAdd, ...prevState.messages], nextCursor: nextCursor === null || nextCursor === void 0 ? void 0 : nextCursor.id })));
|
189
|
+
setLocalMessages((prevState) => (Object.assign(Object.assign({}, prevState), { messages: dedupeMessages([...messagesToAdd, ...prevState.messages]), nextCursor: nextCursor === null || nextCursor === void 0 ? void 0 : nextCursor.id })));
|
179
190
|
}
|
180
191
|
catch (e) {
|
181
192
|
setLoadingError(e);
|
package/package.json
CHANGED
@@ -34,6 +34,24 @@ function extendContent(
|
|
34
34
|
}
|
35
35
|
}
|
36
36
|
|
37
|
+
function dedupeMessages(
|
38
|
+
messages: LocalMessagesState['messages']
|
39
|
+
): LocalMessagesState['messages'] {
|
40
|
+
const messageIndex = new Set(
|
41
|
+
messages.map((message) => `${message.id}${message.messageType}`)
|
42
|
+
);
|
43
|
+
|
44
|
+
return messages.filter((message) => {
|
45
|
+
// if we have seen this message before, return false
|
46
|
+
if (messageIndex.has(`${message.id}${message.messageType}`)) {
|
47
|
+
messageIndex.delete(`${message.id}${message.messageType}`);
|
48
|
+
return true;
|
49
|
+
}
|
50
|
+
|
51
|
+
return false;
|
52
|
+
}, []);
|
53
|
+
}
|
54
|
+
|
37
55
|
interface SendMessagePayload {
|
38
56
|
messages: LettaRequest['messages'];
|
39
57
|
}
|
@@ -278,7 +296,7 @@ export function useAgentMessages(options: UseAgentOptions) {
|
|
278
296
|
|
279
297
|
setLocalMessages((prevState) => ({
|
280
298
|
...prevState,
|
281
|
-
messages: [...messagesToAdd, ...prevState.messages],
|
299
|
+
messages: dedupeMessages([...messagesToAdd, ...prevState.messages]),
|
282
300
|
nextCursor: nextCursor?.id,
|
283
301
|
}));
|
284
302
|
} catch (e) {
|