@adamrdrew/agent-memory-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +109 -0
- package/dist/embedder.d.ts +11 -0
- package/dist/embedder.js +38 -0
- package/dist/embedder.js.map +1 -0
- package/dist/hardcopy-store.d.ts +17 -0
- package/dist/hardcopy-store.js +80 -0
- package/dist/hardcopy-store.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/memory-store.d.ts +33 -0
- package/dist/memory-store.js +310 -0
- package/dist/memory-store.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.js +11 -0
- package/dist/server.js.map +1 -0
- package/dist/tools.d.ts +54 -0
- package/dist/tools.js +192 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +55 -0
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
package/dist/server.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { registerTools } from './tools.js';
|
|
3
|
+
export function createServer(store) {
|
|
4
|
+
const server = new McpServer({
|
|
5
|
+
name: 'agent-memory',
|
|
6
|
+
version: '1.0.0',
|
|
7
|
+
});
|
|
8
|
+
registerTools(server, store);
|
|
9
|
+
return server;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,YAAY,CAAC,KAAkB;IAC7C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE7B,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { type MemoryStore } from './types.js';
|
|
3
|
+
declare function success(data: unknown): {
|
|
4
|
+
content: {
|
|
5
|
+
type: "text";
|
|
6
|
+
text: string;
|
|
7
|
+
}[];
|
|
8
|
+
};
|
|
9
|
+
export declare function handleStore(store: MemoryStore): (args: {
|
|
10
|
+
content: string;
|
|
11
|
+
category: string;
|
|
12
|
+
tags: string[];
|
|
13
|
+
}) => Promise<ReturnType<typeof success>>;
|
|
14
|
+
export declare function handleStoreBatch(store: MemoryStore): (args: {
|
|
15
|
+
memories: Array<{
|
|
16
|
+
content: string;
|
|
17
|
+
category: string;
|
|
18
|
+
tags: string[];
|
|
19
|
+
}>;
|
|
20
|
+
}) => Promise<ReturnType<typeof success>>;
|
|
21
|
+
export declare function handleSearch(store: MemoryStore): (args: {
|
|
22
|
+
query: string;
|
|
23
|
+
mode?: string;
|
|
24
|
+
category?: string;
|
|
25
|
+
tags?: string[];
|
|
26
|
+
after?: string;
|
|
27
|
+
before?: string;
|
|
28
|
+
limit?: number;
|
|
29
|
+
}) => Promise<ReturnType<typeof success>>;
|
|
30
|
+
export declare function handleRecall(store: MemoryStore): (args: {
|
|
31
|
+
topics: string[];
|
|
32
|
+
include_recent?: number;
|
|
33
|
+
limit_per_topic?: number;
|
|
34
|
+
}) => Promise<ReturnType<typeof success>>;
|
|
35
|
+
export declare function handleFindRelated(store: MemoryStore): (args: {
|
|
36
|
+
memory_id: string;
|
|
37
|
+
limit?: number;
|
|
38
|
+
}) => Promise<ReturnType<typeof success>>;
|
|
39
|
+
export declare function handleListRecent(store: MemoryStore): (args: {
|
|
40
|
+
limit?: number;
|
|
41
|
+
category?: string;
|
|
42
|
+
}) => Promise<ReturnType<typeof success>>;
|
|
43
|
+
export declare function handleUpdate(store: MemoryStore): (args: {
|
|
44
|
+
id: string;
|
|
45
|
+
content?: string;
|
|
46
|
+
category?: string;
|
|
47
|
+
tags?: string[];
|
|
48
|
+
}) => Promise<ReturnType<typeof success>>;
|
|
49
|
+
export declare function handleDelete(store: MemoryStore): (args: {
|
|
50
|
+
id: string;
|
|
51
|
+
}) => Promise<ReturnType<typeof success>>;
|
|
52
|
+
export declare function handleStats(store: MemoryStore): () => Promise<ReturnType<typeof success>>;
|
|
53
|
+
export declare function registerTools(server: McpServer, store: MemoryStore): void;
|
|
54
|
+
export {};
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MEMORY_CATEGORIES, } from './types.js';
|
|
3
|
+
// ── Zod schemas ────────────────────────────────────────────────────
|
|
4
|
+
const categorySchema = z.enum(MEMORY_CATEGORIES);
|
|
5
|
+
const tagsSchema = z.array(z.string()).describe('Free-form tags for organisation');
|
|
6
|
+
const filtersSchema = {
|
|
7
|
+
category: categorySchema.optional().describe('Filter by category'),
|
|
8
|
+
tags: z.array(z.string()).optional().describe('Filter: memory must have at least one of these tags'),
|
|
9
|
+
after: z.string().optional().describe('Filter: created after this ISO 8601 date'),
|
|
10
|
+
before: z.string().optional().describe('Filter: created before this ISO 8601 date'),
|
|
11
|
+
limit: z.number().optional().describe('Max results to return (default 10)'),
|
|
12
|
+
};
|
|
13
|
+
const modeSchema = z
|
|
14
|
+
.enum(['hybrid', 'keyword', 'semantic'])
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Search mode: hybrid (default), keyword-only, or semantic-only');
|
|
17
|
+
// ── Tool result helpers ────────────────────────────────────────────
|
|
18
|
+
// Returns plain objects compatible with the MCP SDK's CallToolResult
|
|
19
|
+
// (which requires an index signature [key: string]: unknown).
|
|
20
|
+
function success(data) {
|
|
21
|
+
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
22
|
+
}
|
|
23
|
+
function error(message) {
|
|
24
|
+
return { content: [{ type: 'text', text: message }], isError: true };
|
|
25
|
+
}
|
|
26
|
+
// ── Handler factories ──────────────────────────────────────────────
|
|
27
|
+
// Each factory closes over a MemoryStore, returning a handler function
|
|
28
|
+
// that the MCP server can invoke. This keeps tools testable without
|
|
29
|
+
// an MCP server instance.
|
|
30
|
+
export function handleStore(store) {
|
|
31
|
+
return async (args) => {
|
|
32
|
+
try {
|
|
33
|
+
const memory = await store.store(args);
|
|
34
|
+
return success(memory);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return error(`Failed to store memory: ${String(err)}`);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function handleStoreBatch(store) {
|
|
42
|
+
return async (args) => {
|
|
43
|
+
try {
|
|
44
|
+
const memories = await store.storeBatch(args.memories);
|
|
45
|
+
return success({ stored: memories.length, memories });
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
return error(`Failed to store batch: ${String(err)}`);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function handleSearch(store) {
|
|
53
|
+
return async (args) => {
|
|
54
|
+
try {
|
|
55
|
+
const mode = (args.mode ?? 'hybrid');
|
|
56
|
+
const results = await store.search(args.query, mode, {
|
|
57
|
+
category: args.category,
|
|
58
|
+
tags: args.tags,
|
|
59
|
+
after: args.after,
|
|
60
|
+
before: args.before,
|
|
61
|
+
limit: args.limit,
|
|
62
|
+
});
|
|
63
|
+
return success({ count: results.length, results });
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
return error(`Search failed: ${String(err)}`);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function handleRecall(store) {
|
|
71
|
+
return async (args) => {
|
|
72
|
+
try {
|
|
73
|
+
const limitPerTopic = args.limit_per_topic ?? 5;
|
|
74
|
+
const includeRecent = args.include_recent ?? 5;
|
|
75
|
+
const byTopic = {};
|
|
76
|
+
await Promise.all(args.topics.map(async (topic) => {
|
|
77
|
+
byTopic[topic] = await store.search(topic, 'hybrid', { limit: limitPerTopic });
|
|
78
|
+
}));
|
|
79
|
+
const recent = await store.listRecent(includeRecent);
|
|
80
|
+
return success({ byTopic, recent });
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
return error(`Recall failed: ${String(err)}`);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export function handleFindRelated(store) {
|
|
88
|
+
return async (args) => {
|
|
89
|
+
try {
|
|
90
|
+
const results = await store.findRelated(args.memory_id, args.limit ?? 5);
|
|
91
|
+
return success({ count: results.length, results });
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
return error(`Find related failed: ${String(err)}`);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export function handleListRecent(store) {
|
|
99
|
+
return async (args) => {
|
|
100
|
+
try {
|
|
101
|
+
const memories = await store.listRecent(args.limit ?? 10, args.category);
|
|
102
|
+
return success({ count: memories.length, memories });
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
return error(`List recent failed: ${String(err)}`);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export function handleUpdate(store) {
|
|
110
|
+
return async (args) => {
|
|
111
|
+
try {
|
|
112
|
+
const memory = await store.update(args.id, {
|
|
113
|
+
content: args.content,
|
|
114
|
+
category: args.category,
|
|
115
|
+
tags: args.tags,
|
|
116
|
+
});
|
|
117
|
+
return success(memory);
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
return error(`Update failed: ${String(err)}`);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
export function handleDelete(store) {
|
|
125
|
+
return async (args) => {
|
|
126
|
+
try {
|
|
127
|
+
await store.delete(args.id);
|
|
128
|
+
return success({ deleted: true, id: args.id });
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
return error(`Delete failed: ${String(err)}`);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export function handleStats(store) {
|
|
136
|
+
return async () => {
|
|
137
|
+
try {
|
|
138
|
+
const stats = await store.stats();
|
|
139
|
+
return success(stats);
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
return error(`Stats failed: ${String(err)}`);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
// ── Registration ───────────────────────────────────────────────────
|
|
147
|
+
export function registerTools(server, store) {
|
|
148
|
+
// ── Storage tools ──
|
|
149
|
+
server.tool('store', 'Store a single memory with content, category, and tags. Returns the stored memory with its ID.', {
|
|
150
|
+
content: z.string().describe('The memory content — what you learnt, observed, or want to remember'),
|
|
151
|
+
category: categorySchema.describe('Memory category'),
|
|
152
|
+
tags: tagsSchema,
|
|
153
|
+
}, handleStore(store));
|
|
154
|
+
server.tool('store_batch', 'Store multiple memories in one call. Use at end-of-session to capture everything learnt. Returns all stored memories.', {
|
|
155
|
+
memories: z.array(z.object({
|
|
156
|
+
content: z.string().describe('The memory content'),
|
|
157
|
+
category: categorySchema,
|
|
158
|
+
tags: tagsSchema,
|
|
159
|
+
})).describe('Array of memories to store'),
|
|
160
|
+
}, handleStoreBatch(store));
|
|
161
|
+
// ── Search tools ──
|
|
162
|
+
server.tool('search', 'Search memories by meaning and/or keywords. Default mode is hybrid (BM25 + vector). Returns ranked results with relevance scores.', {
|
|
163
|
+
query: z.string().describe('What to search for — a concept, phrase, or question'),
|
|
164
|
+
mode: modeSchema,
|
|
165
|
+
...filtersSchema,
|
|
166
|
+
}, handleSearch(store));
|
|
167
|
+
server.tool('recall', 'Multi-topic contextual recall — the morning coffee tool. Searches multiple topics in parallel and includes recent memories. Use at session start to restore context efficiently.', {
|
|
168
|
+
topics: z.array(z.string()).describe('List of topics to search for'),
|
|
169
|
+
include_recent: z.number().optional().describe('Number of recent memories to include (default 5)'),
|
|
170
|
+
limit_per_topic: z.number().optional().describe('Max results per topic (default 5)'),
|
|
171
|
+
}, handleRecall(store));
|
|
172
|
+
server.tool('find_related', 'Find memories similar to a specific memory. Use for associative exploration — "what else do I know that connects to this?"', {
|
|
173
|
+
memory_id: z.string().describe('ID of the memory to find relatives of'),
|
|
174
|
+
limit: z.number().optional().describe('Max related memories to return (default 5)'),
|
|
175
|
+
}, handleFindRelated(store));
|
|
176
|
+
server.tool('list_recent', 'List most recent memories, optionally filtered by category. Use to see what you have been learning lately.', {
|
|
177
|
+
limit: z.number().optional().describe('Max memories to return (default 10)'),
|
|
178
|
+
category: categorySchema.optional().describe('Filter by category'),
|
|
179
|
+
}, handleListRecent(store));
|
|
180
|
+
// ── Management tools ──
|
|
181
|
+
server.tool('update', 'Update an existing memory — change its content, category, or tags. If content changes, the embedding is regenerated automatically.', {
|
|
182
|
+
id: z.string().describe('ID of the memory to update'),
|
|
183
|
+
content: z.string().optional().describe('New content (triggers re-embedding)'),
|
|
184
|
+
category: categorySchema.optional().describe('New category'),
|
|
185
|
+
tags: tagsSchema.optional().describe('New tags (replaces existing)'),
|
|
186
|
+
}, handleUpdate(store));
|
|
187
|
+
server.tool('delete', 'Permanently remove a memory by ID.', {
|
|
188
|
+
id: z.string().describe('ID of the memory to delete'),
|
|
189
|
+
}, handleDelete(store));
|
|
190
|
+
server.tool('stats', 'Get memory database statistics: total count, breakdown by category, oldest and newest timestamps.', {}, handleStats(store));
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export declare const MEMORY_CATEGORIES: readonly ["code-solution", "bug-fix", "architecture", "learning", "tool-usage", "debugging", "performance", "security", "observation", "personal", "relationship", "other"];
|
|
2
|
+
export type MemoryCategory = (typeof MEMORY_CATEGORIES)[number];
|
|
3
|
+
export interface Memory {
|
|
4
|
+
id: string;
|
|
5
|
+
content: string;
|
|
6
|
+
category: MemoryCategory;
|
|
7
|
+
tags: string[];
|
|
8
|
+
createdAt: string;
|
|
9
|
+
updatedAt: string;
|
|
10
|
+
}
|
|
11
|
+
export interface SearchResult {
|
|
12
|
+
memory: Memory;
|
|
13
|
+
score: number;
|
|
14
|
+
}
|
|
15
|
+
export interface MemoryStats {
|
|
16
|
+
totalMemories: number;
|
|
17
|
+
byCategory: Record<string, number>;
|
|
18
|
+
oldestMemory: string | null;
|
|
19
|
+
newestMemory: string | null;
|
|
20
|
+
}
|
|
21
|
+
export interface StoreRequest {
|
|
22
|
+
content: string;
|
|
23
|
+
category: MemoryCategory;
|
|
24
|
+
tags: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface UpdateRequest {
|
|
27
|
+
content?: string;
|
|
28
|
+
category?: MemoryCategory;
|
|
29
|
+
tags?: string[];
|
|
30
|
+
}
|
|
31
|
+
export interface SearchFilters {
|
|
32
|
+
category?: MemoryCategory;
|
|
33
|
+
tags?: string[];
|
|
34
|
+
after?: string;
|
|
35
|
+
before?: string;
|
|
36
|
+
limit?: number;
|
|
37
|
+
}
|
|
38
|
+
export type SearchMode = 'hybrid' | 'keyword' | 'semantic';
|
|
39
|
+
export interface Embedder {
|
|
40
|
+
initialize(): Promise<void>;
|
|
41
|
+
embed(text: string): Promise<number[]>;
|
|
42
|
+
embedBatch(texts: string[]): Promise<number[][]>;
|
|
43
|
+
dimensions(): number;
|
|
44
|
+
}
|
|
45
|
+
export interface MemoryStore {
|
|
46
|
+
initialize(): Promise<void>;
|
|
47
|
+
store(request: StoreRequest): Promise<Memory>;
|
|
48
|
+
storeBatch(requests: StoreRequest[]): Promise<Memory[]>;
|
|
49
|
+
search(query: string, mode: SearchMode, filters: SearchFilters): Promise<SearchResult[]>;
|
|
50
|
+
findRelated(memoryId: string, limit: number): Promise<SearchResult[]>;
|
|
51
|
+
listRecent(limit: number, category?: MemoryCategory): Promise<Memory[]>;
|
|
52
|
+
update(id: string, updates: UpdateRequest): Promise<Memory>;
|
|
53
|
+
delete(id: string): Promise<void>;
|
|
54
|
+
stats(): Promise<MemoryStats>;
|
|
55
|
+
}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// ── Category taxonomy ──────────────────────────────────────────────
|
|
2
|
+
export const MEMORY_CATEGORIES = [
|
|
3
|
+
'code-solution',
|
|
4
|
+
'bug-fix',
|
|
5
|
+
'architecture',
|
|
6
|
+
'learning',
|
|
7
|
+
'tool-usage',
|
|
8
|
+
'debugging',
|
|
9
|
+
'performance',
|
|
10
|
+
'security',
|
|
11
|
+
'observation',
|
|
12
|
+
'personal',
|
|
13
|
+
'relationship',
|
|
14
|
+
'other',
|
|
15
|
+
];
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,eAAe;IACf,SAAS;IACT,cAAc;IACd,UAAU;IACV,YAAY;IACZ,WAAW;IACX,aAAa;IACb,UAAU;IACV,aAAa;IACb,UAAU;IACV,cAAc;IACd,OAAO;CACC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@adamrdrew/agent-memory-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for persistent agent memory — hybrid BM25 + vector search backed by LanceDB with local ONNX embeddings. No API keys, fully local.",
|
|
5
|
+
"license": "GPL-3.0-or-later",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"bin": {
|
|
9
|
+
"agent-memory-mcp": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist/",
|
|
13
|
+
"!dist/**/*.test.*",
|
|
14
|
+
"README.md",
|
|
15
|
+
"LICENSE"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"start": "node dist/index.js",
|
|
20
|
+
"dev": "tsx src/index.ts",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"test:watch": "vitest",
|
|
23
|
+
"prepublishOnly": "npm run build"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"mcp",
|
|
27
|
+
"memory",
|
|
28
|
+
"lancedb",
|
|
29
|
+
"vector-search",
|
|
30
|
+
"bm25",
|
|
31
|
+
"embeddings",
|
|
32
|
+
"model-context-protocol",
|
|
33
|
+
"agent-memory"
|
|
34
|
+
],
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/adamrdrew/agent-memory-mcp.git"
|
|
38
|
+
},
|
|
39
|
+
"author": "Adam Drew",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@lancedb/lancedb": "^0.26.2",
|
|
42
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
43
|
+
"@xenova/transformers": "^2.17.0",
|
|
44
|
+
"zod": "^3.24.0"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/node": "^22.0.0",
|
|
48
|
+
"tsx": "^4.19.0",
|
|
49
|
+
"typescript": "^5.7.0",
|
|
50
|
+
"vitest": "^2.1.0"
|
|
51
|
+
},
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=18.0.0"
|
|
54
|
+
},
|
|
55
|
+
"publishConfig": {
|
|
56
|
+
"access": "public"
|
|
57
|
+
}
|
|
58
|
+
}
|