@creatoria/miniapp-mcp 0.1.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.
- package/README.md +469 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +144 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/defaults.d.ts +73 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +118 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/loader.d.ts +50 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +189 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/core/element-ref.d.ts +44 -0
- package/dist/core/element-ref.d.ts.map +1 -0
- package/dist/core/element-ref.js +213 -0
- package/dist/core/element-ref.js.map +1 -0
- package/dist/core/logger.d.ts +55 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +378 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/output.d.ts +21 -0
- package/dist/core/output.d.ts.map +1 -0
- package/dist/core/output.js +56 -0
- package/dist/core/output.js.map +1 -0
- package/dist/core/report-generator.d.ts +24 -0
- package/dist/core/report-generator.d.ts.map +1 -0
- package/dist/core/report-generator.js +212 -0
- package/dist/core/report-generator.js.map +1 -0
- package/dist/core/session.d.ts +83 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +306 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/timeout.d.ts +49 -0
- package/dist/core/timeout.d.ts.map +1 -0
- package/dist/core/timeout.js +67 -0
- package/dist/core/timeout.js.map +1 -0
- package/dist/core/tool-logger.d.ts +83 -0
- package/dist/core/tool-logger.d.ts.map +1 -0
- package/dist/core/tool-logger.js +453 -0
- package/dist/core/tool-logger.js.map +1 -0
- package/dist/core/validation.d.ts +39 -0
- package/dist/core/validation.d.ts.map +1 -0
- package/dist/core/validation.js +93 -0
- package/dist/core/validation.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +85 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/assert.d.ts +108 -0
- package/dist/tools/assert.d.ts.map +1 -0
- package/dist/tools/assert.js +291 -0
- package/dist/tools/assert.js.map +1 -0
- package/dist/tools/automator.d.ts +45 -0
- package/dist/tools/automator.d.ts.map +1 -0
- package/dist/tools/automator.js +186 -0
- package/dist/tools/automator.js.map +1 -0
- package/dist/tools/element.d.ts +253 -0
- package/dist/tools/element.d.ts.map +1 -0
- package/dist/tools/element.js +615 -0
- package/dist/tools/element.js.map +1 -0
- package/dist/tools/index.d.ts +97 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +1565 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/miniprogram.d.ts +79 -0
- package/dist/tools/miniprogram.d.ts.map +1 -0
- package/dist/tools/miniprogram.js +245 -0
- package/dist/tools/miniprogram.js.map +1 -0
- package/dist/tools/network.d.ts +65 -0
- package/dist/tools/network.d.ts.map +1 -0
- package/dist/tools/network.js +205 -0
- package/dist/tools/network.js.map +1 -0
- package/dist/tools/page.d.ts +108 -0
- package/dist/tools/page.d.ts.map +1 -0
- package/dist/tools/page.js +307 -0
- package/dist/tools/page.js.map +1 -0
- package/dist/tools/record.d.ts +86 -0
- package/dist/tools/record.d.ts.map +1 -0
- package/dist/tools/record.js +316 -0
- package/dist/tools/record.js.map +1 -0
- package/dist/tools/snapshot.d.ts +82 -0
- package/dist/tools/snapshot.d.ts.map +1 -0
- package/dist/tools/snapshot.js +258 -0
- package/dist/tools/snapshot.js.map +1 -0
- package/dist/types.d.ts +240 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/docs/SIMPLE_USAGE.md +210 -0
- package/docs/api/README.md +244 -0
- package/docs/api/assert.md +1015 -0
- package/docs/api/automator.md +345 -0
- package/docs/api/element.md +1454 -0
- package/docs/api/miniprogram.md +558 -0
- package/docs/api/network.md +883 -0
- package/docs/api/page.md +909 -0
- package/docs/api/record.md +963 -0
- package/docs/api/snapshot.md +792 -0
- package/docs/architecture.E-Docs.md +1359 -0
- package/docs/architecture.F1.md +720 -0
- package/docs/architecture.F2.md +871 -0
- package/docs/architecture.F3.md +905 -0
- package/docs/architecture.md +90 -0
- package/docs/charter.A1.align.yaml +170 -0
- package/docs/charter.A2.align.yaml +199 -0
- package/docs/charter.A3.align.yaml +242 -0
- package/docs/charter.A4.align.yaml +227 -0
- package/docs/charter.B1.align.yaml +179 -0
- package/docs/charter.B2.align.yaml +200 -0
- package/docs/charter.B3.align.yaml +200 -0
- package/docs/charter.B4.align.yaml +188 -0
- package/docs/charter.C1.align.yaml +190 -0
- package/docs/charter.C2.align.yaml +202 -0
- package/docs/charter.C3.align.yaml +211 -0
- package/docs/charter.C4.align.yaml +263 -0
- package/docs/charter.C5.align.yaml +220 -0
- package/docs/charter.D1.align.yaml +190 -0
- package/docs/charter.D2.align.yaml +234 -0
- package/docs/charter.D3.align.yaml +206 -0
- package/docs/charter.E-Docs.align.yaml +294 -0
- package/docs/charter.F1.align.yaml +193 -0
- package/docs/charter.F2.align.yaml +248 -0
- package/docs/charter.F3.align.yaml +287 -0
- package/docs/charter.G.align.yaml +174 -0
- package/docs/charter.align.yaml +111 -0
- package/docs/examples/session-report-usage.md +449 -0
- package/docs/maintenance.md +682 -0
- package/docs/playwright-mcp/350/260/203/347/240/224.md +53 -0
- package/docs/setup-guide.md +775 -0
- package/docs/tasks.A1.atomize.md +296 -0
- package/docs/tasks.A2.atomize.md +408 -0
- package/docs/tasks.A3.atomize.md +564 -0
- package/docs/tasks.A4.atomize.md +496 -0
- package/docs/tasks.B1.atomize.md +352 -0
- package/docs/tasks.B2.atomize.md +561 -0
- package/docs/tasks.B3.atomize.md +508 -0
- package/docs/tasks.B4.atomize.md +504 -0
- package/docs/tasks.C1.atomize.md +540 -0
- package/docs/tasks.C2.atomize.md +665 -0
- package/docs/tasks.C3.atomize.md +745 -0
- package/docs/tasks.C4.atomize.md +908 -0
- package/docs/tasks.C5.atomize.md +755 -0
- package/docs/tasks.D1.atomize.md +547 -0
- package/docs/tasks.D2.atomize.md +619 -0
- package/docs/tasks.D3.atomize.md +790 -0
- package/docs/tasks.E-Docs.atomize.md +1204 -0
- package/docs/tasks.atomize.md +189 -0
- package/docs/troubleshooting.md +855 -0
- package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +155 -0
- package/docs//345/274/200/345/217/221/344/273/273/345/212/241/350/256/241/345/210/222.md +110 -0
- package/docs//345/276/256/344/277/241/345/260/217/347/250/213/345/272/217/350/207/252/345/212/250/345/214/226API/345/256/214/346/225/264/346/226/207/346/241/243.md +894 -0
- package/docs//345/276/256/344/277/241/345/260/217/347/250/213/345/272/217/350/207/252/345/212/250/345/214/226/345/256/214/346/225/264/346/223/215/344/275/234/346/211/213/345/206/214.md +1885 -0
- package/docs//346/216/245/345/217/243/346/226/271/346/241/210.md +565 -0
- package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +380 -0
- package/package.json +87 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snapshot tools for MCP server
|
|
3
|
+
* Provides utilities for capturing page and application state snapshots
|
|
4
|
+
*/
|
|
5
|
+
import * as miniprogramTools from './miniprogram.js';
|
|
6
|
+
import * as pageTools from './page.js';
|
|
7
|
+
/**
|
|
8
|
+
* Capture a complete page snapshot (data + screenshot)
|
|
9
|
+
* Includes page data, page info, and screenshot
|
|
10
|
+
*/
|
|
11
|
+
export async function snapshotPage(session, args) {
|
|
12
|
+
const { pagePath, filename, includeScreenshot = true, fullPage = false } = args;
|
|
13
|
+
const logger = session.logger;
|
|
14
|
+
try {
|
|
15
|
+
if (!session.miniProgram) {
|
|
16
|
+
throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
|
|
17
|
+
}
|
|
18
|
+
if (!session.outputManager) {
|
|
19
|
+
throw new Error('OutputManager not available');
|
|
20
|
+
}
|
|
21
|
+
logger?.info('Capturing page snapshot', { pagePath, includeScreenshot });
|
|
22
|
+
// Validate filename if provided (security: prevent path traversal)
|
|
23
|
+
if (filename) {
|
|
24
|
+
const { validateFilename } = await import('../core/validation.js');
|
|
25
|
+
try {
|
|
26
|
+
validateFilename(filename, ['json']);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
30
|
+
throw new Error(`Invalid filename: ${errorMessage}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Get current page from session or specified path
|
|
34
|
+
const pageStackResult = await miniprogramTools.getPageStack(session);
|
|
35
|
+
const currentPageInfo = pageStackResult.pages[pageStackResult.pages.length - 1];
|
|
36
|
+
if (!currentPageInfo) {
|
|
37
|
+
throw new Error('No active page found');
|
|
38
|
+
}
|
|
39
|
+
// Get page data
|
|
40
|
+
const pageDataResult = await pageTools.getData(session, { pagePath });
|
|
41
|
+
// Build snapshot data
|
|
42
|
+
const timestamp = new Date().toISOString();
|
|
43
|
+
const snapshotData = {
|
|
44
|
+
timestamp,
|
|
45
|
+
pagePath: currentPageInfo.path,
|
|
46
|
+
pageData: pageDataResult.data,
|
|
47
|
+
pageQuery: currentPageInfo.query,
|
|
48
|
+
};
|
|
49
|
+
// Save snapshot JSON
|
|
50
|
+
const outputManager = session.outputManager;
|
|
51
|
+
await outputManager.ensureOutputDir();
|
|
52
|
+
const snapshotFilename = filename || outputManager.generateFilename('snapshot', 'json');
|
|
53
|
+
const snapshotPath = await outputManager.writeFile(snapshotFilename, Buffer.from(JSON.stringify(snapshotData, null, 2)));
|
|
54
|
+
logger?.info('Page snapshot data saved', { path: snapshotPath });
|
|
55
|
+
// Take screenshot if requested
|
|
56
|
+
let screenshotPath;
|
|
57
|
+
if (includeScreenshot) {
|
|
58
|
+
const screenshotFilename = snapshotFilename.replace('.json', '.png');
|
|
59
|
+
const screenshotResult = await miniprogramTools.screenshot(session, {
|
|
60
|
+
filename: screenshotFilename,
|
|
61
|
+
fullPage,
|
|
62
|
+
});
|
|
63
|
+
screenshotPath = screenshotResult.path;
|
|
64
|
+
logger?.info('Page screenshot saved', { path: screenshotPath });
|
|
65
|
+
}
|
|
66
|
+
logger?.info('Page snapshot completed', { snapshotPath, screenshotPath });
|
|
67
|
+
return {
|
|
68
|
+
success: true,
|
|
69
|
+
message: 'Page snapshot captured successfully',
|
|
70
|
+
snapshotPath,
|
|
71
|
+
screenshotPath,
|
|
72
|
+
data: snapshotData,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
77
|
+
logger?.error('Page snapshot failed', {
|
|
78
|
+
error: errorMessage,
|
|
79
|
+
pagePath,
|
|
80
|
+
});
|
|
81
|
+
throw new Error(`Page snapshot failed: ${errorMessage}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Capture a complete application snapshot
|
|
86
|
+
* Includes system info, page stack, current page data, and screenshot
|
|
87
|
+
*/
|
|
88
|
+
export async function snapshotFull(session, args) {
|
|
89
|
+
const { filename, includeScreenshot = true, fullPage = false } = args;
|
|
90
|
+
const logger = session.logger;
|
|
91
|
+
try {
|
|
92
|
+
if (!session.miniProgram) {
|
|
93
|
+
throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
|
|
94
|
+
}
|
|
95
|
+
if (!session.outputManager) {
|
|
96
|
+
throw new Error('OutputManager not available');
|
|
97
|
+
}
|
|
98
|
+
logger?.info('Capturing full application snapshot', { includeScreenshot });
|
|
99
|
+
// Validate filename if provided (security: prevent path traversal)
|
|
100
|
+
if (filename) {
|
|
101
|
+
const { validateFilename } = await import('../core/validation.js');
|
|
102
|
+
try {
|
|
103
|
+
validateFilename(filename, ['json']);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
107
|
+
throw new Error(`Invalid filename: ${errorMessage}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Get system info
|
|
111
|
+
const systemInfoResult = await miniprogramTools.getSystemInfo(session);
|
|
112
|
+
// Get page stack
|
|
113
|
+
const pageStackResult = await miniprogramTools.getPageStack(session);
|
|
114
|
+
const currentPageInfo = pageStackResult.pages[pageStackResult.pages.length - 1];
|
|
115
|
+
if (!currentPageInfo) {
|
|
116
|
+
throw new Error('No active page found');
|
|
117
|
+
}
|
|
118
|
+
// Get current page data
|
|
119
|
+
const pageDataResult = await pageTools.getData(session, {});
|
|
120
|
+
// Build snapshot data
|
|
121
|
+
const timestamp = new Date().toISOString();
|
|
122
|
+
const snapshotData = {
|
|
123
|
+
timestamp,
|
|
124
|
+
systemInfo: systemInfoResult.systemInfo,
|
|
125
|
+
pageStack: pageStackResult.pages,
|
|
126
|
+
currentPage: {
|
|
127
|
+
path: currentPageInfo.path,
|
|
128
|
+
query: currentPageInfo.query,
|
|
129
|
+
data: pageDataResult.data,
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
// Save snapshot JSON
|
|
133
|
+
const outputManager = session.outputManager;
|
|
134
|
+
await outputManager.ensureOutputDir();
|
|
135
|
+
const snapshotFilename = filename || outputManager.generateFilename('snapshot', 'json');
|
|
136
|
+
const snapshotPath = await outputManager.writeFile(snapshotFilename, Buffer.from(JSON.stringify(snapshotData, null, 2)));
|
|
137
|
+
logger?.info('Application snapshot data saved', { path: snapshotPath });
|
|
138
|
+
// Take screenshot if requested
|
|
139
|
+
let screenshotPath;
|
|
140
|
+
if (includeScreenshot) {
|
|
141
|
+
const screenshotFilename = snapshotFilename.replace('.json', '.png');
|
|
142
|
+
const screenshotResult = await miniprogramTools.screenshot(session, {
|
|
143
|
+
filename: screenshotFilename,
|
|
144
|
+
fullPage,
|
|
145
|
+
});
|
|
146
|
+
screenshotPath = screenshotResult.path;
|
|
147
|
+
logger?.info('Application screenshot saved', { path: screenshotPath });
|
|
148
|
+
}
|
|
149
|
+
logger?.info('Full application snapshot completed', {
|
|
150
|
+
snapshotPath,
|
|
151
|
+
screenshotPath,
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
success: true,
|
|
155
|
+
message: 'Full application snapshot captured successfully',
|
|
156
|
+
snapshotPath,
|
|
157
|
+
screenshotPath,
|
|
158
|
+
data: snapshotData,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
163
|
+
logger?.error('Full application snapshot failed', {
|
|
164
|
+
error: errorMessage,
|
|
165
|
+
});
|
|
166
|
+
throw new Error(`Full application snapshot failed: ${errorMessage}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Capture an element snapshot (properties + screenshot)
|
|
171
|
+
* Includes element attributes, properties, size, and optional screenshot
|
|
172
|
+
*/
|
|
173
|
+
export async function snapshotElement(session, args) {
|
|
174
|
+
const { refId, filename, includeScreenshot = false } = args;
|
|
175
|
+
const logger = session.logger;
|
|
176
|
+
try {
|
|
177
|
+
if (!session.miniProgram) {
|
|
178
|
+
throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
|
|
179
|
+
}
|
|
180
|
+
if (!session.outputManager) {
|
|
181
|
+
throw new Error('OutputManager not available');
|
|
182
|
+
}
|
|
183
|
+
logger?.info('Capturing element snapshot', { refId, includeScreenshot });
|
|
184
|
+
// Validate filename if provided (security: prevent path traversal)
|
|
185
|
+
if (filename) {
|
|
186
|
+
const { validateFilename } = await import('../core/validation.js');
|
|
187
|
+
try {
|
|
188
|
+
validateFilename(filename, ['json']);
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
192
|
+
throw new Error(`Invalid filename: ${errorMessage}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Import element tools dynamically to avoid circular dependency
|
|
196
|
+
const elementTools = await import('./element.js');
|
|
197
|
+
// Get element text
|
|
198
|
+
let text;
|
|
199
|
+
try {
|
|
200
|
+
const textResult = await elementTools.getText(session, { refId });
|
|
201
|
+
text = textResult.text;
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// Element might not have text
|
|
205
|
+
text = undefined;
|
|
206
|
+
}
|
|
207
|
+
// Get element size
|
|
208
|
+
const sizeResult = await elementTools.getSize(session, { refId });
|
|
209
|
+
// Get element offset
|
|
210
|
+
const offsetResult = await elementTools.getOffset(session, { refId });
|
|
211
|
+
// Build snapshot data
|
|
212
|
+
const timestamp = new Date().toISOString();
|
|
213
|
+
const snapshotData = {
|
|
214
|
+
timestamp,
|
|
215
|
+
refId,
|
|
216
|
+
text,
|
|
217
|
+
attributes: {}, // We would need to know which attributes to get
|
|
218
|
+
size: sizeResult.size,
|
|
219
|
+
offset: offsetResult.offset,
|
|
220
|
+
};
|
|
221
|
+
// Save snapshot JSON
|
|
222
|
+
const outputManager = session.outputManager;
|
|
223
|
+
await outputManager.ensureOutputDir();
|
|
224
|
+
const snapshotFilename = filename || outputManager.generateFilename('snapshot', 'json');
|
|
225
|
+
const snapshotPath = await outputManager.writeFile(snapshotFilename, Buffer.from(JSON.stringify(snapshotData, null, 2)));
|
|
226
|
+
logger?.info('Element snapshot data saved', { path: snapshotPath });
|
|
227
|
+
// Take screenshot if requested
|
|
228
|
+
let screenshotPath;
|
|
229
|
+
if (includeScreenshot) {
|
|
230
|
+
const screenshotFilename = snapshotFilename.replace('.json', '.png');
|
|
231
|
+
const screenshotResult = await miniprogramTools.screenshot(session, {
|
|
232
|
+
filename: screenshotFilename,
|
|
233
|
+
});
|
|
234
|
+
screenshotPath = screenshotResult.path;
|
|
235
|
+
logger?.info('Element screenshot saved', { path: screenshotPath });
|
|
236
|
+
}
|
|
237
|
+
logger?.info('Element snapshot completed', {
|
|
238
|
+
snapshotPath,
|
|
239
|
+
screenshotPath,
|
|
240
|
+
});
|
|
241
|
+
return {
|
|
242
|
+
success: true,
|
|
243
|
+
message: 'Element snapshot captured successfully',
|
|
244
|
+
snapshotPath,
|
|
245
|
+
screenshotPath,
|
|
246
|
+
data: snapshotData,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
251
|
+
logger?.error('Element snapshot failed', {
|
|
252
|
+
error: errorMessage,
|
|
253
|
+
refId,
|
|
254
|
+
});
|
|
255
|
+
throw new Error(`Element snapshot failed: ${errorMessage}`);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core type definitions for creatoria-miniapp-mcp
|
|
3
|
+
*/
|
|
4
|
+
import type { ChildProcess } from 'child_process';
|
|
5
|
+
export type { MiniProgram, Page, Element, SystemInfo } from './types/miniprogram-automator.js';
|
|
6
|
+
export interface ServerConfig {
|
|
7
|
+
projectPath?: string;
|
|
8
|
+
cliPath?: string;
|
|
9
|
+
port?: number;
|
|
10
|
+
autoPort?: number;
|
|
11
|
+
capabilities?: string[];
|
|
12
|
+
outputDir?: string;
|
|
13
|
+
timeout?: number;
|
|
14
|
+
sessionTimeout?: number;
|
|
15
|
+
logLevel?: LogLevel;
|
|
16
|
+
enableFileLog?: boolean;
|
|
17
|
+
logBufferSize?: number;
|
|
18
|
+
logFlushInterval?: number;
|
|
19
|
+
enableSessionReport?: boolean;
|
|
20
|
+
enableFailureSnapshot?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Cached element with page metadata for invalidation
|
|
24
|
+
*/
|
|
25
|
+
export interface CachedElement {
|
|
26
|
+
element: any;
|
|
27
|
+
pagePath: string;
|
|
28
|
+
cachedAt: Date;
|
|
29
|
+
}
|
|
30
|
+
export interface SessionState {
|
|
31
|
+
sessionId: string;
|
|
32
|
+
miniProgram?: any;
|
|
33
|
+
ideProcess?: ChildProcess;
|
|
34
|
+
pages: any[];
|
|
35
|
+
elements: Map<string, CachedElement>;
|
|
36
|
+
currentPagePath?: string;
|
|
37
|
+
outputDir: string;
|
|
38
|
+
createdAt: Date;
|
|
39
|
+
lastActivity: Date;
|
|
40
|
+
config?: SessionConfig;
|
|
41
|
+
logger?: Logger;
|
|
42
|
+
loggerConfig?: LoggerConfig;
|
|
43
|
+
outputManager?: OutputManager;
|
|
44
|
+
recording?: RecordingState;
|
|
45
|
+
reportData?: ReportData;
|
|
46
|
+
}
|
|
47
|
+
export interface SessionConfig {
|
|
48
|
+
projectPath?: string;
|
|
49
|
+
cliPath?: string;
|
|
50
|
+
port?: number;
|
|
51
|
+
/** Global timeout for all operations (ms). Defaults to 30000 (30s) */
|
|
52
|
+
timeout?: number;
|
|
53
|
+
/** Timeout for evaluate operations (ms). Defaults to 5000 (5s) */
|
|
54
|
+
evaluateTimeout?: number;
|
|
55
|
+
/** Timeout for launch operations (ms). Defaults to 60000 (60s) */
|
|
56
|
+
launchTimeout?: number;
|
|
57
|
+
/** Timeout for screenshot operations (ms). Defaults to 10000 (10s) */
|
|
58
|
+
screenshotTimeout?: number;
|
|
59
|
+
}
|
|
60
|
+
export interface SessionMetrics {
|
|
61
|
+
totalSessions: number;
|
|
62
|
+
activeSessions: number;
|
|
63
|
+
oldestSession?: {
|
|
64
|
+
sessionId: string;
|
|
65
|
+
age: number;
|
|
66
|
+
};
|
|
67
|
+
totalElements: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Element reference input - supports multiple ways to locate elements
|
|
71
|
+
*/
|
|
72
|
+
export interface ElementRefInput {
|
|
73
|
+
refId?: string;
|
|
74
|
+
selector?: string;
|
|
75
|
+
xpath?: string;
|
|
76
|
+
index?: number;
|
|
77
|
+
pagePath?: string;
|
|
78
|
+
save?: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Resolved element result
|
|
82
|
+
*/
|
|
83
|
+
export interface ResolvedElement {
|
|
84
|
+
page: any;
|
|
85
|
+
element: any;
|
|
86
|
+
refId?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Log level
|
|
90
|
+
*/
|
|
91
|
+
export type LogLevel = 'info' | 'warn' | 'error' | 'debug';
|
|
92
|
+
/**
|
|
93
|
+
* Structured log entry
|
|
94
|
+
*/
|
|
95
|
+
export interface LogEntry {
|
|
96
|
+
timestamp: Date;
|
|
97
|
+
level: LogLevel;
|
|
98
|
+
message: string;
|
|
99
|
+
sessionId?: string;
|
|
100
|
+
toolName?: string;
|
|
101
|
+
context?: Record<string, any>;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Logger configuration
|
|
105
|
+
*/
|
|
106
|
+
export interface LoggerConfig {
|
|
107
|
+
level?: LogLevel;
|
|
108
|
+
enableFileLog?: boolean;
|
|
109
|
+
outputDir?: string;
|
|
110
|
+
bufferSize?: number;
|
|
111
|
+
flushInterval?: number;
|
|
112
|
+
enableFailureSnapshot?: boolean;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Logger interface for structured logging
|
|
116
|
+
*/
|
|
117
|
+
export interface Logger {
|
|
118
|
+
info(message: string, context?: Record<string, any>): void;
|
|
119
|
+
warn(message: string, context?: Record<string, any>): void;
|
|
120
|
+
error(message: string, context?: Record<string, any>): void;
|
|
121
|
+
debug(message: string, context?: Record<string, any>): void;
|
|
122
|
+
child(toolName: string): Logger;
|
|
123
|
+
dispose?(): Promise<void>;
|
|
124
|
+
flush?(): Promise<void>;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Tool execution log entry with timing
|
|
128
|
+
*/
|
|
129
|
+
export interface ToolLogEntry extends LogEntry {
|
|
130
|
+
toolName: string;
|
|
131
|
+
phase: 'START' | 'END' | 'ERROR';
|
|
132
|
+
args?: any;
|
|
133
|
+
result?: any;
|
|
134
|
+
error?: string;
|
|
135
|
+
duration?: number;
|
|
136
|
+
stackTrace?: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Output file type
|
|
140
|
+
*/
|
|
141
|
+
export type OutputType = 'screenshot' | 'snapshot' | 'log' | 'other';
|
|
142
|
+
/**
|
|
143
|
+
* Output manager for artifact generation
|
|
144
|
+
*/
|
|
145
|
+
export interface OutputManager {
|
|
146
|
+
/**
|
|
147
|
+
* Get output directory for the session
|
|
148
|
+
*/
|
|
149
|
+
getOutputDir(): string;
|
|
150
|
+
/**
|
|
151
|
+
* Generate filename for output artifact
|
|
152
|
+
*/
|
|
153
|
+
generateFilename(type: OutputType, extension: string): string;
|
|
154
|
+
/**
|
|
155
|
+
* Write content to file
|
|
156
|
+
*/
|
|
157
|
+
writeFile(filename: string, content: Buffer | string): Promise<string>;
|
|
158
|
+
/**
|
|
159
|
+
* Check if output directory exists
|
|
160
|
+
*/
|
|
161
|
+
ensureOutputDir(): Promise<void>;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Recorded action in a sequence
|
|
165
|
+
*/
|
|
166
|
+
export interface RecordedAction {
|
|
167
|
+
timestamp: Date;
|
|
168
|
+
toolName: string;
|
|
169
|
+
args: Record<string, any>;
|
|
170
|
+
duration?: number;
|
|
171
|
+
success: boolean;
|
|
172
|
+
error?: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Action sequence for recording/replay
|
|
176
|
+
*/
|
|
177
|
+
export interface ActionSequence {
|
|
178
|
+
id: string;
|
|
179
|
+
name: string;
|
|
180
|
+
description?: string;
|
|
181
|
+
createdAt: Date;
|
|
182
|
+
actions: RecordedAction[];
|
|
183
|
+
metadata?: Record<string, any>;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Recording state
|
|
187
|
+
*/
|
|
188
|
+
export interface RecordingState {
|
|
189
|
+
isRecording: boolean;
|
|
190
|
+
currentSequence?: ActionSequence;
|
|
191
|
+
startedAt?: Date;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Tool call record for session report (F3)
|
|
195
|
+
*/
|
|
196
|
+
export interface ToolCallRecord {
|
|
197
|
+
timestamp: Date;
|
|
198
|
+
toolName: string;
|
|
199
|
+
duration: number;
|
|
200
|
+
success: boolean;
|
|
201
|
+
result?: any;
|
|
202
|
+
error?: {
|
|
203
|
+
message: string;
|
|
204
|
+
snapshotPath?: string;
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Report data collected during session (F3)
|
|
209
|
+
*/
|
|
210
|
+
export interface ReportData {
|
|
211
|
+
toolCalls: ToolCallRecord[];
|
|
212
|
+
startTime: Date;
|
|
213
|
+
endTime?: Date;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Session report (JSON format) (F3)
|
|
217
|
+
*/
|
|
218
|
+
export interface SessionReport {
|
|
219
|
+
sessionId: string;
|
|
220
|
+
startTime: string;
|
|
221
|
+
endTime: string;
|
|
222
|
+
duration: number;
|
|
223
|
+
summary: {
|
|
224
|
+
totalCalls: number;
|
|
225
|
+
successCount: number;
|
|
226
|
+
failureCount: number;
|
|
227
|
+
successRate: number;
|
|
228
|
+
avgDuration: number;
|
|
229
|
+
maxDuration: number;
|
|
230
|
+
minDuration: number;
|
|
231
|
+
};
|
|
232
|
+
toolCalls: ToolCallRecord[];
|
|
233
|
+
failures: Array<{
|
|
234
|
+
toolName: string;
|
|
235
|
+
timestamp: string;
|
|
236
|
+
error: string;
|
|
237
|
+
snapshotPath?: string;
|
|
238
|
+
}>;
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|