@supermemory/tools
Advanced tools
+2
-1
| { | ||
| "name": "@supermemory/tools", | ||
| "type": "module", | ||
| "version": "1.1.12", | ||
| "version": "1.2.0", | ||
| "description": "Memory tools for AI SDK and OpenAI function calling with supermemory", | ||
@@ -14,2 +14,3 @@ "scripts": { | ||
| "dependencies": { | ||
| "@ai-sdk/anthropic": "^2.0.25", | ||
| "@ai-sdk/openai": "^2.0.23", | ||
@@ -16,0 +17,0 @@ "@ai-sdk/provider": "^2.0.0", |
+122
-4
@@ -38,3 +38,3 @@ # @supermemory/tools | ||
| const tools = supermemoryTools(process.env.SUPERMEMORY_API_KEY!, { | ||
| projectId: "your-project-id", | ||
| containerTags: ["your-user-id"], | ||
| }) | ||
@@ -44,3 +44,3 @@ | ||
| const result = await generateText({ | ||
| model: openai("gpt-4"), | ||
| model: openai("gpt-5"), | ||
| messages: [ | ||
@@ -65,2 +65,120 @@ { | ||
| #### AI SDK Middleware with Supermemory | ||
| > [!CAUTION] | ||
| > `withSupermemory` is in beta | ||
| - `withSupermemory` will take advantage supermemory profile v4 endpoint personalized based on container tag | ||
| - Make sure you have `SUPERMEMORY_API_KEY` in env | ||
| ```typescript | ||
| import { generateText } from "ai" | ||
| import { withSupermemory } from "@supermemory/tools/ai-sdk" | ||
| import { openai } from "@ai-sdk/openai" | ||
| const modelWithMemory = withSupermemory(openai("gpt-5"), "user_id_life") | ||
| const result = await generateText({ | ||
| model: modelWithMemory, | ||
| messages: [{ role: "user", content: "where do i live?" }], | ||
| }) | ||
| console.log(result.text) | ||
| ``` | ||
| #### Verbose Mode | ||
| Enable verbose logging to see detailed information about memory search and transformation: | ||
| ```typescript | ||
| import { generateText } from "ai" | ||
| import { withSupermemory } from "@supermemory/tools/ai-sdk" | ||
| import { openai } from "@ai-sdk/openai" | ||
| const modelWithMemory = withSupermemory(openai("gpt-5"), "user_id_life", { | ||
| verbose: true | ||
| }) | ||
| const result = await generateText({ | ||
| model: modelWithMemory, | ||
| messages: [{ role: "user", content: "where do i live?" }], | ||
| }) | ||
| console.log(result.text) | ||
| ``` | ||
| When verbose mode is enabled, you'll see console output like: | ||
| ``` | ||
| [supermemory] Searching memories for container: user_id_life | ||
| [supermemory] User message: where do i live? | ||
| [supermemory] System prompt exists: false | ||
| [supermemory] Found 3 memories | ||
| [supermemory] Memory content: You live in San Francisco, California. Your address is 123 Main Street... | ||
| [supermemory] Creating new system prompt with memories | ||
| ``` | ||
| #### Memory Search Modes | ||
| The middleware supports different modes for memory retrieval: | ||
| **Profile Mode (Default)** - Retrieves user profile memories without query filtering: | ||
| ```typescript | ||
| import { generateText } from "ai" | ||
| import { withSupermemory } from "@supermemory/tools/ai-sdk" | ||
| import { openai } from "@ai-sdk/openai" | ||
| // Uses profile mode by default - gets all user profile memories | ||
| const modelWithMemory = withSupermemory(openai("gpt-4"), "user-123") | ||
| // Explicitly specify profile mode | ||
| const modelWithProfile = withSupermemory(openai("gpt-4"), "user-123", { | ||
| mode: "profile" | ||
| }) | ||
| const result = await generateText({ | ||
| model: modelWithMemory, | ||
| messages: [{ role: "user", content: "What do you know about me?" }], | ||
| }) | ||
| ``` | ||
| **Query Mode** - Searches memories based on the user's message: | ||
| ```typescript | ||
| import { generateText } from "ai" | ||
| import { withSupermemory } from "@supermemory/tools/ai-sdk" | ||
| import { openai } from "@ai-sdk/openai" | ||
| const modelWithQuery = withSupermemory(openai("gpt-4"), "user-123", { | ||
| mode: "query" | ||
| }) | ||
| const result = await generateText({ | ||
| model: modelWithQuery, | ||
| messages: [{ role: "user", content: "What's my favorite programming language?" }], | ||
| }) | ||
| ``` | ||
| **Full Mode** - Combines both profile and query results: | ||
| ```typescript | ||
| import { generateText } from "ai" | ||
| import { withSupermemory } from "@supermemory/tools/ai-sdk" | ||
| import { openai } from "@ai-sdk/openai" | ||
| const modelWithFull = withSupermemory(openai("gpt-4"), "user-123", { | ||
| mode: "full" | ||
| }) | ||
| const result = await generateText({ | ||
| model: modelWithFull, | ||
| messages: [{ role: "user", content: "Tell me about my preferences" }], | ||
| }) | ||
| ``` | ||
| **Combined Options** - Use verbose logging with specific modes: | ||
| ```typescript | ||
| const modelWithOptions = withSupermemory(openai("gpt-4"), "user-123", { | ||
| mode: "profile", | ||
| verbose: true | ||
| }) | ||
| ``` | ||
| ### OpenAI Function Calling Usage | ||
@@ -86,3 +204,3 @@ | ||
| const completion = await client.chat.completions.create({ | ||
| model: "gpt-4", | ||
| model: "gpt-5", | ||
| messages: [ | ||
@@ -107,3 +225,3 @@ { | ||
| const tools = supermemoryTools(process.env.SUPERMEMORY_API_KEY!, { | ||
| projectId: "your-project-id", | ||
| containerTags: ["your-user-id"], | ||
| }) | ||
@@ -110,0 +228,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
35875
10.48%343
52.44%0
-100%7
16.67%+ Added
+ Added