Sign In

delx-memory

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

delx-memory - npm Package Compare versions

Comparing version
0.3.0
to
0.4.0
+13
-0
CHANGELOG.md

@@ -16,2 +16,15 @@ ## 0.2.5 - 2026-07-30

## 0.4.0
SOTA-oriented agent memory release (still local-first, still no embeddings/cloud).
- **`memory_handoff`** — one-call session resume brief (stats + recent keys).
- **`memory_get_many` / `memory_set_batch`** — batch read/write (max 50), batch writes are transactional.
- **`memory_list.since`** — delta sync by `updated_at` for session resume.
- **`DELX_MEMORY_NAMESPACE`** — multi-agent key isolation (`namespace::key`).
- SQLite **`busy_timeout=5000`** (WAL already on) for concurrent agent writers.
- `scripts/bench-rss.mjs` — directional lite vs sdk RSS probe.
- Docs/README: accurate 15-tool surface + comparison table.
## 0.3.0

@@ -18,0 +31,0 @@

+2
-2
export declare const SERVER_NAME = "delx-memory";
export declare const SERVER_VERSION = "0.3.0";
export declare const SERVER_VERSION = "0.4.0";
export declare const NPM_PACKAGE_NAME = "delx-memory";
export declare const PINNED_NPM_PACKAGE = "delx-memory@0.3.0";
export declare const PINNED_NPM_PACKAGE = "delx-memory@0.4.0";
export declare const DEFAULT_DB_DIR: string;

@@ -6,0 +6,0 @@ export declare const DEFAULT_DB_PATH: string;

import { homedir } from "node:os";
import { join } from "node:path";
export const SERVER_NAME = "delx-memory";
export const SERVER_VERSION = "0.3.0";
export const SERVER_VERSION = "0.4.0";
export const NPM_PACKAGE_NAME = "delx-memory";

@@ -6,0 +6,0 @@ export const PINNED_NPM_PACKAGE = `${NPM_PACKAGE_NAME}@${SERVER_VERSION}`;

@@ -26,2 +26,3 @@ import { z } from "zod";

tag: z.ZodOptional<z.ZodString>;
since: z.ZodOptional<z.ZodNumber>;
limit: z.ZodDefault<z.ZodNumber>;

@@ -76,2 +77,24 @@ privacy_mode: z.ZodOptional<z.ZodDefault<z.ZodEnum<{

}, z.core.$strip>;
export declare const MemoryGetManyInputSchema: z.ZodObject<{
keys: z.ZodArray<z.ZodString>;
privacy_mode: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
summary: "summary";
structured: "structured";
raw: "raw";
}>>>;
}, z.core.$strip>;
export declare const MemorySetBatchInputSchema: z.ZodObject<{
entries: z.ZodArray<z.ZodObject<{
key: z.ZodString;
value: z.ZodUnknown;
ttl_seconds: z.ZodOptional<z.ZodNumber>;
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>>;
explicit_user_intent: z.ZodLiteral<true>;
}, z.core.$strip>;
export declare const MemoryHandoffInputSchema: z.ZodObject<{
limit: z.ZodDefault<z.ZodNumber>;
include_values: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export type MemoryGetInput = z.infer<typeof MemoryGetInputSchema>;

@@ -85,1 +108,4 @@ export type MemoryListInput = z.infer<typeof MemoryListInputSchema>;

export type MemoryExportInput = z.infer<typeof MemoryExportInputSchema>;
export type MemoryGetManyInput = z.infer<typeof MemoryGetManyInputSchema>;
export type MemorySetBatchInput = z.infer<typeof MemorySetBatchInputSchema>;
export type MemoryHandoffInput = z.infer<typeof MemoryHandoffInputSchema>;

@@ -44,2 +44,8 @@ import { z } from "zod";

tag: z.string().max(64).optional().describe("Only return keys carrying this tag."),
since: z
.number()
.int()
.nonnegative()
.optional()
.describe("Unix ms — only keys with updated_at >= since (session resume / delta sync)."),
limit: z

@@ -118,2 +124,37 @@ .number()

});
export const MemoryGetManyInputSchema = z.object({
keys: z
.array(KeySchema)
.min(1)
.max(50)
.describe("Exact keys to fetch (max 50). Missing keys omitted."),
privacy_mode: PrivacyModeSchema.optional(),
});
export const MemorySetBatchInputSchema = z.object({
entries: z
.array(z.object({
key: KeySchema,
value: z.unknown(),
ttl_seconds: z.number().int().positive().max(60 * 60 * 24 * 365 * 10).optional(),
tags: TagsSchema,
metadata: MetadataSchema,
}))
.min(1)
.max(50)
.describe("Upsert up to 50 entries atomically in one transaction."),
explicit_user_intent: ExplicitUserIntentSchema,
});
export const MemoryHandoffInputSchema = z.object({
limit: z
.number()
.int()
.min(1)
.max(30)
.default(12)
.describe("How many recent keys to include in the handoff brief."),
include_values: z
.boolean()
.default(false)
.describe("If true, include structured values (can be large). Default: keys + tags + timestamps only."),
});
//# sourceMappingURL=common.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"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"}

@@ -13,2 +13,3 @@ import { NPM_PACKAGE_NAME, PINNED_NPM_PACKAGE, SERVER_VERSION } from "../constants.js";

recommended_first_calls: [
"memory_handoff",
"memory_agent_manifest",

@@ -18,3 +19,2 @@ "memory_connection_status",

"memory_list",
"memory_capabilities",
],

@@ -26,3 +26,5 @@ standard_tools: [

"memory_capabilities",
"memory_handoff",
"memory_get",
"memory_get_many",
"memory_list",

@@ -32,2 +34,3 @@ "memory_search",

"memory_set",
"memory_set_batch",
"memory_forget",

@@ -49,3 +52,5 @@ "memory_forget_by_tag",

"memory_capabilities",
"memory_handoff",
"memory_get",
"memory_get_many",
"memory_list",

@@ -55,2 +60,3 @@ "memory_search",

"memory_set",
"memory_set_batch",
"memory_forget",

@@ -67,2 +73,5 @@ "memory_forget_by_tag",

"This is local SQLite under ~/.delx-memory/ — not a multi-user cloud store.",
"Optional DELX_MEMORY_NAMESPACE isolates keys as namespace::key for multi-agent setups.",
"Prefer memory_handoff at session start for a compact resume brief.",
"Default transport is lite (no MCP SDK); use --sdk for prompts/resources.",
],

@@ -69,0 +78,0 @@ privacy_modes: [

@@ -1,1 +0,1 @@

{"version":3,"file":"agent-manifest.js","sourceRoot":"","sources":["../../src/services/agent-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAGjH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAwB,CAAC,CAAC,CAAC,CAAE,KAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAA0B,SAAS;IACpE,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,mCAAmC;QAC7C,MAAM;QACN,UAAU,EAAE,IAAI;QAChB,uBAAuB,EAAE;YACvB,uBAAuB;YACvB,0BAA0B;YAC1B,cAAc;YACd,aAAa;YACb,qBAAqB;SACtB;QACD,cAAc,EAAE;YACd,uBAAuB;YACvB,0BAA0B;YAC1B,uBAAuB;YACvB,qBAAqB;YACrB,YAAY;YACZ,aAAa;YACb,eAAe;YACf,cAAc;YACd,YAAY;YACZ,eAAe;YACf,sBAAsB;YACtB,eAAe;SAChB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,cAAc;YACvB,eAAe,EAAE,UAAU,gBAAgB,EAAE;YAC7C,sBAAsB,EAAE,UAAU,kBAAkB,EAAE;YACtD,MAAM,EAAE,aAAa;SACtB;QACD,KAAK,EAAE;YACL,uBAAuB;YACvB,0BAA0B;YAC1B,uBAAuB;YACvB,qBAAqB;YACrB,YAAY;YACZ,aAAa;YACb,eAAe;YACf,cAAc;YACd,YAAY;YACZ,eAAe;YACf,sBAAsB;YACtB,eAAe;SAChB;QACD,WAAW,EAAE;YACX,0EAA0E;YAC1E,mFAAmF;YACnF,qFAAqF;YACrF,sHAAsH;YACtH,kFAAkF;YAClF,4EAA4E;SAC7E;QACD,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,uDAAuD,EAAE;YACtF,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,yCAAyC,EAAE;YAC3E,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,qEAAqE,EAAE;SACjG;QACD,KAAK,EAAE;YACL,MAAM,EAAE,4CAA4C;YACpD,GAAG,EAAE,2CAA2C;SACjD;KACF,CAAC;AACJ,CAAC"}
{"version":3,"file":"agent-manifest.js","sourceRoot":"","sources":["../../src/services/agent-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAGjH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAwB,CAAC,CAAC,CAAC,CAAE,KAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAA0B,SAAS;IACpE,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,mCAAmC;QAC7C,MAAM;QACN,UAAU,EAAE,IAAI;QAChB,uBAAuB,EAAE;YACvB,gBAAgB;YAChB,uBAAuB;YACvB,0BAA0B;YAC1B,cAAc;YACd,aAAa;SACd;QACD,cAAc,EAAE;YACd,uBAAuB;YACvB,0BAA0B;YAC1B,uBAAuB;YACvB,qBAAqB;YACrB,gBAAgB;YAChB,YAAY;YACZ,iBAAiB;YACjB,aAAa;YACb,eAAe;YACf,cAAc;YACd,YAAY;YACZ,kBAAkB;YAClB,eAAe;YACf,sBAAsB;YACtB,eAAe;SAChB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,cAAc;YACvB,eAAe,EAAE,UAAU,gBAAgB,EAAE;YAC7C,sBAAsB,EAAE,UAAU,kBAAkB,EAAE;YACtD,MAAM,EAAE,aAAa;SACtB;QACD,KAAK,EAAE;YACL,uBAAuB;YACvB,0BAA0B;YAC1B,uBAAuB;YACvB,qBAAqB;YACrB,gBAAgB;YAChB,YAAY;YACZ,iBAAiB;YACjB,aAAa;YACb,eAAe;YACf,cAAc;YACd,YAAY;YACZ,kBAAkB;YAClB,eAAe;YACf,sBAAsB;YACtB,eAAe;SAChB;QACD,WAAW,EAAE;YACX,0EAA0E;YAC1E,mFAAmF;YACnF,qFAAqF;YACrF,sHAAsH;YACtH,kFAAkF;YAClF,4EAA4E;YAC5E,wFAAwF;YACxF,oEAAoE;YACpE,0EAA0E;SAC3E;QACD,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,uDAAuD,EAAE;YACtF,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,yCAAyC,EAAE;YAC3E,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,qEAAqE,EAAE;SACjG;QACD,KAAK,EAAE;YACL,MAAM,EAAE,4CAA4C;YACpD,GAAG,EAAE,2CAA2C;SACjD;KACF,CAAC;AACJ,CAAC"}

@@ -14,2 +14,8 @@ export declare function buildCapabilities(): {

recommended_agent_flow: string[];
namespace: string;
transports: {
lite: string;
sdk: string;
http: string;
};
mutation_gating: string;

@@ -16,0 +22,0 @@ links: {

@@ -25,2 +25,5 @@ import { NPM_PACKAGE_NAME, SERVER_VERSION } from "../constants.js";

{ name: "memory_export", summary: "Export dump (explicit_user_intent required)." },
{ name: "memory_get_many", summary: "Batch get by keys." },
{ name: "memory_set_batch", summary: "Atomic multi-upsert (explicit_user_intent required)." },
{ name: "memory_handoff", summary: "Session resume brief (stats + recent keys)." },
],

@@ -33,2 +36,8 @@ recommended_agent_flow: [

],
namespace: "Optional DELX_MEMORY_NAMESPACE env prefixes all keys (multi-agent isolation).",
transports: {
lite: "default tools-only stdio without MCP SDK",
sdk: "full MCP SDK with prompts/resources",
http: "loopback Streamable HTTP",
},
mutation_gating: "All writes require explicit_user_intent: true; secret-shaped keys/values are refused.",

@@ -35,0 +44,0 @@ links: {

@@ -1,1 +0,1 @@

{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/services/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,wCAAwC,EAAE;YACvE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,wBAAwB,EAAE;YAC1D,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,4DAA4D,EAAE;SACxF;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,yCAAyC,EAAE;YACrF,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,oDAAoD,EAAE;YACnG,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,6CAA6C,EAAE;YACzF,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,+BAA+B,EAAE;YACzE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE;YACpD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,qCAAqC,EAAE;YACvE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,uBAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,yCAAyC,EAAE;YAC1E,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,iDAAiD,EAAE;YACrF,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,qDAAqD,EAAE;YAChG,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;SACnF;QACD,sBAAsB,EAAE;YACtB,kCAAkC;YAClC,6EAA6E;YAC7E,sEAAsE;YACtE,uEAAuE;SACxE;QACD,eAAe,EAAE,uFAAuF;QACxG,KAAK,EAAE;YACL,MAAM,EAAE,4CAA4C;YACpD,GAAG,EAAE,2CAA2C;SACjD;KACF,CAAC;AACJ,CAAC"}
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/services/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,wCAAwC,EAAE;YACvE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,wBAAwB,EAAE;YAC1D,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,4DAA4D,EAAE;SACxF;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,yCAAyC,EAAE;YACrF,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,oDAAoD,EAAE;YACnG,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,6CAA6C,EAAE;YACzF,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,+BAA+B,EAAE;YACzE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE;YACpD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,qCAAqC,EAAE;YACvE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,uBAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE;YAC/D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,yCAAyC,EAAE;YAC1E,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,iDAAiD,EAAE;YACrF,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,qDAAqD,EAAE;YAChG,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;YAClF,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,EAAE;YAC1D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,sDAAsD,EAAE;YAC7F,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,6CAA6C,EAAE;SACnF;QACD,sBAAsB,EAAE;YACtB,kCAAkC;YAClC,6EAA6E;YAC7E,sEAAsE;YACtE,uEAAuE;SACxE;QACD,SAAS,EAAE,+EAA+E;QAC1F,UAAU,EAAE;YACV,IAAI,EAAE,0CAA0C;YAChD,GAAG,EAAE,qCAAqC;YAC1C,IAAI,EAAE,0BAA0B;SACjC;QACD,eAAe,EAAE,uFAAuF;QACxG,KAAK,EAAE;YACL,MAAM,EAAE,4CAA4C;YACpD,GAAG,EAAE,2CAA2C;SACjD;KACF,CAAC;AACJ,CAAC"}

@@ -13,2 +13,11 @@ import Database from "better-sqlite3";

/**
* Optional multi-agent isolation. When DELX_MEMORY_NAMESPACE is set, all keys
* are stored as `${namespace}::${key}` and list/search are scoped to that prefix.
* Empty/unset = global store (default, backward compatible).
*/
export declare function resolveNamespace(): string | null;
export declare function namespacedKey(key: string): string;
export declare function displayKey(storedKey: string): string;
export declare function namespacePrefixPattern(): string | null;
/**
* Open (or reuse) the SQLite connection. Bootstraps schema + indexes on

@@ -15,0 +24,0 @@ * first open. Idempotent. Returns the SAME connection on repeated calls

@@ -13,2 +13,38 @@ import Database from "better-sqlite3";

}
/**
* Optional multi-agent isolation. When DELX_MEMORY_NAMESPACE is set, all keys
* are stored as `${namespace}::${key}` and list/search are scoped to that prefix.
* Empty/unset = global store (default, backward compatible).
*/
export function resolveNamespace() {
const raw = (process.env.DELX_MEMORY_NAMESPACE ?? "").trim();
if (!raw)
return null;
// forbid separators that break our prefix scheme
if (raw.includes("::") || /[\x00-\x1f]/.test(raw)) {
throw new Error("DELX_MEMORY_NAMESPACE must not contain '::' or control characters");
}
if (raw.length > 64)
throw new Error("DELX_MEMORY_NAMESPACE max 64 chars");
return raw;
}
export function namespacedKey(key) {
const ns = resolveNamespace();
return ns ? `${ns}::${key}` : key;
}
export function displayKey(storedKey) {
const ns = resolveNamespace();
if (!ns)
return storedKey;
const prefix = `${ns}::`;
return storedKey.startsWith(prefix) ? storedKey.slice(prefix.length) : storedKey;
}
export function namespacePrefixPattern() {
const ns = resolveNamespace();
if (!ns)
return null;
// escape LIKE wildcards in namespace itself
const escaped = ns.replace(/[\\%_]/g, "\\$&");
return `${escaped}::%`;
}
function ensureParentDirSecure(path) {

@@ -60,2 +96,3 @@ const dir = dirname(path);

db.pragma("foreign_keys = ON");
db.pragma("busy_timeout = 5000"); // multi-agent concurrent writers
db.exec(`

@@ -62,0 +99,0 @@ CREATE TABLE IF NOT EXISTS memory (

@@ -1,1 +0,1 @@

{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/services/db.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/services/db.ts"],"names":[],"mappings":"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"}
import { z } from "zod";
import { buildFtsMatch, decodeTags, encodeTags, getDb, getDbSizeBytes, isFtsReady, resolveDbPath, sweepExpired, tagLikePattern, } from "../services/db.js";
import { buildFtsMatch, decodeTags, displayKey, encodeTags, getDb, getDbSizeBytes, isFtsReady, namespacedKey, namespacePrefixPattern, resolveDbPath, resolveNamespace, sweepExpired, tagLikePattern, } from "../services/db.js";
import { assertKeyNotSecret, assertValueNotSecret, } from "../services/secret-detector.js";
import { makeError, makeResponse } from "../services/format.js";
import { MAX_VALUE_BYTES } from "../constants.js";
import { MemoryExportInputSchema, MemoryForgetByTagInputSchema, MemoryForgetInputSchema, MemoryGetInputSchema, MemoryListInputSchema, MemorySearchInputSchema, MemorySetInputSchema, MemoryStatsInputSchema, } from "../schemas/common.js";
import { MemoryExportInputSchema, MemoryForgetByTagInputSchema, MemoryForgetInputSchema, MemoryGetInputSchema, MemoryGetManyInputSchema, MemoryHandoffInputSchema, MemoryListInputSchema, MemorySearchInputSchema, MemorySetBatchInputSchema, MemorySetInputSchema, MemoryStatsInputSchema, } from "../schemas/common.js";
import { buildAgentManifest, parseAgentClientName } from "../services/agent-manifest.js";

@@ -228,2 +228,3 @@ import { buildCapabilities } from "../services/capabilities.js";

const privacy = input.privacy_mode ?? "structured";
const storeKey = namespacedKey(input.key);
sweepExpired();

@@ -233,7 +234,31 @@ const db = getDb();

.prepare("SELECT * FROM memory WHERE key = ?")
.get(input.key);
.get(storeKey);
if (!row) {
return makeResponse({ key: input.key, found: false, value: null, privacy_mode: privacy });
return makeResponse({
key: input.key,
found: false,
value: null,
privacy_mode: privacy,
namespace: resolveNamespace(),
});
}
return makeResponse({ found: true, privacy_mode: privacy, ...rowToPayload(row, privacy) });
if (row.ttl_expires_at && row.ttl_expires_at <= Date.now()) {
db.prepare("DELETE FROM memory WHERE key = ?").run(storeKey);
return makeResponse({
key: input.key,
found: false,
expired: true,
value: null,
privacy_mode: privacy,
namespace: resolveNamespace(),
});
}
const payload = rowToPayload(row, privacy);
return makeResponse({
found: true,
privacy_mode: privacy,
namespace: resolveNamespace(),
...payload,
key: displayKey(row.key),
});
}

@@ -249,3 +274,3 @@ catch (err) {

title: "List memory keys (not values)",
description: "List keys with optional prefix or tag filter. Returns keys + timestamps + tags only — call memory_get for values. Use this first on a new session to discover what is stored. Optional privacy_mode for agent-surface parity (list is already key-only).",
description: "List keys with optional prefix, tag, or since (updated_at) filter. Returns keys + timestamps + tags only — call memory_get for values. Scoped by DELX_MEMORY_NAMESPACE when set.",
inputSchema: MemoryListInputSchema.shape,

@@ -261,6 +286,14 @@ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },

const params = [];
// Namespace isolation: always constrain to ns:: when configured
if (input.prefix) {
clauses.push(`key LIKE ? ESCAPE '\\'`);
params.push(input.prefix.replace(/[\\%_]/g, "\\$&") + "%");
params.push(namespacedKey(input.prefix).replace(/[\\%_]/g, "\\$&") + "%");
}
else {
const nsPat = namespacePrefixPattern();
if (nsPat) {
clauses.push(`key LIKE ? ESCAPE '\\'`);
params.push(nsPat);
}
}
if (input.tag) {

@@ -270,16 +303,24 @@ clauses.push(`tags LIKE ? ESCAPE '\\'`);

}
if (input.since != null) {
clauses.push(`updated_at >= ?`);
params.push(input.since);
}
const where = clauses.length ? "WHERE " + clauses.join(" AND ") : "";
const sql = `SELECT key, created_at, updated_at, ttl_expires_at, tags FROM memory ${where} ORDER BY updated_at DESC LIMIT ?`;
params.push(input.limit);
const rows = db.prepare(sql).all(...params);
const rows = db
.prepare(sql)
.all(...params);
return makeResponse({
count: rows.length,
privacy_mode: privacy,
namespace: resolveNamespace(),
filters: {
prefix: input.prefix ?? null,
tag: input.tag ?? null,
since: input.since ?? null,
limit: input.limit,
},
keys: rows.map((r) => ({
key: r.key,
key: displayKey(r.key),
created_at: r.created_at,

@@ -296,3 +337,2 @@ updated_at: r.updated_at,

});
// -------------------------------------------------------------------------
// memory_search — keyword across key + value

@@ -328,2 +368,11 @@ // -------------------------------------------------------------------------

}
// Namespace scope (post-filter — FTS may match other agents' keys)
const ns = resolveNamespace();
if (ns) {
const prefix = `${ns}::`;
results = results.filter((r) => r.key.startsWith(prefix)).map((r) => ({
...r,
key: displayKey(r.key),
}));
}
const shaped = privacy === "summary"

@@ -342,2 +391,3 @@ ? results.map(({ key, score, updated_at, tags }) => ({

privacy_mode: privacy,
namespace: resolveNamespace(),
count: shaped.length,

@@ -397,2 +447,3 @@ results: shaped,

const input = MemorySetInputSchema.parse(rawInput);
const storeKey = namespacedKey(input.key);
// Key check — credential-shaped names are refused.

@@ -421,7 +472,8 @@ assertKeyNotSecret(input.key);

.prepare("SELECT created_at FROM memory WHERE key = ?")
.get(input.key);
.get(storeKey);
if (existing) {
db.prepare(`UPDATE memory SET value = ?, updated_at = ?, ttl_expires_at = ?, tags = ?, metadata = ? WHERE key = ?`).run(serialized, now, ttlAt, tagsBlob, metadataBlob, input.key);
db.prepare(`UPDATE memory SET value = ?, updated_at = ?, ttl_expires_at = ?, tags = ?, metadata = ? WHERE key = ?`).run(serialized, now, ttlAt, tagsBlob, metadataBlob, storeKey);
return makeResponse({
key: input.key,
namespace: resolveNamespace(),
action: "updated",

@@ -435,3 +487,3 @@ created_at: existing.created_at,

db.prepare(`INSERT INTO memory (key, value, created_at, updated_at, ttl_expires_at, tags, metadata)
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(input.key, serialized, now, now, ttlAt, tagsBlob, metadataBlob);
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(storeKey, serialized, now, now, ttlAt, tagsBlob, metadataBlob);
return makeResponse({

@@ -461,6 +513,8 @@ key: input.key,

const input = MemoryForgetInputSchema.parse(rawInput);
const storeKey = namespacedKey(input.key);
const db = getDb();
const info = db.prepare("DELETE FROM memory WHERE key = ?").run(input.key);
const info = db.prepare("DELETE FROM memory WHERE key = ?").run(storeKey);
return makeResponse({
key: input.key,
namespace: resolveNamespace(),
existed: info.changes > 0,

@@ -571,2 +625,156 @@ deleted: info.changes,

});
// -------------------------------------------------------------------------
// memory_get_many
// -------------------------------------------------------------------------
server.registerTool("memory_get_many", {
title: "Get many memory entries by key",
description: "Batch exact-key lookup (max 50). Missing keys omitted. Respects DELX_MEMORY_NAMESPACE.",
inputSchema: MemoryGetManyInputSchema.shape,
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
}, async (rawInput) => {
try {
const input = MemoryGetManyInputSchema.parse(rawInput);
const privacy = input.privacy_mode ?? "structured";
sweepExpired();
const db = getDb();
const entries = [];
for (const key of input.keys) {
const storeKey = namespacedKey(key);
const row = db.prepare("SELECT * FROM memory WHERE key = ?").get(storeKey);
if (!row)
continue;
if (row.ttl_expires_at && row.ttl_expires_at <= Date.now()) {
db.prepare("DELETE FROM memory WHERE key = ?").run(storeKey);
continue;
}
const payload = rowToPayload(row, privacy);
entries.push({ ...payload, key: displayKey(row.key) });
}
return makeResponse({
requested: input.keys.length,
found: entries.length,
privacy_mode: privacy,
namespace: resolveNamespace(),
entries,
});
}
catch (err) {
return makeError(err.message);
}
});
// -------------------------------------------------------------------------
// memory_set_batch
// -------------------------------------------------------------------------
server.registerTool("memory_set_batch", {
title: "Atomic multi-entry upsert (requires explicit_user_intent)",
description: "Upsert up to 50 entries in one SQLite transaction. One explicit_user_intent covers the batch. Rejects secret-shaped keys/values. Namespace-aware.",
inputSchema: MemorySetBatchInputSchema.shape,
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
}, async (rawInput) => {
try {
const input = MemorySetBatchInputSchema.parse(rawInput);
const db = getDb();
const now = Date.now();
const results = [];
const tx = db.transaction(() => {
for (const entry of input.entries) {
assertKeyNotSecret(entry.key);
assertValueNotSecret(entry.value);
if (entry.tags)
entry.tags.forEach((tg) => assertKeyNotSecret(tg));
if (entry.metadata)
assertValueNotSecret(entry.metadata);
const serialized = JSON.stringify(entry.value ?? null);
const byteLen = Buffer.byteLength(serialized, "utf8");
if (byteLen > MAX_VALUE_BYTES) {
throw new Error(`Value too large for key ${entry.key}: ${byteLen} bytes`);
}
const storeKey = namespacedKey(entry.key);
const metadataBlob = entry.metadata ? JSON.stringify(entry.metadata) : null;
const tagsBlob = encodeTags(entry.tags ?? null);
const ttlAt = entry.ttl_seconds ? now + entry.ttl_seconds * 1000 : null;
const existing = db
.prepare("SELECT created_at FROM memory WHERE key = ?")
.get(storeKey);
if (existing) {
db.prepare(`UPDATE memory SET value = ?, updated_at = ?, ttl_expires_at = ?, tags = ?, metadata = ? WHERE key = ?`).run(serialized, now, ttlAt, tagsBlob, metadataBlob, storeKey);
results.push({ key: entry.key, action: "updated", bytes: byteLen });
}
else {
db.prepare(`INSERT INTO memory (key, value, created_at, updated_at, ttl_expires_at, tags, metadata)
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(storeKey, serialized, now, now, ttlAt, tagsBlob, metadataBlob);
results.push({ key: entry.key, action: "created", bytes: byteLen });
}
}
});
tx();
return makeResponse({
ok: true,
count: results.length,
namespace: resolveNamespace(),
results,
});
}
catch (err) {
return makeError(err.message);
}
});
// -------------------------------------------------------------------------
// memory_handoff — session resume brief
// -------------------------------------------------------------------------
server.registerTool("memory_handoff", {
title: "Compact handoff brief for the next agent/session",
description: "Returns store stats + the most recently updated keys (optional values). Designed for session start: one call instead of stats+list+get fan-out. Namespace-aware.",
inputSchema: MemoryHandoffInputSchema.shape,
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
}, async (rawInput) => {
try {
const input = MemoryHandoffInputSchema.parse(rawInput);
sweepExpired();
const db = getDb();
const clauses = [];
const params = [];
const nsPat = namespacePrefixPattern();
if (nsPat) {
clauses.push(`key LIKE ? ESCAPE '\\'`);
params.push(nsPat);
}
const where = clauses.length ? "WHERE " + clauses.join(" AND ") : "";
const countRow = db
.prepare(`SELECT COUNT(*) AS total FROM memory ${where}`)
.get(...params);
const sql = `SELECT * FROM memory ${where} ORDER BY updated_at DESC LIMIT ?`;
const rows = db.prepare(sql).all(...params, input.limit);
const recent = rows.map((row) => {
if (input.include_values) {
const payload = rowToPayload(row, "structured");
return { ...payload, key: displayKey(row.key) };
}
return {
key: displayKey(row.key),
updated_at: row.updated_at,
created_at: row.created_at,
tags: decodeTags(row.tags),
ttl_expires_at: row.ttl_expires_at,
};
});
return makeResponse({
ok: true,
namespace: resolveNamespace(),
total_keys: countRow?.total ?? 0,
total_size_bytes: getDbSizeBytes(),
db_path: resolveDbPath(),
transport_hint: "lite default; use --sdk for prompts/resources",
recent,
agent_instructions: [
"Call memory_handoff (or memory_stats + memory_list) at session start.",
"Only mutate with explicit_user_intent: true when the user asks.",
"Never store secrets/tokens/passwords.",
],
});
}
catch (err) {
return makeError(err.message);
}
});
}

@@ -576,6 +784,9 @@ // Re-exported for tests / introspection.

"memory_get",
"memory_get_many",
"memory_list",
"memory_search",
"memory_stats",
"memory_handoff",
"memory_set",
"memory_set_batch",
"memory_forget",

@@ -582,0 +793,0 @@ "memory_forget_by_tag",

@@ -1,1 +0,1 @@

{"version":3,"file":"memory-tools.js","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"memory-tools.js","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"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"}
{
"name": "delx-memory",
"version": "0.3.0",
"description": "Local-first persistent memory MCP server. Shared SQLite store for Claude Desktop, Cursor, Hermes, OpenClaw, Codex.",
"version": "0.4.0",
"description": "Local-first multi-agent memory MCP. Shared SQLite + FTS5, secret-blocking, lite transport (no SDK by default), namespaces, batch + handoff tools.",
"type": "module",

@@ -34,3 +34,4 @@ "bin": {

"prepublishOnly": "npm test",
"smoke:lite": "node scripts/smoke-lite.mjs"
"smoke:lite": "node scripts/smoke-lite.mjs",
"bench:rss": "node scripts/bench-rss.mjs"
},

@@ -37,0 +38,0 @@ "keywords": [

+46
-12

@@ -8,3 +8,3 @@ # delx-memory

[![npm downloads](https://img.shields.io/npm/dm/delx-memory)](https://www.npmjs.com/package/delx-memory)
[![status: alpha](https://img.shields.io/badge/status-alpha-orange)](https://github.com/davidmosiah/delx-memory)
[![status: beta](https://img.shields.io/badge/status-beta-0EA5A3)](https://github.com/davidmosiah/delx-memory)
[![license: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE)

@@ -20,3 +20,3 @@ [![node: >=20](https://img.shields.io/badge/node-%3E%3D20-green)](package.json)

- 8 MCP tools — 4 read-only, 4 mutating.
- **15 tools** — discovery + handoff + batch ops + FTS5 search + mutations gated by intent.
- SQLite at `~/.delx-memory/db.sqlite` (0700 dir, 0600 file).

@@ -29,2 +29,14 @@ - **Secret-blocking**: refuses to store credential-shaped keys or values.

### Multi-agent namespaces
```bash
# Agent A
DELX_MEMORY_NAMESPACE=claude npx -y delx-memory
# Agent B (same machine, isolated keys)
DELX_MEMORY_NAMESPACE=cursor npx -y delx-memory
```
Keys are stored as `namespace::key`. Omit the env var for a single global store (default).
### Footprint / lightweight mode

@@ -93,13 +105,36 @@

## The 8 tools
## What makes it different (honest)
### Reads (always safe — call without confirmation)
| | delx-memory | Typical cloud memory | Graph memory MCP |
|---|---|---|---|
| Data leaves your machine | **No** | Yes | Usually no |
| Multi-client same store | **Yes** (one SQLite) | Account-bound | Process-local |
| Agent mutation safety | **`explicit_user_intent`** | Varies | Rare |
| Secret storage | **Hard-refused** | Often allowed | Often allowed |
| Default RSS path | **Lite (no MCP SDK)** | N/A | Full stack |
| Multi-agent isolation | **`DELX_MEMORY_NAMESPACE`** | Tenants | Manual |
| Search | **FTS5 bm25** | Embeddings (cost/leak) | Graph walk |
Not a vector DB. Not a second brain SaaS. Local continuity for agents that already have a model.
## Tools (15)
### Session start
| Tool | Purpose |
|---|---|
| `memory_stats` | High-level: total keys, DB size, oldest entry, DB path. **Start here on any session.** |
| `memory_list` | List keys (not values) with optional prefix or tag filter. |
| `memory_get` | Exact key lookup. Returns value + timestamps + tags + metadata. |
| `memory_search` | FTS5 full-text search across keys, values and tags — bm25 relevance ranking, stemming, diacritic folding, prefix matching; LIKE fallback if FTS5 is missing. Returns snippets. See the [search quickstart](./examples/fts5-search.md). |
| `memory_handoff` | **One-call resume brief**: stats + recent keys (optional values). Prefer this at session start. |
| `memory_agent_manifest` | Machine install/ops contract for agents. |
| `memory_connection_status` / `memory_stats` | Readiness + store size. |
| `memory_capabilities` / `memory_data_inventory` | Self-description for agents. |
### Reads
| Tool | Purpose |
|---|---|
| `memory_list` | Keys only; filters: `prefix`, `tag`, **`since`** (delta sync). |
| `memory_get` / `memory_get_many` | Exact key or batch (max 50). |
| `memory_search` | FTS5 bm25 (+ LIKE fallback). See [search quickstart](./examples/fts5-search.md). |
### Mutations (require `explicit_user_intent: true`)

@@ -109,6 +144,5 @@

|---|---|
| `memory_set` | Upsert a key. Rejects credential-shaped keys/values. |
| `memory_forget` | Delete one key. Idempotent. |
| `memory_forget_by_tag` | Bulk-delete every entry carrying a given tag. |
| `memory_export` | Dump store as JSON / JSONL / Markdown, with optional `since` / `until` window. |
| `memory_set` / `memory_set_batch` | Upsert one key or up to 50 in one transaction. |
| `memory_forget` / `memory_forget_by_tag` | Delete one key or by tag. |
| `memory_export` | Dump JSON / JSONL / Markdown. |

@@ -115,0 +149,0 @@ Every mutation refuses to run unless the caller passes `explicit_user_intent: true`. The intent: an agent that decides on its own to update memory must show its work. The user can see the flag in the tool call and reject it if they didn't ask.

@@ -9,3 +9,3 @@ {

},
"version": "0.3.0",
"version": "0.4.0",
"packages": [

@@ -15,3 +15,3 @@ {

"identifier": "delx-memory",
"version": "0.3.0",
"version": "0.4.0",
"transport": {

@@ -18,0 +18,0 @@ "type": "stdio"