@moltium/world-core 0.1.21 → 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.
- package/dist/{CardFetcher-3QKJ2I5P.js → CardFetcher-4ENWKI6E.js} +2 -2
- package/dist/CardFetcher-UCJGPZ7X.cjs +9 -0
- package/dist/{CardFetcher-AR7IANM7.cjs.map → CardFetcher-UCJGPZ7X.cjs.map} +1 -1
- package/dist/{chunk-NEXCYEQT.cjs → chunk-DHQFXIEW.cjs} +2 -2
- package/dist/chunk-DHQFXIEW.cjs.map +1 -0
- package/dist/{chunk-JW3PZRCW.js → chunk-DWXNX5V3.js} +2 -2
- package/dist/chunk-DWXNX5V3.js.map +1 -0
- package/dist/index.cjs +31 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/CardFetcher-AR7IANM7.cjs +0 -9
- package/dist/chunk-JW3PZRCW.js.map +0 -1
- package/dist/chunk-NEXCYEQT.cjs.map +0 -1
- /package/dist/{CardFetcher-3QKJ2I5P.js.map → CardFetcher-4ENWKI6E.js.map} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CardFetcher,
|
|
3
3
|
normalizeAgentUrl
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DWXNX5V3.js";
|
|
5
5
|
export {
|
|
6
6
|
CardFetcher,
|
|
7
7
|
normalizeAgentUrl
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=CardFetcher-
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
795
|
-
|
|
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(
|
|
800
|
-
logger4.info(`Added agent to A2A client pool: ${
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 (
|
|
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 =
|
|
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 =
|
|
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,
|
|
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 =
|
|
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-
|
|
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 =
|
|
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
|