mindcache 0.1.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 MindCache
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # MindCache
2
+
3
+ A TypeScript library for managing short-term memory in AI agents through a simple, LLM-friendly key-value repository.
4
+
5
+ MindCache aims to solve one of the fundamental challenges in AI agent development: **memory management**. As AI agents interact with users and process information, they need a way to store, retrieve, and reason about contextual data.
6
+
7
+ This library is opinionated and enforced good practices to ease and accelerate the development of AI agents.
8
+
9
+ Managing cross-session memory is out of scope for this library. This is for short-term memory only.
10
+
11
+ ## Core Concepts
12
+
13
+ MindCache operates as an intelligent key-value repository designed specifically for AI agents:
14
+
15
+ - **Universal Storage**: Store any data type that an LLM can process - text, images, value of any kind.
16
+ - **LLM-Readable**: The storage format is optimized for LLM consumption, allowing agents to easily understand and reason about stored information
17
+ - **LLM-Writable**: Agents can directly read from and write to the memory store using simple tool calls
18
+ - **System Prompt Generation**: Automatically generate system prompts that summarize the entire memory state, giving your AI agent instant context
19
+ - **Markdown-Friendly**: Markdown is the preferred format for storing data.
20
+
21
+ ## Integration & Compatibility
22
+
23
+ MindCache is built with modern web development in mind:
24
+
25
+ - **Vercel AI SDK**: Native compatibility with Vercel's AI SDK for seamless integration
26
+ - **Next.js Ready**: Drop-in support for Next.js projects with minimal configuration
27
+ - **Framework Agnostic**: Works with any TypeScript/JavaScript environment
28
+ - **Edge Compatible**: Designed to work in serverless and edge environments
29
+
30
+ ## What's Included
31
+
32
+ This project will ship with:
33
+
34
+ - **Core Library**: The main MindCache TypeScript library
35
+ - **Documentation**: Comprehensive guides and API documentation
36
+ - **Examples**: Multiple implementation examples including:
37
+ - Next.js + Vercel AI SDK integration
38
+ - Basic usage patterns
39
+ - Advanced memory management strategies
40
+ - Real-world use cases
41
+
42
+ ## 🚧 Development Status
43
+
44
+ This project is currently in development. The readme file is just there to guide the AI that is writing the code.
45
+
46
+ ## 📄 License
47
+
48
+ MIT License - see [LICENSE](LICENSE) for details.
49
+
50
+
51
+
52
+
53
+
package/lib/index.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ type STM = {
2
+ [key: string]: any;
3
+ };
4
+ type Listener = () => void;
5
+ declare class MindCache {
6
+ private stm;
7
+ private listeners;
8
+ private globalListeners;
9
+ get(key: string): any;
10
+ set(key: string, value: any): void;
11
+ has(key: string): boolean;
12
+ delete(key: string): boolean;
13
+ clear(): void;
14
+ keys(): string[];
15
+ values(): any[];
16
+ entries(): [string, any][];
17
+ size(): number;
18
+ getAll(): STM;
19
+ update(newSTM: STM): void;
20
+ subscribe(key: string, listener: Listener): void;
21
+ unsubscribe(key: string, listener: Listener): void;
22
+ subscribeToAll(listener: Listener): void;
23
+ unsubscribeFromAll(listener: Listener): void;
24
+ private notifyGlobalListeners;
25
+ injectSTM(template: string): string;
26
+ getSTM(): string;
27
+ }
28
+ export declare const mindcache: MindCache;
29
+ export { MindCache };
30
+ export type { STM, Listener };
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,KAAK,GAAG,GAAG;IACT,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B,cAAM,SAAS;IACb,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,eAAe,CAAkB;IAGzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAarB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAUlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAe5B,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,MAAM,EAAE;IAKhB,MAAM,IAAI,GAAG,EAAE;IAUf,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;IAU1B,IAAI,IAAI,MAAM;IAKd,MAAM,IAAI,GAAG;IAUb,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;IAMzB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAQhD,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOlD,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKxC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAK5C,OAAO,CAAC,qBAAqB;IAK7B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAsBnC,MAAM,IAAI,MAAM;CAYjB;AAGD,eAAO,MAAM,SAAS,WAAkB,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,CAAC;AAGrB,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MindCache = exports.mindcache = void 0;
4
+ class MindCache {
5
+ constructor() {
6
+ this.stm = {};
7
+ this.listeners = {};
8
+ this.globalListeners = [];
9
+ }
10
+ // Get a value from the STM
11
+ get(key) {
12
+ if (key === '$date') {
13
+ const today = new Date();
14
+ return today.toISOString().split('T')[0];
15
+ }
16
+ if (key === '$time') {
17
+ const now = new Date();
18
+ return now.toTimeString().split(' ')[0];
19
+ }
20
+ return this.stm[key];
21
+ }
22
+ // Set a value in the STM
23
+ set(key, value) {
24
+ //console.log('Setting STM:', key, value);
25
+ this.stm[key] = value;
26
+ if (this.listeners[key]) {
27
+ this.listeners[key].forEach(listener => listener());
28
+ }
29
+ this.notifyGlobalListeners();
30
+ }
31
+ // Check if a key exists in the STM
32
+ has(key) {
33
+ if (key === '$date' || key === '$time') {
34
+ return true;
35
+ }
36
+ return key in this.stm;
37
+ }
38
+ // Delete a key-value pair from the STM
39
+ delete(key) {
40
+ if (!(key in this.stm)) {
41
+ return false;
42
+ }
43
+ const deleted = delete this.stm[key];
44
+ if (deleted) {
45
+ this.notifyGlobalListeners();
46
+ if (this.listeners[key]) {
47
+ this.listeners[key].forEach(listener => listener());
48
+ }
49
+ }
50
+ return deleted;
51
+ }
52
+ // Clear the entire STM
53
+ clear() {
54
+ this.stm = {};
55
+ this.notifyGlobalListeners();
56
+ }
57
+ // Get all keys in the STM
58
+ keys() {
59
+ return [...Object.keys(this.stm), '$date', '$time'];
60
+ }
61
+ // Get all values in the STM
62
+ values() {
63
+ const now = new Date();
64
+ return [
65
+ ...Object.values(this.stm),
66
+ now.toISOString().split('T')[0],
67
+ now.toTimeString().split(' ')[0]
68
+ ];
69
+ }
70
+ // Get all entries (key-value pairs) in the STM
71
+ entries() {
72
+ const now = new Date();
73
+ return [
74
+ ...Object.entries(this.stm),
75
+ ['$date', now.toISOString().split('T')[0]],
76
+ ['$time', now.toTimeString().split(' ')[0]]
77
+ ];
78
+ }
79
+ // Get the size of the STM
80
+ size() {
81
+ return Object.keys(this.stm).length + 2; // +2 for $date and $time
82
+ }
83
+ // Get a copy of the entire STM object
84
+ getAll() {
85
+ const now = new Date();
86
+ return {
87
+ ...this.stm,
88
+ '$date': now.toISOString().split('T')[0],
89
+ '$time': now.toTimeString().split(' ')[0]
90
+ };
91
+ }
92
+ // Update the STM with multiple key-value pairs
93
+ update(newSTM) {
94
+ this.stm = { ...this.stm, ...newSTM };
95
+ this.notifyGlobalListeners();
96
+ }
97
+ // Subscribe to changes for a specific key
98
+ subscribe(key, listener) {
99
+ if (!this.listeners[key]) {
100
+ this.listeners[key] = [];
101
+ }
102
+ this.listeners[key].push(listener);
103
+ }
104
+ // Unsubscribe from changes for a specific key
105
+ unsubscribe(key, listener) {
106
+ if (this.listeners[key]) {
107
+ this.listeners[key] = this.listeners[key].filter(l => l !== listener);
108
+ }
109
+ }
110
+ // Subscribe to changes for all STM keys
111
+ subscribeToAll(listener) {
112
+ this.globalListeners.push(listener);
113
+ }
114
+ // Unsubscribe from all STM changes
115
+ unsubscribeFromAll(listener) {
116
+ this.globalListeners = this.globalListeners.filter(l => l !== listener);
117
+ }
118
+ // Helper method to notify all global listeners
119
+ notifyGlobalListeners() {
120
+ this.globalListeners.forEach(listener => listener());
121
+ }
122
+ // Replace placeholders in a string with STM values
123
+ injectSTM(template) {
124
+ // find all the keys in the template
125
+ const keys = template.match(/\{([$\w]+)\}/g);
126
+ if (!keys) {
127
+ return template;
128
+ }
129
+ // Extract the actual key names without the curly braces
130
+ const cleanKeys = keys.map(key => key.replace(/[{}]/g, ''));
131
+ // Build inputValues with the clean keys
132
+ const inputValues = cleanKeys.reduce((acc, key) => ({
133
+ ...acc,
134
+ [key]: this.get(key)
135
+ }), {});
136
+ // Replace the placeholders with actual values
137
+ return template.replace(/\{([$\w]+)\}/g, (match, key) => inputValues[key] || '');
138
+ }
139
+ // Get a formatted string of all STM key-value pairs
140
+ getSTM() {
141
+ const now = new Date();
142
+ const stmWithDateTime = {
143
+ ...this.stm,
144
+ '$date': now.toISOString().split('T')[0],
145
+ '$time': now.toTimeString().split(' ')[0]
146
+ };
147
+ return Object.entries(stmWithDateTime)
148
+ .map(([key, value]) => `${key}: ${value}`)
149
+ .join(', ');
150
+ }
151
+ }
152
+ exports.MindCache = MindCache;
153
+ // Create and export a single instance of MindCache
154
+ exports.mindcache = new MindCache();
155
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "mindcache",
3
+ "version": "0.1.0",
4
+ "description": "A TypeScript library for managing short-term memory in AI agents through a simple, LLM-friendly key-value repository",
5
+ "main": "lib/index.js",
6
+ "types": "lib/index.d.ts",
7
+ "files": [
8
+ "lib/**/*",
9
+ "README.md",
10
+ "LICENSE"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "build:watch": "tsc --watch",
15
+ "test": "jest",
16
+ "test:watch": "jest --watch",
17
+ "lint": "eslint src/**/*.ts",
18
+ "lint:fix": "eslint src/**/*.ts --fix",
19
+ "prepublishOnly": "npm run build",
20
+ "dev": "tsc --watch",
21
+ "clean": "rimraf lib"
22
+ },
23
+ "keywords": [
24
+ "ai",
25
+ "llm",
26
+ "memory",
27
+ "agent",
28
+ "typescript",
29
+ "vercel-ai-sdk",
30
+ "nextjs",
31
+ "key-value",
32
+ "storage",
33
+ "context"
34
+ ],
35
+ "author": "MindCache Team",
36
+ "license": "MIT",
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/your-username/mindcache.git"
40
+ },
41
+ "bugs": {
42
+ "url": "https://github.com/your-username/mindcache/issues"
43
+ },
44
+ "homepage": "https://github.com/your-username/mindcache#readme",
45
+ "devDependencies": {
46
+ "@types/jest": "^29.5.0",
47
+ "@types/node": "^20.0.0",
48
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
49
+ "@typescript-eslint/parser": "^6.0.0",
50
+ "audit-ci": "^7.0.0",
51
+ "eslint": "^8.0.0",
52
+ "eslint-config-standard": "^17.1.0",
53
+ "jest": "^29.5.0",
54
+ "rimraf": "^5.0.0",
55
+ "ts-jest": "^29.1.0",
56
+ "typescript": "^5.0.0"
57
+ },
58
+ "peerDependencies": {
59
+ "ai": "^3.0.0"
60
+ },
61
+ "peerDependenciesMeta": {
62
+ "ai": {
63
+ "optional": true
64
+ }
65
+ },
66
+ "engines": {
67
+ "node": ">=18.0.0"
68
+ },
69
+ "publishConfig": {
70
+ "access": "public"
71
+ }
72
+ }