@rolepod/uiproof 0.4.0 → 0.4.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/.claude-plugin/plugin.json +2 -2
- package/.codex-plugin/plugin.json +1 -7
- package/.cursor/mcp.json +1 -1
- package/CHANGELOG.md +22 -0
- package/README.md +1 -1
- package/dist/bin/rolepod-uiproof.js +157 -2
- package/dist/bin/rolepod-uiproof.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +157 -2
- package/dist/index.js.map +1 -1
- package/dist/schemas/tools.json +1 -1
- package/package.json +1 -1
- package/skills/verify-ui/SKILL.md +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -775,7 +775,7 @@ declare class SessionRegistry {
|
|
|
775
775
|
}
|
|
776
776
|
|
|
777
777
|
declare const SERVER_NAME = "rolepod-uiproof";
|
|
778
|
-
declare const SERVER_VERSION = "0.4.
|
|
778
|
+
declare const SERVER_VERSION = "0.4.1";
|
|
779
779
|
type ServerHandle = {
|
|
780
780
|
mcp: McpServer;
|
|
781
781
|
registry: SessionRegistry;
|
package/dist/index.js
CHANGED
|
@@ -2194,9 +2194,158 @@ var visualDiffTool = {
|
|
|
2194
2194
|
}
|
|
2195
2195
|
};
|
|
2196
2196
|
|
|
2197
|
+
// src/tools/metadata.ts
|
|
2198
|
+
var toolMetadata = {
|
|
2199
|
+
// ---------- atomic ----------
|
|
2200
|
+
[ToolNames.browserOpen]: {
|
|
2201
|
+
title: "Open Browser/Mobile Session",
|
|
2202
|
+
annotations: {
|
|
2203
|
+
title: "Open Browser/Mobile Session",
|
|
2204
|
+
readOnlyHint: false,
|
|
2205
|
+
destructiveHint: true,
|
|
2206
|
+
idempotentHint: false,
|
|
2207
|
+
openWorldHint: true
|
|
2208
|
+
}
|
|
2209
|
+
},
|
|
2210
|
+
[ToolNames.browserClose]: {
|
|
2211
|
+
title: "Close Session",
|
|
2212
|
+
annotations: {
|
|
2213
|
+
title: "Close Session",
|
|
2214
|
+
readOnlyHint: false,
|
|
2215
|
+
destructiveHint: true,
|
|
2216
|
+
idempotentHint: true,
|
|
2217
|
+
openWorldHint: false
|
|
2218
|
+
}
|
|
2219
|
+
},
|
|
2220
|
+
[ToolNames.browserSnapshot]: {
|
|
2221
|
+
title: "Capture Accessibility Snapshot",
|
|
2222
|
+
annotations: {
|
|
2223
|
+
title: "Capture Accessibility Snapshot",
|
|
2224
|
+
readOnlyHint: true,
|
|
2225
|
+
openWorldHint: true
|
|
2226
|
+
}
|
|
2227
|
+
},
|
|
2228
|
+
[ToolNames.browserClick]: {
|
|
2229
|
+
title: "Click Element",
|
|
2230
|
+
annotations: {
|
|
2231
|
+
title: "Click Element",
|
|
2232
|
+
readOnlyHint: false,
|
|
2233
|
+
destructiveHint: true,
|
|
2234
|
+
idempotentHint: false,
|
|
2235
|
+
openWorldHint: true
|
|
2236
|
+
}
|
|
2237
|
+
},
|
|
2238
|
+
[ToolNames.browserType]: {
|
|
2239
|
+
title: "Type Text",
|
|
2240
|
+
annotations: {
|
|
2241
|
+
title: "Type Text",
|
|
2242
|
+
readOnlyHint: false,
|
|
2243
|
+
destructiveHint: true,
|
|
2244
|
+
idempotentHint: false,
|
|
2245
|
+
openWorldHint: true
|
|
2246
|
+
}
|
|
2247
|
+
},
|
|
2248
|
+
[ToolNames.browserKey]: {
|
|
2249
|
+
title: "Press Key",
|
|
2250
|
+
annotations: {
|
|
2251
|
+
title: "Press Key",
|
|
2252
|
+
readOnlyHint: false,
|
|
2253
|
+
destructiveHint: true,
|
|
2254
|
+
idempotentHint: false,
|
|
2255
|
+
openWorldHint: true
|
|
2256
|
+
}
|
|
2257
|
+
},
|
|
2258
|
+
[ToolNames.browserScroll]: {
|
|
2259
|
+
title: "Scroll Viewport",
|
|
2260
|
+
annotations: {
|
|
2261
|
+
title: "Scroll Viewport",
|
|
2262
|
+
readOnlyHint: false,
|
|
2263
|
+
destructiveHint: false,
|
|
2264
|
+
idempotentHint: true,
|
|
2265
|
+
openWorldHint: true
|
|
2266
|
+
}
|
|
2267
|
+
},
|
|
2268
|
+
[ToolNames.browserWaitFor]: {
|
|
2269
|
+
title: "Wait For Condition",
|
|
2270
|
+
annotations: {
|
|
2271
|
+
title: "Wait For Condition",
|
|
2272
|
+
readOnlyHint: true,
|
|
2273
|
+
openWorldHint: true
|
|
2274
|
+
}
|
|
2275
|
+
},
|
|
2276
|
+
[ToolNames.browserScreenshot]: {
|
|
2277
|
+
title: "Take Screenshot",
|
|
2278
|
+
annotations: {
|
|
2279
|
+
title: "Take Screenshot",
|
|
2280
|
+
readOnlyHint: true,
|
|
2281
|
+
openWorldHint: true
|
|
2282
|
+
}
|
|
2283
|
+
},
|
|
2284
|
+
[ToolNames.browserNavigate]: {
|
|
2285
|
+
title: "Navigate URL",
|
|
2286
|
+
annotations: {
|
|
2287
|
+
title: "Navigate URL",
|
|
2288
|
+
readOnlyHint: false,
|
|
2289
|
+
destructiveHint: true,
|
|
2290
|
+
idempotentHint: false,
|
|
2291
|
+
openWorldHint: true
|
|
2292
|
+
}
|
|
2293
|
+
},
|
|
2294
|
+
// ---------- composite ----------
|
|
2295
|
+
[ToolNames.verifyUiFlow]: {
|
|
2296
|
+
title: "Verify UI Flow",
|
|
2297
|
+
annotations: {
|
|
2298
|
+
title: "Verify UI Flow",
|
|
2299
|
+
readOnlyHint: false,
|
|
2300
|
+
destructiveHint: true,
|
|
2301
|
+
idempotentHint: false,
|
|
2302
|
+
openWorldHint: true
|
|
2303
|
+
}
|
|
2304
|
+
},
|
|
2305
|
+
[ToolNames.auditA11y]: {
|
|
2306
|
+
title: "Audit Accessibility (axe-core)",
|
|
2307
|
+
annotations: {
|
|
2308
|
+
title: "Audit Accessibility (axe-core)",
|
|
2309
|
+
readOnlyHint: true,
|
|
2310
|
+
openWorldHint: true
|
|
2311
|
+
}
|
|
2312
|
+
},
|
|
2313
|
+
[ToolNames.visualDiff]: {
|
|
2314
|
+
title: "Visual Diff vs Baseline",
|
|
2315
|
+
annotations: {
|
|
2316
|
+
title: "Visual Diff vs Baseline",
|
|
2317
|
+
// Writes to ./.rolepod-uiproof/{baselines,artifacts}/ but only adds files —
|
|
2318
|
+
// never destroys an existing baseline silently.
|
|
2319
|
+
readOnlyHint: false,
|
|
2320
|
+
destructiveHint: false,
|
|
2321
|
+
idempotentHint: true,
|
|
2322
|
+
openWorldHint: true
|
|
2323
|
+
}
|
|
2324
|
+
},
|
|
2325
|
+
[ToolNames.scaffoldE2e]: {
|
|
2326
|
+
title: "Scaffold E2E Test File",
|
|
2327
|
+
annotations: {
|
|
2328
|
+
title: "Scaffold E2E Test File",
|
|
2329
|
+
// Writes a test file to the local repo.
|
|
2330
|
+
readOnlyHint: false,
|
|
2331
|
+
destructiveHint: true,
|
|
2332
|
+
idempotentHint: false,
|
|
2333
|
+
openWorldHint: false
|
|
2334
|
+
}
|
|
2335
|
+
},
|
|
2336
|
+
[ToolNames.extractUiState]: {
|
|
2337
|
+
title: "Extract UI State (NL Query)",
|
|
2338
|
+
annotations: {
|
|
2339
|
+
title: "Extract UI State (NL Query)",
|
|
2340
|
+
readOnlyHint: true,
|
|
2341
|
+
openWorldHint: true
|
|
2342
|
+
}
|
|
2343
|
+
}
|
|
2344
|
+
};
|
|
2345
|
+
|
|
2197
2346
|
// src/server.ts
|
|
2198
2347
|
var SERVER_NAME = "rolepod-uiproof";
|
|
2199
|
-
var SERVER_VERSION = "0.4.
|
|
2348
|
+
var SERVER_VERSION = "0.4.1";
|
|
2200
2349
|
function buildServer(opts = {}) {
|
|
2201
2350
|
const webEngine = createWebEngine();
|
|
2202
2351
|
const registry = new SessionRegistry({ idleTimeoutMs: opts.idleTimeoutMs });
|
|
@@ -2232,9 +2381,15 @@ function buildServer(opts = {}) {
|
|
|
2232
2381
|
extractUiStateTool
|
|
2233
2382
|
];
|
|
2234
2383
|
for (const t of tools) {
|
|
2384
|
+
const meta = toolMetadata[t.name];
|
|
2235
2385
|
mcp.registerTool(
|
|
2236
2386
|
t.name,
|
|
2237
|
-
{
|
|
2387
|
+
{
|
|
2388
|
+
title: meta?.title,
|
|
2389
|
+
description: t.description,
|
|
2390
|
+
inputSchema: t.inputShape,
|
|
2391
|
+
annotations: meta?.annotations
|
|
2392
|
+
},
|
|
2238
2393
|
t.build(ctx)
|
|
2239
2394
|
);
|
|
2240
2395
|
}
|