This commit is contained in:
Sreeram Sreedhar 2026-04-14 11:10:55 -07:00
parent 1e1bb559f6
commit 862b9d1fd9
6 changed files with 16 additions and 14 deletions

View file

@ -347,7 +347,7 @@ class SupermemoryOpenAIOptions:
api_key: Optional[str] = None # Supermemory API key (or use env var)
verbose: bool = False # Enable detailed logging
mode: Literal["profile", "query", "full"] = "profile" # Memory injection mode
add_memory: Literal["always", "never"] = "never" # Auto-save behavior
add_memory: Literal["always", "never"] = "always" # Auto-save behavior
```
### SupermemoryTools

View file

@ -50,8 +50,8 @@ class SupermemoryOpenAIOptions:
mode: Literal["profile", "query", "full"] = "profile"
"""Memory retrieval mode: 'profile', 'query', or 'full'."""
add_memory: Literal["always", "never"] = "never"
"""Memory persistence mode: 'always' or 'never' (default)."""
add_memory: Literal["always", "never"] = "always"
"""Memory persistence mode: 'always' (default) or 'never'."""
class SupermemoryProfileSearch:

View file

@ -1,5 +1,5 @@
version = 1
revision = 2
revision = 3
requires-python = ">=3.8.1"
resolution-markers = [
"python_full_version >= '3.10'",
@ -2427,7 +2427,7 @@ wheels = [
[[package]]
name = "supermemory-openai-sdk"
version = "1.0.3"
version = "2.0.0"
source = { editable = "." }
dependencies = [
{ name = "openai" },

View file

@ -298,7 +298,7 @@ interface SupermemoryOpenAIOptions {
apiKey?: string // Supermemory API key (or use SUPERMEMORY_API_KEY env var)
baseUrl?: string // Custom API endpoint
mode?: "profile" | "query" | "full" // Memory search mode (default: "profile")
addMemory?: "always" | "never" // Auto-save conversations (default: "never")
addMemory?: "always" | "never" // Auto-save conversations (default: "always")
verbose?: boolean // Enable debug logging (default: false)
}
```
@ -591,7 +591,7 @@ interface SupermemoryMastraOptions {
apiKey?: string // Supermemory API key (or use SUPERMEMORY_API_KEY env var)
baseUrl?: string // Custom API endpoint
mode?: "profile" | "query" | "full" // Memory search mode (default: "profile")
addMemory?: "always" | "never" // Auto-save conversations (default: "never")
addMemory?: "always" | "never" // Auto-save conversations (default: "always")
threadId?: string // Conversation ID for grouping messages
verbose?: boolean // Enable debug logging (default: false)
promptTemplate?: (data: MemoryPromptData) => string // Custom memory formatting
@ -665,7 +665,7 @@ interface WithSupermemoryOptions {
- **conversationId**: Optional conversation ID to group messages into a single document for contextual memory generation
- **verbose**: Enable detailed logging of memory search and injection process (default: false)
- **mode**: Memory search mode - "profile" (default), "query", or "full"
- **addMemory**: Automatic memory storage mode - "always" or "never" (default: "never")
- **addMemory**: Automatic memory storage mode - "always" (default) or "never"
## Available Tools

View file

@ -34,8 +34,8 @@ export interface SupermemoryOpenAIOptions {
mode?: "profile" | "query" | "full"
/**
* Memory persistence mode:
* - "always": Automatically save conversations as memories
* - "never": Only retrieve memories, don't store new ones (default)
* - "always": Automatically save conversations as memories (default)
* - "never": Only retrieve memories, don't store new ones
*/
addMemory?: "always" | "never"
}
@ -445,7 +445,7 @@ export function createOpenAIMiddleware(
baseUrl,
verbose = false,
mode = "profile",
addMemory = "never",
addMemory = "always",
} = options
const logger = createLogger(verbose)

View file

@ -243,6 +243,7 @@ describe("Unit: OpenAI withSupermemory", () => {
containerTag: "user-123",
customId: "conv-456",
mode: "query",
addMemory: "never",
})
await wrapped.chat.completions.create({
@ -435,6 +436,7 @@ describe("Unit: OpenAI withSupermemory", () => {
const wrapped = withSupermemory(mockClient, {
containerTag: "user-123",
customId: "conv-456",
addMemory: "never",
})
await wrapped.chat.completions.create({
@ -448,7 +450,7 @@ describe("Unit: OpenAI withSupermemory", () => {
expect(fetchBody.containerTag).toBe("user-123")
})
it("should default to never for addMemory", async () => {
it("should default to always for addMemory", async () => {
fetchMock.mockResolvedValue({
ok: true,
json: () => Promise.resolve(createMockProfileResponse()),
@ -465,8 +467,8 @@ describe("Unit: OpenAI withSupermemory", () => {
messages: [{ role: "user", content: "Hello" }],
})
// Only 1 fetch (profile search), no memory add (default is "never")
expect(fetchMock).toHaveBeenCalledTimes(1)
// 2 fetches: profile search + memory add (default is "always")
expect(fetchMock).toHaveBeenCalledTimes(2)
})
})
})