@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/README.md +8 -8
- package/dist/index.js +274 -62
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
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
|
-
|
|
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",
|
|
536
|
-
{ hostnames: ["chatgpt.com", "
|
|
537
|
-
{ hostnames: ["anthropic.com",
|
|
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,
|
|
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,
|
|
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"
|
|
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);
|