@tickernelz/paperclip-pro-shared 2026.1025.5 → 2026.1025.6
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/.paperclip-build-complete +1 -1
- package/dist/app-definitions/local-browser.json +3 -2
- package/dist/local-browser-contract.d.ts +74 -0
- package/dist/local-browser-contract.d.ts.map +1 -0
- package/dist/local-browser-contract.js +155 -0
- package/dist/local-browser-contract.js.map +1 -0
- package/dist/local-browser.d.ts +424 -22
- package/dist/local-browser.d.ts.map +1 -1
- package/dist/local-browser.js +395 -342
- package/dist/local-browser.js.map +1 -1
- package/dist/local-browser.test.js +87 -1
- package/dist/local-browser.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"sources":"
|
|
1
|
+
{"sources":"cc417392e0578f71c1aa127e68f6c4cd0c04edea36bafe5f9d7e9789919752ed","outputs":"60438b01baacccb4488d3fe97ea239b6be89e9d161fb4da4addd9939c67b2045"}
|
|
@@ -21,10 +21,11 @@
|
|
|
21
21
|
"customer"
|
|
22
22
|
],
|
|
23
23
|
"whenToUse": "Let agents use the signed-in browser on your own machine after you pair it from this panel.",
|
|
24
|
-
"guidanceMd": "Pairing happens from this page, not in the setup wizard: install the Local Browser extension for Chromium or Firefox, click Pair a browser here, and enter the eight-character code it shows. The extension connects out to Paperclip, so no port, tunnel, or credential is needed. Start in refine tier, which only reaches the origins you allowlist, and raise it to full only when a task genuinely needs JavaScript evaluation, storage, network inspection, uploads, or
|
|
24
|
+
"guidanceMd": "Pairing happens from this page, not in the setup wizard: install the Local Browser extension for Chromium or Firefox, click Pair a browser here, and enter the eight-character code it shows. The extension connects out to Paperclip, so no port, tunnel, or credential is needed. The extension asks for browser permissions only when you allow them: open its control center and press Allow, or Allow all to give agents full browser access. Start in refine tier, which only reaches the origins you allowlist, and raise it to full only when a task genuinely needs JavaScript evaluation, storage, network inspection, uploads, downloads, or direct browser API calls. Result size, snapshot, read, screenshot, transfer, call time and network limits are yours to set in the Limits section.",
|
|
25
25
|
"riskTier": "S4",
|
|
26
26
|
"warnings": [
|
|
27
|
-
"Full tier lets an agent read any page the browser is signed into, including mail, banking, and admin consoles. Every origin is reachable in full tier, so the allowlist stops applying.",
|
|
27
|
+
"Full tier lets an agent read any page the browser is signed into, including mail, banking, and admin consoles, call browser APIs such as history and bookmarks, and see request headers. Every origin is reachable in full tier, so the allowlist stops applying.",
|
|
28
|
+
"Allow all grants every browser permission the extension can request, including history, bookmarks, cookies, downloads and clipboard. Grant only what the work needs, and revoke a permission in the extension at any time.",
|
|
28
29
|
"Paired browsers act as you. Paperclip does not sign you in, does not store your passwords, and closing a session never signs you out."
|
|
29
30
|
]
|
|
30
31
|
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export declare const LOCAL_BROWSER_PROTOCOL_VERSION = 1;
|
|
2
|
+
export declare const LOCAL_BROWSER_CALL_TIMEOUT_MS = 30000;
|
|
3
|
+
export declare const LOCAL_BROWSER_SNAPSHOT_DEFAULT_NODES = 120;
|
|
4
|
+
export declare const LOCAL_BROWSER_TEXT_DEFAULT_CHARS = 8000;
|
|
5
|
+
export declare const LOCAL_BROWSER_VIEWER_FRAME_INTERVAL_MS = 1000;
|
|
6
|
+
export declare const LOCAL_BROWSER_CALL_GRACE_MS = 5000;
|
|
7
|
+
export declare const LOCAL_BROWSER_EXTENSION_BUDGET_MARGIN_MS = 1000;
|
|
8
|
+
export declare const LOCAL_BROWSER_TIERS: readonly ["refine", "full"];
|
|
9
|
+
export declare const LOCAL_BROWSER_CLIENTS: readonly ["chromium", "firefox"];
|
|
10
|
+
export declare const LOCAL_BROWSER_ERROR_CODES: readonly ["local_browser_not_paired", "local_browser_extension_unavailable", "local_browser_origin_denied", "local_browser_tier_denied", "local_browser_tab_missing", "local_browser_ref_stale", "local_browser_element_missing", "local_browser_timeout", "local_browser_navigation_blocked", "local_browser_protocol_error", "local_browser_result_too_large", "local_browser_unsupported", "local_browser_permission_required"];
|
|
11
|
+
export declare const LOCAL_BROWSER_CAPABILITIES: readonly ["cookies.v2", "permissions.v1", "context.v1", "network.headers", "tabs.container", "document.state", "api.v1", "act.force", "budget.v1"];
|
|
12
|
+
export declare const LOCAL_BROWSER_ACTIONS: readonly ["click", "dblclick", "type", "press", "hover", "focus", "check", "uncheck", "select", "scroll", "scroll_into_view"];
|
|
13
|
+
export declare const LOCAL_BROWSER_MOUSE_ACTIONS: readonly ["move", "down", "up"];
|
|
14
|
+
export declare const LOCAL_BROWSER_KEY_ACTIONS: readonly ["down", "up"];
|
|
15
|
+
export declare const LOCAL_BROWSER_VIEWER_STATES: readonly ["connected", "viewer_unavailable", "agent_streaming", "agent_idle", "disconnected"];
|
|
16
|
+
export declare const LOCAL_BROWSER_COOKIE_SAME_SITE: readonly ["no_restriction", "lax", "strict", "unspecified"];
|
|
17
|
+
export declare const LOCAL_BROWSER_NAVIGATION_TYPES: readonly ["navigate", "reload", "back_forward", "prerender", "unknown"];
|
|
18
|
+
export declare const LOCAL_BROWSER_SITE_ACCESS: readonly ["all", "limited", "unknown"];
|
|
19
|
+
export declare const LOCAL_BROWSER_CONTENT_SCRIPT_STATES: readonly ["connected", "missing", "blocked"];
|
|
20
|
+
export declare const LOCAL_BROWSER_UI_OPS: readonly ["open_permissions", "open_control_center"];
|
|
21
|
+
export declare const LOCAL_BROWSER_CURSOR_PATTERN: RegExp;
|
|
22
|
+
export declare const LOCAL_BROWSER_API_PATH_PATTERN: RegExp;
|
|
23
|
+
export type LocalBrowserPermissionAvailability = "required" | "optional" | "unsupported";
|
|
24
|
+
export interface LocalBrowserPermissionDefinition {
|
|
25
|
+
id: string;
|
|
26
|
+
kind: "api" | "origin";
|
|
27
|
+
label: string;
|
|
28
|
+
grants: string;
|
|
29
|
+
chromium: LocalBrowserPermissionAvailability;
|
|
30
|
+
firefox: LocalBrowserPermissionAvailability;
|
|
31
|
+
}
|
|
32
|
+
export declare const LOCAL_BROWSER_PERMISSIONS: readonly LocalBrowserPermissionDefinition[];
|
|
33
|
+
export declare const LOCAL_BROWSER_PERMISSION_IDS: string[];
|
|
34
|
+
export declare const LOCAL_BROWSER_LIMIT_KEYS: readonly ["resultMaxChars", "snapshotMaxNodes", "readMaxChars", "screenshotMaxBytes", "transferMaxBytes", "callMaxMs", "networkMaxEntries"];
|
|
35
|
+
export type LocalBrowserLimitKey = (typeof LOCAL_BROWSER_LIMIT_KEYS)[number];
|
|
36
|
+
export interface LocalBrowserLimitRange {
|
|
37
|
+
default: number;
|
|
38
|
+
min: number;
|
|
39
|
+
ceiling: number;
|
|
40
|
+
}
|
|
41
|
+
export declare const LOCAL_BROWSER_LIMITS: Readonly<Record<LocalBrowserLimitKey, LocalBrowserLimitRange>>;
|
|
42
|
+
export declare const LOCAL_BROWSER_GUARD_DEFAULTS: {
|
|
43
|
+
readonly protectPaperclipTab: true;
|
|
44
|
+
readonly protectFocusedTab: true;
|
|
45
|
+
readonly networkBufferSize: 1000;
|
|
46
|
+
};
|
|
47
|
+
export declare const LOCAL_BROWSER_NETWORK_BUFFER_RANGE: {
|
|
48
|
+
readonly min: 50;
|
|
49
|
+
readonly max: 20000;
|
|
50
|
+
};
|
|
51
|
+
export declare const LOCAL_BROWSER_TOOL_TIERS: {
|
|
52
|
+
readonly local_browser_sessions: "refine";
|
|
53
|
+
readonly local_browser_open: "refine";
|
|
54
|
+
readonly local_browser_navigate: "refine";
|
|
55
|
+
readonly local_browser_snapshot: "refine";
|
|
56
|
+
readonly local_browser_act: "refine";
|
|
57
|
+
readonly local_browser_read: "refine";
|
|
58
|
+
readonly local_browser_screenshot: "refine";
|
|
59
|
+
readonly local_browser_wait: "refine";
|
|
60
|
+
readonly local_browser_evaluate: "full";
|
|
61
|
+
readonly local_browser_storage: "full";
|
|
62
|
+
readonly local_browser_network: "full";
|
|
63
|
+
readonly local_browser_upload: "full";
|
|
64
|
+
readonly local_browser_download: "full";
|
|
65
|
+
readonly local_browser_close: "refine";
|
|
66
|
+
readonly local_browser_context: "refine";
|
|
67
|
+
readonly local_browser_permissions: "refine";
|
|
68
|
+
readonly local_browser_api: "full";
|
|
69
|
+
};
|
|
70
|
+
export type LocalBrowserToolName = keyof typeof LOCAL_BROWSER_TOOL_TIERS;
|
|
71
|
+
export declare const LOCAL_BROWSER_TOOL_CAPABILITIES: Readonly<Partial<Record<LocalBrowserToolName, string>>>;
|
|
72
|
+
export declare const LOCAL_BROWSER_ORIGIN_EXEMPT_TOOL_NAMES: readonly ["local_browser_sessions", "local_browser_close", "local_browser_permissions", "local_browser_api"];
|
|
73
|
+
export declare const LOCAL_BROWSER_INTERNAL_TOOL_NAMES: readonly ["local_browser_viewer", "local_browser_input", "local_browser_ui"];
|
|
74
|
+
//# sourceMappingURL=local-browser-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-browser-contract.d.ts","sourceRoot":"","sources":["../src/local-browser-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
export const LOCAL_BROWSER_PROTOCOL_VERSION = 1;
|
|
2
|
+
export const LOCAL_BROWSER_CALL_TIMEOUT_MS = 30_000;
|
|
3
|
+
export const LOCAL_BROWSER_SNAPSHOT_DEFAULT_NODES = 120;
|
|
4
|
+
export const LOCAL_BROWSER_TEXT_DEFAULT_CHARS = 8_000;
|
|
5
|
+
export const LOCAL_BROWSER_VIEWER_FRAME_INTERVAL_MS = 1_000;
|
|
6
|
+
export const LOCAL_BROWSER_CALL_GRACE_MS = 5_000;
|
|
7
|
+
export const LOCAL_BROWSER_EXTENSION_BUDGET_MARGIN_MS = 1_000;
|
|
8
|
+
export const LOCAL_BROWSER_TIERS = ["refine", "full"];
|
|
9
|
+
export const LOCAL_BROWSER_CLIENTS = ["chromium", "firefox"];
|
|
10
|
+
export const LOCAL_BROWSER_ERROR_CODES = [
|
|
11
|
+
"local_browser_not_paired",
|
|
12
|
+
"local_browser_extension_unavailable",
|
|
13
|
+
"local_browser_origin_denied",
|
|
14
|
+
"local_browser_tier_denied",
|
|
15
|
+
"local_browser_tab_missing",
|
|
16
|
+
"local_browser_ref_stale",
|
|
17
|
+
"local_browser_element_missing",
|
|
18
|
+
"local_browser_timeout",
|
|
19
|
+
"local_browser_navigation_blocked",
|
|
20
|
+
"local_browser_protocol_error",
|
|
21
|
+
"local_browser_result_too_large",
|
|
22
|
+
"local_browser_unsupported",
|
|
23
|
+
"local_browser_permission_required",
|
|
24
|
+
];
|
|
25
|
+
export const LOCAL_BROWSER_CAPABILITIES = [
|
|
26
|
+
"cookies.v2",
|
|
27
|
+
"permissions.v1",
|
|
28
|
+
"context.v1",
|
|
29
|
+
"network.headers",
|
|
30
|
+
"tabs.container",
|
|
31
|
+
"document.state",
|
|
32
|
+
"api.v1",
|
|
33
|
+
"act.force",
|
|
34
|
+
"budget.v1",
|
|
35
|
+
];
|
|
36
|
+
export const LOCAL_BROWSER_ACTIONS = [
|
|
37
|
+
"click",
|
|
38
|
+
"dblclick",
|
|
39
|
+
"type",
|
|
40
|
+
"press",
|
|
41
|
+
"hover",
|
|
42
|
+
"focus",
|
|
43
|
+
"check",
|
|
44
|
+
"uncheck",
|
|
45
|
+
"select",
|
|
46
|
+
"scroll",
|
|
47
|
+
"scroll_into_view",
|
|
48
|
+
];
|
|
49
|
+
export const LOCAL_BROWSER_MOUSE_ACTIONS = ["move", "down", "up"];
|
|
50
|
+
export const LOCAL_BROWSER_KEY_ACTIONS = ["down", "up"];
|
|
51
|
+
export const LOCAL_BROWSER_VIEWER_STATES = [
|
|
52
|
+
"connected",
|
|
53
|
+
"viewer_unavailable",
|
|
54
|
+
"agent_streaming",
|
|
55
|
+
"agent_idle",
|
|
56
|
+
"disconnected",
|
|
57
|
+
];
|
|
58
|
+
export const LOCAL_BROWSER_COOKIE_SAME_SITE = ["no_restriction", "lax", "strict", "unspecified"];
|
|
59
|
+
export const LOCAL_BROWSER_NAVIGATION_TYPES = ["navigate", "reload", "back_forward", "prerender", "unknown"];
|
|
60
|
+
export const LOCAL_BROWSER_SITE_ACCESS = ["all", "limited", "unknown"];
|
|
61
|
+
export const LOCAL_BROWSER_CONTENT_SCRIPT_STATES = ["connected", "missing", "blocked"];
|
|
62
|
+
export const LOCAL_BROWSER_UI_OPS = ["open_permissions", "open_control_center"];
|
|
63
|
+
export const LOCAL_BROWSER_CURSOR_PATTERN = /^\d+$/;
|
|
64
|
+
export const LOCAL_BROWSER_API_PATH_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*(\.[a-zA-Z][a-zA-Z0-9]*)+$/;
|
|
65
|
+
export const LOCAL_BROWSER_PERMISSIONS = [
|
|
66
|
+
{ id: "<all_urls>", kind: "origin", label: "Every website", grants: "Agents can open, read and act on any website in this browser.", chromium: "optional", firefox: "optional" },
|
|
67
|
+
{ id: "tabs", kind: "api", label: "Tabs", grants: "Agents can see the title and address of every open tab.", chromium: "optional", firefox: "optional" },
|
|
68
|
+
{ id: "scripting", kind: "api", label: "Page scripting", grants: "Agents can read pages, click, type and run scripts in the pages they can reach.", chromium: "optional", firefox: "optional" },
|
|
69
|
+
{ id: "cookies", kind: "api", label: "Cookies", grants: "Agents can read, set and clear cookies, including signed-in sessions.", chromium: "optional", firefox: "optional" },
|
|
70
|
+
{ id: "downloads", kind: "api", label: "Downloads", grants: "Agents can list downloads and save downloaded files into a task.", chromium: "optional", firefox: "optional" },
|
|
71
|
+
{ id: "downloads.open", kind: "api", label: "Open downloads", grants: "Agents can open files the browser downloaded.", chromium: "optional", firefox: "optional" },
|
|
72
|
+
{ id: "webRequest", kind: "api", label: "Network activity", grants: "Agents can see the requests pages make, with their headers.", chromium: "required", firefox: "optional" },
|
|
73
|
+
{ id: "webRequestBlocking", kind: "api", label: "Network response bodies", grants: "Agents can read the response bodies of the requests pages make.", chromium: "unsupported", firefox: "optional" },
|
|
74
|
+
{ id: "webNavigation", kind: "api", label: "Navigation events", grants: "Agents can tell when a page loads, reloads or comes back from the back-forward cache.", chromium: "optional", firefox: "optional" },
|
|
75
|
+
{ id: "history", kind: "api", label: "History", grants: "Agents can search and read your browsing history.", chromium: "optional", firefox: "optional" },
|
|
76
|
+
{ id: "bookmarks", kind: "api", label: "Bookmarks", grants: "Agents can search, read and change your bookmarks.", chromium: "optional", firefox: "optional" },
|
|
77
|
+
{ id: "browsingData", kind: "api", label: "Browsing data", grants: "Agents can clear browsing data such as cache, cookies and history.", chromium: "optional", firefox: "optional" },
|
|
78
|
+
{ id: "sessions", kind: "api", label: "Recently closed", grants: "Agents can list and restore recently closed tabs and windows.", chromium: "optional", firefox: "optional" },
|
|
79
|
+
{ id: "topSites", kind: "api", label: "Top sites", grants: "Agents can read the sites you visit most.", chromium: "optional", firefox: "optional" },
|
|
80
|
+
{ id: "clipboardRead", kind: "api", label: "Read clipboard", grants: "Agents can read what you copied to the clipboard.", chromium: "optional", firefox: "optional" },
|
|
81
|
+
{ id: "clipboardWrite", kind: "api", label: "Write clipboard", grants: "Agents can put text on your clipboard.", chromium: "optional", firefox: "optional" },
|
|
82
|
+
{ id: "notifications", kind: "api", label: "Notifications", grants: "The extension can show a desktop notice when an agent asks for a permission.", chromium: "optional", firefox: "optional" },
|
|
83
|
+
{ id: "management", kind: "api", label: "Extensions", grants: "Agents can list your installed extensions and turn them on or off.", chromium: "optional", firefox: "optional" },
|
|
84
|
+
{ id: "privacy", kind: "api", label: "Privacy settings", grants: "Agents can read and change the browser privacy settings.", chromium: "optional", firefox: "optional" },
|
|
85
|
+
{ id: "search", kind: "api", label: "Search", grants: "Agents can run a search with your default search engine.", chromium: "optional", firefox: "optional" },
|
|
86
|
+
{ id: "pageCapture", kind: "api", label: "Save page", grants: "Agents can save a whole page as one MHTML file.", chromium: "optional", firefox: "unsupported" },
|
|
87
|
+
{ id: "tabGroups", kind: "api", label: "Tab groups", grants: "Agents can read and arrange tab groups.", chromium: "optional", firefox: "unsupported" },
|
|
88
|
+
{ id: "contentSettings", kind: "api", label: "Site settings", grants: "Agents can read and change per-site settings such as cookies, JavaScript and pop-ups.", chromium: "optional", firefox: "unsupported" },
|
|
89
|
+
{ id: "proxy", kind: "api", label: "Proxy", grants: "Agents can read and change the browser proxy settings.", chromium: "unsupported", firefox: "optional" },
|
|
90
|
+
{ id: "tabHide", kind: "api", label: "Hide tabs", grants: "Agents can hide and show tabs.", chromium: "unsupported", firefox: "optional" },
|
|
91
|
+
{ id: "find", kind: "api", label: "Find in page", grants: "Agents can search page text the way Find in page does.", chromium: "unsupported", firefox: "optional" },
|
|
92
|
+
{ id: "browserSettings", kind: "api", label: "Browser settings", grants: "Agents can read and change some global browser settings.", chromium: "unsupported", firefox: "optional" },
|
|
93
|
+
{ id: "debugger", kind: "api", label: "Debugger", grants: "The extension can send trusted clicks and keys and read response bodies through the browser debugging protocol.", chromium: "required", firefox: "unsupported" },
|
|
94
|
+
{ id: "contextualIdentities", kind: "api", label: "Containers", grants: "Agents can see and open your Firefox containers, each with its own cookie jar.", chromium: "unsupported", firefox: "required" },
|
|
95
|
+
{ id: "storage", kind: "api", label: "Extension storage", grants: "The extension keeps its pairing and your settings.", chromium: "required", firefox: "required" },
|
|
96
|
+
{ id: "alarms", kind: "api", label: "Background timers", grants: "The extension stays connected while the browser runs.", chromium: "required", firefox: "unsupported" },
|
|
97
|
+
{ id: "activeTab", kind: "api", label: "Current tab", grants: "The extension can work with the tab you open it on.", chromium: "required", firefox: "required" },
|
|
98
|
+
];
|
|
99
|
+
export const LOCAL_BROWSER_PERMISSION_IDS = LOCAL_BROWSER_PERMISSIONS.map((permission) => permission.id);
|
|
100
|
+
export const LOCAL_BROWSER_LIMIT_KEYS = [
|
|
101
|
+
"resultMaxChars",
|
|
102
|
+
"snapshotMaxNodes",
|
|
103
|
+
"readMaxChars",
|
|
104
|
+
"screenshotMaxBytes",
|
|
105
|
+
"transferMaxBytes",
|
|
106
|
+
"callMaxMs",
|
|
107
|
+
"networkMaxEntries",
|
|
108
|
+
];
|
|
109
|
+
export const LOCAL_BROWSER_LIMITS = {
|
|
110
|
+
resultMaxChars: { default: 60_000, min: 1_000, ceiling: 2_000_000 },
|
|
111
|
+
snapshotMaxNodes: { default: 400, min: 10, ceiling: 20_000 },
|
|
112
|
+
readMaxChars: { default: 40_000, min: 200, ceiling: 2_000_000 },
|
|
113
|
+
screenshotMaxBytes: { default: 2_097_152, min: 65_536, ceiling: 52_428_800 },
|
|
114
|
+
transferMaxBytes: { default: 20_971_520, min: 1_048_576, ceiling: 268_435_456 },
|
|
115
|
+
callMaxMs: { default: 120_000, min: 5_000, ceiling: 600_000 },
|
|
116
|
+
networkMaxEntries: { default: 200, min: 10, ceiling: 5_000 },
|
|
117
|
+
};
|
|
118
|
+
export const LOCAL_BROWSER_GUARD_DEFAULTS = {
|
|
119
|
+
protectPaperclipTab: true,
|
|
120
|
+
protectFocusedTab: true,
|
|
121
|
+
networkBufferSize: 1_000,
|
|
122
|
+
};
|
|
123
|
+
export const LOCAL_BROWSER_NETWORK_BUFFER_RANGE = { min: 50, max: 20_000 };
|
|
124
|
+
export const LOCAL_BROWSER_TOOL_TIERS = {
|
|
125
|
+
local_browser_sessions: "refine",
|
|
126
|
+
local_browser_open: "refine",
|
|
127
|
+
local_browser_navigate: "refine",
|
|
128
|
+
local_browser_snapshot: "refine",
|
|
129
|
+
local_browser_act: "refine",
|
|
130
|
+
local_browser_read: "refine",
|
|
131
|
+
local_browser_screenshot: "refine",
|
|
132
|
+
local_browser_wait: "refine",
|
|
133
|
+
local_browser_evaluate: "full",
|
|
134
|
+
local_browser_storage: "full",
|
|
135
|
+
local_browser_network: "full",
|
|
136
|
+
local_browser_upload: "full",
|
|
137
|
+
local_browser_download: "full",
|
|
138
|
+
local_browser_close: "refine",
|
|
139
|
+
local_browser_context: "refine",
|
|
140
|
+
local_browser_permissions: "refine",
|
|
141
|
+
local_browser_api: "full",
|
|
142
|
+
};
|
|
143
|
+
export const LOCAL_BROWSER_TOOL_CAPABILITIES = {
|
|
144
|
+
local_browser_context: "context.v1",
|
|
145
|
+
local_browser_permissions: "permissions.v1",
|
|
146
|
+
local_browser_api: "api.v1",
|
|
147
|
+
};
|
|
148
|
+
export const LOCAL_BROWSER_ORIGIN_EXEMPT_TOOL_NAMES = [
|
|
149
|
+
"local_browser_sessions",
|
|
150
|
+
"local_browser_close",
|
|
151
|
+
"local_browser_permissions",
|
|
152
|
+
"local_browser_api",
|
|
153
|
+
];
|
|
154
|
+
export const LOCAL_BROWSER_INTERNAL_TOOL_NAMES = ["local_browser_viewer", "local_browser_input", "local_browser_ui"];
|
|
155
|
+
//# sourceMappingURL=local-browser-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-browser-contract.js","sourceRoot":"","sources":["../src/local-browser-contract.ts"],"names":[],"mappings":"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"}
|