@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/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.0";
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.0";
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
- { description: t.description, inputSchema: t.inputShape },
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
  }