screeps-world-mcp 1.0.0

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.
@@ -0,0 +1,107 @@
1
+ import { z } from 'zod';
2
+ export class MarketToolHandlers {
3
+ apiClient;
4
+ constructor(apiClient) {
5
+ this.apiClient = apiClient;
6
+ }
7
+ async handleGetMarketOrdersIndex() {
8
+ try {
9
+ const endpoint = '/game/market/orders-index';
10
+ const data = await this.apiClient.makeApiCall(endpoint);
11
+ const additionalGuidance = [
12
+ 'Use this index to understand available market resources',
13
+ 'Check resource availability before placing orders',
14
+ 'Market index provides overview - use get_market_orders for specific resources',
15
+ ];
16
+ return this.apiClient.createEnhancedToolResult(data, endpoint, 'Market Orders Index', false, additionalGuidance);
17
+ }
18
+ catch (error) {
19
+ return this.apiClient.createToolResult(`Error getting market orders index: ${error instanceof Error ? error.message : String(error)}`, true);
20
+ }
21
+ }
22
+ async handleGetMyMarketOrders() {
23
+ try {
24
+ const endpoint = '/game/market/my-orders';
25
+ const data = await this.apiClient.makeApiCall(endpoint);
26
+ const additionalGuidance = [
27
+ 'Review your active orders to understand your market position',
28
+ 'Check order status and remaining quantities',
29
+ 'Cancel or modify orders based on market conditions',
30
+ ];
31
+ return this.apiClient.createEnhancedToolResult(data, endpoint, 'My Market Orders', false, additionalGuidance);
32
+ }
33
+ catch (error) {
34
+ return this.apiClient.createToolResult(`Error getting my market orders: ${error instanceof Error ? error.message : String(error)}`, true);
35
+ }
36
+ }
37
+ async handleGetMarketOrders(params) {
38
+ try {
39
+ const endpoint = this.apiClient.buildEndpointWithQuery('/game/market/orders', params);
40
+ const data = await this.apiClient.makeApiCall(endpoint);
41
+ const additionalGuidance = [
42
+ `Market data for ${params.resourceType} retrieved successfully`,
43
+ 'Analyze price trends and order volumes from this data',
44
+ 'Compare buy/sell orders to identify trading opportunities',
45
+ 'Use this data for market analysis - no need to fetch again immediately',
46
+ ];
47
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `Market Orders for ${params.resourceType}`, false, additionalGuidance);
48
+ }
49
+ catch (error) {
50
+ return this.apiClient.createToolResult(`Error getting market orders: ${error instanceof Error ? error.message : String(error)}`, true);
51
+ }
52
+ }
53
+ async handleGetMoneyHistory(params) {
54
+ try {
55
+ const endpoint = this.apiClient.buildEndpointWithQuery('/user/money-history', params);
56
+ const data = await this.apiClient.makeApiCall(endpoint);
57
+ const additionalGuidance = [
58
+ 'Review transaction history to understand spending patterns',
59
+ 'Track income and expenses over time',
60
+ 'Identify major transactions and their impact on your credits',
61
+ 'Transaction history is complete - analyze the data provided',
62
+ ];
63
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `Money Transaction History (Page ${params.page || 0})`, false, additionalGuidance);
64
+ }
65
+ catch (error) {
66
+ return this.apiClient.createToolResult(`Error getting money history: ${error instanceof Error ? error.message : String(error)}`, true);
67
+ }
68
+ }
69
+ async handleGetMapStats(params) {
70
+ try {
71
+ const endpoint = this.apiClient.buildEndpointWithQuery('/game/map-stats', params);
72
+ const data = await this.apiClient.makeApiCall(endpoint, {
73
+ method: 'POST',
74
+ body: JSON.stringify({ rooms: params.rooms, statName: params.statName }),
75
+ });
76
+ const additionalGuidance = [
77
+ `Map statistics for ${params.statName} retrieved for ${params.rooms.length} rooms`,
78
+ 'Compare statistics across different rooms to identify patterns',
79
+ 'Use this data for strategic planning and room evaluation',
80
+ 'Statistical analysis complete - no additional map stats calls needed',
81
+ ];
82
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `Map Statistics: ${params.statName} for ${params.rooms.join(', ')}`, false, additionalGuidance);
83
+ }
84
+ catch (error) {
85
+ return this.apiClient.createToolResult(`Error getting map statistics: ${error instanceof Error ? error.message : String(error)}`, true);
86
+ }
87
+ }
88
+ // Zod schemas for validation
89
+ static getSchemas() {
90
+ return {
91
+ getMarketOrdersIndex: {},
92
+ getMyMarketOrders: {},
93
+ getMarketOrders: {
94
+ resourceType: z.string().describe('Resource type (e.g., Z, H, O)'),
95
+ },
96
+ getMoneyHistory: {
97
+ page: z.number().optional().describe('Page number (default: 0)'),
98
+ },
99
+ getMapStats: {
100
+ rooms: z.array(z.string()).describe('Array of room names (e.g., ["W50N50", "E1N8"])'),
101
+ statName: z.string().describe('Statistic name (e.g., owner0, creepsLost, energyHarvested)'),
102
+ shard: z.string().optional().describe('Shard name (default: shard0)'),
103
+ },
104
+ };
105
+ }
106
+ }
107
+ //# sourceMappingURL=market.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/tools/market.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ export class MiscToolHandlers {
3
+ apiClient;
4
+ constructor(apiClient) {
5
+ this.apiClient = apiClient;
6
+ }
7
+ async handleGetPvpInfo(params) {
8
+ try {
9
+ const endpoint = this.apiClient.buildEndpointWithQuery('/experimental/pvp', params);
10
+ const data = await this.apiClient.makeApiCall(endpoint);
11
+ return this.apiClient.createToolResult(`PvP Information:\n${JSON.stringify(data, null, 2)}`);
12
+ }
13
+ catch (error) {
14
+ return this.apiClient.createToolResult(`Error getting PvP info: ${error instanceof Error ? error.message : String(error)}`, true);
15
+ }
16
+ }
17
+ async handleGetNukesInfo() {
18
+ try {
19
+ const data = await this.apiClient.makeApiCall('/experimental/nukes');
20
+ return this.apiClient.createToolResult(`Active Nukes Information:\n${JSON.stringify(data, null, 2)}`);
21
+ }
22
+ catch (error) {
23
+ return this.apiClient.createToolResult(`Error getting nukes info: ${error instanceof Error ? error.message : String(error)}`, true);
24
+ }
25
+ }
26
+ // Zod schemas for validation
27
+ static getSchemas() {
28
+ return {
29
+ getPvpInfo: {
30
+ interval: z.number().optional().describe('Interval parameter'),
31
+ start: z.number().optional().describe('Start parameter'),
32
+ },
33
+ getNukesInfo: {},
34
+ };
35
+ }
36
+ }
37
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/tools/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C,KAAK,CAAC,gBAAgB,CAAC,MAAsB;QAC3C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;YACpF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAExD,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CACpC,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACnF,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CACpC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACrF,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,CAAC,UAAU;QACf,OAAO;YACL,UAAU,EAAE;gBACV,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;aACzD;YACD,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,151 @@
1
+ import { z } from 'zod';
2
+ export class RoomToolHandlers {
3
+ apiClient;
4
+ constructor(apiClient) {
5
+ this.apiClient = apiClient;
6
+ }
7
+ async handleGetRoomTerrain(params) {
8
+ try {
9
+ const endpoint = this.apiClient.buildEndpointWithQuery('/game/room-terrain', params);
10
+ const data = await this.apiClient.makeApiCall(endpoint);
11
+ const additionalGuidance = [
12
+ 'Use terrain data to plan creep paths and identify chokepoints',
13
+ 'Check for natural barriers that might affect room layout',
14
+ 'Consider terrain when planning structure placement',
15
+ ];
16
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `Room Terrain Analysis for ${params.room}`, false, additionalGuidance);
17
+ }
18
+ catch (error) {
19
+ return this.apiClient.createToolResult(`Error getting room terrain: ${error instanceof Error ? error.message : String(error)}`, true);
20
+ }
21
+ }
22
+ async handleGetRoomObjects(params) {
23
+ try {
24
+ const endpoint = this.apiClient.buildEndpointWithQuery('/game/room-objects', params);
25
+ const data = await this.apiClient.makeApiCall(endpoint);
26
+ const additionalGuidance = [
27
+ '✅ COMPLETE: All room objects retrieved successfully - NO MORE CALLS NEEDED',
28
+ '🛑 STOP: This data is complete - do NOT call get_room_objects again for this room',
29
+ '📊 ANALYZE: Process the structures, creeps, and resources from this response',
30
+ '🎯 NEXT: Use this data to understand room composition and development level',
31
+ 'Analyze structures to understand room development level',
32
+ 'Check for enemy creeps or defensive structures',
33
+ 'Look for resource deposits and energy sources',
34
+ ];
35
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `Room Objects Analysis for ${params.room}`, false, additionalGuidance);
36
+ }
37
+ catch (error) {
38
+ const errorMessage = error instanceof Error ? error.message : String(error);
39
+ // Check if this is a loop detection error and make it more prominent
40
+ if (errorMessage.includes('LOOP DETECTED')) {
41
+ return this.apiClient.createToolResult(`🚨 CRITICAL ERROR - LOOP DETECTED 🚨\n\n` +
42
+ `${errorMessage}\n\n` +
43
+ `⚠️ SYSTEM MESSAGE: This tool has been called multiple times for the same room.\n` +
44
+ `📊 SOLUTION: Analyze the data from previous calls instead of making new ones.\n` +
45
+ `🛑 ACTION REQUIRED: Stop calling get_room_objects and use existing data.`, true);
46
+ }
47
+ return this.apiClient.createToolResult(`Error getting room objects: ${errorMessage}`, true);
48
+ }
49
+ }
50
+ async handleGetRoomOverview(params) {
51
+ try {
52
+ const endpoint = this.apiClient.buildEndpointWithQuery('/game/room-overview', params);
53
+ const data = await this.apiClient.makeApiCall(endpoint);
54
+ const additionalGuidance = [
55
+ 'Use overview data to track room performance trends',
56
+ 'Compare statistics across different time intervals',
57
+ 'Identify rooms that need attention or optimization',
58
+ ];
59
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `Room Overview for ${params.room}`, false, additionalGuidance);
60
+ }
61
+ catch (error) {
62
+ return this.apiClient.createToolResult(`Error getting room overview: ${error instanceof Error ? error.message : String(error)}`, true);
63
+ }
64
+ }
65
+ async handleGetRoomStatus(params) {
66
+ try {
67
+ const endpoint = this.apiClient.buildEndpointWithQuery('/game/room-status', params);
68
+ const data = await this.apiClient.makeApiCall(endpoint);
69
+ const additionalGuidance = [
70
+ 'Check room status before planning operations',
71
+ 'Verify room accessibility and ownership',
72
+ 'Use status to understand room type and restrictions',
73
+ ];
74
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `Room Status for ${params.room}`, false, additionalGuidance);
75
+ }
76
+ catch (error) {
77
+ return this.apiClient.createToolResult(`Error getting room status: ${error instanceof Error ? error.message : String(error)}`, true);
78
+ }
79
+ }
80
+ async handleCalculateDistance(params) {
81
+ try {
82
+ const parseRoom = (roomName) => {
83
+ const match = roomName.match(/^([EW])(\d+)([NS])(\d+)$/);
84
+ if (!match)
85
+ throw new Error(`Invalid room name: ${roomName}`);
86
+ const [, ew, x, ns, y] = match;
87
+ const xNum = parseInt(x);
88
+ const xCoord = ew === 'E' ? xNum : -(xNum + 1);
89
+ const yNum = parseInt(y);
90
+ const yCoord = ns === 'N' ? yNum : -(yNum + 1);
91
+ return { x: xCoord, y: yCoord };
92
+ };
93
+ const fromCoords = parseRoom(params.from);
94
+ const toCoords = parseRoom(params.to);
95
+ // Calculate grid-based distances for Screeps world
96
+ const deltaX = Math.abs(toCoords.x - fromCoords.x);
97
+ const deltaY = Math.abs(toCoords.y - fromCoords.y);
98
+ // Chebyshev distance (max of horizontal/vertical moves - allows diagonal movement)
99
+ const chebyshevDistance = Math.max(deltaX, deltaY);
100
+ const distanceData = {
101
+ from: params.from,
102
+ to: params.to,
103
+ fromCoords,
104
+ toCoords,
105
+ deltaX,
106
+ deltaY,
107
+ chebyshevDistance,
108
+ manhattanDistance: deltaX + deltaY,
109
+ euclideanDistance: Math.sqrt(deltaX * deltaX + deltaY * deltaY),
110
+ };
111
+ const additionalGuidance = [
112
+ '✅ Distance calculation complete - no additional API calls needed',
113
+ 'Use Chebyshev distance for room-to-room movement planning',
114
+ 'Consider Manhattan distance for creep pathfinding estimates',
115
+ 'Factor in terrain and obstacles for actual travel time',
116
+ ];
117
+ return this.apiClient.createEnhancedToolResult(distanceData, `calculate_distance(${params.from}, ${params.to})`, `Distance Calculation: ${params.from} to ${params.to}`, false, additionalGuidance);
118
+ }
119
+ catch (error) {
120
+ return this.apiClient.createToolResult(`Error calculating distance: ${error instanceof Error ? error.message : String(error)}`, true);
121
+ }
122
+ }
123
+ // Zod schemas for validation
124
+ static getSchemas() {
125
+ return {
126
+ roomTerrain: {
127
+ room: z.string().describe('Room name (e.g., E1N8)'),
128
+ shard: z.string().optional().describe('Shard name (default: shard0)'),
129
+ encoded: z.boolean().optional().describe('Return encoded terrain data'),
130
+ },
131
+ roomObjects: {
132
+ room: z.string().describe('Room name (e.g., E1N8)'),
133
+ shard: z.string().optional().describe('Shard name (default: shard0)'),
134
+ },
135
+ roomOverview: {
136
+ room: z.string().describe('Room name (e.g., E1N8)'),
137
+ shard: z.string().optional().describe('Shard name (default: shard0)'),
138
+ interval: z.enum(['8', '180', '1440']).optional().describe('Interval: 8=1hr, 180=24hr, 1440=7days'),
139
+ },
140
+ roomStatus: {
141
+ room: z.string().describe('Room name (e.g., E1N8)'),
142
+ shard: z.string().optional().describe('Shard name (default: shard0)'),
143
+ },
144
+ calculateDistance: {
145
+ from: z.string().describe('Source room name (e.g., E1N8)'),
146
+ to: z.string().describe('Destination room name (e.g., E2N8)'),
147
+ },
148
+ };
149
+ }
150
+ }
151
+ //# sourceMappingURL=room.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/tools/room.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ import { z } from 'zod';
2
+ export class UserToolHandlers {
3
+ apiClient;
4
+ constructor(apiClient) {
5
+ this.apiClient = apiClient;
6
+ }
7
+ async handleGetUserName() {
8
+ try {
9
+ const endpoint = '/user/name';
10
+ const data = await this.apiClient.makeApiCall(endpoint);
11
+ const additionalGuidance = [
12
+ 'User name retrieved successfully',
13
+ 'This is your authenticated username - no additional calls needed',
14
+ 'Use this username for player identification and lookups',
15
+ ];
16
+ return this.apiClient.createEnhancedToolResult(data, endpoint, 'User Name', false, additionalGuidance);
17
+ }
18
+ catch (error) {
19
+ return this.apiClient.createToolResult(`Error getting user name: ${error instanceof Error ? error.message : String(error)}`, true);
20
+ }
21
+ }
22
+ async handleGetUserStats(params) {
23
+ try {
24
+ const endpoint = this.apiClient.buildEndpointWithQuery('/user/stats', params);
25
+ const data = await this.apiClient.makeApiCall(endpoint);
26
+ const additionalGuidance = [
27
+ `User statistics retrieved for ${params.interval || 'default'} interval`,
28
+ 'Analyze performance trends and patterns from this data',
29
+ 'Compare different time periods to identify improvements',
30
+ 'Statistical data is complete - no additional stats calls needed',
31
+ ];
32
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `User Statistics${params.interval ? ` (${params.interval} interval)` : ''}`, false, additionalGuidance);
33
+ }
34
+ catch (error) {
35
+ return this.apiClient.createToolResult(`Error getting user stats: ${error instanceof Error ? error.message : String(error)}`, true);
36
+ }
37
+ }
38
+ async handleGetUserRooms(params) {
39
+ try {
40
+ const endpoint = this.apiClient.buildEndpointWithQuery('/user/rooms', params);
41
+ const data = await this.apiClient.makeApiCall(endpoint);
42
+ const additionalGuidance = [
43
+ `User rooms data retrieved for user ID ${params.id}`,
44
+ 'Review room ownership and control levels',
45
+ 'Identify rooms that need attention or optimization',
46
+ 'Room data is complete - analyze the provided information',
47
+ ];
48
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `User Rooms (${params.id})`, false, additionalGuidance);
49
+ }
50
+ catch (error) {
51
+ return this.apiClient.createToolResult(`Error getting user rooms: ${error instanceof Error ? error.message : String(error)}`, true);
52
+ }
53
+ }
54
+ async handleFindUser(params) {
55
+ try {
56
+ const endpoint = this.apiClient.buildEndpointWithQuery('/user/find', params);
57
+ const data = await this.apiClient.makeApiCall(endpoint);
58
+ const additionalGuidance = [
59
+ `User lookup completed for ${params.username || params.id}`,
60
+ 'Use this information for player analysis or communication',
61
+ 'Player information is complete - no additional lookups needed',
62
+ 'Check user stats or rooms for more detailed information if needed',
63
+ ];
64
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `User Lookup: ${params.username || params.id}`, false, additionalGuidance);
65
+ }
66
+ catch (error) {
67
+ return this.apiClient.createToolResult(`Error finding user: ${error instanceof Error ? error.message : String(error)}`, true);
68
+ }
69
+ }
70
+ async handleGetUserOverview(params) {
71
+ try {
72
+ const endpoint = this.apiClient.buildEndpointWithQuery('/user/overview', params);
73
+ const data = await this.apiClient.makeApiCall(endpoint);
74
+ const additionalGuidance = [
75
+ `User overview retrieved for ${params.interval || 'default'} interval`,
76
+ `${params.statName ? `Focused on ${params.statName} statistics` : 'General overview provided'}`,
77
+ 'Analyze trends and performance metrics from this data',
78
+ 'Overview data is complete - use for strategic planning',
79
+ ];
80
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `User Overview${params.interval ? ` (${params.interval})` : ''}${params.statName ? ` - ${params.statName}` : ''}`, false, additionalGuidance);
81
+ }
82
+ catch (error) {
83
+ return this.apiClient.createToolResult(`Error getting user overview: ${error instanceof Error ? error.message : String(error)}`, true);
84
+ }
85
+ }
86
+ async handleExecuteConsoleCommand(params) {
87
+ try {
88
+ const endpoint = '/user/console';
89
+ const data = await this.apiClient.makeApiCall(endpoint, {
90
+ method: 'POST',
91
+ body: JSON.stringify({ expression: params.expression }),
92
+ });
93
+ const additionalGuidance = [
94
+ `Console command executed: ${params.expression}`,
95
+ 'Review the command result for any errors or output',
96
+ 'Use console commands for real-time game interaction',
97
+ 'Command execution complete - check result for next steps',
98
+ ];
99
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `Console Command: ${params.expression}`, false, additionalGuidance);
100
+ }
101
+ catch (error) {
102
+ return this.apiClient.createToolResult(`Error executing console command: ${error instanceof Error ? error.message : String(error)}`, true);
103
+ }
104
+ }
105
+ async handleGetUserMemory(params) {
106
+ try {
107
+ const endpoint = this.apiClient.buildEndpointWithQuery('/user/memory', params);
108
+ const data = await this.apiClient.makeApiCall(endpoint);
109
+ const additionalGuidance = [
110
+ `User memory retrieved${params.path ? ` for path: ${params.path}` : ''}`,
111
+ 'Parse and analyze the memory data structure',
112
+ 'Use memory data for game state understanding',
113
+ 'Memory data is complete - no additional memory calls needed',
114
+ ];
115
+ return this.apiClient.createEnhancedToolResult(data, endpoint, `User Memory${params.path ? ` (${params.path})` : ''}`, false, additionalGuidance);
116
+ }
117
+ catch (error) {
118
+ return this.apiClient.createToolResult(`Error getting user memory: ${error instanceof Error ? error.message : String(error)}`, true);
119
+ }
120
+ }
121
+ async handleAuthSignin(params) {
122
+ try {
123
+ const data = await this.apiClient.makeApiCall('/auth/signin', {
124
+ method: 'POST',
125
+ body: JSON.stringify({ email: params.email, password: params.password }),
126
+ });
127
+ if (data.token) {
128
+ // Update the config with the new token - we need access to the config manager for this
129
+ // This will be handled in the registry
130
+ }
131
+ return this.apiClient.createToolResult(`Sign in successful!\nToken: ${data.token ? '[REDACTED]' : 'Not provided'}\nResponse: ${JSON.stringify({ ...data, token: data.token ? '[REDACTED]' : undefined }, null, 2)}`);
132
+ }
133
+ catch (error) {
134
+ return this.apiClient.createToolResult(`Sign in failed: ${error instanceof Error ? error.message : String(error)}`, true);
135
+ }
136
+ }
137
+ // Zod schemas for validation
138
+ static getSchemas() {
139
+ return {
140
+ getUserName: {},
141
+ getUserStats: {
142
+ interval: z.enum(['8', '180', '1440']).optional().describe('Interval: 8=1hr, 180=24hr, 1440=7days'),
143
+ },
144
+ getUserRooms: {
145
+ id: z.string().describe('User ID (can be found using find_user tool)'),
146
+ },
147
+ findUser: {
148
+ id: z.string().optional().describe('User ID'),
149
+ username: z.string().optional().describe('Username'),
150
+ },
151
+ getUserOverview: {
152
+ interval: z.enum(['8', '180', '1440']).optional().describe('Interval: 8=1hr, 180=24hr, 1440=7days'),
153
+ statName: z
154
+ .enum([
155
+ 'creepsLost',
156
+ 'creepsProduced',
157
+ 'energyConstruction',
158
+ 'energyControl',
159
+ 'energyCreeps',
160
+ 'energyHarvested',
161
+ ])
162
+ .optional()
163
+ .describe('Statistic name'),
164
+ },
165
+ executeConsoleCommand: {
166
+ expression: z.string().describe('Console expression to execute'),
167
+ },
168
+ getUserMemory: {
169
+ path: z.string().optional().describe('Memory path (e.g., flags.Flag1)'),
170
+ shard: z.string().optional().describe('Shard name (default: shard0)'),
171
+ },
172
+ authSignin: {
173
+ email: z.string().describe('Email or username'),
174
+ password: z.string().describe('Password'),
175
+ },
176
+ };
177
+ }
178
+ }
179
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/tools/user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}