@moltium/world-core 0.1.20 → 0.1.22

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.
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CardFetcher,
3
3
  normalizeAgentUrl
4
- } from "./chunk-JW3PZRCW.js";
4
+ } from "./chunk-DWXNX5V3.js";
5
5
  export {
6
6
  CardFetcher,
7
7
  normalizeAgentUrl
8
8
  };
9
- //# sourceMappingURL=CardFetcher-3QKJ2I5P.js.map
9
+ //# sourceMappingURL=CardFetcher-4ENWKI6E.js.map
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkDHQFXIEWcjs = require('./chunk-DHQFXIEW.cjs');
5
+
6
+
7
+
8
+ exports.CardFetcher = _chunkDHQFXIEWcjs.CardFetcher; exports.normalizeAgentUrl = _chunkDHQFXIEWcjs.normalizeAgentUrl;
9
+ //# sourceMappingURL=CardFetcher-UCJGPZ7X.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/CardFetcher-AR7IANM7.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,qHAAC","file":"/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/CardFetcher-AR7IANM7.cjs"}
1
+ {"version":3,"sources":["/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/CardFetcher-UCJGPZ7X.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,qHAAC","file":"/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/CardFetcher-UCJGPZ7X.cjs"}
@@ -28,7 +28,7 @@ var CardFetcher = class {
28
28
  */
29
29
  async fetchCard(agentUrl) {
30
30
  try {
31
- const cardUrl = new URL("/.well-known/agent-card.json", agentUrl).toString();
31
+ const cardUrl = new URL("/.well-known/agent.json", agentUrl).toString();
32
32
  logger2.debug(`Fetching agent card from ${cardUrl}`);
33
33
  const response = await fetch(cardUrl, {
34
34
  method: "GET",
@@ -127,4 +127,4 @@ function normalizeAgentUrl(url) {
127
127
 
128
128
 
129
129
  exports.logger = logger; exports.createLogger = createLogger; exports.CardFetcher = CardFetcher; exports.normalizeAgentUrl = normalizeAgentUrl;
130
- //# sourceMappingURL=chunk-NEXCYEQT.cjs.map
130
+ //# sourceMappingURL=chunk-DHQFXIEW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/chunk-DHQFXIEW.cjs","../src/logger.ts","../src/discovery/CardFetcher.ts"],"names":[],"mappings":"AAAA;ACAA,oFAAoB;AAWpB,IAAM,SAAA,EAAW,OAAA,CAAQ,GAAA,CAAI,UAAA,GAAa,MAAA;AAEnC,IAAM,OAAA,EAAS,iBAAA,CAAQ,YAAA,CAAa;AAAA,EACzC,KAAA,EAAO,QAAA;AAAA,EACP,MAAA,EAAQ,iBAAA,CAAQ,MAAA,CAAO,OAAA;AAAA,IACrB,iBAAA,CAAQ,MAAA,CAAO,SAAA,CAAU,CAAA;AAAA,IACzB,iBAAA,CAAQ,MAAA,CAAO,QAAA,CAAS,CAAA;AAAA,IACxB,iBAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,SAAA,EAAW,GAAG,KAAK,CAAA,EAAA,GAAM;AAChE,MAAA,MAAM,QAAA,EAAU,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CAAE,OAAA,EAAS,CAAA,CAAA,EAAI,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,CAAA,EAAA;AAChB,MAAA;AACpD,IAAA;AACH,EAAA;AAC6C,EAAA;AAC9C;AAKgE;AACrB,EAAA;AAC5C;ADb0E;AACA;AEhBjC;AAiBhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOiC,EAAA;AAClD,IAAA;AAE2D,MAAA;AAEX,MAAA;AAEZ,MAAA;AAC5B,QAAA;AACC,QAAA;AACG,UAAA;AACI,UAAA;AAChB,QAAA;AACgC,QAAA;AAAA;AACjC,MAAA;AAEiB,MAAA;AACT,QAAA;AACI,UAAA;AAC6C,UAAA;AACxD,QAAA;AACF,MAAA;AAEiC,MAAA;AAG6B,MAAA;AACrD,QAAA;AACI,UAAA;AACF,UAAA;AACT,QAAA;AACF,MAAA;AAEiE,MAAA;AACzC,QAAA;AACE,QAAA;AACzB,MAAA;AAEM,MAAA;AACI,QAAA;AACT,QAAA;AACF,MAAA;AACmB,IAAA;AACgD,MAAA;AAE5D,MAAA;AACI,QAAA;AACe,QAAA;AAC1B,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ8D,EAAA;AACH,IAAA;AAE3B,IAAA;AACY,MAAA;AAC1C,IAAA;AAEoD,IAAA;AACG,IAAA;AAEhD,IAAA;AACT,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQqC,EAAA;AAEmC,IAAA;AACL,MAAA;AACxD,MAAA;AACT,IAAA;AAG6C,IAAA;AACiB,MAAA;AAC/C,QAAA;AACG,QAAA;AACf,MAAA;AACM,MAAA;AACT,IAAA;AAG6D,IAAA;AACA,MAAA;AACpD,MAAA;AACT,IAAA;AAGiE,IAAA;AACG,MAAA;AAC3D,MAAA;AACT,IAAA;AAEO,IAAA;AACT,EAAA;AACF;AAKuD;AACjD,EAAA;AACwB,IAAA;AACe,IAAA;AACnC,EAAA;AAEC,IAAA;AACT,EAAA;AACF;AFzB0E;AACA;AACA;AACA;AACA;AACA;AACA","file":"/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/chunk-DHQFXIEW.cjs","sourcesContent":[null,"import winston from 'winston';\n\n/**\n * ============================================================================\n * WORLD SDK LOGGER\n * ============================================================================\n * \n * Winston-based logger for World SDK.\n * Follows the same pattern as @moltium/core logger.\n */\n\nconst logLevel = process.env.LOG_LEVEL || 'info';\n\nexport const logger = winston.createLogger({\n level: logLevel,\n format: winston.format.combine(\n winston.format.timestamp(),\n winston.format.colorize(),\n winston.format.printf(({ level, message, timestamp, ...meta }) => {\n const metaStr = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : '';\n return `${timestamp} [${level}] ${message}${metaStr}`;\n })\n ),\n transports: [new winston.transports.Console()],\n});\n\n/**\n * Create a child logger with a specific module name\n */\nexport function createLogger(moduleName: string): winston.Logger {\n return logger.child({ module: moduleName });\n}\n","import type { AgentCard } from '@a2a-js/sdk';\nimport { createLogger } from '../logger.js';\n\nconst logger = createLogger('CardFetcher');\n\n/**\n * ============================================================================\n * AGENT CARD FETCHER\n * ============================================================================\n * \n * Discovers agents by fetching their A2A Agent Cards.\n * Follows the A2A protocol specification.\n */\n\nexport interface FetchResult {\n success: boolean;\n card?: AgentCard;\n error?: string;\n}\n\nexport class CardFetcher {\n /**\n * Fetch an agent's card from their A2A endpoint.\n * \n * @param agentUrl Base URL of the agent (e.g., http://localhost:3000)\n * @returns Fetch result with card or error\n */\n async fetchCard(agentUrl: string): Promise<FetchResult> {\n try {\n // A2A spec: Agent Card is available at /.well-known/agent.json\n const cardUrl = new URL('/.well-known/agent.json', agentUrl).toString();\n \n logger.debug(`Fetching agent card from ${cardUrl}`);\n \n const response = await fetch(cardUrl, {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'User-Agent': '@moltium/world-core/0.1.0',\n },\n signal: AbortSignal.timeout(5000), // 5 second timeout\n });\n \n if (!response.ok) {\n return {\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n };\n }\n \n const card = await response.json() as AgentCard;\n \n // Basic validation\n if (!card.name || !card.protocolVersion || !card.url || !card.skills) {\n return {\n success: false,\n error: 'Invalid agent card: missing required fields',\n };\n }\n \n logger.info(`Successfully fetched card for agent: ${card.name}`, {\n protocolVersion: card.protocolVersion,\n skillCount: card.skills.length,\n });\n \n return {\n success: true,\n card,\n };\n } catch (error: any) {\n logger.error(`Failed to fetch agent card from ${agentUrl}:`, error.message);\n \n return {\n success: false,\n error: error.message || 'Unknown error',\n };\n }\n }\n \n /**\n * Fetch multiple agent cards in parallel.\n * \n * @param agentUrls Array of agent URLs\n * @returns Array of fetch results\n */\n async fetchCards(agentUrls: string[]): Promise<FetchResult[]> {\n logger.info(`Fetching ${agentUrls.length} agent cards...`);\n \n const results = await Promise.all(\n agentUrls.map(url => this.fetchCard(url))\n );\n \n const successCount = results.filter(r => r.success).length;\n logger.info(`Fetched ${successCount}/${agentUrls.length} agent cards successfully`);\n \n return results;\n }\n \n /**\n * Verify that an agent card is valid for A2A protocol v0.3.0.\n * \n * @param card Agent card to verify\n * @returns True if valid\n */\n verifyCard(card: AgentCard): boolean {\n // Check required fields\n if (!card.name || !card.protocolVersion || !card.url || !card.skills) {\n logger.warn('Agent card missing required fields', { name: card.name });\n return false;\n }\n \n // Check protocol version compatibility\n if (!card.protocolVersion.startsWith('0.3')) {\n logger.warn('Agent card has incompatible protocol version', {\n name: card.name,\n version: card.protocolVersion,\n });\n return false;\n }\n \n // Check skills array\n if (!Array.isArray(card.skills) || card.skills.length === 0) {\n logger.warn('Agent card has no skills', { name: card.name });\n return false;\n }\n \n // Check capabilities\n if (!card.capabilities || typeof card.capabilities !== 'object') {\n logger.warn('Agent card missing capabilities', { name: card.name });\n return false;\n }\n \n return true;\n }\n}\n\n/**\n * Helper to extract base URL from various formats\n */\nexport function normalizeAgentUrl(url: string): string {\n try {\n const parsed = new URL(url);\n return `${parsed.protocol}//${parsed.host}`;\n } catch {\n // If already in base format, return as-is\n return url;\n }\n}\n"]}
@@ -28,7 +28,7 @@ var CardFetcher = class {
28
28
  */
29
29
  async fetchCard(agentUrl) {
30
30
  try {
31
- const cardUrl = new URL("/.well-known/agent-card.json", agentUrl).toString();
31
+ const cardUrl = new URL("/.well-known/agent.json", agentUrl).toString();
32
32
  logger2.debug(`Fetching agent card from ${cardUrl}`);
33
33
  const response = await fetch(cardUrl, {
34
34
  method: "GET",
@@ -127,4 +127,4 @@ export {
127
127
  CardFetcher,
128
128
  normalizeAgentUrl
129
129
  };
130
- //# sourceMappingURL=chunk-JW3PZRCW.js.map
130
+ //# sourceMappingURL=chunk-DWXNX5V3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger.ts","../src/discovery/CardFetcher.ts"],"sourcesContent":["import winston from 'winston';\n\n/**\n * ============================================================================\n * WORLD SDK LOGGER\n * ============================================================================\n * \n * Winston-based logger for World SDK.\n * Follows the same pattern as @moltium/core logger.\n */\n\nconst logLevel = process.env.LOG_LEVEL || 'info';\n\nexport const logger = winston.createLogger({\n level: logLevel,\n format: winston.format.combine(\n winston.format.timestamp(),\n winston.format.colorize(),\n winston.format.printf(({ level, message, timestamp, ...meta }) => {\n const metaStr = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : '';\n return `${timestamp} [${level}] ${message}${metaStr}`;\n })\n ),\n transports: [new winston.transports.Console()],\n});\n\n/**\n * Create a child logger with a specific module name\n */\nexport function createLogger(moduleName: string): winston.Logger {\n return logger.child({ module: moduleName });\n}\n","import type { AgentCard } from '@a2a-js/sdk';\nimport { createLogger } from '../logger.js';\n\nconst logger = createLogger('CardFetcher');\n\n/**\n * ============================================================================\n * AGENT CARD FETCHER\n * ============================================================================\n * \n * Discovers agents by fetching their A2A Agent Cards.\n * Follows the A2A protocol specification.\n */\n\nexport interface FetchResult {\n success: boolean;\n card?: AgentCard;\n error?: string;\n}\n\nexport class CardFetcher {\n /**\n * Fetch an agent's card from their A2A endpoint.\n * \n * @param agentUrl Base URL of the agent (e.g., http://localhost:3000)\n * @returns Fetch result with card or error\n */\n async fetchCard(agentUrl: string): Promise<FetchResult> {\n try {\n // A2A spec: Agent Card is available at /.well-known/agent.json\n const cardUrl = new URL('/.well-known/agent.json', agentUrl).toString();\n \n logger.debug(`Fetching agent card from ${cardUrl}`);\n \n const response = await fetch(cardUrl, {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'User-Agent': '@moltium/world-core/0.1.0',\n },\n signal: AbortSignal.timeout(5000), // 5 second timeout\n });\n \n if (!response.ok) {\n return {\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n };\n }\n \n const card = await response.json() as AgentCard;\n \n // Basic validation\n if (!card.name || !card.protocolVersion || !card.url || !card.skills) {\n return {\n success: false,\n error: 'Invalid agent card: missing required fields',\n };\n }\n \n logger.info(`Successfully fetched card for agent: ${card.name}`, {\n protocolVersion: card.protocolVersion,\n skillCount: card.skills.length,\n });\n \n return {\n success: true,\n card,\n };\n } catch (error: any) {\n logger.error(`Failed to fetch agent card from ${agentUrl}:`, error.message);\n \n return {\n success: false,\n error: error.message || 'Unknown error',\n };\n }\n }\n \n /**\n * Fetch multiple agent cards in parallel.\n * \n * @param agentUrls Array of agent URLs\n * @returns Array of fetch results\n */\n async fetchCards(agentUrls: string[]): Promise<FetchResult[]> {\n logger.info(`Fetching ${agentUrls.length} agent cards...`);\n \n const results = await Promise.all(\n agentUrls.map(url => this.fetchCard(url))\n );\n \n const successCount = results.filter(r => r.success).length;\n logger.info(`Fetched ${successCount}/${agentUrls.length} agent cards successfully`);\n \n return results;\n }\n \n /**\n * Verify that an agent card is valid for A2A protocol v0.3.0.\n * \n * @param card Agent card to verify\n * @returns True if valid\n */\n verifyCard(card: AgentCard): boolean {\n // Check required fields\n if (!card.name || !card.protocolVersion || !card.url || !card.skills) {\n logger.warn('Agent card missing required fields', { name: card.name });\n return false;\n }\n \n // Check protocol version compatibility\n if (!card.protocolVersion.startsWith('0.3')) {\n logger.warn('Agent card has incompatible protocol version', {\n name: card.name,\n version: card.protocolVersion,\n });\n return false;\n }\n \n // Check skills array\n if (!Array.isArray(card.skills) || card.skills.length === 0) {\n logger.warn('Agent card has no skills', { name: card.name });\n return false;\n }\n \n // Check capabilities\n if (!card.capabilities || typeof card.capabilities !== 'object') {\n logger.warn('Agent card missing capabilities', { name: card.name });\n return false;\n }\n \n return true;\n }\n}\n\n/**\n * Helper to extract base URL from various formats\n */\nexport function normalizeAgentUrl(url: string): string {\n try {\n const parsed = new URL(url);\n return `${parsed.protocol}//${parsed.host}`;\n } catch {\n // If already in base format, return as-is\n return url;\n }\n}\n"],"mappings":"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","names":["logger"]}
package/dist/index.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkNEXCYEQTcjs = require('./chunk-NEXCYEQT.cjs');
6
+ var _chunkDHQFXIEWcjs = require('./chunk-DHQFXIEW.cjs');
7
7
 
8
8
  // src/config/types.ts
9
9
  function profileFromCard(card, walletAddress) {
@@ -430,7 +430,7 @@ async function createLevelDBAdapter(config) {
430
430
  var _uuid = require('uuid');
431
431
 
432
432
  // src/discovery/AgentEvaluator.ts
433
- var logger2 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "AgentEvaluator");
433
+ var logger2 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "AgentEvaluator");
434
434
  var AgentEvaluator = class {
435
435
  constructor(rules) {
436
436
  this.rules = rules;
@@ -544,7 +544,7 @@ var AgentEvaluator = class {
544
544
 
545
545
  // src/blockchain/BlockchainClient.ts
546
546
  var _ethers = require('ethers');
547
- var logger3 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "BlockchainClient");
547
+ var logger3 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "BlockchainClient");
548
548
  var AGENT_REGISTRY_ABI = [
549
549
  "function registerAgent(string agentUrl, string name) external",
550
550
  "function isAgentValid(address wallet) external view returns (bool)",
@@ -784,20 +784,21 @@ var BlockchainClient = class {
784
784
 
785
785
  // src/a2a/WorldA2AClient.ts
786
786
  var _core = require('@moltium/core');
787
- var logger4 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "WorldA2AClient");
787
+ var logger4 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "WorldA2AClient");
788
788
  var WorldA2AClient = (_class2 = class {constructor() { _class2.prototype.__init4.call(this); }
789
789
  __init4() {this.clients = /* @__PURE__ */ new Map()}
790
790
  /**
791
791
  * Add an agent to the client pool
792
792
  */
793
793
  addAgent(agentUrl) {
794
- if (this.clients.has(agentUrl)) {
795
- logger4.debug(`Agent already in client pool: ${agentUrl}`);
794
+ const baseUrl = this.extractBaseUrl(agentUrl);
795
+ if (this.clients.has(baseUrl)) {
796
+ logger4.debug(`Agent already in client pool: ${baseUrl}`);
796
797
  return;
797
798
  }
798
- const client = new (0, _core.A2AClient)({ agentUrl });
799
- this.clients.set(agentUrl, client);
800
- logger4.info(`Added agent to A2A client pool: ${agentUrl}`);
799
+ const client = new (0, _core.A2AClient)({ agentUrl: baseUrl });
800
+ this.clients.set(baseUrl, client);
801
+ logger4.info(`Added agent to A2A client pool: ${baseUrl}`);
801
802
  }
802
803
  /**
803
804
  * Remove an agent from the client pool
@@ -867,10 +868,21 @@ var WorldA2AClient = (_class2 = class {constructor() { _class2.prototype.__init4
867
868
  getAgentUrls() {
868
869
  return Array.from(this.clients.keys());
869
870
  }
871
+ /**
872
+ * Extract base URL (protocol://host:port) from a full URL
873
+ */
874
+ extractBaseUrl(url) {
875
+ try {
876
+ const parsed = new URL(url);
877
+ return `${parsed.protocol}//${parsed.host}`;
878
+ } catch (e4) {
879
+ return url;
880
+ }
881
+ }
870
882
  }, _class2);
871
883
 
872
884
  // src/engine/WorldActions.ts
873
- var logger5 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "WorldActions");
885
+ var logger5 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "WorldActions");
874
886
  var WorldActionsRegistry = (_class3 = class {constructor() { _class3.prototype.__init5.call(this); }
875
887
  __init5() {this.actions = /* @__PURE__ */ new Map()}
876
888
  /**
@@ -966,7 +978,7 @@ var WorldActionsRegistry = (_class3 = class {constructor() { _class3.prototype._
966
978
 
967
979
  // src/engine/ActionProcessor.ts
968
980
 
969
- var logger6 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "ActionProcessor");
981
+ var logger6 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "ActionProcessor");
970
982
  var ActionProcessor = class {
971
983
  constructor(rules, actionsRegistry) {
972
984
  this.rules = rules;
@@ -1068,7 +1080,7 @@ var ActionProcessor = class {
1068
1080
 
1069
1081
  // src/engine/TickOrchestrator.ts
1070
1082
 
1071
- var logger7 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "TickOrchestrator");
1083
+ var logger7 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "TickOrchestrator");
1072
1084
  var TickOrchestrator = class {
1073
1085
  constructor(a2aClient, actionsRegistry, rules, config) {
1074
1086
  this.a2aClient = a2aClient;
@@ -1211,7 +1223,7 @@ var TickOrchestrator = class {
1211
1223
  parameters: parsed.parameters || {},
1212
1224
  message: parsed.message
1213
1225
  };
1214
- } catch (e4) {
1226
+ } catch (e5) {
1215
1227
  return {
1216
1228
  agentUrl,
1217
1229
  message: reply
@@ -1233,7 +1245,7 @@ var TickOrchestrator = class {
1233
1245
  };
1234
1246
 
1235
1247
  // src/a2a/MessageRouter.ts
1236
- var logger8 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "MessageRouter");
1248
+ var logger8 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "MessageRouter");
1237
1249
  var MessageRouter = class {
1238
1250
  constructor(a2aClient, getAgents) {
1239
1251
  this.a2aClient = a2aClient;
@@ -1313,7 +1325,7 @@ var MessageRouter = class {
1313
1325
  };
1314
1326
 
1315
1327
  // src/engine/World.ts
1316
- var logger9 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "World");
1328
+ var logger9 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "World");
1317
1329
  var World = (_class4 = class {
1318
1330
  constructor(config) {;_class4.prototype.__init6.call(this);_class4.prototype.__init7.call(this);_class4.prototype.__init8.call(this);_class4.prototype.__init9.call(this);
1319
1331
  this.config = config;
@@ -1326,7 +1338,7 @@ var World = (_class4 = class {
1326
1338
  metadata: {}
1327
1339
  };
1328
1340
  this.agents = /* @__PURE__ */ new Map();
1329
- this.cardFetcher = new (0, _chunkNEXCYEQTcjs.CardFetcher)();
1341
+ this.cardFetcher = new (0, _chunkDHQFXIEWcjs.CardFetcher)();
1330
1342
  this.evaluator = new AgentEvaluator(config.admission);
1331
1343
  this.a2aClient = new WorldA2AClient();
1332
1344
  this.actionsRegistry = new WorldActionsRegistry();
@@ -1638,7 +1650,7 @@ var World = (_class4 = class {
1638
1650
 
1639
1651
  // src/server/app.ts
1640
1652
  var _express = require('express'); var _express2 = _interopRequireDefault(_express);
1641
- var logger10 = _chunkNEXCYEQTcjs.createLogger.call(void 0, "WorldServer");
1653
+ var logger10 = _chunkDHQFXIEWcjs.createLogger.call(void 0, "WorldServer");
1642
1654
  function createWorldApp(world) {
1643
1655
  const app = _express2.default.call(void 0, );
1644
1656
  app.use(_express2.default.json());
@@ -1677,7 +1689,7 @@ function createWorldApp(world) {
1677
1689
  logger10.info(`Agent join request from: ${agentUrl}`, {
1678
1690
  wallet: walletAddress || "none"
1679
1691
  });
1680
- const cardFetcher = new (await Promise.resolve().then(() => _interopRequireWildcard(require("./CardFetcher-AR7IANM7.cjs")))).CardFetcher();
1692
+ const cardFetcher = new (await Promise.resolve().then(() => _interopRequireWildcard(require("./CardFetcher-UCJGPZ7X.cjs")))).CardFetcher();
1681
1693
  const result = await cardFetcher.fetchCard(agentUrl);
1682
1694
  if (!result.success || !result.card) {
1683
1695
  return res.status(400).json({
@@ -1892,5 +1904,5 @@ async function startWorldServer(world) {
1892
1904
 
1893
1905
 
1894
1906
 
1895
- exports.ActionProcessor = ActionProcessor; exports.AdmissionRulesSchema = AdmissionRulesSchema; exports.AgentEvaluator = AgentEvaluator; exports.BlockchainClient = BlockchainClient; exports.BlockchainConfigSchema = BlockchainConfigSchema; exports.CardFetcher = _chunkNEXCYEQTcjs.CardFetcher; exports.InMemoryAdapter = InMemoryAdapter; exports.MessageRouter = MessageRouter; exports.PersistenceConfigSchema = PersistenceConfigSchema; exports.TickOrchestrator = TickOrchestrator; exports.TokenConfigSchema = TokenConfigSchema; exports.World = World; exports.WorldA2AClient = WorldA2AClient; exports.WorldActionsRegistry = WorldActionsRegistry; exports.WorldConfigSchema = WorldConfigSchema; exports.createLogger = _chunkNEXCYEQTcjs.createLogger; exports.createPersistence = createPersistence; exports.createWorldApp = createWorldApp; exports.isValidWorldConfig = isValidWorldConfig; exports.logger = _chunkNEXCYEQTcjs.logger; exports.normalizeAgentUrl = _chunkNEXCYEQTcjs.normalizeAgentUrl; exports.profileFromCard = profileFromCard; exports.startWorldServer = startWorldServer; exports.validateWorldConfig = validateWorldConfig;
1907
+ exports.ActionProcessor = ActionProcessor; exports.AdmissionRulesSchema = AdmissionRulesSchema; exports.AgentEvaluator = AgentEvaluator; exports.BlockchainClient = BlockchainClient; exports.BlockchainConfigSchema = BlockchainConfigSchema; exports.CardFetcher = _chunkDHQFXIEWcjs.CardFetcher; exports.InMemoryAdapter = InMemoryAdapter; exports.MessageRouter = MessageRouter; exports.PersistenceConfigSchema = PersistenceConfigSchema; exports.TickOrchestrator = TickOrchestrator; exports.TokenConfigSchema = TokenConfigSchema; exports.World = World; exports.WorldA2AClient = WorldA2AClient; exports.WorldActionsRegistry = WorldActionsRegistry; exports.WorldConfigSchema = WorldConfigSchema; exports.createLogger = _chunkDHQFXIEWcjs.createLogger; exports.createPersistence = createPersistence; exports.createWorldApp = createWorldApp; exports.isValidWorldConfig = isValidWorldConfig; exports.logger = _chunkDHQFXIEWcjs.logger; exports.normalizeAgentUrl = _chunkDHQFXIEWcjs.normalizeAgentUrl; exports.profileFromCard = profileFromCard; exports.startWorldServer = startWorldServer; exports.validateWorldConfig = validateWorldConfig;
1896
1908
  //# sourceMappingURL=index.cjs.map