mindcache 0.2.0 → 0.4.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,9 +1,11 @@
1
1
  interface KeyAttributes {
2
2
  readonly: boolean;
3
3
  visible: boolean;
4
- default: string;
5
4
  hardcoded: boolean;
6
5
  template: boolean;
6
+ type: 'text' | 'image' | 'file' | 'json';
7
+ contentType?: string;
8
+ tags?: string[];
7
9
  }
8
10
  interface STMEntry {
9
11
  value: any;
@@ -17,6 +19,9 @@ declare class MindCache {
17
19
  private stm;
18
20
  private listeners;
19
21
  private globalListeners;
22
+ private encodeFileToBase64;
23
+ private createDataUrl;
24
+ private validateContentType;
20
25
  /** @deprecated Use get_value instead */
21
26
  get(key: string): any;
22
27
  get_value(key: string, _processingStack?: Set<string>): any;
@@ -24,6 +29,11 @@ declare class MindCache {
24
29
  set_value(key: string, value: any, attributes?: Partial<KeyAttributes>): void;
25
30
  set_attributes(key: string, attributes: Partial<KeyAttributes>): boolean;
26
31
  set(key: string, value: any): void;
32
+ set_file(key: string, file: File, attributes?: Partial<KeyAttributes>): Promise<void>;
33
+ set_base64(key: string, base64Data: string, contentType: string, type?: 'image' | 'file', attributes?: Partial<KeyAttributes>): void;
34
+ add_image(key: string, base64Data: string, contentType?: string, attributes?: Partial<KeyAttributes>): void;
35
+ get_data_url(key: string): string | undefined;
36
+ get_base64(key: string): string | undefined;
27
37
  has(key: string): boolean;
28
38
  delete(key: string): boolean;
29
39
  clear(): void;
@@ -41,12 +51,38 @@ declare class MindCache {
41
51
  injectSTM(template: string, _processingStack?: Set<string>): string;
42
52
  getSTM(): string;
43
53
  getSTMObject(): Record<string, any>;
54
+ getSTMForAPI(): Array<{
55
+ key: string;
56
+ value: any;
57
+ type: string;
58
+ contentType?: string;
59
+ }>;
60
+ getVisibleImages(): Array<{
61
+ type: 'file';
62
+ mediaType: string;
63
+ url: string;
64
+ filename?: string;
65
+ }>;
44
66
  toJSON(): string;
45
67
  fromJSON(jsonString: string): void;
46
68
  serialize(): Record<string, STMEntry>;
47
69
  deserialize(data: Record<string, STMEntry>): void;
48
70
  get_system_prompt(): string;
71
+ private findKeyFromToolName;
49
72
  get_aisdk_tools(): Record<string, any>;
73
+ executeToolCall(toolName: string, value: any): {
74
+ result: string;
75
+ key: string;
76
+ value: any;
77
+ } | null;
78
+ addTag(key: string, tag: string): boolean;
79
+ removeTag(key: string, tag: string): boolean;
80
+ getTags(key: string): string[];
81
+ getAllTags(): string[];
82
+ hasTag(key: string, tag: string): boolean;
83
+ getTagged(tag: string): string;
84
+ toMarkdown(): string;
85
+ fromMarkdown(markdown: string): void;
50
86
  }
51
87
  export declare const mindcache: MindCache;
52
88
  export { MindCache };
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -9,6 +9,47 @@ class MindCache {
9
9
  this.listeners = {};
10
10
  this.globalListeners = [];
11
11
  }
12
+ // Helper method to encode file to base64
13
+ encodeFileToBase64(file) {
14
+ return new Promise((resolve, reject) => {
15
+ // Check if we're in a browser environment
16
+ if (typeof FileReader !== 'undefined') {
17
+ const reader = new FileReader();
18
+ reader.onload = () => {
19
+ const result = reader.result;
20
+ // Remove data URL prefix to get just the base64 data
21
+ const base64Data = result.split(',')[1];
22
+ resolve(base64Data);
23
+ };
24
+ reader.onerror = reject;
25
+ reader.readAsDataURL(file);
26
+ }
27
+ else {
28
+ // Node.js environment - reject with helpful error
29
+ reject(new Error('FileReader not available in Node.js environment. Use set_base64() method instead.'));
30
+ }
31
+ });
32
+ }
33
+ // Helper method to create data URL from base64 and content type
34
+ createDataUrl(base64Data, contentType) {
35
+ return `data:${contentType};base64,${base64Data}`;
36
+ }
37
+ // Helper method to validate content type for different STM types
38
+ validateContentType(type, contentType) {
39
+ if (type === 'text' || type === 'json') {
40
+ return true; // No content type validation needed for text/json
41
+ }
42
+ if (!contentType) {
43
+ return false; // Files and images require content type
44
+ }
45
+ if (type === 'image') {
46
+ return contentType.startsWith('image/');
47
+ }
48
+ if (type === 'file') {
49
+ return true; // Any content type is valid for generic files
50
+ }
51
+ return false;
52
+ }
12
53
  // Get a value from the STM (deprecated - use get_value instead)
13
54
  /** @deprecated Use get_value instead */
14
55
  get(key) {
@@ -48,9 +89,10 @@ class MindCache {
48
89
  return {
49
90
  readonly: true,
50
91
  visible: true,
51
- default: '',
52
92
  hardcoded: true,
53
- template: false
93
+ template: false,
94
+ type: 'text',
95
+ tags: []
54
96
  };
55
97
  }
56
98
  const entry = this.stm[key];
@@ -65,9 +107,10 @@ class MindCache {
65
107
  const defaultAttributes = {
66
108
  readonly: false,
67
109
  visible: true,
68
- default: '',
69
110
  hardcoded: false,
70
- template: false
111
+ template: false,
112
+ type: 'text',
113
+ tags: []
71
114
  };
72
115
  // If key exists, preserve existing attributes unless explicitly overridden
73
116
  const existingEntry = this.stm[key];
@@ -114,6 +157,60 @@ class MindCache {
114
157
  set(key, value) {
115
158
  this.set_value(key, value);
116
159
  }
160
+ // Set a file value in the STM with base64 encoding
161
+ async set_file(key, file, attributes) {
162
+ const base64Data = await this.encodeFileToBase64(file);
163
+ const contentType = file.type;
164
+ const fileAttributes = {
165
+ type: contentType.startsWith('image/') ? 'image' : 'file',
166
+ contentType,
167
+ ...attributes
168
+ };
169
+ this.set_value(key, base64Data, fileAttributes);
170
+ }
171
+ // Set a base64 encoded value with content type
172
+ set_base64(key, base64Data, contentType, type = 'file', attributes) {
173
+ if (!this.validateContentType(type, contentType)) {
174
+ throw new Error(`Invalid content type ${contentType} for type ${type}`);
175
+ }
176
+ const fileAttributes = {
177
+ type,
178
+ contentType,
179
+ ...attributes
180
+ };
181
+ this.set_value(key, base64Data, fileAttributes);
182
+ }
183
+ // Convenience method to add an image to STM with proper attributes
184
+ add_image(key, base64Data, contentType = 'image/jpeg', attributes) {
185
+ if (!contentType.startsWith('image/')) {
186
+ throw new Error(`Invalid image content type: ${contentType}. Must start with 'image/'`);
187
+ }
188
+ this.set_base64(key, base64Data, contentType, 'image', attributes);
189
+ // Explicitly ensure the type is set to 'image' after setting the value
190
+ this.set_attributes(key, {
191
+ type: 'image',
192
+ contentType: contentType
193
+ });
194
+ }
195
+ // Get a value as data URL (for files/images)
196
+ get_data_url(key) {
197
+ const entry = this.stm[key];
198
+ if (!entry || (entry.attributes.type !== 'image' && entry.attributes.type !== 'file')) {
199
+ return undefined;
200
+ }
201
+ if (!entry.attributes.contentType) {
202
+ return undefined;
203
+ }
204
+ return this.createDataUrl(entry.value, entry.attributes.contentType);
205
+ }
206
+ // Get raw base64 data
207
+ get_base64(key) {
208
+ const entry = this.stm[key];
209
+ if (!entry || (entry.attributes.type !== 'image' && entry.attributes.type !== 'file')) {
210
+ return undefined;
211
+ }
212
+ return entry.value;
213
+ }
117
214
  // Check if a key exists in the STM
118
215
  has(key) {
119
216
  if (key === '$date' || key === '$time') {
@@ -138,28 +235,10 @@ class MindCache {
138
235
  }
139
236
  return deleted;
140
237
  }
141
- // Clear the entire STM and restore default values
238
+ // Clear the entire STM
142
239
  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
240
  // Clear the STM
155
241
  this.stm = {};
156
- // Restore default values
157
- keysWithDefaults.forEach(({ key, defaultValue, attributes }) => {
158
- this.stm[key] = {
159
- value: defaultValue,
160
- attributes
161
- };
162
- });
163
242
  this.notifyGlobalListeners();
164
243
  }
165
244
  // Get all keys in the STM
@@ -211,9 +290,10 @@ class MindCache {
211
290
  const defaultAttributes = {
212
291
  readonly: false,
213
292
  visible: true,
214
- default: '',
215
293
  hardcoded: false,
216
- template: false
294
+ template: false,
295
+ type: 'text',
296
+ tags: []
217
297
  };
218
298
  this.stm[key] = {
219
299
  value,
@@ -254,6 +334,7 @@ class MindCache {
254
334
  this.globalListeners.forEach(listener => listener());
255
335
  }
256
336
  // Replace placeholders in a string with STM values (only uses visible keys for public injectSTM calls)
337
+ // Note: Image and file type placeholders are NOT replaced - they remain as {{key}} for tools to process
257
338
  injectSTM(template, _processingStack) {
258
339
  // Handle null/undefined templates
259
340
  if (template === null || template === undefined) {
@@ -261,12 +342,12 @@ class MindCache {
261
342
  }
262
343
  // Convert to string if not already
263
344
  const templateStr = String(template);
264
- // find all the keys in the template
265
- const keys = templateStr.match(/\{([$\w]+)\}/g);
345
+ // find all the keys in the template using double brackets
346
+ const keys = templateStr.match(/\{\{([$\w]+)\}\}/g);
266
347
  if (!keys) {
267
348
  return templateStr;
268
349
  }
269
- // Extract the actual key names without the curly braces
350
+ // Extract the actual key names without the double curly braces
270
351
  const cleanKeys = keys.map(key => key.replace(/[{}]/g, ''));
271
352
  // Build inputValues with the clean keys
272
353
  const inputValues = cleanKeys.reduce((acc, key) => {
@@ -281,6 +362,10 @@ class MindCache {
281
362
  // If this is external call, only allow visible keys
282
363
  const attributes = this.get_attributes(key);
283
364
  if (_processingStack || (attributes && attributes.visible)) {
365
+ // Skip replacement for image and file types - keep the placeholder
366
+ if (attributes && (attributes.type === 'image' || attributes.type === 'file')) {
367
+ return acc; // Don't add to inputValues, placeholder will remain
368
+ }
284
369
  return {
285
370
  ...acc,
286
371
  [key]: this.get_value(key, _processingStack)
@@ -289,8 +374,21 @@ class MindCache {
289
374
  // If key doesn't exist or is not visible (for external calls), don't include it
290
375
  return acc;
291
376
  }, {});
292
- // Replace the placeholders with actual values
293
- return templateStr.replace(/\{([$\w]+)\}/g, (match, key) => inputValues[key] || '');
377
+ // Replace the placeholders with actual values using double brackets
378
+ // Image/file placeholders will remain as {{key}} since they're not in inputValues
379
+ return templateStr.replace(/\{\{([$\w]+)\}\}/g, (match, key) => {
380
+ // If value is in inputValues, use it
381
+ if (inputValues[key] !== undefined) {
382
+ return inputValues[key];
383
+ }
384
+ // Check if this is an image/file placeholder that should be preserved
385
+ const attributes = this.get_attributes(key);
386
+ if (attributes && (attributes.type === 'image' || attributes.type === 'file')) {
387
+ return match; // Keep the placeholder for images/files
388
+ }
389
+ // For missing or invisible keys, replace with empty string (original behavior)
390
+ return '';
391
+ });
294
392
  }
295
393
  // Get a formatted string of all visible STM key-value pairs
296
394
  getSTM() {
@@ -314,6 +412,52 @@ class MindCache {
314
412
  getSTMObject() {
315
413
  return this.getAll();
316
414
  }
415
+ // Get STM data formatted for API calls (multipart form data style)
416
+ getSTMForAPI() {
417
+ const now = new Date();
418
+ const apiData = [];
419
+ // Add visible regular STM entries
420
+ Object.entries(this.stm).forEach(([key, entry]) => {
421
+ if (entry.attributes.visible) {
422
+ const processedValue = entry.attributes.template ? this.get_value(key) : entry.value;
423
+ apiData.push({
424
+ key,
425
+ value: processedValue,
426
+ type: entry.attributes.type,
427
+ contentType: entry.attributes.contentType
428
+ });
429
+ }
430
+ });
431
+ // Add system keys (always visible)
432
+ apiData.push({
433
+ key: '$date',
434
+ value: now.toISOString().split('T')[0],
435
+ type: 'text'
436
+ });
437
+ apiData.push({
438
+ key: '$time',
439
+ value: now.toTimeString().split(' ')[0],
440
+ type: 'text'
441
+ });
442
+ return apiData;
443
+ }
444
+ // Get visible images formatted for AI SDK UIMessage file parts
445
+ getVisibleImages() {
446
+ const imageParts = [];
447
+ Object.entries(this.stm).forEach(([key, entry]) => {
448
+ if (entry.attributes.visible && entry.attributes.type === 'image' && entry.attributes.contentType) {
449
+ // Create data URL from base64 data
450
+ const dataUrl = this.createDataUrl(entry.value, entry.attributes.contentType);
451
+ imageParts.push({
452
+ type: 'file',
453
+ mediaType: entry.attributes.contentType,
454
+ url: dataUrl,
455
+ filename: key // Use the STM key as filename
456
+ });
457
+ }
458
+ });
459
+ return imageParts;
460
+ }
317
461
  // Serialize STM to JSON string (complete state)
318
462
  toJSON() {
319
463
  return JSON.stringify(this.serialize());
@@ -353,7 +497,10 @@ class MindCache {
353
497
  if (entry && typeof entry === 'object' && 'value' in entry && 'attributes' in entry) {
354
498
  this.stm[key] = {
355
499
  value: entry.value,
356
- attributes: { ...entry.attributes }
500
+ attributes: {
501
+ ...entry.attributes,
502
+ tags: entry.attributes.tags || [] // Ensure tags array exists
503
+ }
357
504
  };
358
505
  }
359
506
  });
@@ -367,6 +514,21 @@ class MindCache {
367
514
  // Add visible regular STM entries
368
515
  Object.entries(this.stm).forEach(([key, entry]) => {
369
516
  if (entry.attributes.visible) {
517
+ // Skip images and large files in system prompt to save context
518
+ if (entry.attributes.type === 'image') {
519
+ promptLines.push(`image ${key} available`);
520
+ return;
521
+ }
522
+ if (entry.attributes.type === 'file') {
523
+ if (entry.attributes.readonly) {
524
+ promptLines.push(`${key}: [${entry.attributes.type.toUpperCase()}] - ${entry.attributes.contentType || 'unknown format'}`);
525
+ }
526
+ else {
527
+ const sanitizedKey = key.replace(/[^a-zA-Z0-9_-]/g, '_');
528
+ promptLines.push(`${key}: [${entry.attributes.type.toUpperCase()}] - ${entry.attributes.contentType || 'unknown format'}. You can update this ${entry.attributes.type} using the write_${sanitizedKey} tool.`);
529
+ }
530
+ return;
531
+ }
370
532
  const value = this.get_value(key);
371
533
  const formattedValue = typeof value === 'object' && value !== null
372
534
  ? JSON.stringify(value)
@@ -376,8 +538,12 @@ class MindCache {
376
538
  promptLines.push(`${key}: ${formattedValue}`);
377
539
  }
378
540
  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`);
541
+ // Writable keys: show value and mention the tool (with sanitized tool name)
542
+ const sanitizedKey = key.replace(/[^a-zA-Z0-9_-]/g, '_');
543
+ const toolInstruction = `You can rewrite "${key}" by using the write_${sanitizedKey} tool. ` +
544
+ 'This tool DOES NOT append — start your response with the old value ' +
545
+ `(${formattedValue})`;
546
+ promptLines.push(`${key}: ${formattedValue}. ${toolInstruction}`);
381
547
  }
382
548
  }
383
549
  });
@@ -386,6 +552,16 @@ class MindCache {
386
552
  promptLines.push(`$time: ${now.toTimeString().split(' ')[0]}`);
387
553
  return promptLines.join('\n');
388
554
  }
555
+ // Helper method to find original key from sanitized tool name
556
+ findKeyFromToolName(toolName) {
557
+ if (!toolName.startsWith('write_')) {
558
+ return undefined;
559
+ }
560
+ const sanitizedKey = toolName.replace('write_', '');
561
+ // Find the original key by checking all keys and their sanitized versions
562
+ const allKeys = Object.keys(this.stm);
563
+ return allKeys.find(k => k.replace(/[^a-zA-Z0-9_-]/g, '_') === sanitizedKey);
564
+ }
389
565
  // Generate tools for Vercel AI SDK to write STM values (excludes readonly keys)
390
566
  get_aisdk_tools() {
391
567
  const tools = {};
@@ -395,18 +571,78 @@ class MindCache {
395
571
  .map(([key]) => key);
396
572
  // Create a write tool for each writable key
397
573
  writableKeys.forEach(key => {
398
- const toolName = `write_${key}`;
574
+ // Sanitize tool name to match OpenAI's pattern: ^[a-zA-Z0-9_-]+$
575
+ const sanitizedKey = key.replace(/[^a-zA-Z0-9_-]/g, '_');
576
+ const toolName = `write_${sanitizedKey}`;
577
+ const entry = this.stm[key];
578
+ const keyType = entry?.attributes.type || 'text';
579
+ // Create appropriate schema based on the key's type
580
+ let inputSchema;
581
+ let description = `Write a value to the STM key: ${key}`;
582
+ if (keyType === 'image' || keyType === 'file') {
583
+ description += ' (expects base64 encoded data)';
584
+ inputSchema = zod_1.z.object({
585
+ value: zod_1.z.string().describe(`Base64 encoded data for ${key}`),
586
+ contentType: zod_1.z.string().optional().describe(`MIME type for the ${keyType}`)
587
+ });
588
+ }
589
+ else if (keyType === 'json') {
590
+ description += ' (expects JSON string)';
591
+ inputSchema = zod_1.z.object({
592
+ value: zod_1.z.string().describe(`JSON string value for ${key}`)
593
+ });
594
+ }
595
+ else {
596
+ inputSchema = zod_1.z.object({
597
+ value: zod_1.z.string().describe(`The text value to write to ${key}`)
598
+ });
599
+ }
399
600
  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
- }),
601
+ description,
602
+ inputSchema,
404
603
  execute: async (input) => {
405
- this.set_value(key, input.value);
604
+ // Handle different types appropriately
605
+ if (keyType === 'image' || keyType === 'file') {
606
+ if (input.contentType) {
607
+ this.set_base64(key, input.value, input.contentType, keyType);
608
+ }
609
+ else {
610
+ // Use existing content type if available
611
+ const existingContentType = entry?.attributes.contentType;
612
+ if (existingContentType) {
613
+ this.set_base64(key, input.value, existingContentType, keyType);
614
+ }
615
+ else {
616
+ throw new Error(`Content type required for ${keyType} data`);
617
+ }
618
+ }
619
+ }
620
+ else {
621
+ // For text and json, use regular set_value
622
+ this.set_value(key, input.value);
623
+ }
624
+ // Create specialized success message based on type
625
+ let resultMessage;
626
+ if (keyType === 'image') {
627
+ resultMessage = `Successfully saved image to ${key}`;
628
+ }
629
+ else if (keyType === 'file') {
630
+ resultMessage = `Successfully saved file to ${key}`;
631
+ }
632
+ else if (keyType === 'json') {
633
+ resultMessage = `Successfully saved JSON data to ${key}`;
634
+ }
635
+ else {
636
+ // For text type, include the actual value
637
+ resultMessage = `Successfully wrote "${input.value}" to ${key}`;
638
+ }
406
639
  return {
407
- result: `Successfully wrote "${input.value}" to ${key}`,
640
+ result: resultMessage,
408
641
  key: key,
409
- value: input.value
642
+ value: input.value,
643
+ type: keyType,
644
+ contentType: input.contentType,
645
+ sanitizedKey: sanitizedKey
410
646
  };
411
647
  }
412
648
  };
@@ -417,6 +653,376 @@ class MindCache {
417
653
  }
418
654
  return tools;
419
655
  }
656
+ // Public method for client-side tool execution
657
+ executeToolCall(toolName, value) {
658
+ const originalKey = this.findKeyFromToolName(toolName);
659
+ if (!originalKey) {
660
+ return null;
661
+ }
662
+ // Check if key is readonly
663
+ const entry = this.stm[originalKey];
664
+ if (entry && entry.attributes.readonly) {
665
+ return null;
666
+ }
667
+ this.set_value(originalKey, value);
668
+ return {
669
+ result: `Successfully wrote "${value}" to ${originalKey}`,
670
+ key: originalKey,
671
+ value: value
672
+ };
673
+ }
674
+ // Add a tag to a key
675
+ addTag(key, tag) {
676
+ // Don't allow tagging hardcoded system keys
677
+ if (key === '$date' || key === '$time') {
678
+ return false;
679
+ }
680
+ const entry = this.stm[key];
681
+ if (!entry) {
682
+ return false;
683
+ }
684
+ // Initialize tags array if it doesn't exist
685
+ if (!entry.attributes.tags) {
686
+ entry.attributes.tags = [];
687
+ }
688
+ // Add tag if it doesn't already exist
689
+ if (!entry.attributes.tags.includes(tag)) {
690
+ entry.attributes.tags.push(tag);
691
+ this.notifyGlobalListeners();
692
+ return true;
693
+ }
694
+ return false; // Tag already exists
695
+ }
696
+ // Remove a tag from a key
697
+ removeTag(key, tag) {
698
+ // Don't allow modifying hardcoded system keys
699
+ if (key === '$date' || key === '$time') {
700
+ return false;
701
+ }
702
+ const entry = this.stm[key];
703
+ if (!entry || !entry.attributes.tags) {
704
+ return false;
705
+ }
706
+ const tagIndex = entry.attributes.tags.indexOf(tag);
707
+ if (tagIndex > -1) {
708
+ entry.attributes.tags.splice(tagIndex, 1);
709
+ this.notifyGlobalListeners();
710
+ return true;
711
+ }
712
+ return false; // Tag not found
713
+ }
714
+ // Get all tags for a key
715
+ getTags(key) {
716
+ if (key === '$date' || key === '$time') {
717
+ return []; // System keys have no tags
718
+ }
719
+ const entry = this.stm[key];
720
+ return entry?.attributes.tags || [];
721
+ }
722
+ // Get all unique tags across all entries
723
+ getAllTags() {
724
+ const allTags = new Set();
725
+ Object.values(this.stm).forEach(entry => {
726
+ if (entry.attributes.tags) {
727
+ entry.attributes.tags.forEach(tag => allTags.add(tag));
728
+ }
729
+ });
730
+ return Array.from(allTags);
731
+ }
732
+ // Check if a key has a specific tag
733
+ hasTag(key, tag) {
734
+ if (key === '$date' || key === '$time') {
735
+ return false; // System keys have no tags
736
+ }
737
+ const entry = this.stm[key];
738
+ return entry?.attributes.tags?.includes(tag) || false;
739
+ }
740
+ // Get a formatted string of all entries with a specific tag (ignores visible attribute)
741
+ getTagged(tag) {
742
+ const entries = [];
743
+ // Add regular STM entries that have the specified tag
744
+ Object.entries(this.stm).forEach(([key, entry]) => {
745
+ if (entry.attributes.tags?.includes(tag)) {
746
+ // Use get_value to handle template processing
747
+ entries.push([key, this.get_value(key)]);
748
+ }
749
+ });
750
+ return entries
751
+ .map(([key, value]) => `${key}: ${value}`)
752
+ .join(', ');
753
+ }
754
+ // Export STM to Markdown format
755
+ toMarkdown() {
756
+ const now = new Date();
757
+ const lines = [];
758
+ const appendixEntries = [];
759
+ let appendixCounter = 0;
760
+ const appendixLabels = {};
761
+ // Header
762
+ lines.push('# MindCache STM Export');
763
+ lines.push('');
764
+ lines.push(`Export Date: ${now.toISOString().split('T')[0]}`);
765
+ lines.push('');
766
+ lines.push('---');
767
+ lines.push('');
768
+ lines.push('## STM Entries');
769
+ lines.push('');
770
+ // Process each entry
771
+ Object.entries(this.stm).forEach(([key, entry]) => {
772
+ // Skip hardcoded keys - they won't be serialized
773
+ if (entry.attributes.hardcoded) {
774
+ return;
775
+ }
776
+ lines.push(`### ${key}`);
777
+ // Bug fix #1: Ensure type is always 'text' if undefined or the string "undefined"
778
+ const entryType = (entry.attributes.type && entry.attributes.type !== 'undefined') ? entry.attributes.type : 'text';
779
+ lines.push(`- **Type**: \`${entryType}\``);
780
+ // Flatten attributes at the same level as Type
781
+ lines.push(`- **Readonly**: \`${entry.attributes.readonly}\``);
782
+ lines.push(`- **Visible**: \`${entry.attributes.visible}\``);
783
+ lines.push(`- **Template**: \`${entry.attributes.template}\``);
784
+ if (entry.attributes.tags && entry.attributes.tags.length > 0) {
785
+ lines.push(`- **Tags**: \`${entry.attributes.tags.join('`, `')}\``);
786
+ }
787
+ // Handle content type for files/images
788
+ if (entry.attributes.contentType) {
789
+ lines.push(`- **Content Type**: \`${entry.attributes.contentType}\``);
790
+ }
791
+ // Handle value based on type - always use code blocks for text
792
+ if (entryType === 'image' || entryType === 'file') {
793
+ // Create appendix reference
794
+ const label = String.fromCharCode(65 + appendixCounter); // A, B, C, etc.
795
+ appendixLabels[key] = label;
796
+ appendixCounter++;
797
+ lines.push(`- **Value**: [See Appendix ${label}]`);
798
+ // Store for appendix section
799
+ appendixEntries.push({
800
+ key,
801
+ type: entryType,
802
+ contentType: entry.attributes.contentType || 'application/octet-stream',
803
+ base64: entry.value,
804
+ label
805
+ });
806
+ }
807
+ else if (entryType === 'json') {
808
+ // Format JSON with proper indentation
809
+ lines.push('- **Value**:');
810
+ lines.push('```json');
811
+ try {
812
+ const jsonValue = typeof entry.value === 'string' ? entry.value : JSON.stringify(entry.value, null, 2);
813
+ lines.push(jsonValue);
814
+ }
815
+ catch {
816
+ lines.push(String(entry.value));
817
+ }
818
+ lines.push('```');
819
+ }
820
+ else {
821
+ // Text type - always use code blocks
822
+ const valueStr = String(entry.value);
823
+ lines.push('- **Value**:');
824
+ lines.push('```');
825
+ lines.push(valueStr);
826
+ lines.push('```');
827
+ }
828
+ lines.push('');
829
+ lines.push('---');
830
+ lines.push('');
831
+ });
832
+ // Add appendix section if there are binary entries
833
+ if (appendixEntries.length > 0) {
834
+ lines.push('## Appendix: Binary Data');
835
+ lines.push('');
836
+ appendixEntries.forEach(({ key, contentType, base64, label }) => {
837
+ lines.push(`### Appendix ${label}: ${key}`);
838
+ lines.push(`**Type**: ${contentType}`);
839
+ lines.push('');
840
+ lines.push('```');
841
+ lines.push(base64);
842
+ lines.push('```');
843
+ lines.push('');
844
+ lines.push('---');
845
+ lines.push('');
846
+ });
847
+ }
848
+ lines.push('*End of MindCache Export*');
849
+ return lines.join('\n');
850
+ }
851
+ // Import STM from Markdown format
852
+ fromMarkdown(markdown) {
853
+ const lines = markdown.split('\n');
854
+ let currentSection = 'header';
855
+ let currentKey = null;
856
+ let currentEntry = null;
857
+ let inCodeBlock = false;
858
+ let codeBlockContent = [];
859
+ let codeBlockType = null;
860
+ const appendixData = {};
861
+ let currentAppendixKey = null;
862
+ const pendingEntries = {};
863
+ // Clear existing STM first
864
+ this.clear();
865
+ for (let i = 0; i < lines.length; i++) {
866
+ const line = lines[i];
867
+ const trimmed = line.trim();
868
+ // Detect sections
869
+ if (trimmed === '## STM Entries') {
870
+ currentSection = 'entries';
871
+ continue;
872
+ }
873
+ if (trimmed === '## Appendix: Binary Data') {
874
+ currentSection = 'appendix';
875
+ continue;
876
+ }
877
+ // Handle code blocks
878
+ if (trimmed === '```' || trimmed === '```json') {
879
+ if (!inCodeBlock) {
880
+ inCodeBlock = true;
881
+ codeBlockContent = [];
882
+ codeBlockType = currentSection === 'appendix' ? 'base64' : (trimmed === '```json' ? 'json' : 'value');
883
+ }
884
+ else {
885
+ inCodeBlock = false;
886
+ const content = codeBlockContent.join('\n');
887
+ if (currentSection === 'appendix' && currentAppendixKey) {
888
+ // Store appendix base64 data
889
+ appendixData[currentAppendixKey].base64 = content;
890
+ }
891
+ else if (currentEntry && codeBlockType === 'json') {
892
+ currentEntry.value = content;
893
+ }
894
+ else if (currentEntry && codeBlockType === 'value') {
895
+ currentEntry.value = content;
896
+ }
897
+ codeBlockContent = [];
898
+ codeBlockType = null;
899
+ }
900
+ continue;
901
+ }
902
+ if (inCodeBlock) {
903
+ codeBlockContent.push(line);
904
+ continue;
905
+ }
906
+ // Parse entries section
907
+ if (currentSection === 'entries') {
908
+ if (trimmed.startsWith('### ')) {
909
+ // Save previous entry if exists
910
+ if (currentKey && currentEntry && currentEntry.attributes) {
911
+ pendingEntries[currentKey] = currentEntry;
912
+ }
913
+ // Start new entry
914
+ currentKey = trimmed.substring(4);
915
+ currentEntry = {
916
+ value: undefined,
917
+ attributes: {
918
+ readonly: false,
919
+ visible: true,
920
+ hardcoded: false,
921
+ template: false,
922
+ type: 'text',
923
+ tags: []
924
+ }
925
+ };
926
+ }
927
+ else if (trimmed.startsWith('- **Type**: `')) {
928
+ const type = trimmed.match(/`([^`]+)`/)?.[1];
929
+ // Don't store "undefined" string - treat it as missing and keep default 'text'
930
+ if (currentEntry && type && type !== 'undefined') {
931
+ currentEntry.attributes.type = type;
932
+ }
933
+ }
934
+ else if (trimmed.startsWith('- **Readonly**: `')) {
935
+ const value = trimmed.match(/`([^`]+)`/)?.[1] === 'true';
936
+ if (currentEntry) {
937
+ currentEntry.attributes.readonly = value;
938
+ }
939
+ }
940
+ else if (trimmed.startsWith('- **Visible**: `')) {
941
+ const value = trimmed.match(/`([^`]+)`/)?.[1] === 'true';
942
+ if (currentEntry) {
943
+ currentEntry.attributes.visible = value;
944
+ }
945
+ }
946
+ else if (trimmed.startsWith('- **Template**: `')) {
947
+ const value = trimmed.match(/`([^`]+)`/)?.[1] === 'true';
948
+ if (currentEntry) {
949
+ currentEntry.attributes.template = value;
950
+ }
951
+ }
952
+ else if (trimmed.startsWith('- **Tags**: `')) {
953
+ const tagsStr = trimmed.substring(13, trimmed.length - 1);
954
+ if (currentEntry) {
955
+ currentEntry.attributes.tags = tagsStr.split('`, `');
956
+ }
957
+ }
958
+ else if (trimmed.startsWith('- **Content Type**: `')) {
959
+ const contentType = trimmed.match(/`([^`]+)`/)?.[1];
960
+ if (currentEntry && contentType) {
961
+ currentEntry.attributes.contentType = contentType;
962
+ }
963
+ }
964
+ else if (trimmed.startsWith('- **Value**: `')) {
965
+ const value = trimmed.substring(14, trimmed.length - 1);
966
+ if (currentEntry) {
967
+ currentEntry.value = value;
968
+ }
969
+ }
970
+ else if (trimmed.startsWith('- **Value**: [See Appendix ')) {
971
+ const labelMatch = trimmed.match(/Appendix ([A-Z])\]/);
972
+ if (currentEntry && labelMatch && currentKey) {
973
+ currentEntry.appendixLabel = labelMatch[1];
974
+ // Set a placeholder value so the entry is saved
975
+ currentEntry.value = '';
976
+ }
977
+ }
978
+ }
979
+ // Parse appendix section
980
+ if (currentSection === 'appendix') {
981
+ if (trimmed.startsWith('### Appendix ')) {
982
+ const match = trimmed.match(/### Appendix ([A-Z]): (.+)/);
983
+ if (match) {
984
+ const label = match[1];
985
+ const key = match[2];
986
+ currentAppendixKey = `${label}:${key}`;
987
+ appendixData[currentAppendixKey] = { contentType: '', base64: '' };
988
+ }
989
+ }
990
+ else if (trimmed.startsWith('**Type**: ')) {
991
+ const contentType = trimmed.substring(10);
992
+ if (currentAppendixKey) {
993
+ appendixData[currentAppendixKey].contentType = contentType;
994
+ }
995
+ }
996
+ }
997
+ }
998
+ // Save last entry
999
+ if (currentKey && currentEntry && currentEntry.attributes) {
1000
+ pendingEntries[currentKey] = currentEntry;
1001
+ }
1002
+ // Now combine entries with appendix data and populate STM
1003
+ Object.entries(pendingEntries).forEach(([key, entry]) => {
1004
+ const appendixLabel = entry.appendixLabel;
1005
+ if (appendixLabel) {
1006
+ // Find matching appendix data
1007
+ const appendixKey = `${appendixLabel}:${key}`;
1008
+ const appendixInfo = appendixData[appendixKey];
1009
+ if (appendixInfo && appendixInfo.base64) {
1010
+ entry.value = appendixInfo.base64;
1011
+ if (!entry.attributes.contentType && appendixInfo.contentType) {
1012
+ entry.attributes.contentType = appendixInfo.contentType;
1013
+ }
1014
+ }
1015
+ }
1016
+ // Set the entry in STM (value can be undefined for entries without value line)
1017
+ if (entry.value !== undefined && entry.attributes) {
1018
+ this.stm[key] = {
1019
+ value: entry.value,
1020
+ attributes: entry.attributes
1021
+ };
1022
+ }
1023
+ });
1024
+ this.notifyGlobalListeners();
1025
+ }
420
1026
  }
421
1027
  exports.MindCache = MindCache;
422
1028
  // 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.2.0",
3
+ "version": "0.4.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",