123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
{
"manifest_version": 1,
"name": "native-browser",
"displayName": "Adom Native Browser",
"version": "0.2.2",
"expectedExtensionVersion": "0.2.0",
"description": "Drives the user's REAL signed-in Chrome/Edge, in two layers. Layer 1 (nb) needs NOTHING installed and works on any machine: nbrowser_open_os_window (open a URL in the user's real profile, background+flashing, the OAuth/consent path), nbrowser_os_windows, nbrowser_profiles, nbrowser_wake_profile, nbrowser_force_close. Layer 2 (nbe, the Adom Native Browser Extension) unlocks the rest: CDP driving (navigate/click/read/screenshot) inside their logged-in profile. The bridge binds an ephemeral loopback port and the native-messaging host pumps stdio <-> bridge.",
"homepage": "https://wiki.adom.inc/adom/nb-bridge",
"author": "Adom Inc.",
"license": "MIT",
"spawn": {
"kind": "node",
"entrypoint": "server.js",
"port": 0,
"healthEndpoint": "/status",
"stopMethod": "kill",
"killImageName": "node.exe",
"persistent": true
},
"verbPrefixes": [
"nbrowser_"
],
"verbs": [
"nbrowser_status",
"nbrowser_readiness",
"nbrowser_install_chrome",
"nbrowser_chrome_status",
"nbrowser_ping",
"nbrowser_activity",
"nbrowser_open_window",
"nbrowser_close_window",
"nbrowser_owned",
"nbrowser_cleanup",
"nbrowser_force_close",
"nbrowser_switch_window",
"nbrowser_list_windows",
"nbrowser_window_state",
"nbrowser_fullscreen",
"nbrowser_login_state",
"nbrowser_credentials",
"nbrowser_profiles",
"nbrowser_use_profile",
"nbrowser_pin_session",
"nbrowser_open_os_window",
"nbrowser_os_windows",
"nbrowser_wake_profile",
"nbrowser_resolve_profiles",
"nbrowser_whoami",
"nbrowser_profile_block",
"nbrowser_profile_unblock",
"nbrowser_rescan",
"nbrowser_resync_sessions",
"nbrowser_open_tab",
"nbrowser_close_tab",
"nbrowser_switch_tab",
"nbrowser_list_tabs",
"nbrowser_navigate",
"nbrowser_reload",
"nbrowser_back",
"nbrowser_forward",
"nbrowser_wait",
"nbrowser_wait_for",
"nbrowser_keepalive",
"nbrowser_screenshot",
"nbrowser_screenshot_full_res",
"nbrowser_eval",
"nbrowser_evaluate",
"nbrowser_input_dispatch",
"nbrowser_click",
"nbrowser_select",
"nbrowser_set_file_input",
"nbrowser_set_date",
"nbrowser_totp",
"nbrowser_register_totp",
"nbrowser_add_extension_origin",
"nbrowser_type",
"nbrowser_press_key",
"nbrowser_fetch_url",
"nbrowser_download_wait",
"nbrowser_errors",
"nbrowser_close",
"nbrowser_record_start",
"nbrowser_record_stop",
"nbrowser_record_status",
"nbrowser_record_list",
"nbrowser_flash",
"nbrowser_flash_stop",
"nbrowser_flash_mode",
"nbrowser_taskbar",
"nbrowser_describe",
"nbrowser_handle_dialog",
"nbrowser_dev_reload",
"nbrowser_clear_cookies",
"nbrowser_caption",
"nbrowser_focus",
"nbrowser_hover",
"nbrowser_double_click",
"nbrowser_right_click",
"nbrowser_login_form",
"nbrowser_autologin",
"nbrowser_cursor",
"nbrowser_events",
"nbrowser_download"
],
"dependencies": {
"node": ">=18"
},
"category": "Browser Automation",
"tags": [
"nb",
"nbe",
"native-browser",
"chrome",
"edge",
"nbrowser",
"pup-parity"
],
"docs": "https://wiki.adom.inc/adom/nb-bridge",
"platforms": {
"windows": {
"supported": true
},
"macos": {
"supported": false,
"reason": "Windows-first; Kyle ports to macOS as a fast-follow (NativeMessagingHosts live under ~/Library/Application Support/<browser>/NativeMessagingHosts; bridge/host are OS-agnostic Node)."
},
"linux": {
"supported": false,
"reason": "Pending; bridge + host are OS-agnostic Node, only the install/registration layer is Windows-specific."
}
},
"statusVerb": "nbrowser_status",
"updateManifestUrl": "https://wiki.adom.inc/api/pages/adom/nb-bridge/files/native-browser-bridge-manifest.json",
"timeouts": {
"default": 60,
"verbs": {
"wait": 125,
"fetch_url": 120,
"input_dispatch": 120,
"select": 30
},
"prefixes": [
{
"prefix": "screenshot",
"seconds": 120
},
{
"prefix": "record",
"seconds": 120
}
]
}
}