@moltium/world-core 0.1.14 → 0.1.16
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/dist/{LevelDBAdapter-ZV2ZTDOV.js → LevelDBAdapter-734P4R3M.js} +3 -2
- package/dist/LevelDBAdapter-734P4R3M.js.map +1 -0
- package/dist/{LevelDBAdapter-TGQYZHZH.cjs → LevelDBAdapter-UKNYERPS.cjs} +11 -10
- package/dist/LevelDBAdapter-UKNYERPS.cjs.map +1 -0
- package/dist/{MongoAdapter-TCY6JOZH.js → MongoAdapter-Q62CO5ON.js} +3 -2
- package/dist/MongoAdapter-Q62CO5ON.js.map +1 -0
- package/dist/{MongoAdapter-XEHWKU2F.cjs → MongoAdapter-UNQ4IT6J.cjs} +7 -6
- package/dist/MongoAdapter-UNQ4IT6J.cjs.map +1 -0
- package/dist/{PostgresAdapter-PLXDLHVF.js → PostgresAdapter-6ZAAUL2O.js} +20 -11
- package/dist/PostgresAdapter-6ZAAUL2O.js.map +1 -0
- package/dist/{PostgresAdapter-WL5SLUDL.cjs → PostgresAdapter-BDIXQOXA.cjs} +25 -16
- package/dist/PostgresAdapter-BDIXQOXA.cjs.map +1 -0
- package/dist/{RedisAdapter-CT3SNBIS.cjs → RedisAdapter-5X5HAV6I.cjs} +8 -7
- package/dist/RedisAdapter-5X5HAV6I.cjs.map +1 -0
- package/dist/{RedisAdapter-OL4FVEGL.js → RedisAdapter-C7HBXDBA.js} +3 -2
- package/dist/RedisAdapter-C7HBXDBA.js.map +1 -0
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/dist/LevelDBAdapter-TGQYZHZH.cjs.map +0 -1
- package/dist/LevelDBAdapter-ZV2ZTDOV.js.map +0 -1
- package/dist/MongoAdapter-TCY6JOZH.js.map +0 -1
- package/dist/MongoAdapter-XEHWKU2F.cjs.map +0 -1
- package/dist/PostgresAdapter-PLXDLHVF.js.map +0 -1
- package/dist/PostgresAdapter-WL5SLUDL.cjs.map +0 -1
- package/dist/RedisAdapter-CT3SNBIS.cjs.map +0 -1
- package/dist/RedisAdapter-OL4FVEGL.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/RedisAdapter-CT3SNBIS.cjs","../src/persistence/adapters/RedisAdapter.ts"],"names":[],"mappings":"AAAA;ACEA,kCAAsB;AAmBf,IAAM,aAAA,YAAN,MAAiD;AAAA,EAKtD,WAAA,CAAoB,MAAA,EAAqB;AAArB,IAAA,IAAA,CAAA,OAAA,EAAA,MAAA;AAClB,IAAA,IAAA,CAAK,UAAA,EAAY,MAAA,CAAO,UAAA,GAAa,QAAA;AACrC,IAAA,IAAA,CAAK,OAAA,EAAS,IAAI,mBAAA,CAAM;AAAA,MACtB,IAAA,EAAM,MAAA,CAAO,IAAA;AAAA,MACb,IAAA,EAAM,MAAA,CAAO,KAAA,GAAQ,IAAA;AAAA,MACrB,QAAA,EAAU,MAAA,CAAO,QAAA;AAAA,MACjB,EAAA,EAAI,MAAA,CAAO,GAAA,GAAM;AAAA,IACnB,CAAC,CAAA;AAAA,EACH;AAAA,EAZQ;AAAA,iBACA,UAAA,EAAY,MAAA;AAAA,EACZ;AAAA,EAYR,MAAM,OAAA,CAAA,EAAyB;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,CAAA;AACvB,MAAA,IAAA,CAAK,UAAA,EAAY,IAAA;AAAA,IACnB,EAAA,MAAA,CAAS,KAAA,EAAY;AACnB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,yBAAA,EAA4B,KAAA,CAAM,OAAO,CAAA,CAAA;AAC3D,IAAA;AACF,EAAA;AAE0D,EAAA;AAC3B,IAAA;AACmB,IAAA;AAGZ,IAAA;AACqB,IAAA;AAC3D,EAAA;AAEsD,EAAA;AACvB,IAAA;AACS,IAAA;AAE3B,IAAA;AACF,MAAA;AACT,IAAA;AAEsB,IAAA;AACxB,EAAA;AAEkD,EAAA;AAEb,IAAA;AACqB,IAAA;AAGE,IAAA;AACJ,IAAA;AAGlC,IAAA;AACsC,MAAA;AACD,MAAA;AACzD,IAAA;AACF,EAAA;AAE6D,EAAA;AAChC,IAAA;AAGT,IAAA;AACiC,MAAA;AACtB,IAAA;AAC2B,MAAA;AACxD,IAAA;AAE6B,IAAA;AACA,IAAA;AACE,IAAA;AAGG,IAAA;AAChC,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACqB,MAAA;AACvB,IAAA;AAEqC,IAAA;AACvC,EAAA;AAEsD,EAAA;AACH,IAAA;AACC,IAAA;AAGf,IAAA;AACU,IAAA;AAC/C,EAAA;AAEmD,EAAA;AACH,IAAA;AACrB,IAAA;AAGU,IAAA;AACO,IAAA;AAC5C,EAAA;AAE2C,EAAA;AACN,IAAA;AACc,IAAA;AAE1B,IAAA;AACb,MAAA;AACV,IAAA;AAE0D,IAAA;AACZ,IAAA;AAI7B,IAAA;AACnB,EAAA;AAE+D,EAAA;AACf,IAAA;AACR,IAAA;AAE3B,IAAA;AACF,MAAA;AACT,IAAA;AAEsB,IAAA;AACxB,EAAA;AAEkC,EAAA;AACT,IAAA;AACN,IAAA;AACnB,EAAA;AAEsC,EAAA;AAChC,IAAA;AACqB,MAAA;AAChB,MAAA;AACD,IAAA;AACC,MAAA;AACT,IAAA;AACF,EAAA;AAE6B,EAAA;AACM,IAAA;AACU,IAAA;AAEtB,IAAA;AACU,MAAA;AAC/B,IAAA;AACF,EAAA;AACF;ADzDgE;AACA;AACA","file":"/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/RedisAdapter-CT3SNBIS.cjs","sourcesContent":[null,"import type { PersistenceAdapter, EventFilter } from '../PersistenceAdapter.js';\nimport type { WorldStateSnapshot, WorldEvent, AgentProfile } from '../../config/types.js';\nimport { Redis } from 'ioredis';\n\n/**\n * ============================================================================\n * REDIS ADAPTER\n * ============================================================================\n * \n * High-speed in-memory persistence using Redis.\n * Features: Ultra-fast reads/writes, pub/sub support, TTL support.\n */\n\nexport interface RedisConfig {\n host: string;\n port?: number;\n password?: string;\n db?: number;\n keyPrefix?: string;\n}\n\nexport class RedisAdapter implements PersistenceAdapter {\n private client: Redis;\n private connected = false;\n private keyPrefix: string;\n\n constructor(private config: RedisConfig) {\n this.keyPrefix = config.keyPrefix || 'world:';\n this.client = new Redis({\n host: config.host,\n port: config.port || 6379,\n password: config.password,\n db: config.db || 0,\n });\n }\n\n async connect(): Promise<void> {\n try {\n await this.client.ping();\n this.connected = true;\n } catch (error: any) {\n throw new Error(`Redis connection failed: ${error.message}`);\n }\n }\n\n async saveState(state: WorldStateSnapshot): Promise<void> {\n const key = `${this.keyPrefix}state`;\n await this.client.set(key, JSON.stringify(state));\n \n // Also save to history with timestamp\n const historyKey = `${this.keyPrefix}state:history`;\n await this.client.zadd(historyKey, state.timestamp, JSON.stringify(state));\n }\n\n async loadState(): Promise<WorldStateSnapshot | null> {\n const key = `${this.keyPrefix}state`;\n const data = await this.client.get(key);\n \n if (!data) {\n return null;\n }\n \n return JSON.parse(data);\n }\n\n async saveEvent(event: WorldEvent): Promise<void> {\n // Save to events list\n const eventsKey = `${this.keyPrefix}events`;\n await this.client.zadd(eventsKey, event.timestamp, JSON.stringify(event));\n \n // Save to type-specific sorted set for faster filtering\n const typeKey = `${this.keyPrefix}events:type:${event.type}`;\n await this.client.zadd(typeKey, event.timestamp, JSON.stringify(event));\n \n // If agent-specific, also index by agent\n if (event.agentUrl) {\n const agentKey = `${this.keyPrefix}events:agent:${event.agentUrl}`;\n await this.client.zadd(agentKey, event.timestamp, JSON.stringify(event));\n }\n }\n\n async getEvents(filter?: EventFilter): Promise<WorldEvent[]> {\n let key = `${this.keyPrefix}events`;\n \n // Use type-specific key if filtering by type\n if (filter?.type) {\n key = `${this.keyPrefix}events:type:${filter.type}`;\n } else if (filter?.agentUrl) {\n key = `${this.keyPrefix}events:agent:${filter.agentUrl}`;\n }\n \n const min = filter?.since || '-inf';\n const max = filter?.until || '+inf';\n const count = filter?.limit || -1;\n \n // Get events in reverse chronological order\n const results = await this.client.zrevrangebyscore(\n key,\n max,\n min,\n 'LIMIT',\n 0,\n count === -1 ? 100 : count\n );\n \n return results.map(r => JSON.parse(r));\n }\n\n async saveAgent(profile: AgentProfile): Promise<void> {\n const key = `${this.keyPrefix}agent:${profile.url}`;\n await this.client.set(key, JSON.stringify(profile));\n \n // Add to agents set\n const agentsKey = `${this.keyPrefix}agents`;\n await this.client.sadd(agentsKey, profile.url);\n }\n\n async removeAgent(agentUrl: string): Promise<void> {\n const key = `${this.keyPrefix}agent:${agentUrl}`;\n await this.client.del(key);\n \n // Remove from agents set\n const agentsKey = `${this.keyPrefix}agents`;\n await this.client.srem(agentsKey, agentUrl);\n }\n\n async getAgents(): Promise<AgentProfile[]> {\n const agentsKey = `${this.keyPrefix}agents`;\n const urls = await this.client.smembers(agentsKey);\n \n if (urls.length === 0) {\n return [];\n }\n \n const keys = urls.map(url => `${this.keyPrefix}agent:${url}`);\n const results = await this.client.mget(...keys);\n \n return results\n .filter(r => r !== null)\n .map(r => JSON.parse(r!));\n }\n\n async getAgent(agentUrl: string): Promise<AgentProfile | null> {\n const key = `${this.keyPrefix}agent:${agentUrl}`;\n const data = await this.client.get(key);\n \n if (!data) {\n return null;\n }\n \n return JSON.parse(data);\n }\n\n async disconnect(): Promise<void> {\n await this.client.quit();\n this.connected = false;\n }\n\n async healthCheck(): Promise<boolean> {\n try {\n await this.client.ping();\n return true;\n } catch {\n return false;\n }\n }\n\n async clear(): Promise<void> {\n const pattern = `${this.keyPrefix}*`;\n const keys = await this.client.keys(pattern);\n \n if (keys.length > 0) {\n await this.client.del(...keys);\n }\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/persistence/adapters/RedisAdapter.ts"],"sourcesContent":["import type { PersistenceAdapter, EventFilter } from '../PersistenceAdapter.js';\nimport type { WorldStateSnapshot, WorldEvent, AgentProfile } from '../../config/types.js';\nimport { Redis } from 'ioredis';\n\n/**\n * ============================================================================\n * REDIS ADAPTER\n * ============================================================================\n * \n * High-speed in-memory persistence using Redis.\n * Features: Ultra-fast reads/writes, pub/sub support, TTL support.\n */\n\nexport interface RedisConfig {\n host: string;\n port?: number;\n password?: string;\n db?: number;\n keyPrefix?: string;\n}\n\nexport class RedisAdapter implements PersistenceAdapter {\n private client: Redis;\n private connected = false;\n private keyPrefix: string;\n\n constructor(private config: RedisConfig) {\n this.keyPrefix = config.keyPrefix || 'world:';\n this.client = new Redis({\n host: config.host,\n port: config.port || 6379,\n password: config.password,\n db: config.db || 0,\n });\n }\n\n async connect(): Promise<void> {\n try {\n await this.client.ping();\n this.connected = true;\n } catch (error: any) {\n throw new Error(`Redis connection failed: ${error.message}`);\n }\n }\n\n async saveState(state: WorldStateSnapshot): Promise<void> {\n const key = `${this.keyPrefix}state`;\n await this.client.set(key, JSON.stringify(state));\n \n // Also save to history with timestamp\n const historyKey = `${this.keyPrefix}state:history`;\n await this.client.zadd(historyKey, state.timestamp, JSON.stringify(state));\n }\n\n async loadState(): Promise<WorldStateSnapshot | null> {\n const key = `${this.keyPrefix}state`;\n const data = await this.client.get(key);\n \n if (!data) {\n return null;\n }\n \n return JSON.parse(data);\n }\n\n async saveEvent(event: WorldEvent): Promise<void> {\n // Save to events list\n const eventsKey = `${this.keyPrefix}events`;\n await this.client.zadd(eventsKey, event.timestamp, JSON.stringify(event));\n \n // Save to type-specific sorted set for faster filtering\n const typeKey = `${this.keyPrefix}events:type:${event.type}`;\n await this.client.zadd(typeKey, event.timestamp, JSON.stringify(event));\n \n // If agent-specific, also index by agent\n if (event.agentUrl) {\n const agentKey = `${this.keyPrefix}events:agent:${event.agentUrl}`;\n await this.client.zadd(agentKey, event.timestamp, JSON.stringify(event));\n }\n }\n\n async getEvents(filter?: EventFilter): Promise<WorldEvent[]> {\n let key = `${this.keyPrefix}events`;\n \n // Use type-specific key if filtering by type\n if (filter?.type) {\n key = `${this.keyPrefix}events:type:${filter.type}`;\n } else if (filter?.agentUrl) {\n key = `${this.keyPrefix}events:agent:${filter.agentUrl}`;\n }\n \n const min = filter?.since || '-inf';\n const max = filter?.until || '+inf';\n const count = filter?.limit || -1;\n \n // Get events in reverse chronological order\n const results = await this.client.zrevrangebyscore(\n key,\n max,\n min,\n 'LIMIT',\n 0,\n count === -1 ? 100 : count\n );\n \n return results.map(r => JSON.parse(r));\n }\n\n async saveAgent(profile: AgentProfile): Promise<void> {\n const key = `${this.keyPrefix}agent:${profile.url}`;\n await this.client.set(key, JSON.stringify(profile));\n \n // Add to agents set\n const agentsKey = `${this.keyPrefix}agents`;\n await this.client.sadd(agentsKey, profile.url);\n }\n\n async removeAgent(agentUrl: string): Promise<void> {\n const key = `${this.keyPrefix}agent:${agentUrl}`;\n await this.client.del(key);\n \n // Remove from agents set\n const agentsKey = `${this.keyPrefix}agents`;\n await this.client.srem(agentsKey, agentUrl);\n }\n\n async getAgents(): Promise<AgentProfile[]> {\n const agentsKey = `${this.keyPrefix}agents`;\n const urls = await this.client.smembers(agentsKey);\n \n if (urls.length === 0) {\n return [];\n }\n \n const keys = urls.map(url => `${this.keyPrefix}agent:${url}`);\n const results = await this.client.mget(...keys);\n \n return results\n .filter(r => r !== null)\n .map(r => JSON.parse(r!));\n }\n\n async getAgent(agentUrl: string): Promise<AgentProfile | null> {\n const key = `${this.keyPrefix}agent:${agentUrl}`;\n const data = await this.client.get(key);\n \n if (!data) {\n return null;\n }\n \n return JSON.parse(data);\n }\n\n async disconnect(): Promise<void> {\n await this.client.quit();\n this.connected = false;\n }\n\n async healthCheck(): Promise<boolean> {\n try {\n await this.client.ping();\n return true;\n } catch {\n return false;\n }\n }\n\n async clear(): Promise<void> {\n const pattern = `${this.keyPrefix}*`;\n const keys = await this.client.keys(pattern);\n \n if (keys.length > 0) {\n await this.client.del(...keys);\n }\n }\n}\n"],"mappings":"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","names":[]}
|