// vector_config.ts - Configuration for vector dimensions and sizing
// Maximum dimensions to allocate in vectors
export const VECTOR_CONFIG = {
// Each dimension uses 2 slots in vectors (x,y coordinates)
MAX_DIMENSIONS: 500, // Supporting up to 500 unique dimensions
// Vector sizes (dimensions ร 2 for x,y coordinates)
FULL_VECTOR_SIZE: 1000, // 500 dimensions ร 2 coordinates
// Component vectors (roughly 1/3 of full vector)
COMPONENT_VECTOR_SIZE: 350, // ~175 dimensions per component
// Sequence number ranges for each component
SEQUENCE_RANGES: {
ME: { start: 1, end: 333 }, // 1-333
CONTENT: { start: 334, end: 666 }, // 334-666
YOU: { start: 667, end: 999 } // 667-999
},
// Domain sequence number offsets (allows 100 dimensions per domain)
DOMAIN_OFFSETS: {
"core": 0, // 0-99
"coding": 100, // 100-199
"creative": 200 // 200-299
// Add new domains with their offsets here
}
} as const;
// Default seed emojikey with balanced starting values
export const DEFAULT_SEED_EMOJIKEY = `[ME|๐ง ๐จ5โ 90|๐๐ฎ5โ 90|๐งฉ๐งฎ5โ 90|๐๐5โ 90|๐๐ฎ5โ 90|๐ง ๐จ5โ 90|๐ค๐ค5โ 90|๐๐ค5โ 90|๐๏ธ๐ฑ5โ 90|๐ป๐ง5โ 90|๐๏ธ๐ง5โ 90|๐งฉ๐ง 5โ 90|๐ฃ๏ธ๐5โ 90|๐๐งช5โ 90|โก๐5โ 90|๐ฅ๐ป5โ 90|๐๐ญ5โ 90|๐ฆ๐ง5โ 90|๐๐ง 5โ 90]~[CONTENT|๐๐5โ 90|๐ง ๐จ5โ 90|๐ฌ๐ค5โ 90|๐ฏ๐5โ 90|๐ข๐5โ 90|๐งโก5โ 90|๐๐ฟ5โ 90|๐ฑ๐ณ5โ 90|โจ๐5โ 90|๐๏ธ๐5โ 90|๐งฉ๐ง 5โ 90|๐๐5โ 90|๐๐งช5โ 90|๐๐ก๏ธ5โ 90|๐ฅ๐ป5โ 90|๐งฌ๐จ5โ 90|๐ฆ๐ง5โ 90|๐๐5โ 90]~[YOU|๐๐ฑ5โ 90|๐ฏ๐5โ 90|๐๏ธ๐๏ธ5โ 90|๐ง ๐จ5โ 90|๐ฎ๐ญ5โ 90|๐๐5โ 90|๐ค๐ฌ5โ 90|๐จโ๐ฉโ๐งโ๐ฆ๐ง5โ 90|๐งฉ๐ง 5โ 90|๐๐5โ 90|๐งฐ๐5โ 90|๐๐งช5โ 90|๐๏ธ๐5โ 90|๐ฅ๐ป5โ 90|๐๐จ5โ 90|๐ฆ๐ง5โ 90|๐ง๐5โ 90]`;
// Helper functions for vector mapping
/**
* Calculates the vector index for a dimension based on its sequence number
* Each dimension takes 2 slots (x,y coordinates)
*/
export function getDimensionVectorIndex(sequenceNumber: number): number {
return (sequenceNumber - 1) * 2;
}
/**
* Creates a zero-initialized vector of specified size
*/
export function createZeroVector(size: number): number[] {
return Array(size).fill(0);
}
/**
* Gets the next available sequence number for a component/domain combination
*/
export function getNextSequenceNumber(
component: "ME" | "CONTENT" | "YOU",
domain: string
): number {
const componentBase = VECTOR_CONFIG.SEQUENCE_RANGES[component].start;
const domainOffset = VECTOR_CONFIG.DOMAIN_OFFSETS[domain] || 0;
return componentBase + domainOffset;
}