browser-debug-mcp-bridge 1.11.1 → 1.13.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.
Files changed (33) hide show
  1. package/README.md +4 -2
  2. package/apps/mcp-server/dist/db/automation-repository.js +9 -4
  3. package/apps/mcp-server/dist/db/automation-repository.js.map +1 -1
  4. package/apps/mcp-server/dist/db/migrations.js +300 -1
  5. package/apps/mcp-server/dist/db/migrations.js.map +1 -1
  6. package/apps/mcp-server/dist/db/schema.js +226 -2
  7. package/apps/mcp-server/dist/db/schema.js.map +1 -1
  8. package/apps/mcp-server/dist/lighthouse-report.js +1001 -0
  9. package/apps/mcp-server/dist/lighthouse-report.js.map +1 -0
  10. package/apps/mcp-server/dist/main.js +249 -1
  11. package/apps/mcp-server/dist/main.js.map +1 -1
  12. package/apps/mcp-server/dist/mcp/server.js +3705 -311
  13. package/apps/mcp-server/dist/mcp/server.js.map +1 -1
  14. package/apps/mcp-server/dist/mcp/target-resolution.js +390 -0
  15. package/apps/mcp-server/dist/mcp/target-resolution.js.map +1 -0
  16. package/apps/mcp-server/dist/mcp/tool-loop-guard.js +655 -0
  17. package/apps/mcp-server/dist/mcp/tool-loop-guard.js.map +1 -0
  18. package/apps/mcp-server/dist/mock-store.js +408 -0
  19. package/apps/mcp-server/dist/mock-store.js.map +1 -0
  20. package/apps/mcp-server/dist/override-audit-contract.js +58 -0
  21. package/apps/mcp-server/dist/override-audit-contract.js.map +1 -1
  22. package/apps/mcp-server/dist/override-audit.js +100 -4
  23. package/apps/mcp-server/dist/override-audit.js.map +1 -1
  24. package/apps/mcp-server/dist/override-poc.js +4 -4
  25. package/apps/mcp-server/dist/override-poc.js.map +1 -1
  26. package/apps/mcp-server/dist/override-profile-generator.js +3 -9
  27. package/apps/mcp-server/dist/override-profile-generator.js.map +1 -1
  28. package/apps/mcp-server/dist/ssr-mock.js +480 -0
  29. package/apps/mcp-server/dist/ssr-mock.js.map +1 -0
  30. package/apps/mcp-server/dist/websocket/messages.js +5 -0
  31. package/apps/mcp-server/dist/websocket/messages.js.map +1 -1
  32. package/apps/mcp-server/package.json +5 -0
  33. package/package.json +9 -4
@@ -1,9 +1,16 @@
1
- import { OVERRIDE_POC_FAILURE_CODES, OVERRIDE_PLAN_AUDIT_KINDS, OVERRIDE_POC_REQUEST_STATUSES, OVERRIDE_POC_RUN_STATUSES, } from '../override-audit-contract.js';
2
- export const SCHEMA_VERSION = 14;
1
+ import { OVERRIDE_POC_FAILURE_CODES, OVERRIDE_PLAN_AUDIT_KINDS, OVERRIDE_POC_REQUEST_STATUSES, OVERRIDE_POC_RUN_STATUSES, MOCK_ROUTE_BODY_KINDS, MOCK_ROUTE_MATCH_MODES, MOCK_ROUTE_MODES, MOCK_ROUTE_SOURCE_KINDS, MOCK_RUN_STATUSES, SSR_MOCK_AUDIT_ACTIONS, SSR_MOCK_AUDIT_STATUSES, } from '../override-audit-contract.js';
2
+ export const SCHEMA_VERSION = 19;
3
3
  const OVERRIDE_POC_RUN_STATUS_SQL = OVERRIDE_POC_RUN_STATUSES.map((value) => `'${value}'`).join(', ');
4
4
  const OVERRIDE_POC_REQUEST_STATUS_SQL = OVERRIDE_POC_REQUEST_STATUSES.map((value) => `'${value}'`).join(', ');
5
5
  const OVERRIDE_POC_FAILURE_CODE_SQL = OVERRIDE_POC_FAILURE_CODES.map((value) => `'${value}'`).join(', ');
6
6
  const OVERRIDE_PLAN_AUDIT_KIND_SQL = OVERRIDE_PLAN_AUDIT_KINDS.map((value) => `'${value}'`).join(', ');
7
+ const MOCK_ROUTE_MODE_SQL = MOCK_ROUTE_MODES.map((value) => `'${value}'`).join(', ');
8
+ const MOCK_ROUTE_MATCH_MODE_SQL = MOCK_ROUTE_MATCH_MODES.map((value) => `'${value}'`).join(', ');
9
+ const MOCK_ROUTE_BODY_KIND_SQL = MOCK_ROUTE_BODY_KINDS.map((value) => `'${value}'`).join(', ');
10
+ const MOCK_ROUTE_SOURCE_KIND_SQL = MOCK_ROUTE_SOURCE_KINDS.map((value) => `'${value}'`).join(', ');
11
+ const MOCK_RUN_STATUS_SQL = MOCK_RUN_STATUSES.map((value) => `'${value}'`).join(', ');
12
+ const SSR_MOCK_AUDIT_ACTION_SQL = SSR_MOCK_AUDIT_ACTIONS.map((value) => `'${value}'`).join(', ');
13
+ const SSR_MOCK_AUDIT_STATUS_SQL = SSR_MOCK_AUDIT_STATUSES.map((value) => `'${value}'`).join(', ');
7
14
  export const CREATE_TABLES_SQL = `
8
15
  -- Sessions table
9
16
  CREATE TABLE IF NOT EXISTS sessions (
@@ -175,6 +182,7 @@ CREATE TABLE IF NOT EXISTS automation_runs (
175
182
  completed_at INTEGER,
176
183
  stop_reason TEXT,
177
184
  target_summary_json TEXT,
185
+ diagnostics_json TEXT,
178
186
  failure_json TEXT,
179
187
  redaction_json TEXT,
180
188
  created_at INTEGER NOT NULL,
@@ -201,6 +209,7 @@ CREATE TABLE IF NOT EXISTS automation_steps (
201
209
  duration_ms INTEGER,
202
210
  tab_id INTEGER,
203
211
  target_summary_json TEXT,
212
+ diagnostics_json TEXT,
204
213
  redaction_json TEXT,
205
214
  failure_json TEXT,
206
215
  input_metadata_json TEXT,
@@ -302,6 +311,98 @@ CREATE INDEX IF NOT EXISTS idx_override_plan_audits_session_created_at ON overri
302
311
  CREATE INDEX IF NOT EXISTS idx_override_plan_audits_target_url ON override_plan_audits(target_asset_url);
303
312
  CREATE INDEX IF NOT EXISTS idx_override_plan_audits_planner_kind ON override_plan_audits(planner_kind);
304
313
 
314
+ CREATE TABLE IF NOT EXISTS ssr_mock_audits (
315
+ audit_id TEXT PRIMARY KEY,
316
+ created_at INTEGER NOT NULL,
317
+ action TEXT NOT NULL CHECK(action IN (${SSR_MOCK_AUDIT_ACTION_SQL})),
318
+ status TEXT NOT NULL CHECK(status IN (${SSR_MOCK_AUDIT_STATUS_SQL})),
319
+ project_root TEXT NOT NULL,
320
+ target_url TEXT,
321
+ api_host TEXT,
322
+ env_var_name TEXT,
323
+ env_file_path TEXT,
324
+ mock_base_url TEXT,
325
+ rollback_id TEXT,
326
+ summary_json TEXT NOT NULL,
327
+ result_json TEXT NOT NULL,
328
+ updated_at INTEGER NOT NULL
329
+ );
330
+
331
+ CREATE INDEX IF NOT EXISTS idx_ssr_mock_audits_project_created_at ON ssr_mock_audits(project_root, created_at);
332
+ CREATE INDEX IF NOT EXISTS idx_ssr_mock_audits_rollback_id ON ssr_mock_audits(rollback_id);
333
+ CREATE INDEX IF NOT EXISTS idx_ssr_mock_audits_action_status_created_at ON ssr_mock_audits(action, status, created_at);
334
+
335
+ CREATE TABLE IF NOT EXISTS mock_routes (
336
+ route_id TEXT PRIMARY KEY,
337
+ created_at INTEGER NOT NULL,
338
+ updated_at INTEGER NOT NULL,
339
+ enabled INTEGER NOT NULL DEFAULT 1,
340
+ mode TEXT NOT NULL CHECK(mode IN (${MOCK_ROUTE_MODE_SQL})),
341
+ method TEXT NOT NULL,
342
+ match_mode TEXT NOT NULL CHECK(match_mode IN (${MOCK_ROUTE_MATCH_MODE_SQL})),
343
+ target_url TEXT NOT NULL,
344
+ status_code INTEGER NOT NULL,
345
+ response_headers_json TEXT NOT NULL,
346
+ body_kind TEXT NOT NULL CHECK(body_kind IN (${MOCK_ROUTE_BODY_KIND_SQL})),
347
+ body_json TEXT,
348
+ body_text TEXT,
349
+ body_base64 TEXT,
350
+ body_file_path TEXT,
351
+ delay_ms INTEGER NOT NULL DEFAULT 0,
352
+ source_kind TEXT NOT NULL CHECK(source_kind IN (${MOCK_ROUTE_SOURCE_KIND_SQL})),
353
+ session_scope TEXT,
354
+ project_root TEXT,
355
+ ttl_ms INTEGER,
356
+ expires_at INTEGER
357
+ );
358
+
359
+ CREATE INDEX IF NOT EXISTS idx_mock_routes_mode_enabled_created_at ON mock_routes(mode, enabled, created_at);
360
+ CREATE INDEX IF NOT EXISTS idx_mock_routes_target_url_method ON mock_routes(target_url, method);
361
+ CREATE INDEX IF NOT EXISTS idx_mock_routes_project_root ON mock_routes(project_root);
362
+
363
+ CREATE TABLE IF NOT EXISTS mock_runs (
364
+ run_id TEXT PRIMARY KEY,
365
+ route_id TEXT NOT NULL,
366
+ execution_mode TEXT NOT NULL CHECK(execution_mode IN (${MOCK_ROUTE_MODE_SQL})),
367
+ session_id TEXT,
368
+ tab_id INTEGER,
369
+ project_root TEXT,
370
+ started_at INTEGER NOT NULL,
371
+ ended_at INTEGER,
372
+ status TEXT NOT NULL CHECK(status IN (${MOCK_RUN_STATUS_SQL})),
373
+ created_at INTEGER NOT NULL,
374
+ updated_at INTEGER NOT NULL,
375
+ FOREIGN KEY (route_id) REFERENCES mock_routes(route_id) ON DELETE CASCADE,
376
+ FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE SET NULL
377
+ );
378
+
379
+ CREATE INDEX IF NOT EXISTS idx_mock_runs_route_started_at ON mock_runs(route_id, started_at);
380
+ CREATE INDEX IF NOT EXISTS idx_mock_runs_session_status_started_at ON mock_runs(session_id, status, started_at);
381
+ CREATE INDEX IF NOT EXISTS idx_mock_runs_project_root_started_at ON mock_runs(project_root, started_at);
382
+
383
+ CREATE TABLE IF NOT EXISTS mock_hits (
384
+ hit_id TEXT PRIMARY KEY,
385
+ run_id TEXT,
386
+ route_id TEXT NOT NULL,
387
+ ts INTEGER NOT NULL,
388
+ request_url TEXT NOT NULL,
389
+ request_method TEXT NOT NULL,
390
+ matched INTEGER NOT NULL DEFAULT 0,
391
+ fulfilled INTEGER NOT NULL DEFAULT 0,
392
+ status_code INTEGER,
393
+ response_source TEXT NOT NULL CHECK(response_source IN (${MOCK_ROUTE_SOURCE_KIND_SQL})),
394
+ error_code TEXT,
395
+ error_message TEXT,
396
+ created_at INTEGER NOT NULL,
397
+ updated_at INTEGER NOT NULL,
398
+ FOREIGN KEY (run_id) REFERENCES mock_runs(run_id) ON DELETE SET NULL,
399
+ FOREIGN KEY (route_id) REFERENCES mock_routes(route_id) ON DELETE CASCADE
400
+ );
401
+
402
+ CREATE INDEX IF NOT EXISTS idx_mock_hits_route_ts ON mock_hits(route_id, ts);
403
+ CREATE INDEX IF NOT EXISTS idx_mock_hits_run_ts ON mock_hits(run_id, ts);
404
+ CREATE INDEX IF NOT EXISTS idx_mock_hits_matched_fulfilled_ts ON mock_hits(matched, fulfilled, ts);
405
+
305
406
  CREATE TABLE IF NOT EXISTS override_observed_assets (
306
407
  observed_asset_id TEXT PRIMARY KEY,
307
408
  session_id TEXT NOT NULL,
@@ -341,6 +442,121 @@ CREATE INDEX IF NOT EXISTS idx_override_observed_assets_session_seen ON override
341
442
  CREATE INDEX IF NOT EXISTS idx_override_observed_assets_asset_path ON override_observed_assets(asset_path);
342
443
  CREATE INDEX IF NOT EXISTS idx_override_observed_assets_rule_type ON override_observed_assets(rule_type);
343
444
 
445
+ CREATE TABLE IF NOT EXISTS mcp_tool_invocations (
446
+ invocation_id TEXT PRIMARY KEY,
447
+ tool_name TEXT NOT NULL,
448
+ session_id TEXT,
449
+ family TEXT NOT NULL,
450
+ input_hash TEXT NOT NULL,
451
+ input_summary_json TEXT NOT NULL,
452
+ outcome_type TEXT NOT NULL CHECK(outcome_type IN ('success', 'failed', 'no_progress', 'blocked')),
453
+ root_cause_code TEXT,
454
+ state_hash TEXT,
455
+ state_summary_json TEXT NOT NULL,
456
+ response_bytes INTEGER,
457
+ duration_ms INTEGER NOT NULL DEFAULT 0,
458
+ blocked INTEGER NOT NULL DEFAULT 0,
459
+ warning INTEGER NOT NULL DEFAULT 0,
460
+ message TEXT,
461
+ created_at INTEGER NOT NULL
462
+ );
463
+
464
+ CREATE INDEX IF NOT EXISTS idx_mcp_tool_invocations_tool_input_time
465
+ ON mcp_tool_invocations(tool_name, session_id, input_hash, created_at);
466
+ CREATE INDEX IF NOT EXISTS idx_mcp_tool_invocations_family_root_time
467
+ ON mcp_tool_invocations(family, session_id, root_cause_code, state_hash, created_at);
468
+ CREATE INDEX IF NOT EXISTS idx_mcp_tool_invocations_created_at
469
+ ON mcp_tool_invocations(created_at);
470
+
471
+ CREATE TABLE IF NOT EXISTS mcp_loop_incidents (
472
+ incident_id TEXT PRIMARY KEY,
473
+ fingerprint TEXT NOT NULL,
474
+ scope TEXT NOT NULL CHECK(scope IN ('tool-input', 'family-root-cause')),
475
+ status TEXT NOT NULL CHECK(status IN ('open', 'resolved', 'expired')),
476
+ tool_name TEXT,
477
+ session_id TEXT,
478
+ family TEXT NOT NULL,
479
+ input_hash TEXT,
480
+ root_cause_code TEXT,
481
+ state_hash TEXT,
482
+ first_seen_at INTEGER NOT NULL,
483
+ last_seen_at INTEGER NOT NULL,
484
+ attempt_count INTEGER NOT NULL DEFAULT 0,
485
+ blocked_until INTEGER,
486
+ severity TEXT NOT NULL CHECK(severity IN ('warning', 'blocked')),
487
+ message TEXT NOT NULL,
488
+ created_at INTEGER NOT NULL,
489
+ updated_at INTEGER NOT NULL
490
+ );
491
+
492
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_mcp_loop_incidents_open_fingerprint
493
+ ON mcp_loop_incidents(fingerprint)
494
+ WHERE status = 'open';
495
+ CREATE INDEX IF NOT EXISTS idx_mcp_loop_incidents_status_blocked
496
+ ON mcp_loop_incidents(status, blocked_until);
497
+ CREATE INDEX IF NOT EXISTS idx_mcp_loop_incidents_session_family
498
+ ON mcp_loop_incidents(session_id, family, status);
499
+
500
+ CREATE TABLE IF NOT EXISTS lighthouse_reports (
501
+ report_id TEXT PRIMARY KEY,
502
+ session_id TEXT,
503
+ requested_url TEXT NOT NULL,
504
+ final_url TEXT,
505
+ status TEXT NOT NULL CHECK(status IN ('succeeded', 'failed')),
506
+ created_at INTEGER NOT NULL,
507
+ completed_at INTEGER,
508
+ duration_ms INTEGER,
509
+ lighthouse_version TEXT,
510
+ user_agent TEXT,
511
+ fetch_time TEXT,
512
+ form_factor TEXT NOT NULL CHECK(form_factor IN ('mobile', 'desktop')),
513
+ categories_json TEXT NOT NULL,
514
+ metrics_json TEXT NOT NULL,
515
+ scores_json TEXT NOT NULL,
516
+ score_performance REAL,
517
+ score_accessibility REAL,
518
+ score_best_practices REAL,
519
+ score_seo REAL,
520
+ score_pwa REAL,
521
+ json_path TEXT,
522
+ json_bytes INTEGER,
523
+ html_path TEXT,
524
+ html_bytes INTEGER,
525
+ run_warnings_json TEXT NOT NULL,
526
+ runtime_error_json TEXT,
527
+ config_json TEXT NOT NULL,
528
+ error_message TEXT,
529
+ FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE SET NULL
530
+ );
531
+
532
+ CREATE INDEX IF NOT EXISTS idx_lighthouse_reports_session_created
533
+ ON lighthouse_reports(session_id, created_at);
534
+ CREATE INDEX IF NOT EXISTS idx_lighthouse_reports_url_created
535
+ ON lighthouse_reports(requested_url, created_at);
536
+ CREATE INDEX IF NOT EXISTS idx_lighthouse_reports_status_created
537
+ ON lighthouse_reports(status, created_at);
538
+
539
+ CREATE TABLE IF NOT EXISTS lighthouse_fix_plans (
540
+ plan_id TEXT PRIMARY KEY,
541
+ report_id TEXT NOT NULL,
542
+ session_id TEXT,
543
+ created_at INTEGER NOT NULL,
544
+ item_count INTEGER NOT NULL DEFAULT 0,
545
+ critical_count INTEGER NOT NULL DEFAULT 0,
546
+ high_count INTEGER NOT NULL DEFAULT 0,
547
+ medium_count INTEGER NOT NULL DEFAULT 0,
548
+ low_count INTEGER NOT NULL DEFAULT 0,
549
+ summary_json TEXT NOT NULL,
550
+ items_json TEXT NOT NULL,
551
+ FOREIGN KEY (report_id) REFERENCES lighthouse_reports(report_id) ON DELETE CASCADE,
552
+ FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE SET NULL
553
+ );
554
+
555
+ CREATE INDEX IF NOT EXISTS idx_lighthouse_fix_plans_report_created
556
+ ON lighthouse_fix_plans(report_id, created_at);
557
+ CREATE INDEX IF NOT EXISTS idx_lighthouse_fix_plans_session_created
558
+ ON lighthouse_fix_plans(session_id, created_at);
559
+
344
560
  -- Schema version tracking
345
561
  CREATE TABLE IF NOT EXISTS schema_version (
346
562
  version INTEGER PRIMARY KEY,
@@ -370,9 +586,17 @@ export function clearDatabase(db) {
370
586
  DELETE FROM automation_steps;
371
587
  DELETE FROM automation_runs;
372
588
  DELETE FROM override_observed_assets;
589
+ DELETE FROM mock_hits;
590
+ DELETE FROM mock_runs;
591
+ DELETE FROM mock_routes;
373
592
  DELETE FROM override_plan_audits;
593
+ DELETE FROM ssr_mock_audits;
374
594
  DELETE FROM override_requests;
375
595
  DELETE FROM override_runs;
596
+ DELETE FROM lighthouse_fix_plans;
597
+ DELETE FROM lighthouse_reports;
598
+ DELETE FROM mcp_loop_incidents;
599
+ DELETE FROM mcp_tool_invocations;
376
600
  DELETE FROM events;
377
601
  DELETE FROM sessions;
378
602
  DELETE FROM server_settings;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtG,MAAM,+BAA+B,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9G,MAAM,6BAA6B,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzG,MAAM,4BAA4B,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEvG,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA2NiB,2BAA2B;;;;;;;;;;;;;;;mDAe1B,6BAA6B;;;;;;;;;;;;;;;;;0DAiBtB,+BAA+B;6CAC5C,6BAA6B;;;;;;;;;;;;;;;;;sDAiBpB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEjF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,EAAY;IAC3C,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAY;IAC3C,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAG9B,CAAC,CAAC,GAAG,EAAE,CAAC;IAET,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC,GAAG,EAAqC,CAAC;IACvI,OAAO,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAY;IACxC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;GAeP,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}