@moltium/world-core 0.1.22 → 0.1.23

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-DWXNX5V3.js";
4
+ } from "./chunk-Y563WZWH.js";
5
5
  export {
6
6
  CardFetcher,
7
7
  normalizeAgentUrl
8
8
  };
9
- //# sourceMappingURL=CardFetcher-4ENWKI6E.js.map
9
+ //# sourceMappingURL=CardFetcher-IMUPYNEQ.js.map
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkWI7EASJJcjs = require('./chunk-WI7EASJJ.cjs');
5
+
6
+
7
+
8
+ exports.CardFetcher = _chunkWI7EASJJcjs.CardFetcher; exports.normalizeAgentUrl = _chunkWI7EASJJcjs.normalizeAgentUrl;
9
+ //# sourceMappingURL=CardFetcher-ZD4YSGJE.cjs.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"sources":["/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/CardFetcher-ZD4YSGJE.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,qHAAC","file":"/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/CardFetcher-ZD4YSGJE.cjs"}
@@ -1,14 +1,38 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/logger.ts
2
2
  var _winston = require('winston'); var _winston2 = _interopRequireDefault(_winston);
3
3
  var logLevel = process.env.LOG_LEVEL || "info";
4
+ var colors = {
5
+ reset: "\x1B[0m",
6
+ dim: "\x1B[2m",
7
+ bold: "\x1B[1m",
8
+ cyan: "\x1B[36m",
9
+ yellow: "\x1B[33m",
10
+ green: "\x1B[32m",
11
+ red: "\x1B[31m",
12
+ magenta: "\x1B[35m",
13
+ blue: "\x1B[34m",
14
+ white: "\x1B[37m",
15
+ gray: "\x1B[90m"
16
+ };
17
+ var levelColors = {
18
+ error: colors.red,
19
+ warn: colors.yellow,
20
+ info: colors.green,
21
+ debug: colors.gray
22
+ };
4
23
  var logger = _winston2.default.createLogger({
5
24
  level: logLevel,
6
25
  format: _winston2.default.format.combine(
7
- _winston2.default.format.timestamp(),
8
- _winston2.default.format.colorize(),
9
- _winston2.default.format.printf(({ level, message, timestamp, ...meta }) => {
10
- const metaStr = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : "";
11
- return `${timestamp} [${level}] ${message}${metaStr}`;
26
+ _winston2.default.format.timestamp({ format: "HH:mm:ss" }),
27
+ _winston2.default.format.printf(({ level, message, timestamp, module, ...meta }) => {
28
+ const lvlColor = levelColors[level] || colors.white;
29
+ const lvl = `${lvlColor}${level.toUpperCase().padEnd(5)}${colors.reset}`;
30
+ const mod = module ? `${colors.cyan}[${module}]${colors.reset}` : "";
31
+ const ts = `${colors.dim}${timestamp}${colors.reset}`;
32
+ const cleanMeta = { ...meta };
33
+ delete cleanMeta.module;
34
+ const metaStr = Object.keys(cleanMeta).length ? ` ${colors.dim}${JSON.stringify(cleanMeta)}${colors.reset}` : "";
35
+ return `${ts} ${lvl} ${mod} ${message}${metaStr}`;
12
36
  })
13
37
  ),
14
38
  transports: [new _winston2.default.transports.Console()]
@@ -127,4 +151,4 @@ function normalizeAgentUrl(url) {
127
151
 
128
152
 
129
153
  exports.logger = logger; exports.createLogger = createLogger; exports.CardFetcher = CardFetcher; exports.normalizeAgentUrl = normalizeAgentUrl;
130
- //# sourceMappingURL=chunk-DHQFXIEW.cjs.map
154
+ //# sourceMappingURL=chunk-WI7EASJJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/chunk-WI7EASJJ.cjs","../src/logger.ts","../src/discovery/CardFetcher.ts"],"names":[],"mappings":"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","file":"/Users/brooklyn/Desktop/SchrodingerLabs/Byzantium/packages/world-core/dist/chunk-WI7EASJJ.cjs","sourcesContent":[null,"import winston from 'winston';\n\n/**\n * ============================================================================\n * WORLD SDK LOGGER\n * ============================================================================\n *\n * Winston-based logger for World SDK.\n * Color-coded output with module labels for readability.\n */\n\nconst logLevel = process.env.LOG_LEVEL || 'info';\n\n// ANSI color codes\nconst colors = {\n reset: '\\x1b[0m',\n dim: '\\x1b[2m',\n bold: '\\x1b[1m',\n cyan: '\\x1b[36m',\n yellow: '\\x1b[33m',\n green: '\\x1b[32m',\n red: '\\x1b[31m',\n magenta: '\\x1b[35m',\n blue: '\\x1b[34m',\n white: '\\x1b[37m',\n gray: '\\x1b[90m',\n};\n\nconst levelColors: Record<string, string> = {\n error: colors.red,\n warn: colors.yellow,\n info: colors.green,\n debug: colors.gray,\n};\n\nexport const logger = winston.createLogger({\n level: logLevel,\n format: winston.format.combine(\n winston.format.timestamp({ format: 'HH:mm:ss' }),\n winston.format.printf(({ level, message, timestamp, module, ...meta }) => {\n const lvlColor = levelColors[level] || colors.white;\n const lvl = `${lvlColor}${level.toUpperCase().padEnd(5)}${colors.reset}`;\n const mod = module ? `${colors.cyan}[${module}]${colors.reset}` : '';\n const ts = `${colors.dim}${timestamp}${colors.reset}`;\n\n // Clean meta — remove 'module' since we already display it\n const cleanMeta = { ...meta };\n delete (cleanMeta as any).module;\n const metaStr = Object.keys(cleanMeta).length\n ? ` ${colors.dim}${JSON.stringify(cleanMeta)}${colors.reset}`\n : '';\n\n return `${ts} ${lvl} ${mod} ${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"]}
@@ -1,14 +1,38 @@
1
1
  // src/logger.ts
2
2
  import winston from "winston";
3
3
  var logLevel = process.env.LOG_LEVEL || "info";
4
+ var colors = {
5
+ reset: "\x1B[0m",
6
+ dim: "\x1B[2m",
7
+ bold: "\x1B[1m",
8
+ cyan: "\x1B[36m",
9
+ yellow: "\x1B[33m",
10
+ green: "\x1B[32m",
11
+ red: "\x1B[31m",
12
+ magenta: "\x1B[35m",
13
+ blue: "\x1B[34m",
14
+ white: "\x1B[37m",
15
+ gray: "\x1B[90m"
16
+ };
17
+ var levelColors = {
18
+ error: colors.red,
19
+ warn: colors.yellow,
20
+ info: colors.green,
21
+ debug: colors.gray
22
+ };
4
23
  var logger = winston.createLogger({
5
24
  level: logLevel,
6
25
  format: winston.format.combine(
7
- winston.format.timestamp(),
8
- winston.format.colorize(),
9
- winston.format.printf(({ level, message, timestamp, ...meta }) => {
10
- const metaStr = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : "";
11
- return `${timestamp} [${level}] ${message}${metaStr}`;
26
+ winston.format.timestamp({ format: "HH:mm:ss" }),
27
+ winston.format.printf(({ level, message, timestamp, module, ...meta }) => {
28
+ const lvlColor = levelColors[level] || colors.white;
29
+ const lvl = `${lvlColor}${level.toUpperCase().padEnd(5)}${colors.reset}`;
30
+ const mod = module ? `${colors.cyan}[${module}]${colors.reset}` : "";
31
+ const ts = `${colors.dim}${timestamp}${colors.reset}`;
32
+ const cleanMeta = { ...meta };
33
+ delete cleanMeta.module;
34
+ const metaStr = Object.keys(cleanMeta).length ? ` ${colors.dim}${JSON.stringify(cleanMeta)}${colors.reset}` : "";
35
+ return `${ts} ${lvl} ${mod} ${message}${metaStr}`;
12
36
  })
13
37
  ),
14
38
  transports: [new winston.transports.Console()]
@@ -127,4 +151,4 @@ export {
127
151
  CardFetcher,
128
152
  normalizeAgentUrl
129
153
  };
130
- //# sourceMappingURL=chunk-DWXNX5V3.js.map
154
+ //# sourceMappingURL=chunk-Y563WZWH.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 * Color-coded output with module labels for readability.\n */\n\nconst logLevel = process.env.LOG_LEVEL || 'info';\n\n// ANSI color codes\nconst colors = {\n reset: '\\x1b[0m',\n dim: '\\x1b[2m',\n bold: '\\x1b[1m',\n cyan: '\\x1b[36m',\n yellow: '\\x1b[33m',\n green: '\\x1b[32m',\n red: '\\x1b[31m',\n magenta: '\\x1b[35m',\n blue: '\\x1b[34m',\n white: '\\x1b[37m',\n gray: '\\x1b[90m',\n};\n\nconst levelColors: Record<string, string> = {\n error: colors.red,\n warn: colors.yellow,\n info: colors.green,\n debug: colors.gray,\n};\n\nexport const logger = winston.createLogger({\n level: logLevel,\n format: winston.format.combine(\n winston.format.timestamp({ format: 'HH:mm:ss' }),\n winston.format.printf(({ level, message, timestamp, module, ...meta }) => {\n const lvlColor = levelColors[level] || colors.white;\n const lvl = `${lvlColor}${level.toUpperCase().padEnd(5)}${colors.reset}`;\n const mod = module ? `${colors.cyan}[${module}]${colors.reset}` : '';\n const ts = `${colors.dim}${timestamp}${colors.reset}`;\n\n // Clean meta — remove 'module' since we already display it\n const cleanMeta = { ...meta };\n delete (cleanMeta as any).module;\n const metaStr = Object.keys(cleanMeta).length\n ? ` ${colors.dim}${JSON.stringify(cleanMeta)}${colors.reset}`\n : '';\n\n return `${ts} ${lvl} ${mod} ${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"]}