@@ -44,6 +44,10 @@ import { getUsage } from 'tokenlens/helpers';
4444import type { ModelCatalog } from 'tokenlens/core' ;
4545import type { AppUsage } from '@/lib/usage' ;
4646import getWeather from '@/lib/ai/tools/get-weather' ;
47+ import {
48+ addMemoryTool ,
49+ searchMemoriesTool ,
50+ } from '@/lib/ai/tools/supermemory-tools' ;
4751
4852export const maxDuration = 60 ;
4953
@@ -184,21 +188,47 @@ export async function POST(request: Request) {
184188 system : systemPrompt ( { selectedChatModel, requestHints } ) ,
185189 messages : convertToModelMessages ( uiMessages ) ,
186190 stopWhen : stepCountIs ( 5 ) ,
187- experimental_activeTools :
188- selectedChatModel === 'chat-model-reasoning'
189- ? [ ]
190- : [
191- 'getWeather' ,
192- 'createDocument' ,
193- 'updateDocument' ,
194- 'requestSuggestions' ,
195- ] ,
191+ experimental_activeTools : ( ( ) => {
192+ if ( selectedChatModel === 'chat-model-reasoning' ) {
193+ const base : ( 'addMemory' | 'searchMemories' ) [ ] = [ ] ;
194+ if ( userType !== 'guest' )
195+ base . push ( 'addMemory' , 'searchMemories' ) ;
196+ return base ;
197+ }
198+ const base : (
199+ | 'getWeather'
200+ | 'createDocument'
201+ | 'updateDocument'
202+ | 'requestSuggestions'
203+ | 'addMemory'
204+ | 'searchMemories'
205+ ) [ ] = [
206+ 'getWeather' ,
207+ 'createDocument' ,
208+ 'updateDocument' ,
209+ 'requestSuggestions' ,
210+ ] ;
211+ // Only enable memory tools for non-guest users
212+ if ( userType !== 'guest' ) {
213+ base . push ( 'addMemory' , 'searchMemories' ) ;
214+ }
215+ return base ;
216+ } ) ( ) ,
196217 experimental_transform : smoothStream ( { chunking : 'word' } ) ,
218+ //@ts -ignore
197219 tools : {
198220 getWeather,
199221 createDocument : createDocument ( { session, dataStream } ) ,
200222 updateDocument : updateDocument ( { session, dataStream } ) ,
201223 requestSuggestions : requestSuggestions ( { session, dataStream } ) ,
224+
225+ addMemory : addMemoryTool ( process . env . SUPERMEMORY_API_KEY || '' , {
226+ projectId : session . user . id ,
227+ } ) ,
228+ searchMemories : searchMemoriesTool (
229+ process . env . SUPERMEMORY_API_KEY || '' ,
230+ { projectId : session . user . id } ,
231+ ) ,
202232 } ,
203233 experimental_telemetry : {
204234 isEnabled : isProductionEnvironment ,
@@ -239,7 +269,6 @@ export async function POST(request: Request) {
239269 } ) ;
240270
241271 result . consumeStream ( ) ;
242- // console.log(result);
243272
244273 dataStream . merge (
245274 result . toUIMessageStream ( {
0 commit comments