Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@supermemory/tools

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@supermemory/tools - npm Package Compare versions

Comparing version
1.1.12
to
1.2.0
+2
-1
package.json
{
"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 @@