@mikoto_zero/minigame-open-mcp 1.2.0-beta.8 → 1.2.1
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/README.md +266 -153
- package/dist/{auth → core/auth}/deviceFlow.d.ts +28 -2
- package/dist/core/auth/deviceFlow.d.ts.map +1 -0
- package/dist/{auth → core/auth}/deviceFlow.js +130 -12
- package/dist/core/auth/deviceFlow.js.map +1 -0
- package/dist/core/handlers/appHandlers.d.ts +9 -0
- package/dist/core/handlers/appHandlers.d.ts.map +1 -0
- package/dist/core/handlers/appHandlers.js +9 -0
- package/dist/core/handlers/appHandlers.js.map +1 -0
- package/dist/core/handlers/environmentHandlers.d.ts.map +1 -0
- package/dist/core/handlers/environmentHandlers.js +57 -0
- package/dist/core/handlers/environmentHandlers.js.map +1 -0
- package/dist/{network → core/network}/httpClient.d.ts +4 -0
- package/dist/core/network/httpClient.d.ts.map +1 -0
- package/dist/{network → core/network}/httpClient.js +66 -22
- package/dist/core/network/httpClient.js.map +1 -0
- package/dist/core/types/index.d.ts +96 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/utils/cache.d.ts.map +1 -0
- package/dist/core/utils/cache.js.map +1 -0
- package/dist/core/utils/docHelpers.d.ts +92 -0
- package/dist/core/utils/docHelpers.d.ts.map +1 -0
- package/dist/core/utils/docHelpers.js +138 -0
- package/dist/core/utils/docHelpers.js.map +1 -0
- package/dist/core/utils/logger.d.ts +102 -0
- package/dist/core/utils/logger.d.ts.map +1 -0
- package/dist/core/utils/logger.js +353 -0
- package/dist/core/utils/logger.js.map +1 -0
- package/dist/features/app/api.d.ts +144 -0
- package/dist/features/app/api.d.ts.map +1 -0
- package/dist/features/app/api.js +231 -0
- package/dist/features/app/api.js.map +1 -0
- package/dist/{handlers/appHandlers.d.ts → features/app/handlers.d.ts} +9 -7
- package/dist/features/app/handlers.d.ts.map +1 -0
- package/dist/{handlers/appHandlers.js → features/app/handlers.js} +46 -2
- package/dist/{handlers/appHandlers.js.map → features/app/handlers.js.map} +1 -1
- package/dist/features/app/index.d.ts +10 -0
- package/dist/features/app/index.d.ts.map +1 -0
- package/dist/features/app/index.js +14 -0
- package/dist/features/app/index.js.map +1 -0
- package/dist/features/app/tools.d.ts +11 -0
- package/dist/features/app/tools.d.ts.map +1 -0
- package/dist/features/app/tools.js +169 -0
- package/dist/features/app/tools.js.map +1 -0
- package/dist/features/h5Game/api.d.ts +20 -0
- package/dist/features/h5Game/api.d.ts.map +1 -0
- package/dist/features/h5Game/api.js +16 -0
- package/dist/features/h5Game/api.js.map +1 -0
- package/dist/features/h5Game/handlers.d.ts +49 -0
- package/dist/features/h5Game/handlers.d.ts.map +1 -0
- package/dist/features/h5Game/handlers.js +321 -0
- package/dist/features/h5Game/handlers.js.map +1 -0
- package/dist/features/h5Game/index.d.ts +7 -0
- package/dist/features/h5Game/index.d.ts.map +1 -0
- package/dist/features/h5Game/index.js +11 -0
- package/dist/features/h5Game/index.js.map +1 -0
- package/dist/features/h5Game/messages.d.ts +79 -0
- package/dist/features/h5Game/messages.d.ts.map +1 -0
- package/dist/features/h5Game/messages.js +141 -0
- package/dist/features/h5Game/messages.js.map +1 -0
- package/dist/features/h5Game/tools.d.ts +14 -0
- package/dist/features/h5Game/tools.d.ts.map +1 -0
- package/dist/features/h5Game/tools.js +181 -0
- package/dist/features/h5Game/tools.js.map +1 -0
- package/dist/features/h5Game/types.d.ts +113 -0
- package/dist/features/h5Game/types.d.ts.map +1 -0
- package/dist/features/h5Game/types.js +2 -0
- package/dist/features/h5Game/types.js.map +1 -0
- package/dist/{network/leaderboardApi.d.ts → features/leaderboard/api.d.ts} +1 -64
- package/dist/features/leaderboard/api.d.ts.map +1 -0
- package/dist/{network/leaderboardApi.js → features/leaderboard/api.js} +3 -151
- package/dist/features/leaderboard/api.js.map +1 -0
- package/dist/{tools/leaderboardTools.d.ts → features/leaderboard/docTools.d.ts} +6 -1
- package/dist/features/leaderboard/docTools.d.ts.map +1 -0
- package/dist/{tools/leaderboardTools.js → features/leaderboard/docTools.js} +125 -51
- package/dist/features/leaderboard/docTools.js.map +1 -0
- package/dist/features/leaderboard/docs.d.ts +11 -0
- package/dist/features/leaderboard/docs.d.ts.map +1 -0
- package/dist/{data/leaderboardDocs.js → features/leaderboard/docs.js} +5 -127
- package/dist/features/leaderboard/docs.js.map +1 -0
- package/dist/{handlers/leaderboardHandlers.d.ts → features/leaderboard/handlers.d.ts} +1 -1
- package/dist/features/leaderboard/handlers.d.ts.map +1 -0
- package/dist/{handlers/leaderboardHandlers.js → features/leaderboard/handlers.js} +37 -20
- package/dist/features/leaderboard/handlers.js.map +1 -0
- package/dist/features/leaderboard/index.d.ts +10 -0
- package/dist/features/leaderboard/index.d.ts.map +1 -0
- package/dist/features/leaderboard/index.js +27 -0
- package/dist/features/leaderboard/index.js.map +1 -0
- package/dist/features/leaderboard/resources.d.ts +11 -0
- package/dist/features/leaderboard/resources.d.ts.map +1 -0
- package/dist/features/leaderboard/resources.js +68 -0
- package/dist/features/leaderboard/resources.js.map +1 -0
- package/dist/features/leaderboard/tools.d.ts +11 -0
- package/dist/features/leaderboard/tools.d.ts.map +1 -0
- package/dist/features/leaderboard/tools.js +146 -0
- package/dist/features/leaderboard/tools.js.map +1 -0
- package/dist/server.js +366 -159
- package/dist/server.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +15 -0
- package/dist/version.js.map +1 -0
- package/package.json +17 -10
- package/dist/auth/deviceFlow.d.ts.map +0 -1
- package/dist/auth/deviceFlow.js.map +0 -1
- package/dist/config/promptDefinitions.d.ts +0 -19
- package/dist/config/promptDefinitions.d.ts.map +0 -1
- package/dist/config/promptDefinitions.js +0 -28
- package/dist/config/promptDefinitions.js.map +0 -1
- package/dist/config/resourceDefinitions.d.ts +0 -19
- package/dist/config/resourceDefinitions.d.ts.map +0 -1
- package/dist/config/resourceDefinitions.js +0 -93
- package/dist/config/resourceDefinitions.js.map +0 -1
- package/dist/config/toolDefinitions.d.ts +0 -10
- package/dist/config/toolDefinitions.d.ts.map +0 -1
- package/dist/config/toolDefinitions.js +0 -250
- package/dist/config/toolDefinitions.js.map +0 -1
- package/dist/data/leaderboardDocs.d.ts +0 -37
- package/dist/data/leaderboardDocs.d.ts.map +0 -1
- package/dist/data/leaderboardDocs.js.map +0 -1
- package/dist/handlers/appHandlers.d.ts.map +0 -1
- package/dist/handlers/environmentHandlers.d.ts.map +0 -1
- package/dist/handlers/environmentHandlers.js +0 -21
- package/dist/handlers/environmentHandlers.js.map +0 -1
- package/dist/handlers/leaderboardHandlers.d.ts.map +0 -1
- package/dist/handlers/leaderboardHandlers.js.map +0 -1
- package/dist/handlers/promptHandlers.d.ts +0 -26
- package/dist/handlers/promptHandlers.d.ts.map +0 -1
- package/dist/handlers/promptHandlers.js +0 -336
- package/dist/handlers/promptHandlers.js.map +0 -1
- package/dist/network/httpClient.d.ts.map +0 -1
- package/dist/network/httpClient.js.map +0 -1
- package/dist/network/leaderboardApi.d.ts.map +0 -1
- package/dist/network/leaderboardApi.js.map +0 -1
- package/dist/tools/leaderboardTools.d.ts.map +0 -1
- package/dist/tools/leaderboardTools.js.map +0 -1
- package/dist/types/index.d.ts +0 -18
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -45
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -192
- package/dist/utils/logger.js.map +0 -1
- /package/dist/{handlers → core/handlers}/environmentHandlers.d.ts +0 -0
- /package/dist/{types → core/types}/index.js +0 -0
- /package/dist/{utils → core/utils}/cache.d.ts +0 -0
- /package/dist/{utils → core/utils}/cache.js +0 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP-compliant Logger for TapTap Minigame MCP Server
|
|
3
|
+
* Supports RFC 5424 log levels and dual output mode (stderr + MCP notifications)
|
|
4
|
+
*/
|
|
5
|
+
import process from 'node:process';
|
|
6
|
+
/**
|
|
7
|
+
* Log level priorities (lower number = higher severity)
|
|
8
|
+
*/
|
|
9
|
+
const LOG_LEVEL_PRIORITY = {
|
|
10
|
+
'emergency': 0,
|
|
11
|
+
'alert': 1,
|
|
12
|
+
'critical': 2,
|
|
13
|
+
'error': 3,
|
|
14
|
+
'warning': 4,
|
|
15
|
+
'notice': 5,
|
|
16
|
+
'info': 6,
|
|
17
|
+
'debug': 7,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Check if verbose logging is enabled
|
|
21
|
+
*/
|
|
22
|
+
function isVerboseEnabled() {
|
|
23
|
+
return process.env.TDS_MCP_VERBOSE === 'true' || process.env.TDS_MCP_VERBOSE === '1';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Format object for logging
|
|
27
|
+
*/
|
|
28
|
+
function formatObject(obj) {
|
|
29
|
+
try {
|
|
30
|
+
return JSON.stringify(obj, null, 2);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return String(obj);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get current timestamp
|
|
38
|
+
*/
|
|
39
|
+
function getTimestamp() {
|
|
40
|
+
return new Date().toISOString();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Sanitize sensitive data from objects
|
|
44
|
+
*/
|
|
45
|
+
function sanitizeData(data) {
|
|
46
|
+
if (!data || typeof data !== 'object') {
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
const sensitiveKeys = ['password', 'token', 'secret', 'key', 'authorization', 'auth'];
|
|
50
|
+
const sanitized = Array.isArray(data) ? [...data] : { ...data };
|
|
51
|
+
for (const key in sanitized) {
|
|
52
|
+
const lowerKey = key.toLowerCase();
|
|
53
|
+
if (sensitiveKeys.some(sk => lowerKey.includes(sk))) {
|
|
54
|
+
sanitized[key] = '***REDACTED***';
|
|
55
|
+
}
|
|
56
|
+
else if (typeof sanitized[key] === 'object' && sanitized[key] !== null) {
|
|
57
|
+
sanitized[key] = sanitizeData(sanitized[key]);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return sanitized;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* MCP-compliant Logger class
|
|
64
|
+
*/
|
|
65
|
+
export class Logger {
|
|
66
|
+
constructor() {
|
|
67
|
+
this.currentLevel = 'info';
|
|
68
|
+
this.verbose = isVerboseEnabled();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Initialize logger with MCP server instance
|
|
72
|
+
*/
|
|
73
|
+
initialize(server, transport) {
|
|
74
|
+
this.server = server;
|
|
75
|
+
this.transport = transport;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Set log level (implements MCP logging/setLevel)
|
|
79
|
+
*/
|
|
80
|
+
setLevel(level) {
|
|
81
|
+
this.currentLevel = level;
|
|
82
|
+
if (this.verbose) {
|
|
83
|
+
process.stderr.write(`[${getTimestamp()}] [LOGGER] Log level set to: ${level}\n`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get current log level
|
|
88
|
+
*/
|
|
89
|
+
getLevel() {
|
|
90
|
+
return this.currentLevel;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Check if a message should be logged based on current level
|
|
94
|
+
*/
|
|
95
|
+
shouldLog(messageLevel) {
|
|
96
|
+
return LOG_LEVEL_PRIORITY[messageLevel] <= LOG_LEVEL_PRIORITY[this.currentLevel];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Core logging method with dual output
|
|
100
|
+
* Pure dual-write: simple stderr + MCP notification
|
|
101
|
+
*/
|
|
102
|
+
async log(level, loggerName, message, data) {
|
|
103
|
+
// Check if we should log this level
|
|
104
|
+
if (!this.shouldLog(level)) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const timestamp = getTimestamp();
|
|
108
|
+
const sanitized = data ? sanitizeData(data) : undefined;
|
|
109
|
+
// Output 1: Simple stderr (for local debugging)
|
|
110
|
+
if (this.verbose) {
|
|
111
|
+
process.stderr.write(`[${timestamp}] [${level.toUpperCase()}] [${loggerName}] ${message}\n`);
|
|
112
|
+
if (sanitized !== undefined) {
|
|
113
|
+
process.stderr.write(`${formatObject(sanitized)}\n`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Output 2: MCP notifications (for client)
|
|
117
|
+
if (this.server) {
|
|
118
|
+
try {
|
|
119
|
+
await this.server.notification({
|
|
120
|
+
method: 'notifications/message',
|
|
121
|
+
params: {
|
|
122
|
+
level,
|
|
123
|
+
logger: loggerName,
|
|
124
|
+
data: sanitized !== undefined
|
|
125
|
+
? { message, timestamp, ...sanitized }
|
|
126
|
+
: { message, timestamp }
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
// Silently ignore notification errors to prevent logging loops
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Log debug message
|
|
137
|
+
*/
|
|
138
|
+
async debug(message, data, loggerName = 'server') {
|
|
139
|
+
await this.log('debug', loggerName, message, data);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Log info message
|
|
143
|
+
*/
|
|
144
|
+
async info(message, data, loggerName = 'server') {
|
|
145
|
+
await this.log('info', loggerName, message, data);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Log notice message
|
|
149
|
+
*/
|
|
150
|
+
async notice(message, data, loggerName = 'server') {
|
|
151
|
+
await this.log('notice', loggerName, message, data);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Log warning message
|
|
155
|
+
*/
|
|
156
|
+
async warning(message, data, loggerName = 'server') {
|
|
157
|
+
await this.log('warning', loggerName, message, data);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Log error message
|
|
161
|
+
*/
|
|
162
|
+
async error(message, error, loggerName = 'server') {
|
|
163
|
+
const data = error instanceof Error
|
|
164
|
+
? { error: error.message, stack: error.stack }
|
|
165
|
+
: { error };
|
|
166
|
+
await this.log('error', loggerName, message, data);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Log critical message
|
|
170
|
+
*/
|
|
171
|
+
async critical(message, data, loggerName = 'server') {
|
|
172
|
+
await this.log('critical', loggerName, message, data);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Log alert message
|
|
176
|
+
*/
|
|
177
|
+
async alert(message, data, loggerName = 'server') {
|
|
178
|
+
await this.log('alert', loggerName, message, data);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Log emergency message
|
|
182
|
+
*/
|
|
183
|
+
async emergency(message, data, loggerName = 'server') {
|
|
184
|
+
await this.log('emergency', loggerName, message, data);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Log tool call with input arguments
|
|
188
|
+
*/
|
|
189
|
+
async logToolCall(toolName, args) {
|
|
190
|
+
const sanitizedArgs = sanitizeData(args);
|
|
191
|
+
// Context: Opening border (stderr only)
|
|
192
|
+
if (this.verbose) {
|
|
193
|
+
process.stderr.write(`\n${'='.repeat(80)}\n`);
|
|
194
|
+
}
|
|
195
|
+
// Key info: Tool call (dual output: stderr + MCP notification)
|
|
196
|
+
await this.log('info', 'tools', `Tool called: ${toolName}`, { tool: toolName, args: sanitizedArgs });
|
|
197
|
+
// Context: Input details + closing border (stderr only)
|
|
198
|
+
if (this.verbose) {
|
|
199
|
+
process.stderr.write(`📥 Input:\n${formatObject(sanitizedArgs)}\n`);
|
|
200
|
+
process.stderr.write(`${'='.repeat(80)}\n\n`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Log tool response with output
|
|
205
|
+
*/
|
|
206
|
+
async logToolResponse(toolName, output, success = true) {
|
|
207
|
+
const truncatedOutput = typeof output === 'string'
|
|
208
|
+
? output.substring(0, 200)
|
|
209
|
+
: output;
|
|
210
|
+
// Context: Opening border (stderr only)
|
|
211
|
+
if (this.verbose) {
|
|
212
|
+
process.stderr.write(`\n${'-'.repeat(80)}\n`);
|
|
213
|
+
}
|
|
214
|
+
// Key info: Tool response (dual output: stderr + MCP notification)
|
|
215
|
+
await this.log(success ? 'info' : 'error', 'tools', `Tool ${success ? 'completed' : 'failed'}: ${toolName}`, { tool: toolName, success, output: truncatedOutput });
|
|
216
|
+
// Context: Output details + closing border (stderr only)
|
|
217
|
+
if (this.verbose) {
|
|
218
|
+
const displayOutput = typeof output === 'string'
|
|
219
|
+
? output.substring(0, 500) + (output.length > 500 ? '...(truncated)' : '')
|
|
220
|
+
: formatObject(output);
|
|
221
|
+
process.stderr.write(`📤 Output:\n${displayOutput}\n`);
|
|
222
|
+
process.stderr.write(`${'='.repeat(80)}\n\n`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Log HTTP request
|
|
227
|
+
*/
|
|
228
|
+
async logRequest(method, url, headers, body) {
|
|
229
|
+
// Sanitize sensitive headers
|
|
230
|
+
const safeHeaders = { ...headers };
|
|
231
|
+
if (safeHeaders['Authorization']) {
|
|
232
|
+
const authHeader = safeHeaders['Authorization'];
|
|
233
|
+
safeHeaders['Authorization'] = authHeader.replace(/mac="[^"]+"/g, 'mac="***REDACTED***"');
|
|
234
|
+
}
|
|
235
|
+
if (safeHeaders['X-Tap-Sign']) {
|
|
236
|
+
safeHeaders['X-Tap-Sign'] = '***REDACTED***';
|
|
237
|
+
}
|
|
238
|
+
const sanitizedBody = body ? sanitizeData(body) : undefined;
|
|
239
|
+
// Context: Opening border + method/url (stderr only)
|
|
240
|
+
if (this.verbose) {
|
|
241
|
+
process.stderr.write(`\n${'='.repeat(100)}\n`);
|
|
242
|
+
process.stderr.write(`📤 Method: ${method}\n`);
|
|
243
|
+
process.stderr.write(`📤 URL: ${url}\n`);
|
|
244
|
+
process.stderr.write(`\n`);
|
|
245
|
+
}
|
|
246
|
+
// Key info: HTTP request summary (dual output: stderr + MCP notification)
|
|
247
|
+
await this.log('debug', 'http', `HTTP ${method} ${url}`, { method, url, headers: safeHeaders, body: sanitizedBody });
|
|
248
|
+
// Context: Headers + body details (stderr only)
|
|
249
|
+
if (this.verbose) {
|
|
250
|
+
if (safeHeaders['Authorization']) {
|
|
251
|
+
process.stderr.write(`🔐 Authorization:\n${safeHeaders['Authorization']}\n\n`);
|
|
252
|
+
}
|
|
253
|
+
process.stderr.write(`📋 Headers (${Object.keys(headers).length} total):\n`);
|
|
254
|
+
process.stderr.write(`${formatObject(safeHeaders)}\n`);
|
|
255
|
+
if (body) {
|
|
256
|
+
try {
|
|
257
|
+
const parsedBody = JSON.parse(body);
|
|
258
|
+
process.stderr.write(`\n📦 Request Body (JSON):\n`);
|
|
259
|
+
process.stderr.write(`${formatObject(sanitizeData(parsedBody))}\n`);
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
process.stderr.write(`\n📦 Request Body (Raw):\n`);
|
|
263
|
+
process.stderr.write(`${body}\n`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
process.stderr.write(`\n📦 Request Body: (empty)\n`);
|
|
268
|
+
}
|
|
269
|
+
process.stderr.write(`${'='.repeat(100)}\n\n`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Log HTTP response
|
|
274
|
+
*/
|
|
275
|
+
async logResponse(method, url, status, statusText, body, success = true, responseHeaders) {
|
|
276
|
+
const sanitizedBody = sanitizeData(body);
|
|
277
|
+
// Context: Opening border + method/url/status (stderr only)
|
|
278
|
+
if (this.verbose) {
|
|
279
|
+
process.stderr.write(`\n${'-'.repeat(100)}\n`);
|
|
280
|
+
process.stderr.write(`📥 Method: ${method}\n`);
|
|
281
|
+
process.stderr.write(`📥 URL: ${url}\n`);
|
|
282
|
+
process.stderr.write(`📥 Status: ${status} ${statusText}\n`);
|
|
283
|
+
process.stderr.write(`\n`);
|
|
284
|
+
}
|
|
285
|
+
// Key info: HTTP response summary (dual output: stderr + MCP notification)
|
|
286
|
+
await this.log(success ? 'debug' : 'error', 'http', `HTTP ${method} ${url} - ${status} ${statusText}`, { method, url, status, statusText, body: sanitizedBody, headers: responseHeaders });
|
|
287
|
+
// Context: Headers + body details (stderr only)
|
|
288
|
+
if (this.verbose) {
|
|
289
|
+
if (responseHeaders && Object.keys(responseHeaders).length > 0) {
|
|
290
|
+
process.stderr.write(`📋 Response Headers (${Object.keys(responseHeaders).length} total):\n`);
|
|
291
|
+
process.stderr.write(`${formatObject(responseHeaders)}\n\n`);
|
|
292
|
+
}
|
|
293
|
+
if (typeof body === 'string') {
|
|
294
|
+
try {
|
|
295
|
+
const parsedBody = JSON.parse(body);
|
|
296
|
+
process.stderr.write(`📦 Response Body (JSON):\n`);
|
|
297
|
+
process.stderr.write(`${formatObject(sanitizeData(parsedBody))}\n`);
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
process.stderr.write(`📦 Response Body (Text):\n`);
|
|
301
|
+
process.stderr.write(`${body}\n`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
else if (body !== undefined && body !== null) {
|
|
305
|
+
process.stderr.write(`📦 Response Body (Object):\n`);
|
|
306
|
+
process.stderr.write(`${formatObject(sanitizedBody)}\n`);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
process.stderr.write(`📦 Response Body: (empty)\n`);
|
|
310
|
+
}
|
|
311
|
+
process.stderr.write(`${'='.repeat(100)}\n\n`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Log client connection event
|
|
316
|
+
*/
|
|
317
|
+
async logClientConnection(sessionId) {
|
|
318
|
+
// Context: Connection event (stderr only)
|
|
319
|
+
if (this.verbose) {
|
|
320
|
+
process.stderr.write(`\n${'='.repeat(80)}\n`);
|
|
321
|
+
process.stderr.write(`🔌 Client Connected\n`);
|
|
322
|
+
process.stderr.write(`Session ID: ${sessionId}\n`);
|
|
323
|
+
process.stderr.write(`Timestamp: ${getTimestamp()}\n`);
|
|
324
|
+
process.stderr.write(`${'='.repeat(80)}\n\n`);
|
|
325
|
+
}
|
|
326
|
+
// Key info: Client connection (dual output: stderr + MCP notification)
|
|
327
|
+
await this.log('info', 'connection', 'Client connected', { sessionId, event: 'client_connected' });
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Log client disconnection event
|
|
331
|
+
*/
|
|
332
|
+
async logClientDisconnection(sessionId) {
|
|
333
|
+
// Context: Disconnection event (stderr only)
|
|
334
|
+
if (this.verbose) {
|
|
335
|
+
process.stderr.write(`\n${'-'.repeat(80)}\n`);
|
|
336
|
+
process.stderr.write(`🔌 Client Disconnected\n`);
|
|
337
|
+
process.stderr.write(`Session ID: ${sessionId}\n`);
|
|
338
|
+
process.stderr.write(`Timestamp: ${getTimestamp()}\n`);
|
|
339
|
+
process.stderr.write(`${'='.repeat(80)}\n\n`);
|
|
340
|
+
}
|
|
341
|
+
// Key info: Client disconnection (dual output: stderr + MCP notification)
|
|
342
|
+
await this.log('info', 'connection', 'Client disconnected', { sessionId, event: 'client_disconnected' });
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Check if verbose mode is enabled
|
|
346
|
+
*/
|
|
347
|
+
isVerbose() {
|
|
348
|
+
return this.verbose;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
// Export singleton instance
|
|
352
|
+
export const logger = new Logger();
|
|
353
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/core/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Management API
|
|
3
|
+
* Handles developer and app operations
|
|
4
|
+
*/
|
|
5
|
+
import { AppCacheInfo } from '../../core/utils/cache.js';
|
|
6
|
+
/**
|
|
7
|
+
* Craft/App item in developer list
|
|
8
|
+
*/
|
|
9
|
+
export interface CraftItem {
|
|
10
|
+
app_id: number;
|
|
11
|
+
app_title: string;
|
|
12
|
+
miniapp_id?: string;
|
|
13
|
+
category?: string;
|
|
14
|
+
is_published?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Developer with levels/apps list
|
|
18
|
+
*/
|
|
19
|
+
export interface DeveloperCraftList {
|
|
20
|
+
developer_id: number;
|
|
21
|
+
developer_name: string;
|
|
22
|
+
levels: CraftItem[];
|
|
23
|
+
crafts?: CraftItem[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Level list response
|
|
27
|
+
*/
|
|
28
|
+
export interface LevelListResponse {
|
|
29
|
+
list: DeveloperCraftList[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Selection required error - thrown when multiple options exist
|
|
33
|
+
*/
|
|
34
|
+
export declare class SelectionRequiredError extends Error {
|
|
35
|
+
readonly developers: DeveloperCraftList[];
|
|
36
|
+
constructor(message: string, developers: DeveloperCraftList[]);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get app/level list information for current user
|
|
40
|
+
* Returns all developers and their apps/games
|
|
41
|
+
* @param projectPath - Optional project path for cache lookup
|
|
42
|
+
* @param autoSelect - If true, automatically selects first option. If false, throws SelectionRequiredError when multiple options exist
|
|
43
|
+
* @returns App information including developer_id and app_id
|
|
44
|
+
* @throws SelectionRequiredError when multiple developers/apps exist and autoSelect is false
|
|
45
|
+
*/
|
|
46
|
+
export declare function getAppInfo(projectPath?: string, autoSelect?: boolean): Promise<AppCacheInfo>;
|
|
47
|
+
/**
|
|
48
|
+
* Get or fetch app information with automatic caching
|
|
49
|
+
* @param projectPath - Optional project path
|
|
50
|
+
* @param autoSelect - If true, automatically selects first option. If false, throws SelectionRequiredError when multiple options exist
|
|
51
|
+
* @returns App information from cache or API
|
|
52
|
+
* @throws SelectionRequiredError when multiple developers/apps exist and autoSelect is false
|
|
53
|
+
*/
|
|
54
|
+
export declare function ensureAppInfo(projectPath?: string, autoSelect?: boolean): Promise<AppCacheInfo>;
|
|
55
|
+
/**
|
|
56
|
+
* Select and cache a specific developer and app
|
|
57
|
+
* @param developerId - Developer ID to select
|
|
58
|
+
* @param appId - App ID to select
|
|
59
|
+
* @param projectPath - Optional project path for cache storage
|
|
60
|
+
* @returns Selected app information
|
|
61
|
+
*/
|
|
62
|
+
export declare function selectApp(developerId: number, appId: number, projectPath?: string): Promise<AppCacheInfo>;
|
|
63
|
+
/**
|
|
64
|
+
* Get all developers and apps for selection
|
|
65
|
+
* @returns List of all developers and their apps
|
|
66
|
+
*/
|
|
67
|
+
export declare function getAllDevelopersAndApps(): Promise<LevelListResponse>;
|
|
68
|
+
/**
|
|
69
|
+
* Create Developer Response
|
|
70
|
+
*/
|
|
71
|
+
export interface CreateDeveloperResponse {
|
|
72
|
+
developer_name: string;
|
|
73
|
+
developer_id: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create unverified developer
|
|
77
|
+
*/
|
|
78
|
+
export declare function createDeveloper(): Promise<CreateDeveloperResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* Create App Response
|
|
81
|
+
*/
|
|
82
|
+
export interface CreateAppResponse {
|
|
83
|
+
app_id: number;
|
|
84
|
+
app_title: string;
|
|
85
|
+
display_app_title: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Create a new app/game
|
|
89
|
+
*/
|
|
90
|
+
export declare function createAppForDeveloper(developer_id: number, title?: string, genre?: string): Promise<CreateAppResponse>;
|
|
91
|
+
/**
|
|
92
|
+
* Edit App Response
|
|
93
|
+
*/
|
|
94
|
+
export interface EditAppResponse {
|
|
95
|
+
app_title?: string;
|
|
96
|
+
display_app_title?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Edit app/game information
|
|
100
|
+
*/
|
|
101
|
+
export declare function editAppInfo(app_id: number, developer_id: number, package_id?: number, appName?: string, genre?: string, description?: string, chatting_label?: string, chatting_number?: string, screen_orientation?: number): Promise<EditAppResponse>;
|
|
102
|
+
/**
|
|
103
|
+
* App Status Response
|
|
104
|
+
*/
|
|
105
|
+
export interface AppStatusResponse {
|
|
106
|
+
review_status: number;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get app review status
|
|
110
|
+
*/
|
|
111
|
+
export declare function getAppStatus(app_id: number): Promise<AppStatusResponse>;
|
|
112
|
+
/**
|
|
113
|
+
* App Detail API Response
|
|
114
|
+
*/
|
|
115
|
+
export interface AppDetailAPIResponse {
|
|
116
|
+
level?: {
|
|
117
|
+
display_app_title?: string;
|
|
118
|
+
developer_id?: number;
|
|
119
|
+
developer_name?: string;
|
|
120
|
+
};
|
|
121
|
+
upload_level?: {
|
|
122
|
+
app_id: number;
|
|
123
|
+
form_data: {
|
|
124
|
+
info: {
|
|
125
|
+
title: string;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* App Detail
|
|
132
|
+
*/
|
|
133
|
+
export interface AppDetail {
|
|
134
|
+
appId: number;
|
|
135
|
+
appTitle: string;
|
|
136
|
+
displayAppTitle: string;
|
|
137
|
+
developerId: number;
|
|
138
|
+
developerName: string;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get app detail information
|
|
142
|
+
*/
|
|
143
|
+
export declare function getAppDetail(appId: number): Promise<AppDetail | undefined>;
|
|
144
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/features/app/api.ts"],"names":[],"mappings":"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"}
|