mindcache 0.1.0 → 0.2.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/lib/index.d.ts CHANGED
@@ -1,12 +1,28 @@
1
+ interface KeyAttributes {
2
+ readonly: boolean;
3
+ visible: boolean;
4
+ default: string;
5
+ hardcoded: boolean;
6
+ template: boolean;
7
+ }
8
+ interface STMEntry {
9
+ value: any;
10
+ attributes: KeyAttributes;
11
+ }
1
12
  type STM = {
2
- [key: string]: any;
13
+ [key: string]: STMEntry;
3
14
  };
4
15
  type Listener = () => void;
5
16
  declare class MindCache {
6
17
  private stm;
7
18
  private listeners;
8
19
  private globalListeners;
20
+ /** @deprecated Use get_value instead */
9
21
  get(key: string): any;
22
+ get_value(key: string, _processingStack?: Set<string>): any;
23
+ get_attributes(key: string): KeyAttributes | undefined;
24
+ set_value(key: string, value: any, attributes?: Partial<KeyAttributes>): void;
25
+ set_attributes(key: string, attributes: Partial<KeyAttributes>): boolean;
10
26
  set(key: string, value: any): void;
11
27
  has(key: string): boolean;
12
28
  delete(key: string): boolean;
@@ -15,17 +31,24 @@ declare class MindCache {
15
31
  values(): any[];
16
32
  entries(): [string, any][];
17
33
  size(): number;
18
- getAll(): STM;
19
- update(newSTM: STM): void;
34
+ getAll(): Record<string, any>;
35
+ update(newValues: Record<string, any>): void;
20
36
  subscribe(key: string, listener: Listener): void;
21
37
  unsubscribe(key: string, listener: Listener): void;
22
38
  subscribeToAll(listener: Listener): void;
23
39
  unsubscribeFromAll(listener: Listener): void;
24
40
  private notifyGlobalListeners;
25
- injectSTM(template: string): string;
41
+ injectSTM(template: string, _processingStack?: Set<string>): string;
26
42
  getSTM(): string;
43
+ getSTMObject(): Record<string, any>;
44
+ toJSON(): string;
45
+ fromJSON(jsonString: string): void;
46
+ serialize(): Record<string, STMEntry>;
47
+ deserialize(data: Record<string, STMEntry>): void;
48
+ get_system_prompt(): string;
49
+ get_aisdk_tools(): Record<string, any>;
27
50
  }
28
51
  export declare const mindcache: MindCache;
29
52
  export { MindCache };
30
- export type { STM, Listener };
53
+ export type { STM, STMEntry, KeyAttributes, Listener };
31
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,UAAU,aAAa;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,QAAQ;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,KAAK,GAAG,GAAG;IACT,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CACzB,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,wCAAwC;IACxC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAKrB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG;IAgC3D,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAgBtD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAsC7E,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO;IA6BxE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAkB5B,KAAK,IAAI,IAAI;IAiCb,IAAI,IAAI,MAAM,EAAE;IAKhB,MAAM,IAAI,GAAG,EAAE;IAWf,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;IAa1B,IAAI,IAAI,MAAM;IAKd,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAiB7B,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IA4B5C,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,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM;IAgDnE,MAAM,IAAI,MAAM;IAsBhB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAKnC,MAAM,IAAI,MAAM;IAKhB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAWlC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IAiBrC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI;IAoBjD,iBAAiB,IAAI,MAAM;IAgC3B,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAoCvC;AAGD,eAAO,MAAM,SAAS,WAAkB,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,CAAC;AAGrB,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC"}
package/lib/index.js CHANGED
@@ -1,14 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MindCache = exports.mindcache = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ const zod_1 = require("zod");
4
6
  class MindCache {
5
7
  constructor() {
6
8
  this.stm = {};
7
9
  this.listeners = {};
8
10
  this.globalListeners = [];
9
11
  }
10
- // Get a value from the STM
12
+ // Get a value from the STM (deprecated - use get_value instead)
13
+ /** @deprecated Use get_value instead */
11
14
  get(key) {
15
+ return this.get_value(key);
16
+ }
17
+ // Get a value from the STM with template processing if enabled
18
+ get_value(key, _processingStack) {
12
19
  if (key === '$date') {
13
20
  const today = new Date();
14
21
  return today.toISOString().split('T')[0];
@@ -17,17 +24,96 @@ class MindCache {
17
24
  const now = new Date();
18
25
  return now.toTimeString().split(' ')[0];
19
26
  }
20
- return this.stm[key];
27
+ const entry = this.stm[key];
28
+ if (!entry) {
29
+ return undefined;
30
+ }
31
+ // If template is enabled, process the value through injectSTM
32
+ if (entry.attributes.template) {
33
+ // Prevent circular references
34
+ const processingStack = _processingStack || new Set();
35
+ if (processingStack.has(key)) {
36
+ return entry.value; // Return raw value to break circular reference
37
+ }
38
+ processingStack.add(key);
39
+ const result = this.injectSTM(entry.value, processingStack);
40
+ processingStack.delete(key);
41
+ return result;
42
+ }
43
+ return entry.value;
21
44
  }
22
- // Set a value in the STM
23
- set(key, value) {
24
- //console.log('Setting STM:', key, value);
25
- this.stm[key] = value;
45
+ // Get attributes for a key
46
+ get_attributes(key) {
47
+ if (key === '$date' || key === '$time') {
48
+ return {
49
+ readonly: true,
50
+ visible: true,
51
+ default: '',
52
+ hardcoded: true,
53
+ template: false
54
+ };
55
+ }
56
+ const entry = this.stm[key];
57
+ return entry ? entry.attributes : undefined;
58
+ }
59
+ // Set a value in the STM with default attributes
60
+ set_value(key, value, attributes) {
61
+ // Don't allow setting hardcoded system keys
62
+ if (key === '$date' || key === '$time') {
63
+ return;
64
+ }
65
+ const defaultAttributes = {
66
+ readonly: false,
67
+ visible: true,
68
+ default: '',
69
+ hardcoded: false,
70
+ template: false
71
+ };
72
+ // If key exists, preserve existing attributes unless explicitly overridden
73
+ const existingEntry = this.stm[key];
74
+ const baseAttributes = existingEntry ? existingEntry.attributes : defaultAttributes;
75
+ const finalAttributes = attributes ? { ...baseAttributes, ...attributes } : baseAttributes;
76
+ // If hardcoded is true, force readonly to true and template to false
77
+ if (finalAttributes.hardcoded) {
78
+ finalAttributes.readonly = true;
79
+ finalAttributes.template = false;
80
+ }
81
+ this.stm[key] = {
82
+ value,
83
+ attributes: finalAttributes
84
+ };
26
85
  if (this.listeners[key]) {
27
86
  this.listeners[key].forEach(listener => listener());
28
87
  }
29
88
  this.notifyGlobalListeners();
30
89
  }
90
+ // Set attributes for an existing key
91
+ set_attributes(key, attributes) {
92
+ // Don't allow setting attributes for hardcoded system keys
93
+ if (key === '$date' || key === '$time') {
94
+ return false;
95
+ }
96
+ const entry = this.stm[key];
97
+ if (!entry) {
98
+ return false;
99
+ }
100
+ // Create a copy of attributes, excluding the hardcoded property to prevent modification
101
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
102
+ const { hardcoded, ...allowedAttributes } = attributes;
103
+ // Apply the allowed attributes
104
+ entry.attributes = { ...entry.attributes, ...allowedAttributes };
105
+ // If this is a hardcoded key, ensure readonly is always true and template is always false
106
+ if (entry.attributes.hardcoded) {
107
+ entry.attributes.readonly = true;
108
+ entry.attributes.template = false;
109
+ }
110
+ this.notifyGlobalListeners();
111
+ return true;
112
+ }
113
+ // Set a value in the STM (uses default attributes)
114
+ set(key, value) {
115
+ this.set_value(key, value);
116
+ }
31
117
  // Check if a key exists in the STM
32
118
  has(key) {
33
119
  if (key === '$date' || key === '$time') {
@@ -37,6 +123,9 @@ class MindCache {
37
123
  }
38
124
  // Delete a key-value pair from the STM
39
125
  delete(key) {
126
+ if (key === '$date' || key === '$time') {
127
+ return false; // Can't delete hardcoded system keys
128
+ }
40
129
  if (!(key in this.stm)) {
41
130
  return false;
42
131
  }
@@ -49,9 +138,28 @@ class MindCache {
49
138
  }
50
139
  return deleted;
51
140
  }
52
- // Clear the entire STM
141
+ // Clear the entire STM and restore default values
53
142
  clear() {
143
+ // Store keys that have default values
144
+ const keysWithDefaults = [];
145
+ Object.entries(this.stm).forEach(([key, entry]) => {
146
+ if (entry.attributes.default !== '') {
147
+ keysWithDefaults.push({
148
+ key,
149
+ defaultValue: entry.attributes.default,
150
+ attributes: entry.attributes
151
+ });
152
+ }
153
+ });
154
+ // Clear the STM
54
155
  this.stm = {};
156
+ // Restore default values
157
+ keysWithDefaults.forEach(({ key, defaultValue, attributes }) => {
158
+ this.stm[key] = {
159
+ value: defaultValue,
160
+ attributes
161
+ };
162
+ });
55
163
  this.notifyGlobalListeners();
56
164
  }
57
165
  // Get all keys in the STM
@@ -61,8 +169,9 @@ class MindCache {
61
169
  // Get all values in the STM
62
170
  values() {
63
171
  const now = new Date();
172
+ const stmValues = Object.values(this.stm).map(entry => entry.value);
64
173
  return [
65
- ...Object.values(this.stm),
174
+ ...stmValues,
66
175
  now.toISOString().split('T')[0],
67
176
  now.toTimeString().split(' ')[0]
68
177
  ];
@@ -70,8 +179,9 @@ class MindCache {
70
179
  // Get all entries (key-value pairs) in the STM
71
180
  entries() {
72
181
  const now = new Date();
182
+ const stmEntries = Object.entries(this.stm).map(([key, entry]) => [key, entry.value]);
73
183
  return [
74
- ...Object.entries(this.stm),
184
+ ...stmEntries,
75
185
  ['$date', now.toISOString().split('T')[0]],
76
186
  ['$time', now.toTimeString().split(' ')[0]]
77
187
  ];
@@ -80,18 +190,42 @@ class MindCache {
80
190
  size() {
81
191
  return Object.keys(this.stm).length + 2; // +2 for $date and $time
82
192
  }
83
- // Get a copy of the entire STM object
193
+ // Get a copy of the entire STM object (returns values only for backward compatibility)
84
194
  getAll() {
85
195
  const now = new Date();
86
- return {
87
- ...this.stm,
88
- '$date': now.toISOString().split('T')[0],
89
- '$time': now.toTimeString().split(' ')[0]
90
- };
196
+ const result = {};
197
+ // Add regular STM values
198
+ Object.entries(this.stm).forEach(([key, entry]) => {
199
+ result[key] = entry.value;
200
+ });
201
+ // Add system values
202
+ result['$date'] = now.toISOString().split('T')[0];
203
+ result['$time'] = now.toTimeString().split(' ')[0];
204
+ return result;
91
205
  }
92
- // Update the STM with multiple key-value pairs
93
- update(newSTM) {
94
- this.stm = { ...this.stm, ...newSTM };
206
+ // Update the STM with multiple key-value pairs (uses default attributes)
207
+ update(newValues) {
208
+ Object.entries(newValues).forEach(([key, value]) => {
209
+ if (key !== '$date' && key !== '$time') {
210
+ // Set value without triggering individual notifications
211
+ const defaultAttributes = {
212
+ readonly: false,
213
+ visible: true,
214
+ default: '',
215
+ hardcoded: false,
216
+ template: false
217
+ };
218
+ this.stm[key] = {
219
+ value,
220
+ attributes: defaultAttributes
221
+ };
222
+ // Trigger key-specific listeners
223
+ if (this.listeners[key]) {
224
+ this.listeners[key].forEach(listener => listener());
225
+ }
226
+ }
227
+ });
228
+ // Trigger global listeners only once at the end
95
229
  this.notifyGlobalListeners();
96
230
  }
97
231
  // Subscribe to changes for a specific key
@@ -119,35 +253,170 @@ class MindCache {
119
253
  notifyGlobalListeners() {
120
254
  this.globalListeners.forEach(listener => listener());
121
255
  }
122
- // Replace placeholders in a string with STM values
123
- injectSTM(template) {
256
+ // Replace placeholders in a string with STM values (only uses visible keys for public injectSTM calls)
257
+ injectSTM(template, _processingStack) {
258
+ // Handle null/undefined templates
259
+ if (template === null || template === undefined) {
260
+ return String(template);
261
+ }
262
+ // Convert to string if not already
263
+ const templateStr = String(template);
124
264
  // find all the keys in the template
125
- const keys = template.match(/\{([$\w]+)\}/g);
265
+ const keys = templateStr.match(/\{([$\w]+)\}/g);
126
266
  if (!keys) {
127
- return template;
267
+ return templateStr;
128
268
  }
129
269
  // Extract the actual key names without the curly braces
130
270
  const cleanKeys = keys.map(key => key.replace(/[{}]/g, ''));
131
271
  // Build inputValues with the clean keys
132
- const inputValues = cleanKeys.reduce((acc, key) => ({
133
- ...acc,
134
- [key]: this.get(key)
135
- }), {});
272
+ const inputValues = cleanKeys.reduce((acc, key) => {
273
+ // Always allow system keys
274
+ if (key === '$date' || key === '$time') {
275
+ return {
276
+ ...acc,
277
+ [key]: this.get_value(key, _processingStack)
278
+ };
279
+ }
280
+ // If this is internal processing (from template), allow all keys
281
+ // If this is external call, only allow visible keys
282
+ const attributes = this.get_attributes(key);
283
+ if (_processingStack || (attributes && attributes.visible)) {
284
+ return {
285
+ ...acc,
286
+ [key]: this.get_value(key, _processingStack)
287
+ };
288
+ }
289
+ // If key doesn't exist or is not visible (for external calls), don't include it
290
+ return acc;
291
+ }, {});
136
292
  // Replace the placeholders with actual values
137
- return template.replace(/\{([$\w]+)\}/g, (match, key) => inputValues[key] || '');
293
+ return templateStr.replace(/\{([$\w]+)\}/g, (match, key) => inputValues[key] || '');
138
294
  }
139
- // Get a formatted string of all STM key-value pairs
295
+ // Get a formatted string of all visible STM key-value pairs
140
296
  getSTM() {
141
297
  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)
298
+ const entries = [];
299
+ // Add visible regular STM entries
300
+ Object.entries(this.stm).forEach(([key, entry]) => {
301
+ if (entry.attributes.visible) {
302
+ // Use get_value to handle template processing
303
+ entries.push([key, this.get_value(key)]);
304
+ }
305
+ });
306
+ // Add system keys (always visible)
307
+ entries.push(['$date', now.toISOString().split('T')[0]]);
308
+ entries.push(['$time', now.toTimeString().split(' ')[0]]);
309
+ return entries
148
310
  .map(([key, value]) => `${key}: ${value}`)
149
311
  .join(', ');
150
312
  }
313
+ // Get STM as a proper object (alias for getAll for clarity)
314
+ getSTMObject() {
315
+ return this.getAll();
316
+ }
317
+ // Serialize STM to JSON string (complete state)
318
+ toJSON() {
319
+ return JSON.stringify(this.serialize());
320
+ }
321
+ // Deserialize from JSON string and update STM (complete state)
322
+ fromJSON(jsonString) {
323
+ try {
324
+ const data = JSON.parse(jsonString);
325
+ this.deserialize(data);
326
+ }
327
+ catch (error) {
328
+ // eslint-disable-next-line no-console
329
+ console.error('MindCache: Failed to deserialize JSON:', error);
330
+ }
331
+ }
332
+ // Serialize complete state (values + attributes, excluding hardcoded keys)
333
+ serialize() {
334
+ const result = {};
335
+ Object.entries(this.stm).forEach(([key, entry]) => {
336
+ // Only serialize non-hardcoded entries
337
+ if (!entry.attributes.hardcoded) {
338
+ result[key] = {
339
+ value: entry.value,
340
+ attributes: { ...entry.attributes }
341
+ };
342
+ }
343
+ });
344
+ return result;
345
+ }
346
+ // Deserialize complete state (values + attributes)
347
+ deserialize(data) {
348
+ if (typeof data === 'object' && data !== null) {
349
+ // Clear existing STM (preserves hardcoded keys via clear())
350
+ this.clear();
351
+ // Restore entries with their complete state
352
+ Object.entries(data).forEach(([key, entry]) => {
353
+ if (entry && typeof entry === 'object' && 'value' in entry && 'attributes' in entry) {
354
+ this.stm[key] = {
355
+ value: entry.value,
356
+ attributes: { ...entry.attributes }
357
+ };
358
+ }
359
+ });
360
+ this.notifyGlobalListeners();
361
+ }
362
+ }
363
+ // Generate system prompt from all visible STM keys
364
+ get_system_prompt() {
365
+ const now = new Date();
366
+ const promptLines = [];
367
+ // Add visible regular STM entries
368
+ Object.entries(this.stm).forEach(([key, entry]) => {
369
+ if (entry.attributes.visible) {
370
+ const value = this.get_value(key);
371
+ const formattedValue = typeof value === 'object' && value !== null
372
+ ? JSON.stringify(value)
373
+ : String(value);
374
+ if (entry.attributes.readonly) {
375
+ // Readonly keys: just show the key-value pair
376
+ promptLines.push(`${key}: ${formattedValue}`);
377
+ }
378
+ else {
379
+ // Writable keys: show value and mention the tool
380
+ promptLines.push(`${key}: ${formattedValue}. You can update ${key} by using the write_${key} tool`);
381
+ }
382
+ }
383
+ });
384
+ // Add system keys (always visible and readonly)
385
+ promptLines.push(`$date: ${now.toISOString().split('T')[0]}`);
386
+ promptLines.push(`$time: ${now.toTimeString().split(' ')[0]}`);
387
+ return promptLines.join('\n');
388
+ }
389
+ // Generate tools for Vercel AI SDK to write STM values (excludes readonly keys)
390
+ get_aisdk_tools() {
391
+ const tools = {};
392
+ // Get all current keys (excluding built-in $date and $time and readonly keys)
393
+ const writableKeys = Object.entries(this.stm)
394
+ .filter(([, entry]) => !entry.attributes.readonly)
395
+ .map(([key]) => key);
396
+ // Create a write tool for each writable key
397
+ writableKeys.forEach(key => {
398
+ const toolName = `write_${key}`;
399
+ tools[toolName] = {
400
+ description: `Write a value to the STM key: ${key}`,
401
+ inputSchema: zod_1.z.object({
402
+ value: zod_1.z.string().describe(`The value to write to ${key}`)
403
+ }),
404
+ execute: async (input) => {
405
+ this.set_value(key, input.value);
406
+ return {
407
+ result: `Successfully wrote "${input.value}" to ${key}`,
408
+ key: key,
409
+ value: input.value
410
+ };
411
+ }
412
+ };
413
+ });
414
+ // If no writable keys exist yet, return an empty object
415
+ if (writableKeys.length === 0) {
416
+ return {};
417
+ }
418
+ return tools;
419
+ }
151
420
  }
152
421
  exports.MindCache = MindCache;
153
422
  // Create and export a single instance of MindCache
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindcache",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "A TypeScript library for managing short-term memory in AI agents through a simple, LLM-friendly key-value repository",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -36,7 +36,7 @@
36
36
  "license": "MIT",
37
37
  "repository": {
38
38
  "type": "git",
39
- "url": "https://github.com/your-username/mindcache.git"
39
+ "url": "git+https://github.com/dh7/mindcache.git"
40
40
  },
41
41
  "bugs": {
42
42
  "url": "https://github.com/your-username/mindcache/issues"
@@ -45,8 +45,8 @@
45
45
  "devDependencies": {
46
46
  "@types/jest": "^29.5.0",
47
47
  "@types/node": "^20.0.0",
48
- "@typescript-eslint/eslint-plugin": "^6.0.0",
49
- "@typescript-eslint/parser": "^6.0.0",
48
+ "@typescript-eslint/eslint-plugin": "^8.44.1",
49
+ "@typescript-eslint/parser": "^8.44.1",
50
50
  "audit-ci": "^7.0.0",
51
51
  "eslint": "^8.0.0",
52
52
  "eslint-config-standard": "^17.1.0",
@@ -68,5 +68,8 @@
68
68
  },
69
69
  "publishConfig": {
70
70
  "access": "public"
71
+ },
72
+ "dependencies": {
73
+ "zod": "^4.1.9"
71
74
  }
72
75
  }