CRITICAL CHECKPOINT - DO NOT PUSH TO GITHUB Recovery Status: - Successfully recovered brainy.ts from compiled JavaScript - All core v3.0 API methods functional (add, get, update, delete, relate, find, etc.) - Neural subsystem intact (562KB embedded patterns, NLP working) - Augmentation pipeline operational (20+ augmentations) - HNSW clustering system complete - Triple Intelligence compiled (needs constructor fix) - Test suite validates functionality Changes preserved: - 898 files with changes from last 3 days - 144,475 insertions - All augmentation improvements - All test coverage enhancements - Complete v3.0 feature set This is a LOCAL checkpoint only - contains recovered work after corruption incident. Created backup in .backups/brainy-full-20250910-151314.tar.gz Branch: recovery-checkpoint-20250910-151433 Date: Wed Sep 10 03:18:04 PM PDT 2025
79 lines
No EOL
2.5 KiB
JavaScript
79 lines
No EOL
2.5 KiB
JavaScript
/**
|
|
* Utility to ensure all metadata has the deleted field set properly
|
|
* This is CRITICAL for O(1) soft delete filtering performance
|
|
*
|
|
* Uses _brainy namespace to avoid conflicts with user metadata
|
|
*/
|
|
const BRAINY_NAMESPACE = '_brainy';
|
|
/**
|
|
* Ensure metadata has internal Brainy fields set
|
|
* @param metadata The metadata object (could be null/undefined)
|
|
* @param preserveExisting If true, preserve existing deleted value
|
|
* @returns Metadata with internal fields guaranteed
|
|
*/
|
|
export function ensureDeletedField(metadata, preserveExisting = true) {
|
|
// Handle null/undefined metadata
|
|
if (!metadata) {
|
|
return {
|
|
[BRAINY_NAMESPACE]: {
|
|
deleted: false,
|
|
version: 1
|
|
}
|
|
};
|
|
}
|
|
// Clone to avoid mutation
|
|
const result = { ...metadata };
|
|
// Ensure _brainy namespace exists
|
|
if (!result[BRAINY_NAMESPACE]) {
|
|
result[BRAINY_NAMESPACE] = {};
|
|
}
|
|
// Set deleted field if not present
|
|
if (!('deleted' in result[BRAINY_NAMESPACE])) {
|
|
result[BRAINY_NAMESPACE].deleted = false;
|
|
}
|
|
else if (!preserveExisting) {
|
|
// Force to false if not preserving
|
|
result[BRAINY_NAMESPACE].deleted = false;
|
|
}
|
|
return result;
|
|
}
|
|
/**
|
|
* Mark an item as soft deleted
|
|
* @param metadata The metadata object
|
|
* @returns Metadata with _brainy.deleted=true
|
|
*/
|
|
export function markAsDeleted(metadata) {
|
|
const result = ensureDeletedField(metadata);
|
|
result[BRAINY_NAMESPACE].deleted = true;
|
|
return result;
|
|
}
|
|
/**
|
|
* Mark an item as restored (not deleted)
|
|
* @param metadata The metadata object
|
|
* @returns Metadata with _brainy.deleted=false
|
|
*/
|
|
export function markAsRestored(metadata) {
|
|
const result = ensureDeletedField(metadata);
|
|
result[BRAINY_NAMESPACE].deleted = false;
|
|
return result;
|
|
}
|
|
/**
|
|
* Check if an item is deleted
|
|
* @param metadata The metadata object
|
|
* @returns true if deleted, false otherwise (including if field missing)
|
|
*/
|
|
export function isDeleted(metadata) {
|
|
return metadata?.[BRAINY_NAMESPACE]?.deleted === true;
|
|
}
|
|
/**
|
|
* Check if an item is active (not deleted)
|
|
* @param metadata The metadata object
|
|
* @returns true if not deleted (default), false if deleted
|
|
*/
|
|
export function isActive(metadata) {
|
|
// If no deleted field or deleted=false, item is active
|
|
return !isDeleted(metadata);
|
|
}
|
|
// Export the namespace constant for use in queries
|
|
export const BRAINY_DELETED_FIELD = `${BRAINY_NAMESPACE}.deleted`;
|
|
//# sourceMappingURL=ensureDeleted.js.map
|