@rudderhq/cli 0.4.5 → 0.4.6-canary.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.js CHANGED
@@ -9,6 +9,21 @@ var __export = (target, all) => {
9
9
  __defProp(target, name, { get: all[name], enumerable: true });
10
10
  };
11
11
 
12
+ // ../packages/shared/dist/project-mentions.js
13
+ var init_project_mentions = __esm({
14
+ "../packages/shared/dist/project-mentions.js"() {
15
+ "use strict";
16
+ }
17
+ });
18
+
19
+ // ../packages/shared/dist/chat-work-manifest.js
20
+ var init_chat_work_manifest = __esm({
21
+ "../packages/shared/dist/chat-work-manifest.js"() {
22
+ "use strict";
23
+ init_project_mentions();
24
+ }
25
+ });
26
+
12
27
  // ../packages/shared/dist/constants.js
13
28
  var ORGANIZATION_STATUSES, ORGANIZATION_INTELLIGENCE_PROFILE_PURPOSES, ORGANIZATION_INTELLIGENCE_PROFILE_STATUSES, DEPLOYMENT_MODES, DEPLOYMENT_EXPOSURES, AUTH_BASE_URL_MODES, AGENT_STATUSES, AGENT_RUNTIME_TYPES, AGENT_ROLES, AGENT_ICON_NAMES, AGENT_DICEBEAR_NOTIONISTS_ICON_PREFIX, AGENT_AVATAR_BACKGROUND_PRESET_IDS, ISSUE_STATUSES, ISSUE_PRIORITIES, AGENT_INTEGRATION_PROVIDERS, AGENT_INTEGRATION_STATUSES, AGENT_INTEGRATION_TRANSPORTS, AGENT_INTEGRATION_PROVIDER_REGIONS, AGENT_INTEGRATION_CHAT_TYPES, AGENT_INTEGRATION_DROP_REASONS, AGENT_INTEGRATION_OUTBOUND_STATUSES, CUSTOM_INTEGRATION_KINDS, CUSTOM_INTEGRATION_SCOPES, CUSTOM_INTEGRATION_STATUSES, CUSTOM_INTEGRATION_TOOL_STATUSES, CUSTOM_INTEGRATION_BINDING_STATUSES, CUSTOM_INTEGRATION_TOOL_CALL_STATUSES, CALENDAR_SOURCE_TYPES, CALENDAR_OWNER_TYPES, CALENDAR_VISIBILITIES, CALENDAR_SOURCE_STATUSES, CALENDAR_EVENT_KINDS, CALENDAR_EVENT_STATUSES, CALENDAR_SOURCE_MODES, CHAT_CONVERSATION_STATUSES, CHAT_ISSUE_CREATION_MODES, CHAT_MESSAGE_ROLES, CHAT_MESSAGE_KINDS, CHAT_MESSAGE_STATUSES, CHAT_CONTEXT_ENTITY_TYPES, GOAL_LEVELS, GOAL_STATUSES, PROJECT_STATUSES, ORGANIZATION_RESOURCE_KINDS, ORGANIZATION_RESOURCE_SOURCE_TYPES, PROJECT_RESOURCE_ATTACHMENT_ROLES, AUTOMATION_STATUSES, AUTOMATION_CONCURRENCY_POLICIES, AUTOMATION_CATCH_UP_POLICIES, AUTOMATION_OUTPUT_MODES, AUTOMATION_TRIGGER_SIGNING_MODES, PROJECT_COLORS, PROJECT_ICONS, APPROVAL_TYPES, SECRET_PROVIDERS, STORAGE_PROVIDERS, BILLING_TYPES, FINANCE_EVENT_KINDS, FINANCE_DIRECTIONS, FINANCE_UNITS, BUDGET_SCOPE_TYPES, BUDGET_METRICS, BUDGET_WINDOW_KINDS, BUDGET_INCIDENT_RESOLUTION_ACTIONS, INVITE_JOIN_TYPES, JOIN_REQUEST_TYPES, JOIN_REQUEST_STATUSES, PERMISSION_KEYS, PLUGIN_STATUSES, PLUGIN_CATEGORIES, PLUGIN_CAPABILITIES, PLUGIN_UI_SLOT_TYPES, PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS, PLUGIN_LAUNCHER_PLACEMENT_ZONES, PLUGIN_LAUNCHER_ACTIONS, PLUGIN_LAUNCHER_BOUNDS, PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS, PLUGIN_UI_SLOT_ENTITY_TYPES, PLUGIN_STATE_SCOPE_KINDS;
14
29
  var init_constants = __esm({
@@ -481,13 +496,6 @@ var init_agent_run = __esm({
481
496
  }
482
497
  });
483
498
 
484
- // ../packages/shared/dist/types/observability.js
485
- var init_observability = __esm({
486
- "../packages/shared/dist/types/observability.js"() {
487
- "use strict";
488
- }
489
- });
490
-
491
499
  // ../packages/shared/dist/types/workspace-backup.js
492
500
  var init_workspace_backup = __esm({
493
501
  "../packages/shared/dist/types/workspace-backup.js"() {
@@ -499,7 +507,7 @@ var init_workspace_backup = __esm({
499
507
  function imageDataUrl(mimeType, base64) {
500
508
  return `data:${mimeType};base64,${base64}`;
501
509
  }
502
- var xIcon, linkedinIcon, githubIcon, youtubeIcon, googleIcon, googleDocsIcon, notionIcon, linearIcon, openaiIcon, chatgptIcon, anthropicIcon, claudeIcon, figmaIcon, slackIcon, stackoverflowIcon, vercelIcon, cloudflareIcon, arxivIcon, feishuIcon, rudderIcon, KNOWN_WEBSITE_ICONS, knownWebsiteIconByHostname;
510
+ var xIcon, linkedinIcon, githubIcon, youtubeIcon, googleIcon, googleDocsIcon, notionIcon, linearIcon, openaiIcon, chatgptIcon, anthropicIcon, claudeIcon, figmaIcon, slackIcon, stackoverflowIcon, vercelIcon, cloudflareIcon, arxivIcon, redditIcon, mediumIcon, hackerNewsIcon, linuxDoIcon, feishuIcon, rudderIcon, KNOWN_WEBSITE_ICONS, knownWebsiteIconByHostname;
503
511
  var init_website_icons = __esm({
504
512
  "../packages/shared/dist/website-icons.js"() {
505
513
  "use strict";
@@ -521,7 +529,11 @@ var init_website_icons = __esm({
521
529
  vercelIcon = imageDataUrl("image/x-icon", "AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAAAABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAANwAAAG8AAACkAAAAzQAAAOgAAAD3AAAA/gAAAP4AAAD3AAAA6AAAAM0AAACkAAAAbwAAADcAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAKAAAAHMAAAC9AAAA6gAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAOoAAAC9AAAAcwAAACgAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAC4AAACRAAAA4gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOMAAACRAAAALgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAfQAAAOMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4wAAAH0AAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADsAAADAAAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAADAAAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAXgAAAOMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4wAAAF4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAByAAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPEAAAByAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAHIAAAD0AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAcgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA8QAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAA4wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOMAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAC/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAC/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAC4AAAAAAAAAAAAAAAAAAAACAAAAkQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAJAAAAABAAAAAAAAAAAAAAApAAAA4gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAAAoAAAAAAAAAAAAAABzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0ZGRv+Ojo7/jIyM/4yMjP+MjIz/jIyM/4yMjP+MjIz/jIyM/4yMjP+MjIz/jIyM/4yMjP+MjIz/jIyM/4yMjP+MjIz/jIyM/4yMjP+MjIz/jIyM/4yMjP+NjY3/dnZ2/w4ODv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABzAAAAAAAAAA0AAAC8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nv/m5ub/////////////////////////////////////////////////////////////////////////////////////////////////////////////////jIyM/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAC8AAAADQAAADcAAADpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf+EhIT////////////////////////////////////////////////////////////////////////////////////////////////////////////W1tb/IiIi/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAANwAAAG8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8fHx//0tLS//////////////////////////////////////////////////////////////////////////////////////////////////z8/P9ra2v/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAAbwAAAKQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Z2dn//r6+v///////////////////////////////////////////////////////////////////////////////////////////7+/v/8TExP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAApAAAAM0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ERER/7u7u///////////////////////////////////////////////////////////////////////////////////////9PT0/1BQUP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAzQAAAOcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0tLS//y8vL/////////////////////////////////////////////////////////////////////////////////paWl/wgICP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5wAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/+hoaH////////////////////////////////////////////////////////////////////////////n5+f/Nzc3/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/5OTk//////////////////////////////////////////////////////////////////////+JiYn/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/hISE/////////////////////////////////////////////////////////////////9bW1v8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Hx8f/9LS0v///////////////////////////////////////////////////////Pz8/2tra/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9wAAAOcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2dnZ//6+vr/////////////////////////////////////////////////v7+//xMTE/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5wAAAM0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xEREf+7u7v////////////////////////////////////////////09PT/UFBQ/wAA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AAAAAAAAAAAAAAAAABYAAAC/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAC/AAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAA4wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOMAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA8QAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAHIAAAD0AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAcgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAByAAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPEAAAByAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAXgAAAOMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4wAAAF4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADsAAADAAAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAC/AAAAOwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAfQAAAOMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4wAAAH0AAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAC4AAACRAAAA4wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOIAAACRAAAALgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAKAAAAHMAAAC9AAAA6gAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAOoAAAC9AAAAcwAAACgAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAANwAAAG8AAACkAAAAzQAAAOgAAAD3AAAA/gAAAP4AAAD3AAAA6AAAAM0AAACkAAAAbwAAADcAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//4Af//wAA//8AAP//AAD/+AAAH/8AAP/wAAAP/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA8AAAAAAPAADwAAAAAA8AAOAAAAAABwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAPAAAAAADwAA8AAAAAAPAAD4AAAAAB8AAPwAAAAAPwAA/gAAAAB/AAD/AAAAAP8AAP+AAAAB/wAA/8AAAAP/AAD/8AAAD/8AAP/4AAAf/wAA//8AAP//AAD//+AH//8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAKgAAAG0AAACtAAAA2gAAAPMAAAD9AAAA/QAAAPMAAADaAAAArQAAAG0AAAAqAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAANwAAAJgAAADgAAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAOAAAACYAAAANwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAIoAAADqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADqAAAAigAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAADDAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAwwAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAA2QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2QAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAANkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2QAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAADCAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAwgAAABoAAAAAAAAAAAAAAAAAAAACAAAAigAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAigAAAAIAAAAAAAAAAAAAADgAAADpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAAOAAAAAAAAAADAAAAlwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wQEBP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAwAAACoAAADfAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/X19f/6+vr/+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+vr6//iIiI/wwMDP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAN8AAAAqAAAAbQAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP84ODj/6Ojo//////////////////////////////////////////////////////////////////39/f9xcXH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAG0AAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf+Hh4f/////////////////////////////////////////////////////////////////wcHB/xQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAANkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf/V1dX///////////////////////////////////////////////////////T09P9RUVH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADZAAAA8gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2pqav/7+/v/////////////////////////////////////////////////p6en/wgICP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPIAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/EhIS/76+vv///////////////////////////////////////////+jo6P84ODj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Tk5O//Pz8///////////////////////////////////////ioqK/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA8gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAj/pKSk/////////////////////////////////9fX1/8jIyP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPIAAADZAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP82Njb/5ubm///////////////////////8/Pz/bW1t/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2QAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf+Hh4f//////////////////////8HBwf8UFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAbQAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf/V1dX////////////09PT/UVFR/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAG0AAAAqAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2pqav/7+/v//////6enp/8ICAj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAKgAAAAMAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/EhIS/8DAwP/r6+v/ODg4/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAJcAAAADAAAAAAAAADgAAADpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/UFBQ/39/f/8DAwP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAAOAAAAAAAAAAAAAAAAgAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/CwsL/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIoAAAACAAAAAAAAAAAAAAAAAAAAGgAAAMIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADCAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAANkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2QAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQgAAANkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANkAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAMMAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAADDAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAIoAAADqAAAA/wAAAP8AAAD/AAAA/wAA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");
522
530
  cloudflareIcon = imageDataUrl("image/png", "iVBORw0KGgoAAAANSUhEUgAAAGMAAABgCAMAAAA+cTwJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAABCUExURUdwTP9QCv9PC/9PCf//6/9PD5NwcP9QCv/79fZNCf1PCvpOCvRMCf/s4P3Nt/1eH/ujfvy6nf2RZv17Rv/byf2vjnXJwEoAAAAHdFJOUwDWVIwBEAHHGD0SAAAC1UlEQVRo3u3aCY+rIBAA4NpLmJFD0P//Vx8eVVCwhUKzeXGSptsqfDvDYXfr5TLG43qrKqyzBVbV7Xpx4pqx+zUqW7nVheJWnliRa10wpnI9q5IGPoqnMSdyK2uMI1KVNapfGVjWgMGoC8dpnMZpnMZp/HFD6J4zQgjruBJFDN0P/S/BVXZDcLINpvIakhFPcJHPEC3xB9O5DNGRYKg8xhFBiM5i9EcEYSKDochxdN8bgr0xiPzaaN8Rh9U6NEBrPbQV5H3IJENM+4ZZye0HxkEiYUOuzdkHxsEiCRqSREYba0A0QRhEGoJFG7zWUiotPjZUNEEUdIFrSsDg8aUSInRN8RsQn0aLKjSRsxkaeejy6DUg3mCILLRcfAZA/LTSVASvKXtDSB4/cSXdGeuYbA0h4wFDNJRSHlr4G0OkCExRY6AOXYFdQycQrBdDFgbZloD7DF8W5jPnK9pX9PIVymweTTMZtBFayb41Z7oj4hi+LFTzPug2uDN/bcO7STFmZbKmsiQyF4qieZg0ZGvyYO6o20bKeJuOxEigZ0Z2sDU0SYt+ENA3XdjOaBMNIgzhvxgAgGNAl2ooxEANRmIxjMhSDY2BpcsQ3FoBSTcCn4Y7dGsFycZuW18XumuYWqWORx8aDTNQo3G/DwYYw0yOYR2FlvH0NP+8vB5XxhLTsbnRsE3iOLHmPGA0/MSouHuGZbvC2oFlPO+vWh2m0Yy/HnWQXR4OMh3yGzS44TXWk8VtiLle1DLutoF2b02z7c0buDesDKc87PGYz3vXrZ+wE1kO2XkAgJNJiuE5MO0l93V9YLZYZJjyWNf5F0ig6ZTGazzscsX27284vb3ZE2soEHUeI9ww+FkU5sfQdH1nfgnzq92fZWCftj3l/L/oaZzGsVH4u1T8n753/sV39L+41+CBxUv1k3s/fnIPy0/uxTHlKjKB0b6n6Pm8ZL43CoZ7ox5z9/8AXA8Zr53RgkAAAAAASUVORK5CYII=");
523
531
  arxivIcon = imageDataUrl("image/png", "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACr1BMVEUAAACzICWzICSyrKazrKWzqaKzraazR0mzTE6zaGizBQiz49uzZmSzEBazHySzsam0ICmzICWzICWzICWzICWzICWzICWzICWzICWzICWzICWzICWzICWzICWzICWzICWzrKWzrKWzICWzICWzICWzICWzICWzrKWzrKWzrKWzrKWzICWzICWzICWzICWzICWzrKWzrKWzrKWzrKWzICWzICWzICWzICWzrKWzrKWzrKWzrKWzICWzICWzICWzrKWzrKWzrKWzrKWzICWzICWzICWzICWzrKWzrKWzrKWzICWzICWzICWzHySz4dWzrKWzrKWzrKWzICWzICWzHySzgX2zrqezrKWzrKWzICWzPD+zrKWzrKWzrKWzICWzHySzjYmzr6izraazT1CzLjKzMDSzQUOzrKWzrqezgH2zKi6zHySzICWzrKWzrKWzcW+zICWzICWzrKWzrKWzYWGzICWzrKWzUVKzICWzrKWzrKWznZezQkSzICWzICWzrKWzraazkY2zHiOzICWzICWzjYmzm5WzhIGzODuzAACzHySzHSKzOz6zrqazs6yzICWzICWzODuzrKWzrKWzrKWzICWzICWzODuzo5yzrKWzrKWzICWzICWzICWzGyCzr6ezrKWzrKWzICWzICWzrKWzrKWzrKWzrKWzICWzICWzICWzrKWzrKWzrKWzrKWzICWzICWzICWzrKWzrKWzrKWzrKWzrKWzICWzICWzICWzrKWzrKWzrKWzrKWzICWzICWzICWzrKWzrKWzrKWzICWzICWzrKWzrKWzrKWzrKWzrKWzrKWzrKWzrKWzrKWzrKWzrKWzrKWzrKWzrKWzICWzrKWzHySzkYyzrqezHiOzODuzJCmzqaOzISazraazpZ6zNTizkIuzi4ezraX///8A/VYjAAAA1HRSTlMAAAAAAAAAAAAAAAAAAAAAAAGA95kOB7X6kQ9W8fyaEQIBA3z9oRUllnUKDJz+qBgwxuwxGbquHD3SpQwt1CBL3cEeR+e7JFvm1mX0wSgEbO5HBYXFkfPyYaX++n0EHsH9lwtO8/NRJrr8/ttFGb7+3jpk/v6ecv6sK9j+/vVcQNf+8nUGSfD7dQMHivyVCmr2/vl3A0np28zvWS7V0joht+HJMR2vzCcLvygYp7IVc7QhFJ/9lQkSzhoRl/t2lu0UDY9XDSoLhvjgOwh89a4GB4L2i8A61lMAAAABYktHROQvYjspAAAAB3RJTUUH5wETDS455INCLAAAAgZJREFUOMt10/dfTXEYB/Dz6Ilst3lFueWmjDIysmdkF0Kyyd7Ze5WZcc2ErIhKISops6zs73Pda1zrH/EcoXPqe8+vn/fre57z+T5HURQwuHt4eoHi9AFvH2Fs6gu1nAJo1lz4+beAqkNc0BSAGhHY0ijMQa3+C8TgkNZttKJtOyFCw9r/FYgdOlKncC2Azl2EEF27/RGIEd2JevRE3Ri9erPw6cMCA/r2I+o/AFE/6MBBLCIHg6tpSBTR0HB9rophw1mMGDlqdDRRVEz1nMWYsX4sxsWOJ5owsWbOwjeOgXXSR1v85CmSnF8ydZpVCPun6TNm1pY2Wsdt1mwW1oQ5devJcsS58+YvUMXCRSC7Oly8hGjpZxZi2XKJQFyRSPRl5VcGYpVBBlYTkePbGvWItYGSd+C69arYsNEuNm2WDYG4ZauDyLbt+/YdO6X7Vb9BUjILx67dexpKe2i0d9/+HzYWKQcay3IwHDxkP/yT57AcOSq7Cjh2nIs+cfIXUeopyWVC2mn+vjNn08/xGecjaojKpbtwEVwvZbC4fKWagEx/zq9eA0DMyuZKc67rN65JrlGIvBtqP4g3b+VT4u07uqUtKBTmsKLK/hDvFt8jS4lJu/fepfc9H1T9OA8fxVPqY80YAE/KMjX9Y/nTZ/T8hWwz/4mXFa/o9RvnQMG3795/UKf4DUwCyzJ9eBcsAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIzLTAxLTE5VDEzOjQ2OjU3KzAwOjAwqJ4w4AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMy0wMS0xOVQxMzo0Njo1NyswMDowMNnDiFwAAABXelRYdFJhdyBwcm9maWxlIHR5cGUgaXB0YwAAeJzj8gwIcVYoKMpPy8xJ5VIAAyMLLmMLEyMTS5MUAxMgRIA0w2QDI7NUIMvY1MjEzMQcxAfLgEigSi4A6hcRdPJCNZUAAAAASUVORK5CYII=");
524
- feishuIcon = imageDataUrl("image/svg+xml", "PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMTIuOTIzOCAxMi44MDI5QzEyLjk0MjcgMTIuNzg0IDEyLjk2MTYgMTIuNzY4MiAxMi45ODA2IDEyLjc0OTNDMTMuMDE4NCAxMi43MTQ2IDEzLjA1NjMgMTIuNjc2NyAxMy4wOTEgMTIuNjM4OUwxMy4xNjY3IDEyLjU2MzFMMTMuMzk3IDEyLjMzNkwxNC43MzE1IDExLjAxNzNMMTUuMDY1OSAxMC42ODZDMTUuMTI5IDEwLjYyMjkgMTUuMTk1MiAxMC41NjMgMTUuMjYxNSAxMC41MDMxQzE1LjM4NDUgMTAuMzkyNiAxNS41MDc2IDEwLjI4NTQgMTUuNjM2OSAxMC4xODEzQzE1Ljc1MzYgMTAuMDg2NiAxNS44NzY3IDkuOTk1MTQgMTUuOTk5NyA5LjkwNjhDMTYuMTczMiA5Ljc4Mzc2IDE2LjM0OTkgOS42NzAxOSAxNi41MzI5IDkuNTU5NzdDMTYuNzEyNyA5LjQ1MjUxIDE2Ljg5NTcgOS4zNTQ3MSAxNy4wODUgOS4yNjMyMkMxNy4yNjE2IDkuMTc4MDQgMTcuNDQxNSA5LjA5OTE3IDE3LjYyNzYgOS4wMjY2MUMxNy43MzE3IDguOTg1NiAxNy44MzI2IDguOTQ3NzQgMTcuOTM5OSA4LjkxMzA0QzE3Ljk5MzUgOC44OTQxMSAxOC4wNDQgOC44NzgzNCAxOC4wOTc3IDguODYyNTZDMTcuNjI3NiA3LjAwNDM5IDE2Ljc2MzIgNS4zMDA4IDE1LjU5OTEgMy44NDk1OUMxNS4zNzE5IDMuNTY1NjYgMTUuMDI0OSAzLjQwMTYxIDE0LjY1ODkgMy40MDE2MUg1LjAwODRDNC44MzQ4OSAzLjQwMTYxIDQuNzYyMzMgMy42MjU2IDQuOTAxMTQgMy43MjY1NkM4LjE4NTI4IDYuMTM5OTcgMTAuOTIzNiA5LjI0MTE0IDEyLjkwMTcgMTIuODI1QzEyLjkwOCAxMi44MTg3IDEyLjkxNzUgMTIuODEyNCAxMi45MjM4IDEyLjgwMjlaIiBmaWxsPSIjMDBENkI5IiAvPgogIDxwYXRoIGQ9Ik05LjA5Njk2IDIxLjI5ODZDMTQuMDgxNSAyMS4yOTg2IDE4LjQyMjUgMTguNTQ3NiAyMC42ODc3IDE0LjQ4NDNDMjAuNzY2NiAxNC4zNDIzIDIwLjg0NTQgMTQuMTk3MiAyMC45MTggMTQuMDUyQzIwLjgwNDQgMTQuMjcyOSAyMC42NzUxIDE0LjQ4MTEgMjAuNTM5NCAxNC42NzY3QzIwLjQ4ODkgMTQuNzQ2MSAyMC40Mzg1IDE0LjgxNTUgMjAuMzg4IDE0Ljg4MThDMjAuMzIxNyAxNC45NjY5IDIwLjI1NTUgMTUuMDQ5IDIwLjE4NjEgMTUuMTI3OEMyMC4xMzI0IDE1LjE5MDkgMjAuMDc1NyAxNS4yNTA5IDIwLjAxODkgMTUuMzEwOEMxOS45MDIxIDE1LjQzMDcgMTkuNzgyMyAxNS41NDc0IDE5LjY1NjEgMTUuNjU0N0MxOS41ODY3IDE1LjcxNDYgMTkuNTE0MSAxNS43NzE0IDE5LjQ0MTUgMTUuODI4MkMxOS4zNTY0IDE1Ljg5NDQgMTkuMjY4IDE1Ljk1NzUgMTkuMTc5NyAxNi4wMTQzQzE5LjEyMjkgMTYuMDUyMiAxOS4wNjYxIDE2LjA5IDE5LjAwOTMgMTYuMTI0N0MxOC45NDk0IDE2LjE2MjYgMTguODg5NSAxNi4xOTczIDE4LjgyNjQgMTYuMjMyQzE4LjcwMDIgMTYuMzAxNCAxOC41NzQgMTYuMzY0NSAxOC40NDQ2IDE2LjQyNDVDMTguMzMxMSAxNi40NzQ5IDE4LjIxNzUgMTYuNTIyMyAxOC4xMDA4IDE2LjU2MzNDMTcuOTc0NiAxNi42MTA2IDE3Ljg0NTIgMTYuNjUxNiAxNy43MTU5IDE2LjY4NjNDMTcuNTIzNCAxNi43Mzk5IDE3LjMyNDcgMTYuNzgwOSAxNy4xMjU5IDE2LjgxMjVDMTYuOTgwOCAxNi44MzQ2IDE2LjgzNTcgMTYuODUwNCAxNi42ODc0IDE2Ljg2M0MxNi41MzI4IDE2Ljg3MjQgMTYuMzc1MSAxNi44Nzg3IDE2LjIxNzMgMTYuODc1NkMxNi4wNDM4IDE2Ljg3MjQgMTUuODcwMyAxNi44NjMgMTUuNjkzNiAxNi44NDRDMTUuNTY0MyAxNi44MzE0IDE1LjQzNSAxNi44MTI1IDE1LjMwNTYgMTYuNzg3M0MxNS4xOTIgMTYuNzY4MyAxNS4wNzg1IDE2Ljc0MzEgMTQuOTY0OSAxNi43MTc4QzE0LjkwNDkgMTYuNzAyMSAxNC44NDUgMTYuNjg5NSAxNC43ODUxIDE2LjY3MzdDMTQuNjE3OSAxNi42Mjk1IDE0LjQ1MzggMTYuNTgyMiAxNC4yODk4IDE2LjUzNDlDMTQuMjA3NyAxNi41MDk2IDE0LjEyNTcgMTYuNDg3NSAxNC4wNDM3IDE2LjQ2MjNDMTMuOTIwNiAxNi40MjQ1IDEzLjc5NzYgMTYuMzg5NyAxMy42Nzc3IDE2LjM1MTlDMTMuNTc2OCAxNi4zMjAzIDEzLjQ3OSAxNi4yODg4IDEzLjM3OCAxNi4yNTcyQzEzLjI4MzQgMTYuMjI1NyAxMy4xODg3IDE2LjE5NDIgMTMuMDk0MSAxNi4xNjI2QzEzLjAzMSAxNi4xNDA1IDEyLjk2NDcgMTYuMTE4NCAxMi45MDE2IDE2LjA5NjRDMTIuODIyOCAxNi4wNzExIDEyLjc0NzEgMTYuMDQyNyAxMi42NjgyIDE2LjAxNDNDMTIuNjExNCAxNS45OTU0IDEyLjU1NzggMTUuOTc2NSAxMi41MDEgMTUuOTU0NEMxMi4zOTA2IDE1LjkxMzQgMTIuMjgwMiAxNS44NzU1IDEyLjE3MjkgMTUuODM0NUMxMi4xMDk4IDE1LjgwOTMgMTIuMDQ2NyAxNS43ODcyIDExLjk4MzYgMTUuNzYxOUMxMS44OTg0IDE1LjczMDQgMTEuODEzMiAxNS42OTU3IDExLjczMTIgMTUuNjY0MUMxMS42NDI5IDE1LjYyOTQgMTEuNTUxNCAxNS41OTQ3IDExLjQ2MzEgMTUuNTU2OUMxMS40MDYzIDE1LjUzNDggMTEuMzQ2MyAxNS41MDk2IDExLjI4OTUgMTUuNDg3NUMxMS4yMTcgMTUuNDU5MSAxMS4xNDc2IDE1LjQyNzUgMTEuMDc1IDE1LjM5OTFDMTEuMDIxNCAxNS4zNzcxIDEwLjk2NDYgMTUuMzUxOCAxMC45MTEgMTUuMzI5N0MxMC44NTQyIDE1LjMwNDUgMTAuNzk3NCAxNS4yNzkzIDEwLjc0MDYgMTUuMjU0QzEwLjY5MDEgMTUuMjMxOSAxMC42NDI4IDE1LjIwOTkgMTAuNTkyMyAxNS4xODc4QzEwLjU0ODIgMTUuMTY4OCAxMC41MDA4IDE1LjE0NjggMTAuNDU2NyAxNS4xMjc4QzEwLjQwOTQgMTUuMTA1NyAxMC4zNjUyIDE1LjA4NjggMTAuMzE3OSAxNS4wNjQ3QzEwLjI3MDUgMTUuMDQyNyAxMC4yMjMyIDE1LjAyMDYgMTAuMTc1OSAxNC45OTg1QzEwLjExNiAxNC45NzAxIDEwLjA1NiAxNC45NDE3IDkuOTk2MDggMTQuOTE2NUM5LjkzMjk5IDE0Ljg4ODEgOS44NzMwNCAxNC44NTY1IDkuODA5OTUgMTQuODI4MUM5Ljc0MzcgMTQuNzk2NiA5LjY3NzQ1IDE0Ljc2NSA5LjYxMTIgMTQuNzMwM0M5LjU1NDQxIDE0LjcwMTkgOS40OTc2MiAxNC42NzM1IDkuNDQwODQgMTQuNjQ4M0M2LjQ1MzI0IDEzLjE1OTIgMy44MDMyMSAxMS4xNzE3IDEuNTQ0MzggOC43NjE0NUMxLjQzMDgxIDguNjQxNTcgMS4yMzIwNiA4LjcyMDQ0IDEuMjMyMDYgOC44ODQ0OUwxLjIzODM2IDE4LjA5MzNDMS4yMzgzNiAxOC40OTQgMS40MzcxMiAxOC44NzI2IDEuNzcxNTMgMTkuMDkzNEMzLjg2NjMxIDIwLjQ4NzggNi4zODY5OSAyMS4yOTg2IDkuMDk2OTYgMjEuMjk4NloiIGZpbGw9IiMzMzcwRkYiIC8+CiAgPHBhdGggZD0iTTIzLjczMjIgOS4yOTQ4OEMyMi43MjI2IDguNzk2NDIgMjEuNTgzOCA4LjUxODggMjAuMzgxOCA4LjUxODhDMTkuNjY4OCA4LjUxODggMTguOTc0NyA4LjYxNjYgMTguMzIxNyA4LjgwMjczQzE4LjI0NiA4LjgyNDgxIDE4LjE3MDMgOC44NDY5IDE4LjA5NzcgOC44Njg5OEMxOC4wNDQxIDguODg0NzYgMTcuOTkwNSA4LjkwMzY4IDE3Ljk0IDguOTE5NDZDMTcuODM1OSA4Ljk1NDE2IDE3LjczMTggOC45OTIwMiAxNy42Mjc2IDkuMDMzMDNDMTcuNDQ0NyA5LjEwNTU5IDE3LjI2MTcgOS4xODQ0NiAxNy4wODUgOS4yNjk2NEMxNi44OTU3IDkuMzYxMTMgMTYuNzEyOCA5LjQ1ODkzIDE2LjUzMjkgOS41NjYxOUMxNi4zNSA5LjY3MzQ1IDE2LjE3MDEgOS43OTAxOCAxNS45OTk4IDkuOTEzMjJDMTUuODc2NyAxMC4wMDE2IDE1Ljc1NjkgMTAuMDkzIDE1LjYzNyAxMC4xODc3QzE1LjUwNzYgMTAuMjkxOCAxNS4zODQ2IDEwLjM5OTEgMTUuMjYxNiAxMC41MDk1QzE1LjE5NTMgMTAuNTY5NCAxNS4xMzIyIDEwLjYzMjUgMTUuMDY2IDEwLjY5MjVMMTQuNzMxNSAxMS4wMjA2TDEzLjM5MzkgMTIuMzQyNEwxMy4xNjM2IDEyLjU2OTZMMTMuMDg3OSAxMi42NDUzQzEzLjA1IDEyLjY4MzEgMTMuMDEyMiAxMi43MTc4IDEyLjk3NzUgMTIuNzU1N0MxMi45NTg2IDEyLjc3NDYgMTIuOTM5NiAxMi43OTA0IDEyLjkyMDcgMTIuODA5M0MxMi44OTIzIDEyLjgzNzcgMTIuODYzOSAxMi44NjMgMTIuODM1NSAxMi44ODgyQzEyLjgwNCAxMi45MTY2IDEyLjc3MjQgMTIuOTQ4MSAxMi43NDA5IDEyLjk3NjVDMTEuOTE0MyAxMy43MzY4IDEwLjk5MzEgMTQuMzg5OSA5Ljk5MzA0IDE0LjkyM0MxMC4wNTMgMTQuOTUxNCAxMC4xMTI5IDE0Ljk3OTggMTAuMTcyOSAxNS4wMDUxQzEwLjIyMDIgMTUuMDI3MSAxMC4yNjc1IDE1LjA0OTIgMTAuMzE0OCAxNS4wNzEzQzEwLjM1OSAxNS4wOTM0IDEwLjQwNjMgMTUuMTEyMyAxMC40NTM2IDE1LjEzNDRDMTAuNDk3OCAxNS4xNTMzIDEwLjU0NTEgMTUuMTc1NCAxMC41ODkzIDE1LjE5NDNDMTAuNjM5OCAxNS4yMTY0IDEwLjY4NzEgMTUuMjM4NSAxMC43Mzc2IDE1LjI2MDZDMTAuNzk0NCAxNS4yODU4IDEwLjg1MTEgMTUuMzExMSAxMC45MDc5IDE1LjMzNjNDMTAuOTYxNiAxNS4zNTg0IDExLjAxODQgMTUuMzgzNiAxMS4wNzIgMTUuNDA1N0MxMS4xNDQ1IDE1LjQzNzMgMTEuMjEzOSAxNS40NjU3IDExLjI4NjUgMTUuNDk0MUMxMS4zNDMzIDE1LjUxOTMgMTEuNDAzMiAxNS41NDE0IDExLjQ2IDE1LjU2MzVDMTEuNTQ4NCAxNS41OTgyIDExLjYzNjcgMTUuNjM2IDExLjcyODIgMTUuNjcwN0MxMS44MTM0IDE1LjcwMjMgMTEuODk1NCAxNS43MzcgMTEuOTgwNiAxNS43Njg1QzEyLjA0MzcgMTUuNzkzOCAxMi4xMDY4IDE1LjgxNTggMTIuMTY5OSAxNS44NDExQzEyLjI4MDMgMTUuODgyMSAxMi4zODc1IDE1LjkyMzEgMTIuNDk4IDE1Ljk2MUMxMi41NTQ3IDE1Ljk3OTkgMTIuNjA4NCAxNi4wMDIgMTIuNjY1MiAxNi4wMjA5QzEyLjc0NCAxNi4wNDkzIDEyLjgxOTcgMTYuMDc0NSAxMi44OTg2IDE2LjEwMjlDMTIuOTYxNyAxNi4xMjUgMTMuMDI4IDE2LjE0NzEgMTMuMDkxMSAxNi4xNjkyQzEzLjE4NTcgMTYuMjAwNyAxMy4yODAzIDE2LjIzMjMgMTMuMzc1IDE2LjI2MzhDMTMuNDcyOCAxNi4yOTU0IDEzLjU3MzcgMTYuMzI2OSAxMy42NzQ3IDE2LjM1ODVDMTMuNzk3NyAxNi4zOTYzIDEzLjkxNzYgMTYuNDM0MiAxNC4wNDA2IDE2LjQ2ODlDMTQuMTIyNyAxNi40OTQxIDE0LjIwNDcgMTYuNTE2MiAxNC4yODY3IDE2LjU0MTRDMTQuNDUwOCAxNi41ODg4IDE0LjYxOCAxNi42MzYxIDE0Ljc4MiAxNi42ODAzQzE0Ljg0MiAxNi42OTYgMTQuOTAxOSAxNi43MTE4IDE0Ljk2MTggMTYuNzI0NEMxNS4wNzU0IDE2Ljc1MjggMTUuMTg5IDE2Ljc3NDkgMTUuMzAyNiAxNi43OTM4QzE1LjQzMTkgMTYuODE1OSAxNS41NjEzIDE2LjgzNDggMTUuNjkwNiAxNi44NTA2QzE1Ljg2NzMgMTYuODY5NSAxNi4wNDA4IDE2Ljg4MjIgMTYuMjE0MyAxNi44ODIyQzE2LjM3MiAxNi44ODUzIDE2LjUyOTggMTYuODc5IDE2LjY4NDQgMTYuODY5NUMxNi44MzI2IDE2Ljg2MDEgMTYuOTc3OCAxNi44NDEyIDE3LjEyMjkgMTYuODE5MUMxNy4zMjQ4IDE2Ljc4NzUgMTcuNTIwNCAxNi43NDY1IDE3LjcxMjggMTYuNjkyOUMxNy44NDIyIDE2LjY1ODIgMTcuOTcxNSAxNi42MTcyIDE4LjA5NzcgMTYuNTY5OEMxOC4yMTQ0IDE2LjUyNTcgMTguMzI4IDE2LjQ4MTUgMTguNDQxNiAxNi40Mjc5QzE4LjU3MDkgMTYuMzY3OSAxOC43MDAzIDE2LjMwNDggMTguODIzMyAxNi4yMzU0QzE4Ljg4MzMgMTYuMjAwNyAxOC45NDY0IDE2LjE2NiAxOS4wMDYzIDE2LjEyODJDMTkuMDYzMSAxNi4wOTM1IDE5LjExOTkgMTYuMDU1NiAxOS4xNzY3IDE2LjAxNzhDMTkuMjY1IDE1Ljk1NzggMTkuMzUzMyAxNS44OTQ3IDE5LjQzODUgMTUuODMxNkMxOS41MTExIDE1Ljc3NDggMTkuNTgzNiAxNS43MTggMTkuNjUzIDE1LjY1ODFDMTkuNzc5MiAxNS41NTA4IDE5Ljg5OTEgMTUuNDM0MSAyMC4wMTU4IDE1LjMxNDJDMjAuMDcyNiAxNS4yNTQzIDIwLjEyOTQgMTUuMTk0MyAyMC4xODMgMTUuMTMxM0MyMC4yNTI0IDE1LjA1MjQgMjAuMzE4NyAxNC45NzA0IDIwLjM4NDkgMTQuODg1MkMyMC40MzU0IDE0LjgxODkgMjAuNDg1OSAxNC43NDk1IDIwLjUzNjQgMTQuNjgwMUMyMC42NzIgMTQuNDg0NSAyMC43OTgyIDE0LjI3NjMgMjAuOTExOCAxNC4wNTg2TDIxLjA0MTEgMTMuNzk5OUwyMi4yMDg0IDExLjQ3NDhMMjIuMjA1MyAxMS40ODEyQzIyLjU4MDcgMTAuNjU3OCAyMy4xMDEyIDkuOTE5NTMgMjMuNzMyMiA5LjI5NDg4WiIgZmlsbD0iIzEzM0M5QSIgLz4KPC9zdmc+Cg==");
532
+ redditIcon = imageDataUrl("image/svg+xml", "PHN2ZyBmaWxsPSIjRkY0NTAwIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+UmVkZGl0PC90aXRsZT48cGF0aCBkPSJNMTIgMEM1LjM3MyAwIDAgNS4zNzMgMCAxMmMwIDMuMzE0IDEuMzQzIDYuMzE0IDMuNTE1IDguNDg1bC0yLjI4NiAyLjI4NkMuNzc1IDIzLjIyNSAxLjA5NyAyNCAxLjczOCAyNEgxMmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyUzE4LjYyNyAwIDEyIDBabTQuMzg4IDMuMTk5YzEuMTA0IDAgMS45OTkuODk1IDEuOTk5IDEuOTk5IDAgMS4xMDUtLjg5NSAyLTEuOTk5IDItLjk0NiAwLTEuNzM5LS42NTctMS45NDctMS41Mzl2LjAwMmMtMS4xNDcuMTYyLTIuMDMyIDEuMTUtMi4wMzIgMi4zNDF2LjAwN2MxLjc3Ni4wNjcgMy40LjU2NyA0LjY4NiAxLjM2My40NzMtLjM2MyAxLjA2NC0uNTggMS43MDctLjU4IDEuNTQ3IDAgMi44MDIgMS4yNTQgMi44MDIgMi44MDIgMCAxLjExNy0uNjU1IDIuMDgxLTEuNjAxIDIuNTMxLS4wODggMy4yNTYtMy42MzcgNS44NzYtNy45OTcgNS44NzYtNC4zNjEgMC03LjkwNS0yLjYxNy03Ljk5OC01Ljg3LS45NTQtLjQ0Ny0xLjYxNC0xLjQxNS0xLjYxNC0yLjUzOCAwLTEuNTQ4IDEuMjU1LTIuODAyIDIuODAzLTIuODAyLjY0NSAwIDEuMjM5LjIxOCAxLjcxMi41ODUgMS4yNzUtLjc5IDIuODgxLTEuMjkxIDQuNjQtMS4zNjV2LS4wMWMwLTEuNjYzIDEuMjYzLTMuMDM0IDIuODgtMy4yMDcuMTg4LS45MTEuOTkzLTEuNTk1IDEuOTU5LTEuNTk1Wm0tOC4wODUgOC4zNzZjLS43ODQgMC0xLjQ1OS43OC0xLjUwNiAxLjc5Ny0uMDQ3IDEuMDE2LjY0IDEuNDI5IDEuNDI2IDEuNDI5Ljc4NiAwIDEuMzcxLS4zNjkgMS40MTgtMS4zODUuMDQ3LTEuMDE3LS41NTMtMS44NDEtMS4zMzgtMS44NDFabTcuNDA2IDBjLS43ODYgMC0xLjM4NS44MjQtMS4zMzggMS44NDEuMDQ3IDEuMDE3LjYzNCAxLjM4NSAxLjQxOCAxLjM4NS43ODUgMCAxLjQ3My0uNDEzIDEuNDI2LTEuNDI5LS4wNDYtMS4wMTctLjcyMS0xLjc5Ny0xLjUwNi0xLjc5N1ptLTMuNzAzIDQuMDEzYy0uOTc0IDAtMS45MDcuMDQ4LTIuNzcuMTM1LS4xNDcuMDE1LS4yNDEuMTY4LS4xODMuMzA1LjQ4MyAxLjE1NCAxLjYyMiAxLjk2NCAyLjk1MyAxLjk2NCAxLjMzIDAgMi40Ny0uODEgMi45NTMtMS45NjQuMDU3LS4xMzctLjAzNy0uMjktLjE4NC0uMzA1LS44NjMtLjA4Ny0xLjc5NS0uMTM1LTIuNzY5LS4xMzVaIi8+PC9zdmc+");
533
+ mediumIcon = imageDataUrl("image/svg+xml", "PHN2ZyBmaWxsPSIjMDAwMDAwIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+TWVkaXVtPC90aXRsZT48cGF0aCBkPSJNNC4yMSAwQTQuMjAxIDQuMjAxIDAgMCAwIDAgNC4yMXYxNS41OEE0LjIwMSA0LjIwMSAwIDAgMCA0LjIxIDI0aDE1LjU4QTQuMjAxIDQuMjAxIDAgMCAwIDI0IDE5Ljc5di0xLjA5M2MtLjEzNy4wMTMtLjI3OC4wMi0uNDIyLjAyLTIuNTc3IDAtNC4wMjctMi4xNDYtNC4wOS00LjgzMmE3LjU5MiA3LjU5MiAwIDAgMSAuMDIyLS43MDhjLjA5My0xLjE4Ni40NzUtMi4yNDEgMS4xMDUtMy4wMjJhMy44ODUgMy44ODUgMCAwIDEgMS4zOTUtMS4xYy40NjgtLjIzNyAxLjEyNy0uMzY3IDEuNjY0LS4zNjdoLjAyM2MuMTAxIDAgLjIwMi4wMDQuMzAzLjAxVjQuMjExQTQuMjAxIDQuMjAxIDAgMCAwIDE5Ljc5IDBabS4xOTggNS41ODNoNC4xNjVsMy41ODggOC40MzUgMy41OS04LjQzNWgzLjg2NHYuMTQ2bC0uMDE5LjAwNGMtLjcwNS4xNi0xLjA2My4zOTctMS4wNjMgMS4yNTRoLS4wMDNsLjAwMyAxMC4yNzRjLjA2LjY3Ni40MjQuODg1IDEuMDYzIDEuMDNsLjAyLjAwNHYuMTQ1aC00LjkyM3YtLjE0NWwuMDE5LS4wMDVjLjYzOS0uMTQ0Ljk5NC0uMzUzIDEuMDU0LTEuMDNWNy4yNjdsLTQuNzQ1IDExLjE1aC0uMjYxTDYuMTUgNy41Njl2OS40NDVjMCAuODU3LjM1OCAxLjA5NCAxLjA2MyAxLjI1M2wuMDIuMDA0di4xNDdINC40MDV2LS4xNDdsLjAxOS0uMDA0Yy43MDUtLjE2IDEuMDY1LS4zOTcgMS4wNjUtMS4yNTNWNi45ODdjMC0uODU3LS4zNTgtMS4wOTQtMS4wNjQtMS4yNTRsLS4wMTgtLjAwNHptMTkuMjUgMy42NjhjLTEuMDg2LjAyMy0xLjczMyAxLjMyMy0xLjgxMyAzLjEyNEgyNFY5LjI5OGExLjM3OCAxLjM3OCAwIDAgMC0uMzQyLS4wNDdabS0xLjg2MiAzLjYzMmMtLjEgMS43NTYuODYgMy4yMzkgMi4yMDQgMy42MzR2LTMuNjM0eiIvPjwvc3ZnPg==");
534
+ hackerNewsIcon = imageDataUrl("image/svg+xml", "PHN2ZyBmaWxsPSIjRjA2NTJGIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+WSBDb21iaW5hdG9yPC90aXRsZT48cGF0aCBkPSJNMCAyNFYwaDI0djI0SDB6TTYuOTUxIDUuODk2bDQuMTEyIDcuNzA4djUuMDY0aDEuNTgzdi00Ljk3Mmw0LjE0OC03Ljc5OWgtMS43NDlsLTIuNDU3IDQuODc1Yy0uMzcyLjc0NS0uNjg4IDEuNDM0LS42ODggMS40MzRzLS4yOTctLjcwOC0uNjUxLTEuNDM0TDguODMxIDUuODk2aC0xLjg4eiIvPjwvc3ZnPg==");
535
+ linuxDoIcon = imageDataUrl("image/svg+xml", "PHN2ZyBmaWxsPSIjMDAwMDAwIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+RGlzY291cnNlPC90aXRsZT48cGF0aCBkPSJNMTIuMTAzIDBDMTguNjY2IDAgMjQgNS40ODUgMjQgMTEuOTk3YzAgNi41MS01LjMzIDExLjk5LTExLjkgMTEuOTlMMCAyNFYxMS43OUMwIDUuMjggNS41MzIgMCAxMi4xMDMgMHptLjExNiA0LjU2M2MtMi41OTMtLjAwMy00Ljk5NiAxLjM1Mi02LjMzNyAzLjU3LTEuMzMgMi4yMDgtMS4zODcgNC45NTctLjE0OCA3LjIyTDQuNCAxOS42MWw0Ljc5NC0xLjA3NGMyLjc0NSAxLjIyNSA1Ljk2NS42NzYgOC4xMzYtMS4zOSAyLjE3LTIuMDU0IDIuODYtNS4yMjggMS43MzctNy45OTctMS4xMzUtMi43NzgtMy44NC00LjU5LTYuODQtNC41ODVoLS4wMDh6Ii8+PC9zdmc+");
536
+ feishuIcon = imageDataUrl("image/svg+xml", "PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMTIuOTIzOCAxMi44MDI5QzEyLjk0MjcgMTIuNzg0IDEyLjk2MTYgMTIuNzY4MiAxMi45ODA2IDEyLjc0OTNDMTMuMDE4NCAxMi43MTQ2IDEzLjA1NjMgMTIuNjc2NyAxMy4wOTEgMTIuNjM4OUwxMy4xNjY3IDEyLjU2MzFMMTMuMzk3IDEyLjMzNkwxNC43MzE1IDExLjAxNzNMMTUuMDY1OSAxMC42ODZDMTUuMTI5IDEwLjYyMjkgMTUuMTk1MiAxMC41NjMgMTUuMjYxNSAxMC41MDMxQzE1LjM4NDUgMTAuMzkyNiAxNS41MDc2IDEwLjI4NTQgMTUuNjM2OSAxMC4xODEzQzE1Ljc1MzYgMTAuMDg2NiAxNS44NzY3IDkuOTk1MTQgMTUuOTk5NyA5LjkwNjhDMTYuMTczMiA5Ljc4Mzc2IDE2LjM0OTkgOS42NzAxOSAxNi41MzI5IDkuNTU5NzdDMTYuNzEyNyA5LjQ1MjUxIDE2Ljg5NTcgOS4zNTQ3MSAxNy4wODUgOS4yNjMyMkMxNy4yNjE2IDkuMTc4MDQgMTcuNDQxNSA5LjA5OTE3IDE3LjYyNzYgOS4wMjY2MUMxNy43MzE3IDguOTg1NiAxNy44MzI2IDguOTQ3NzQgMTcuOTM5OSA4LjkxMzA0QzE3Ljk5MzUgOC44OTQxMSAxOC4wNDQgOC44NzgzNCAxOC4wOTc3IDguODYyNTZDMTcuNjI3NiA3LjAwNDM5IDE2Ljc2MzIgNS4zMDA4IDE1LjU5OTEgMy44NDk1OUMxNS4zNzE5IDMuNTY1NjYgMTUuMDI0OSAzLjQwMTYxIDE0LjY1ODkgMy40MDE2MUg1LjAwODRDNC44MzQ4OSAzLjQwMTYxIDQuNzYyMzMgMy42MjU2IDQuOTAxMTQgMy43MjY1NkM4LjE4NTI4IDYuMTM5OTcgMTAuOTIzNiA5LjI0MTE0IDEyLjkwMTcgMTIuODI1QzEyLjkwOCAxMi44MTg3IDEyLjkxNzUgMTIuODEyNCAxMi45MjM4IDEyLjgwMjlaIiBmaWxsPSIjMDBENkI5IiAvPgogIDxwYXRoIGQ9Ik05LjA5Njk2IDIxLjI5ODZDMTQuMDgxNSAyMS4yOTg2IDE4LjQyMjUgMTguNTQ3NiAyMC42ODc3IDE0LjQ4NDNDMjAuNzY2NiAxNC4zNDIzIDIwLjg0NTQgMTQuMTk3MiAyMC45MTggMTQuMDUyQzIwLjgwNDQgMTQuMjcyOSAyMC42NzUxIDE0LjQ4MTEgMjAuNTM5NCAxNC42NzY3QzIwLjQ4ODkgMTQuNzQ2MSAyMC40Mzg1IDE0LjgxNTUgMjAuMzg4IDE0Ljg4MThDMjAuMzIxNyAxNC45NjY5IDIwLjI1NTUgMTUuMDQ5IDIwLjE4NjEgMTUuMTI3OEMyMC4xMzI0IDE1LjE5MDkgMjAuMDc1NyAxNS4yNTA5IDIwLjAxODkgMTUuMzEwOEMxOS45MDIxIDE1LjQzMDcgMTkuNzgyMyAxNS41NDc0IDE5LjY1NjEgMTUuNjU0N0MxOS41ODY3IDE1LjcxNDYgMTkuNTE0MSAxNS43NzE0IDE5LjQ0MTUgMTUuODI4MkMxOS4zNTY0IDE1Ljg5NDQgMTkuMjY4IDE1Ljk1NzUgMTkuMTc5NyAxNi4wMTQzQzE5LjEyMjkgMTYuMDUyMiAxOS4wNjYxIDE2LjA5IDE5LjAwOTMgMTYuMTI0N0MxOC45NDk0IDE2LjE2MjYgMTguODg5NSAxNi4xOTczIDE4LjgyNjQgMTYuMjMyQzE4LjcwMDIgMTYuMzAxNCAxOC41NzQgMTYuMzY0NSAxOC40NDQ2IDE2LjQyNDVDMTguMzMxMSAxNi40NzQ5IDE4LjIxNzUgMTYuNTIyMyAxOC4xMDA4IDE2LjU2MzNDMTcuOTc0NiAxNi42MTA2IDE3Ljg0NTIgMTYuNjUxNiAxNy43MTU5IDE2LjY4NjNDMTcuNTIzNCAxNi43Mzk5IDE3LjMyNDcgMTYuNzgwOSAxNy4xMjU5IDE2LjgxMjVDMTYuOTgwOCAxNi44MzQ2IDE2LjgzNTcgMTYuODUwNCAxNi42ODc0IDE2Ljg2M0MxNi41MzI4IDE2Ljg3MjQgMTYuMzc1MSAxNi44Nzg3IDE2LjIxNzMgMTYuODc1NkMxNi4wNDM4IDE2Ljg3MjQgMTUuODcwMyAxNi44NjMgMTUuNjkzNiAxNi44NDRDMTUuNTY0MyAxNi44MzE0IDE1LjQzNSAxNi44MTI1IDE1LjMwNTYgMTYuNzg3M0MxNS4xOTIgMTYuNzY4MyAxNS4wNzg1IDE2Ljc0MzEgMTQuOTY0OSAxNi43MTc4QzE0LjkwNDkgMTYuNzAyMSAxNC44NDUgMTYuNjg5NSAxNC43ODUxIDE2LjY3MzdDMTQuNjE3OSAxNi42Mjk1IDE0LjQ1MzggMTYuNTgyMiAxNC4yODk4IDE2LjUzNDlDMTQuMjA3NyAxNi41MDk2IDE0LjEyNTcgMTYuNDg3NSAxNC4wNDM3IDE2LjQ2MjNDMTMuOTIwNiAxNi40MjQ1IDEzLjc5NzYgMTYuMzg5NyAxMy42Nzc3IDE2LjM1MTlDMTMuNTc2OCAxNi4zMjAzIDEzLjQ3OSAxNi4yODg4IDEzLjM3OCAxNi4yNTcyQzEzLjI4MzQgMTYuMjI1NyAxMy4xODg3IDE2LjE5NDIgMTMuMDk0MSAxNi4xNjI2QzEzLjAzMSAxNi4xNDA1IDEyLjk2NDcgMTYuMTE4NCAxMi45MDE2IDE2LjA5NjRDMTIuODIyOCAxNi4wNzExIDEyLjc0NzEgMTYuMDQyNyAxMi42NjgyIDE2LjAxNDNDMTIuNjExNCAxNS45OTU0IDEyLjU1NzggMTUuOTc2NSAxMi41MDEgMTUuOTU0NEMxMi4zOTA2IDE1LjkxMzQgMTIuMjgwMiAxNS44NzU1IDEyLjE3MjkgMTUuODM0NUMxMi4xMDk4IDE1LjgwOTMgMTIuMDQ2NyAxNS43ODcyIDExLjk4MzYgMTUuNzYxOUMxMS44OTg0IDE1LjczMDQgMTEuODEzMiAxNS42OTU3IDExLjczMTIgMTUuNjY0MUMxMS42NDI5IDE1LjYyOTQgMTEuNTUxNCAxNS41OTQ3IDExLjQ2MzEgMTUuNTU2OUMxMS40MDYzIDE1LjUzNDggMTEuMzQ2MyAxNS41MDk2IDExLjI4OTUgMTUuNDg3NUMxMS4yMTcgMTUuNDU5MSAxMS4xNDc2IDE1LjQyNzUgMTEuMDc1IDE1LjM5OTFDMTEuMDIxNCAxNS4zNzcxIDEwLjk2NDYgMTUuMzUxOCAxMC45MTEgMTUuMzI5N0MxMC44NTQyIDE1LjMwNDUgMTAuNzk3NCAxNS4yNzkzIDEwLjc0MDYgMTUuMjU0QzEwLjY5MDEgMTUuMjMxOSAxMC42NDI4IDE1LjIwOTkgMTAuNTkyMyAxNS4xODc4QzEwLjU0ODIgMTUuMTY4OCAxMC41MDA4IDE1LjE0NjggMTAuNDU2NyAxNS4xMjc4QzEwLjQwOTQgMTUuMTA1NyAxMC4zNjUyIDE1LjA4NjggMTAuMzE3OSAxNS4wNjQ3QzEwLjI3MDUgMTUuMDQyNyAxMC4yMjMyIDE1LjAyMDYgMTAuMTc1OSAxNC45OTg1QzEwLjExNiAxNC45NzAxIDEwLjA1NiAxNC45NDE3IDkuOTk2MDggMTQuOTE2NUM5LjkzMjk5IDE0Ljg4ODEgOS44NzMwNCAxNC44NTY1IDkuODA5OTUgMTQuODI4MUM5Ljc0MzcgMTQuNzk2NiA5LjY3NzQ1IDE0Ljc2NSA5LjYxMTIgMTQuNzMwM0M5LjU1NDQxIDE0LjcwMTkgOS40OTc2MiAxNC42NzM1IDkuNDQwODQgMTQuNjQ4M0M2LjQ1MzI0IDEzLjE1OTIgMy44MDMyMSAxMS4xNzE3IDEuNTQ0MzggOC43NjE0NUMxLjQzMDgxIDguNjQxNTcgMS4yMzIwNiA4LjcyMDQ0IDEuMjMyMDYgOC44ODQ0OUwxLjIzODM2IDE4LjA5MzNDMS4yMzgzNiAxOC40OTQgMS40MzcxMiAxOC44NzI2IDEuNzcxNTMgMTkuMDkzNEMzLjg2NjMxIDIwLjQ4NzggNi4zODY5OSAyMS4yOTg2IDkuMDk2OTYgMjEuMjk4NloiIGZpbGw9IiMzMzcwRkYiIC8+CiAgPHBhdGggZD0iTTIzLjczMjIgOS4yOTQ4OEMyMi43MjI2IDguNzk2NDIgMjEuNTgzOCA4LjUxODggMjAuMzgxOCA4LjUxODhDMTkuNjY4OCA4LjUxODggMTguOTc0NyA4LjYxNjYgMTguMzIxNyA4LjgwMjczQzE4LjI0NiA4LjgyNDgxIDE4LjE3MDMgOC44NDY5IDE4LjA5NzcgOC44Njg5OEMxOC4wNDQxIDguODg0NzYgMTcuOTkwNSA4LjkwMzY4IDE3Ljk0IDguOTE5NDZDMTcuODM1OSA4Ljk1NDE2IDE3LjczMTggOC45OTIwMiAxNy42Mjc2IDkuMDMzMDNDMTcuNDQ0NyA5LjEwNTU5IDE3LjI2MTcgOS4xODQ0NiAxNy4wODUgOS4yNjk2NEMxNi44OTU3IDkuMzYxMTMgMTYuNzEyOCA5LjQ1ODkzIDE2LjUzMjkgOS41NjYxOUMxNi4zNSA5LjY3MzQ1IDE2LjE3MDEgOS43OTAxOCAxNS45OTk4IDkuOTEzMjJDMTUuODc2NyAxMC4wMDE2IDE1Ljc1NjkgMTAuMDkzIDE1LjYzNyAxMC4xODc3QzE1LjUwNzYgMTAuMjkxOCAxNS4zODQ2IDEwLjM5OTEgMTUuMjYxNiAxMC41MDk1QzE1LjE5NTMgMTAuNTY5NCAxNS4xMzIyIDEwLjYzMjUgMTUuMDY2IDEwLjY5MjVMMTQuNzMxNSAxMS4wMjA2TDEzLjM5MzkgMTIuMzQyNEwxMy4xNjM2IDEyLjU2OTZMMTMuMDg3OSAxMi42NDUzQzEzLjA1IDEyLjY4MzEgMTMuMDEyMiAxMi43MTc4IDEyLjk3NzUgMTIuNzU1N0MxMi45NTg2IDEyLjc3NDYgMTIuOTM5NiAxMi43OTA0IDEyLjkyMDcgMTIuODA5M0MxMi44OTIzIDEyLjgzNzcgMTIuODYzOSAxMi44NjMgMTIuODM1NSAxMi44ODgyQzEyLjgwNCAxMi45MTY2IDEyLjc3MjQgMTIuOTQ4MSAxMi43NDA5IDEyLjk3NjVDMTEuOTE0MyAxMy43MzY4IDEwLjk5MzEgMTQuMzg5OSA5Ljk5MzA0IDE0LjkyM0MxMC4wNTMgMTQuOTUxNCAxMC4xMTI5IDE0Ljk3OTggMTAuMTcyOSAxNS4wMDUxQzEwLjIyMDIgMTUuMDI3MSAxMC4yNjc1IDE1LjA0OTIgMTAuMzE0OCAxNS4wNzEzQzEwLjM1OSAxNS4wOTM0IDEwLjQwNjMgMTUuMTEyMyAxMC40NTM2IDE1LjEzNDRDMTAuNDk3OCAxNS4xNTMzIDEwLjU0NTEgMTUuMTc1NCAxMC41ODkzIDE1LjE5NDNDMTAuNjM5OCAxNS4yMTY0IDEwLjY4NzEgMTUuMjM4NSAxMC43Mzc2IDE1LjI2MDZDMTAuNzk0NCAxNS4yODU4IDEwLjg1MTEgMTUuMzExMSAxMC45MDc5IDE1LjMzNjNDMTAuOTYxNiAxNS4zNTg0IDExLjAxODQgMTUuMzgzNiAxMS4wNzIgMTUuNDA1N0MxMS4xNDQ1IDE1LjQzNzMgMTEuMjEzOSAxNS40NjU3IDExLjI4NjUgMTUuNDk0MUMxMS4zNDMzIDE1LjUxOTMgMTEuNDAzMiAxNS41NDE0IDExLjQ2IDE1LjU2MzVDMTEuNTQ4NCAxNS41OTgyIDExLjYzNjcgMTUuNjM2IDExLjcyODIgMTUuNjcwN0MxMS44MTM0IDE1LjcwMjMgMTEuODk1NCAxNS43MzcgMTEuOTgwNiAxNS43Njg1QzEyLjA0MzcgMTUuNzkzOCAxMi4xMDY4IDE1LjgxNTggMTIuMTY5OSAxNS44NDExQzEyLjI4MDMgMTUuODgyMSAxMi4zODc1IDE1LjkyMzEgMTIuNDk4IDE1Ljk2MUMxMi41NTQ3IDE1Ljk3OTkgMTIuNjA4NCAxNi4wMDIgMTIuNjY1MiAxNi4wMjA5QzEyLjc0NCAxNi4wNDkzIDEyLjgxOTcgMTYuMDc0NSAxMi44OTg2IDE2LjEwMjlDMTIuOTYxNyAxNi4xMjUgMTMuMDI4IDE2LjE0NzEgMTMuMDkxMSAxNi4xNjkyQzEzLjE4NTcgMTYuMjAwNyAxMy4yODAzIDE2LjIzMjMgMTMuMzc1IDE2LjI2MzhDMTMuNDcyOCAxNi4yOTU0IDEzLjU3MzcgMTMuMzI2OSAxMy42NzQ3IDE2LjM1ODVDMTMuNzk3NyAxNi4zOTYzIDEzLjkxNzYgMTYuNDM0MiAxNC4wNDA2IDE2LjQ2ODlDMTQuMTIyNyAxNi40OTQxIDE0LjIwNDcgMTYuNTE2MiAxNC4yODY3IDE2LjU0MTRDMTQuNDUwOCAxNi41ODg4IDE0LjYxOCAxNi42MzYxIDE0Ljc4MiAxNi42ODAzQzE0Ljg0MiAxNi42OTYgMTQuOTAxOSAxNi43MTE4IDE0Ljk2MTggMTYuNzI0NEMxNS4wNzU0IDE2Ljc1MjggMTUuMTg5IDE2Ljc3NDkgMTUuMzAyNiAxNi43OTM4QzE1LjQzMTkgMTYuODE1OSAxNS41NjEzIDE2LjgzNDggMTUuNjkwNiAxNi44NTA2QzE1Ljg2NzMgMTYuODY5NSAxNi4wNDA4IDE2Ljg4MjIgMTYuMjE0MyAxNi44ODIyQzE2LjM3MiAxNi44ODUzIDE2LjUyOTggMTYuODc5IDE2LjY4NDQgMTYuODY5NUMxNi44MzI2IDE2Ljg2MDEgMTYuOTc3OCAxNi44NDEyIDE3LjEyMjkgMTYuODE5MUMxNy4zMjQ4IDE2Ljc4NzUgMTcuNTIwNCAxNi43NDY1IDE3LjcxMjggMTYuNjkyOUMxNy44NDIyIDE2LjY1ODIgMTcuOTcxNSAxNi42MTcyIDE4LjA5NzcgMTYuNTY5OEMxOC4yMTQ0IDE2LjUyNTcgMTguMzI4IDE2LjQ4MTUgMTguNDQxNiAxNi40Mjc5QzE4LjU3MDkgMTYuMzY3OSAxOC43MDAzIDE2LjMwNDggMTguODIzMyAxNi4yMzU0QzE4Ljg4MzMgMTYuMjAwNyAxOC45NDY0IDE2LjE2NiAxOS4wMDYzIDE2LjEyODJDMTkuMDYzMSAxNi4wOTM1IDE5LjExOTkgMTYuMDU1NiAxOS4xNzY3IDE2LjAxNzhDMTkuMjY1IDE1Ljk1NzggMTkuMzUzMyAxNS44OTQ3IDE5LjQzODUgMTUuODMxNkMxOS41MTExIDE1Ljc3NDggMTkuNTgzNiAxNS43MTggMTkuNjUzIDE1LjY1ODFDMTkuNzc5MiAxNS41NTA4IDE5Ljg5OTEgMTUuNDM0MSAyMC4wMTU4IDE1LjMxNDJDMjAuMDcyNiAxNS4yNTQzIDIwLjEyOTQgMTUuMTk0MyAyMC4xODMgMTUuMTMxM0MyMC4yNTI0IDE1LjA1MjQgMjAuMzE4NyAxNC45NzA0IDIwLjM4NDkgMTQuODg1MkMyMC40MzU0IDE0LjgxODkgMjAuNDg1OSAxNC43NDk1IDIwLjUzNjQgMTQuNjgwMUMyMC42NzIgMTQuNDg0NSAyMC43OTgyIDE0LjI3NjMgMjAuOTExOCAxNC4wNTg2TDIxLjA0MTEgMTMuNzk5OUwyMi4yMDg0IDExLjQ3NDhMMjIuMjA1MyAxMS40ODEyQzIyLjU4MDcgMTAuNjU3OCAyMy4xMDEyIDkuOTE5NTMgMjMuNzMyMiA5LjI5NDg4WiIgZmlsbD0iIzEzM0M5QSIgLz4KPC9zdmc+Cg==");
525
537
  rudderIcon = imageDataUrl("image/x-icon", "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");
526
538
  KNOWN_WEBSITE_ICONS = [
527
539
  { hostnames: ["x.com", "twitter.com"], includeSubdomains: true, siteName: "X", iconDataUrl: xIcon },
@@ -532,9 +544,9 @@ var init_website_icons = __esm({
532
544
  { hostnames: ["docs.google.com"], siteName: "Google Docs", iconDataUrl: googleDocsIcon },
533
545
  { hostnames: ["notion.so", "www.notion.so"], siteName: "Notion", iconDataUrl: notionIcon },
534
546
  { hostnames: ["linear.app", "linear.com"], siteName: "Linear", iconDataUrl: linearIcon },
535
- { hostnames: ["openai.com", "www.openai.com", "platform.openai.com"], siteName: "OpenAI", iconDataUrl: openaiIcon },
536
- { hostnames: ["chatgpt.com", "www.chatgpt.com", "chat.openai.com"], siteName: "ChatGPT", iconDataUrl: chatgptIcon },
537
- { hostnames: ["anthropic.com", "www.anthropic.com", "console.anthropic.com"], siteName: "Anthropic", iconDataUrl: anthropicIcon },
547
+ { hostnames: ["openai.com"], includeSubdomains: true, siteName: "OpenAI", iconDataUrl: openaiIcon },
548
+ { hostnames: ["chatgpt.com", "chat.openai.com"], includeSubdomains: true, siteName: "ChatGPT", iconDataUrl: chatgptIcon },
549
+ { hostnames: ["anthropic.com"], includeSubdomains: true, siteName: "Anthropic", iconDataUrl: anthropicIcon },
538
550
  { hostnames: ["claude.ai"], siteName: "Claude", iconDataUrl: claudeIcon },
539
551
  { hostnames: ["figma.com", "www.figma.com"], siteName: "Figma", iconDataUrl: figmaIcon },
540
552
  { hostnames: ["slack.com", "www.slack.com"], siteName: "Slack", iconDataUrl: slackIcon },
@@ -542,6 +554,10 @@ var init_website_icons = __esm({
542
554
  { hostnames: ["vercel.com", "www.vercel.com"], siteName: "Vercel", iconDataUrl: vercelIcon },
543
555
  { hostnames: ["cloudflare.com", "www.cloudflare.com"], siteName: "Cloudflare", iconDataUrl: cloudflareIcon },
544
556
  { hostnames: ["arxiv.org", "www.arxiv.org"], siteName: "arXiv", iconDataUrl: arxivIcon },
557
+ { hostnames: ["reddit.com"], includeSubdomains: true, siteName: "Reddit", iconDataUrl: redditIcon },
558
+ { hostnames: ["medium.com"], includeSubdomains: true, siteName: "Medium", iconDataUrl: mediumIcon },
559
+ { hostnames: ["news.ycombinator.com"], siteName: "Hacker News", iconDataUrl: hackerNewsIcon },
560
+ { hostnames: ["linux.do"], includeSubdomains: true, siteName: "Linux.do", iconDataUrl: linuxDoIcon },
545
561
  { hostnames: ["feishu.cn", "www.feishu.cn", "feishuapp.cn", "www.feishuapp.cn"], includeSubdomains: true, siteName: "Feishu", iconDataUrl: feishuIcon },
546
562
  { hostnames: ["rudderhq.dev", "rudder.zeeland.studio"], includeSubdomains: true, siteName: "Rudder", iconDataUrl: rudderIcon }
547
563
  ];
@@ -600,10 +616,22 @@ var init_custom_integration = __esm({
600
616
 
601
617
  // ../packages/shared/dist/validators/instance.js
602
618
  import { z as z2 } from "zod";
603
- var instanceLocaleSchema, instanceGeneralSettingsSchema, patchInstanceGeneralSettingsSchema, instanceNotificationSettingsSchema, patchInstanceNotificationSettingsSchema, instanceLangfuseSettingsSchema, patchInstanceLangfuseSettingsSchema, OPERATOR_PROFILE_MORE_ABOUT_YOU_MAX_LENGTH, operatorProfileSettingsSchema, patchOperatorProfileSettingsSchema, KEYBOARD_SHORTCUT_ACTION_IDS, keyboardShortcutActionIdSchema, keyboardShortcutBindingSchema, keyboardShortcutPreferenceSchema, keyboardShortcutSettingsSchema, instancePathPickerSelectionTypeSchema, instancePathPickerRequestSchema, instancePathPickerResultSchema;
619
+ var DEFAULT_INSTANCE_BROWSER_SETTINGS, instanceBrowserSettingsSchema, patchInstanceBrowserSettingsSchema, instanceLocaleSchema, instanceGeneralSettingsSchema, patchInstanceGeneralSettingsSchema, instanceNotificationSettingsSchema, patchInstanceNotificationSettingsSchema, OPERATOR_PROFILE_MORE_ABOUT_YOU_MAX_LENGTH, operatorProfileSettingsSchema, patchOperatorProfileSettingsSchema, KEYBOARD_SHORTCUT_ACTION_IDS, keyboardShortcutActionIdSchema, keyboardShortcutBindingSchema, keyboardShortcutPreferenceSchema, keyboardShortcutSettingsSchema, instancePathPickerSelectionTypeSchema, instancePathPickerRequestSchema, instancePathPickerResultSchema;
604
620
  var init_instance = __esm({
605
621
  "../packages/shared/dist/validators/instance.js"() {
606
622
  "use strict";
623
+ DEFAULT_INSTANCE_BROWSER_SETTINGS = {
624
+ enabled: true,
625
+ openLinksIn: "built_in"
626
+ };
627
+ instanceBrowserSettingsSchema = z2.object({
628
+ enabled: z2.boolean().default(DEFAULT_INSTANCE_BROWSER_SETTINGS.enabled),
629
+ openLinksIn: z2.enum(["built_in", "default_browser"]).default(DEFAULT_INSTANCE_BROWSER_SETTINGS.openLinksIn)
630
+ }).strict();
631
+ patchInstanceBrowserSettingsSchema = z2.object({
632
+ enabled: z2.boolean().optional(),
633
+ openLinksIn: z2.enum(["built_in", "default_browser"]).optional()
634
+ }).strict();
607
635
  instanceLocaleSchema = z2.enum(["en", "zh-CN"]);
608
636
  instanceGeneralSettingsSchema = z2.object({
609
637
  censorUsernameInLogs: z2.boolean().default(false),
@@ -618,23 +646,6 @@ var init_instance = __esm({
618
646
  desktopChatNotifications: z2.boolean().default(true)
619
647
  }).strict();
620
648
  patchInstanceNotificationSettingsSchema = instanceNotificationSettingsSchema.partial();
621
- instanceLangfuseSettingsSchema = z2.object({
622
- installed: z2.boolean().default(false),
623
- enabled: z2.boolean().default(false),
624
- baseUrl: z2.string().url().default("http://localhost:3000"),
625
- publicKey: z2.string().default(""),
626
- environment: z2.string().default(""),
627
- secretKeyConfigured: z2.boolean().default(false),
628
- managedByEnv: z2.boolean().default(false)
629
- }).strict();
630
- patchInstanceLangfuseSettingsSchema = z2.object({
631
- enabled: z2.boolean().optional(),
632
- baseUrl: z2.string().url().optional(),
633
- publicKey: z2.string().optional(),
634
- secretKey: z2.string().optional(),
635
- environment: z2.string().optional(),
636
- clearSecretKey: z2.boolean().optional()
637
- }).strict();
638
649
  OPERATOR_PROFILE_MORE_ABOUT_YOU_MAX_LENGTH = 8e3;
639
650
  operatorProfileSettingsSchema = z2.object({
640
651
  nickname: z2.string().max(80).default(""),
@@ -3084,19 +3095,13 @@ var init_organization_skill_reference = __esm({
3084
3095
  "rudder",
3085
3096
  "rudder-create-agent",
3086
3097
  "rudder-create-plugin",
3087
- "skill-creator"
3098
+ "skill-creator",
3099
+ "browser"
3088
3100
  ];
3089
3101
  RUDDER_BUNDLED_SKILL_KEYS = new Set(RUDDER_BUNDLED_SKILL_SLUGS.map((slug) => `rudder/${slug}`));
3090
3102
  }
3091
3103
  });
3092
3104
 
3093
- // ../packages/shared/dist/project-mentions.js
3094
- var init_project_mentions = __esm({
3095
- "../packages/shared/dist/project-mentions.js"() {
3096
- "use strict";
3097
- }
3098
- });
3099
-
3100
3105
  // ../packages/shared/dist/project-url-key.js
3101
3106
  var init_project_url_key = __esm({
3102
3107
  "../packages/shared/dist/project-url-key.js"() {
@@ -3159,7 +3164,7 @@ var init_issue_activity = __esm({
3159
3164
 
3160
3165
  // ../packages/shared/dist/config-schema.js
3161
3166
  import { z as z29 } from "zod";
3162
- var DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES, configMetaSchema, llmConfigSchema, databaseBackupConfigSchema, databaseConfigSchema, loggingConfigSchema, serverConfigSchema, authConfigSchema, storageLocalDiskConfigSchema, storageS3ConfigSchema, storageConfigSchema, secretsLocalEncryptedConfigSchema, secretsConfigSchema, langfuseConfigSchema, rudderConfigSchema;
3167
+ var DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES, configMetaSchema, llmConfigSchema, databaseBackupConfigSchema, databaseConfigSchema, loggingConfigSchema, serverConfigSchema, authConfigSchema, storageLocalDiskConfigSchema, storageS3ConfigSchema, storageConfigSchema, secretsLocalEncryptedConfigSchema, secretsConfigSchema, rudderConfigSchema;
3163
3168
  var init_config_schema = __esm({
3164
3169
  "../packages/shared/dist/config-schema.js"() {
3165
3170
  "use strict";
@@ -3243,14 +3248,6 @@ var init_config_schema = __esm({
3243
3248
  keyFilePath: "~/.rudder/instances/default/secrets/master.key"
3244
3249
  })
3245
3250
  });
3246
- langfuseConfigSchema = z29.object({
3247
- installed: z29.boolean().optional(),
3248
- enabled: z29.boolean().default(false),
3249
- baseUrl: z29.string().url().default("http://localhost:3000"),
3250
- publicKey: z29.string().optional(),
3251
- secretKey: z29.string().optional(),
3252
- environment: z29.string().optional()
3253
- });
3254
3251
  rudderConfigSchema = z29.object({
3255
3252
  $meta: configMetaSchema,
3256
3253
  llm: llmConfigSchema.optional(),
@@ -3279,8 +3276,7 @@ var init_config_schema = __esm({
3279
3276
  localEncrypted: {
3280
3277
  keyFilePath: "~/.rudder/instances/default/secrets/master.key"
3281
3278
  }
3282
- }),
3283
- langfuse: langfuseConfigSchema.optional()
3279
+ })
3284
3280
  }).superRefine((value, ctx) => {
3285
3281
  if (value.server.deploymentMode === "local_trusted") {
3286
3282
  if (value.server.exposure !== "private") {
@@ -3321,9 +3317,9 @@ var init_config_schema = __esm({
3321
3317
  var init_dist = __esm({
3322
3318
  "../packages/shared/dist/index.js"() {
3323
3319
  "use strict";
3320
+ init_chat_work_manifest();
3324
3321
  init_constants();
3325
3322
  init_agent_run();
3326
- init_observability();
3327
3323
  init_workspace_backup();
3328
3324
  init_website_icons();
3329
3325
  init_custom_integration();
@@ -7496,6 +7492,102 @@ var AGENT_CLI_CAPABILITIES = [
7496
7492
  requiresRunId: false,
7497
7493
  attachesRunIdWhenAvailable: true
7498
7494
  },
7495
+ {
7496
+ id: "browser.tabs",
7497
+ command: "rudder browser tabs",
7498
+ category: "browser",
7499
+ description: "List Browser tabs owned by the current Rudder agent run.",
7500
+ mutating: false,
7501
+ contract: "agent-v1",
7502
+ requiresOrgId: true,
7503
+ requiresAgentId: true,
7504
+ requiresRunId: true,
7505
+ attachesRunIdWhenAvailable: false
7506
+ },
7507
+ {
7508
+ id: "browser.open",
7509
+ command: "rudder browser open <url>",
7510
+ category: "browser",
7511
+ description: "Open a run-owned tab in the Rudder Browser.",
7512
+ mutating: true,
7513
+ contract: "agent-v1",
7514
+ requiresOrgId: true,
7515
+ requiresAgentId: true,
7516
+ requiresRunId: true,
7517
+ attachesRunIdWhenAvailable: true
7518
+ },
7519
+ {
7520
+ id: "browser.navigate",
7521
+ command: "rudder browser navigate <tab-id> <url>",
7522
+ category: "browser",
7523
+ description: "Navigate a run-owned Rudder Browser tab.",
7524
+ mutating: true,
7525
+ contract: "agent-v1",
7526
+ requiresOrgId: true,
7527
+ requiresAgentId: true,
7528
+ requiresRunId: true,
7529
+ attachesRunIdWhenAvailable: true
7530
+ },
7531
+ {
7532
+ id: "browser.read",
7533
+ command: "rudder browser read <tab-id>",
7534
+ category: "browser",
7535
+ description: "Read a structured snapshot from a run-owned Rudder Browser tab.",
7536
+ mutating: false,
7537
+ contract: "agent-v1",
7538
+ requiresOrgId: true,
7539
+ requiresAgentId: true,
7540
+ requiresRunId: true,
7541
+ attachesRunIdWhenAvailable: false
7542
+ },
7543
+ {
7544
+ id: "browser.click",
7545
+ command: "rudder browser click <tab-id> <ref>",
7546
+ category: "browser",
7547
+ description: "Click an element reference returned by Rudder Browser read.",
7548
+ mutating: true,
7549
+ contract: "agent-v1",
7550
+ requiresOrgId: true,
7551
+ requiresAgentId: true,
7552
+ requiresRunId: true,
7553
+ attachesRunIdWhenAvailable: true
7554
+ },
7555
+ {
7556
+ id: "browser.type",
7557
+ command: "rudder browser type <tab-id> <ref> --text <text>",
7558
+ category: "browser",
7559
+ description: "Type into an element reference in a run-owned Rudder Browser tab.",
7560
+ mutating: true,
7561
+ contract: "agent-v1",
7562
+ requiresOrgId: true,
7563
+ requiresAgentId: true,
7564
+ requiresRunId: true,
7565
+ attachesRunIdWhenAvailable: true
7566
+ },
7567
+ {
7568
+ id: "browser.screenshot",
7569
+ command: "rudder browser screenshot <tab-id>",
7570
+ category: "browser",
7571
+ description: "Capture a screenshot of a run-owned Rudder Browser tab.",
7572
+ mutating: false,
7573
+ contract: "agent-v1",
7574
+ requiresOrgId: true,
7575
+ requiresAgentId: true,
7576
+ requiresRunId: true,
7577
+ attachesRunIdWhenAvailable: false
7578
+ },
7579
+ {
7580
+ id: "browser.close",
7581
+ command: "rudder browser close <tab-id>",
7582
+ category: "browser",
7583
+ description: "Close a run-owned Rudder Browser tab.",
7584
+ mutating: true,
7585
+ contract: "agent-v1",
7586
+ requiresOrgId: true,
7587
+ requiresAgentId: true,
7588
+ requiresRunId: true,
7589
+ attachesRunIdWhenAvailable: true
7590
+ },
7499
7591
  {
7500
7592
  id: "automation.list",
7501
7593
  command: "rudder automation list --org-id <id>",
@@ -7878,6 +7970,7 @@ var CATEGORY_TITLES = {
7878
7970
  runs: "Runs",
7879
7971
  approval: "Approval",
7880
7972
  skill: "Skill",
7973
+ browser: "Browser",
7881
7974
  user: "User",
7882
7975
  library: "Library"
7883
7976
  };
@@ -7950,6 +8043,12 @@ function mcpInputSchemaForCapability(id) {
7950
8043
  add("skill", mcpString("Organization skill id."));
7951
8044
  add("path", mcpString("Skill package file path, such as SKILL.md."));
7952
8045
  }
8046
+ if (id.startsWith("browser.")) {
8047
+ add("url", mcpString("HTTP or HTTPS URL."));
8048
+ add("tabId", mcpString("Run-owned Rudder Browser tab id."));
8049
+ add("ref", mcpString("Element reference returned by rudder_browser_read."));
8050
+ add("text", mcpString("Text to enter into the referenced element."));
8051
+ }
7953
8052
  if (id.startsWith("automation.")) {
7954
8053
  add("automation", mcpString("Automation id."));
7955
8054
  add("trigger", mcpString("Automation trigger id."));
@@ -8065,7 +8164,7 @@ function mcpInputSchemaForCapability(id) {
8065
8164
  })) {
8066
8165
  add(key, mcpStringArray(description));
8067
8166
  }
8068
- for (const key of ["clearTitle", "clearCapabilities", "clearDescription", "clearReportsTo", "enable", "enabled", "disabled", "reopen", "planMode", "includeTranscript", "includeOutput", "includeOutputs", "notifyOnIssueCreated", "errorsOnly", "chronological", "narrative"]) {
8167
+ for (const key of ["clearTitle", "clearCapabilities", "clearDescription", "clearReportsTo", "enable", "enabled", "disabled", "reopen", "planMode", "includeTranscript", "includeOutput", "includeOutputs", "notifyOnIssueCreated", "errorsOnly", "chronological", "narrative", "submit"]) {
8069
8168
  add(key, mcpBoolean(`Boolean option ${key}.`));
8070
8169
  }
8071
8170
  return {
@@ -8074,8 +8173,8 @@ function mcpInputSchemaForCapability(id) {
8074
8173
  properties
8075
8174
  };
8076
8175
  }
8077
- function buildAgentV1McpToolsManifest(contract = "agent-v1") {
8078
- const capabilities = buildAgentCliCapabilitiesManifest(contract).capabilities;
8176
+ function buildAgentV1McpToolsManifest(contract = "agent-v1", options = {}) {
8177
+ const capabilities = buildAgentCliCapabilitiesManifest(contract).capabilities.filter((entry) => options.browserEnabled !== false || entry.category !== "browser");
8079
8178
  return {
8080
8179
  schema: "rudder.agent-mcp-tools/v1",
8081
8180
  contract,
@@ -8307,6 +8406,7 @@ function buildMcpServerEnv(env = process.env) {
8307
8406
  RUDDER_ORG_ID: env.RUDDER_ORG_ID,
8308
8407
  RUDDER_AGENT_ID: env.RUDDER_AGENT_ID,
8309
8408
  RUDDER_RUN_ID: env.RUDDER_RUN_ID,
8409
+ RUDDER_BROWSER_ENABLED: env.RUDDER_BROWSER_ENABLED,
8310
8410
  RUDDER_PROJECT_LIBRARY_PATH: env.RUDDER_PROJECT_LIBRARY_PATH,
8311
8411
  RUDDER_MCP_RUDDER_BIN: env.RUDDER_MCP_RUDDER_BIN
8312
8412
  };
@@ -8319,6 +8419,7 @@ function buildAgentV1ToolCallPlan(toolName, rawArgs, env = buildMcpServerEnv())
8319
8419
  }
8320
8420
  const capability = getAgentCliCapabilityById(capabilityId);
8321
8421
  rejectModelProvidedRuntimeIdentity(input);
8422
+ assertBrowserCapabilityEnabled(capabilityId, env);
8322
8423
  assertRuntimeMcpContext(capability, env);
8323
8424
  const tempFiles = [];
8324
8425
  const args = cliArgsForCapability(capabilityId, input, tempFiles, env);
@@ -8333,6 +8434,7 @@ function buildAgentV1ToolCallPlan(toolName, rawArgs, env = buildMcpServerEnv())
8333
8434
  RUDDER_ORG_ID: env.RUDDER_ORG_ID,
8334
8435
  RUDDER_AGENT_ID: env.RUDDER_AGENT_ID,
8335
8436
  RUDDER_RUN_ID: env.RUDDER_RUN_ID,
8437
+ RUDDER_BROWSER_ENABLED: env.RUDDER_BROWSER_ENABLED,
8336
8438
  RUDDER_PROJECT_LIBRARY_PATH: env.RUDDER_PROJECT_LIBRARY_PATH
8337
8439
  },
8338
8440
  tempFiles
@@ -8353,7 +8455,9 @@ async function runAgentV1McpJsonRpcMessage(message, env = buildMcpServerEnv()) {
8353
8455
  });
8354
8456
  case "tools/list":
8355
8457
  return rpcResult(id, {
8356
- tools: buildAgentV1McpToolsManifest("agent-v1").tools.map(toMcpToolListEntry)
8458
+ tools: buildAgentV1McpToolsManifest("agent-v1", {
8459
+ browserEnabled: browserCapabilityEnabled(env)
8460
+ }).tools.map(toMcpToolListEntry)
8357
8461
  });
8358
8462
  case "tools/call":
8359
8463
  return rpcResult(id, await callToolSafely(message.params, env));
@@ -8542,6 +8646,41 @@ async function callToolDirectlyIfSupported(toolName, rawArgs, env) {
8542
8646
  { status: "done", comment }
8543
8647
  ));
8544
8648
  }
8649
+ case "browser.tabs":
8650
+ return mcpSuccess(await api.post("/api/browser/tabs", {}));
8651
+ case "browser.open":
8652
+ return mcpSuccess(await api.post("/api/browser/open", {
8653
+ url: requiredString(input, "url")
8654
+ }));
8655
+ case "browser.navigate":
8656
+ return mcpSuccess(await api.post("/api/browser/navigate", {
8657
+ tabId: requiredString(input, "tabId"),
8658
+ url: requiredString(input, "url")
8659
+ }));
8660
+ case "browser.read":
8661
+ return mcpSuccess(await api.post("/api/browser/read", {
8662
+ tabId: requiredString(input, "tabId")
8663
+ }));
8664
+ case "browser.click":
8665
+ return mcpSuccess(await api.post("/api/browser/click", {
8666
+ tabId: requiredString(input, "tabId"),
8667
+ ref: requiredString(input, "ref")
8668
+ }));
8669
+ case "browser.type":
8670
+ return mcpSuccess(await api.post("/api/browser/type", {
8671
+ tabId: requiredString(input, "tabId"),
8672
+ ref: requiredString(input, "ref"),
8673
+ text: requiredString(input, "text"),
8674
+ ...input.submit === true ? { submit: true } : {}
8675
+ }));
8676
+ case "browser.screenshot":
8677
+ return mcpSuccess(await api.post("/api/browser/screenshot", {
8678
+ tabId: requiredString(input, "tabId")
8679
+ }));
8680
+ case "browser.close":
8681
+ return mcpSuccess(await api.post("/api/browser/close", {
8682
+ tabId: requiredString(input, "tabId")
8683
+ }));
8545
8684
  default:
8546
8685
  return null;
8547
8686
  }
@@ -8781,6 +8920,25 @@ function cliArgsForCapability(capabilityId, input, tempFiles, env) {
8781
8920
  pushOptional(args, "--workspace-ids", input.workspaceIds);
8782
8921
  return args;
8783
8922
  }
8923
+ case "browser.tabs":
8924
+ return ["browser", "tabs"];
8925
+ case "browser.open":
8926
+ return ["browser", "open", requiredString(input, "url")];
8927
+ case "browser.navigate":
8928
+ return ["browser", "navigate", requiredString(input, "tabId"), requiredString(input, "url")];
8929
+ case "browser.read":
8930
+ return ["browser", "read", requiredString(input, "tabId")];
8931
+ case "browser.click":
8932
+ return ["browser", "click", requiredString(input, "tabId"), requiredString(input, "ref")];
8933
+ case "browser.type": {
8934
+ const args = ["browser", "type", requiredString(input, "tabId"), requiredString(input, "ref"), "--text", requiredString(input, "text")];
8935
+ pushBoolean(args, "--submit", input.submit);
8936
+ return args;
8937
+ }
8938
+ case "browser.screenshot":
8939
+ return ["browser", "screenshot", requiredString(input, "tabId")];
8940
+ case "browser.close":
8941
+ return ["browser", "close", requiredString(input, "tabId")];
8784
8942
  case "automation.list": {
8785
8943
  const args = ["automation", "list"];
8786
8944
  pushOptional(args, "--status", input.status);
@@ -9089,11 +9247,21 @@ function assertRuntimeMcpContext(capability, env) {
9089
9247
  if (!optionalString(env.RUDDER_API_KEY)) missing.push("RUDDER_API_KEY");
9090
9248
  if (capability.requiresOrgId && !optionalString(env.RUDDER_ORG_ID)) missing.push("RUDDER_ORG_ID");
9091
9249
  if (capability.requiresAgentId && !optionalString(env.RUDDER_AGENT_ID)) missing.push("RUDDER_AGENT_ID");
9250
+ if (capability.requiresRunId && !optionalString(env.RUDDER_RUN_ID)) missing.push("RUDDER_RUN_ID");
9092
9251
  if (missing.length === 0) return;
9093
9252
  const err = new Error(`Rudder MCP runtime context is incomplete. Missing ${missing.join(", ")}.`);
9094
9253
  err.code = "rudder_mcp_missing_runtime_context";
9095
9254
  throw err;
9096
9255
  }
9256
+ function browserCapabilityEnabled(env) {
9257
+ return optionalString(env.RUDDER_BROWSER_ENABLED)?.toLowerCase() === "true";
9258
+ }
9259
+ function assertBrowserCapabilityEnabled(capabilityId, env) {
9260
+ if (!capabilityId.startsWith("browser.") || browserCapabilityEnabled(env)) return;
9261
+ const error = new Error("Rudder Browser is disabled or unavailable for this run.");
9262
+ error.code = "browser_disabled";
9263
+ throw error;
9264
+ }
9097
9265
  function structuredContentFromJsonText(text6) {
9098
9266
  try {
9099
9267
  const parsed = JSON.parse(text6);
@@ -11234,6 +11402,57 @@ function formatAutomationRun(row) {
11234
11402
  };
11235
11403
  }
11236
11404
 
11405
+ // src/commands/client/browser.ts
11406
+ async function runBrowserAction(action, payload, options) {
11407
+ try {
11408
+ const context = resolveCommandContext(options, { requireCompany: true });
11409
+ const result = await context.api.post(`/api/browser/${action}`, payload);
11410
+ printOutput(result ?? {}, { json: context.json });
11411
+ } catch (error) {
11412
+ handleCommandError(error);
11413
+ }
11414
+ }
11415
+ function registerBrowserCommands(program) {
11416
+ const browser = program.command("browser").description("Control the run-owned Rudder Browser");
11417
+ addCommonClientOptions(
11418
+ browser.command("tabs").description(getAgentCliCapabilityById("browser.tabs").description),
11419
+ { includeCompany: true }
11420
+ ).action((options) => runBrowserAction("tabs", {}, options));
11421
+ addCommonClientOptions(
11422
+ browser.command("open").description(getAgentCliCapabilityById("browser.open").description).argument("<url>", "HTTP or HTTPS URL"),
11423
+ { includeCompany: true }
11424
+ ).action((url, options) => runBrowserAction("open", { url }, options));
11425
+ addCommonClientOptions(
11426
+ browser.command("navigate").description(getAgentCliCapabilityById("browser.navigate").description).argument("<tab-id>", "Run-owned Browser tab id").argument("<url>", "HTTP or HTTPS URL"),
11427
+ { includeCompany: true }
11428
+ ).action((tabId, url, options) => runBrowserAction("navigate", { tabId, url }, options));
11429
+ addCommonClientOptions(
11430
+ browser.command("read").description(getAgentCliCapabilityById("browser.read").description).argument("<tab-id>", "Run-owned Browser tab id"),
11431
+ { includeCompany: true }
11432
+ ).action((tabId, options) => runBrowserAction("read", { tabId }, options));
11433
+ addCommonClientOptions(
11434
+ browser.command("click").description(getAgentCliCapabilityById("browser.click").description).argument("<tab-id>", "Run-owned Browser tab id").argument("<ref>", "Element reference returned by browser read"),
11435
+ { includeCompany: true }
11436
+ ).action((tabId, ref, options) => runBrowserAction("click", { tabId, ref }, options));
11437
+ addCommonClientOptions(
11438
+ browser.command("type").description(getAgentCliCapabilityById("browser.type").description).argument("<tab-id>", "Run-owned Browser tab id").argument("<ref>", "Element reference returned by browser read").requiredOption("--text <text>", "Text to enter").option("--submit", "Submit the form after typing", false),
11439
+ { includeCompany: true }
11440
+ ).action((tabId, ref, options) => runBrowserAction("type", {
11441
+ tabId,
11442
+ ref,
11443
+ text: options.text,
11444
+ ...options.submit ? { submit: true } : {}
11445
+ }, options));
11446
+ addCommonClientOptions(
11447
+ browser.command("screenshot").description(getAgentCliCapabilityById("browser.screenshot").description).argument("<tab-id>", "Run-owned Browser tab id"),
11448
+ { includeCompany: true }
11449
+ ).action((tabId, options) => runBrowserAction("screenshot", { tabId }, options));
11450
+ addCommonClientOptions(
11451
+ browser.command("close").description(getAgentCliCapabilityById("browser.close").description).argument("<tab-id>", "Run-owned Browser tab id"),
11452
+ { includeCompany: true }
11453
+ ).action((tabId, options) => runBrowserAction("close", { tabId }, options));
11454
+ }
11455
+
11237
11456
  // src/commands/client/chat.ts
11238
11457
  init_dist();
11239
11458
  function registerChatCommands(program) {
@@ -14129,7 +14348,6 @@ function formatRunListRow(row) {
14129
14348
  finishedAt: row.run.finishedAt ?? "-",
14130
14349
  evidence: row.skillEvidence?.evidenceType ?? "-",
14131
14350
  skill: row.skillEvidence?.matchedSkillKey ?? "-",
14132
- langfuse: readLangfuseTraceUrl(row.langfuse) ?? "-",
14133
14351
  error: row.errorSummary ?? "-",
14134
14352
  next: row.run.status === "failed" ? `rudder runs errors ${runId}` : `rudder runs transcript ${runId}`
14135
14353
  };
@@ -14207,7 +14425,6 @@ function formatInlineSkillRun(row) {
14207
14425
  const runId = formatCliRunId(row.run.id);
14208
14426
  const issue = formatIssueRef(row.issue);
14209
14427
  const label = row.skillEvidence?.matchedSkillLabel && row.skillEvidence.matchedSkillLabel !== row.skillEvidence.matchedSkillKey ? ` label=${row.skillEvidence.matchedSkillLabel}` : "";
14210
- const langfuse = readLangfuseTraceUrl(row.langfuse);
14211
14428
  return [
14212
14429
  `id=${runId}`,
14213
14430
  `status=${row.run.status}`,
@@ -14218,7 +14435,6 @@ function formatInlineSkillRun(row) {
14218
14435
  `finishedAt=${row.run.finishedAt ?? "-"}`,
14219
14436
  `evidence=${row.skillEvidence?.evidenceType ?? "-"}`,
14220
14437
  `skill=${row.skillEvidence?.matchedSkillKey ?? "-"}${label}`,
14221
- `langfuse=${langfuse ?? "-"}`,
14222
14438
  `error=${row.errorSummary ?? "-"}`,
14223
14439
  `next=${row.run.status === "failed" ? `rudder runs errors ${runId}` : `rudder runs transcript ${runId}`}`
14224
14440
  ].join(" ");
@@ -14227,11 +14443,6 @@ function formatIssueRef(issue) {
14227
14443
  if (!issue) return "-";
14228
14444
  return issue.identifier && issue.title ? `${issue.identifier} ${issue.title}` : issue.identifier ?? issue.title ?? issue.id;
14229
14445
  }
14230
- function readLangfuseTraceUrl(value) {
14231
- if (!value || typeof value !== "object") return null;
14232
- const traceUrl = value.traceUrl;
14233
- return typeof traceUrl === "string" && traceUrl.length > 0 ? traceUrl : null;
14234
- }
14235
14446
  function formatRunEvent(row) {
14236
14447
  return {
14237
14448
  seq: row.seq,
@@ -16923,6 +17134,7 @@ function createProgram() {
16923
17134
  registerSkillCommands(program);
16924
17135
  registerLibraryCommands(program);
16925
17136
  registerAutomationCommands(program);
17137
+ registerBrowserCommands(program);
16926
17138
  registerChatCommands(program);
16927
17139
  registerRunsCommands(program);
16928
17140
  registerLazyWorktreeCommands(program);