@hanzo/browser-extension 1.7.6 → 1.9.31
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/LICENSE +9 -18
- package/dist/browser-extension/README.md +1 -1
- package/dist/browser-extension/background-firefox.js +4180 -499
- package/dist/browser-extension/background.js +6932 -2419
- package/dist/browser-extension/browser-control.js +652 -18
- package/dist/browser-extension/chrome/background.js +6932 -2419
- package/dist/browser-extension/chrome/content-script.js +1642 -123
- package/dist/browser-extension/chrome/icon128.png +0 -0
- package/dist/browser-extension/chrome/icon16.png +0 -0
- package/dist/browser-extension/chrome/icon48.png +0 -0
- package/dist/browser-extension/chrome/manifest.json +20 -11
- package/dist/browser-extension/chrome/popup.css +352 -110
- package/dist/browser-extension/chrome/popup.html +159 -48
- package/dist/browser-extension/chrome/popup.js +1418 -46
- package/dist/browser-extension/chrome/sidebar.css +772 -156
- package/dist/browser-extension/chrome/sidebar.html +268 -85
- package/dist/browser-extension/chrome/sidebar.js +25846 -84
- package/dist/browser-extension/cli.js +2 -2
- package/dist/browser-extension/content-script.js +1642 -123
- package/dist/browser-extension/firefox/background.js +4180 -499
- package/dist/browser-extension/firefox/content-script.js +1642 -123
- package/dist/browser-extension/firefox/icon128.png +0 -0
- package/dist/browser-extension/firefox/icon16.png +0 -0
- package/dist/browser-extension/firefox/icon48.png +0 -0
- package/dist/browser-extension/firefox/manifest.json +24 -13
- package/dist/browser-extension/firefox/popup.css +352 -110
- package/dist/browser-extension/firefox/popup.html +159 -48
- package/dist/browser-extension/firefox/popup.js +1418 -46
- package/dist/browser-extension/firefox/sidebar.css +772 -156
- package/dist/browser-extension/firefox/sidebar.html +268 -85
- package/dist/browser-extension/firefox/sidebar.js +25846 -84
- package/dist/browser-extension/icon128.png +0 -0
- package/dist/browser-extension/icon16.png +0 -0
- package/dist/browser-extension/icon48.png +0 -0
- package/dist/browser-extension/manifest.json +20 -11
- package/dist/browser-extension/package.json +1 -1
- package/dist/browser-extension/popup.js +1418 -46
- package/dist/browser-extension/safari/Info.plist +3 -3
- package/dist/browser-extension/safari/background.js +6932 -2419
- package/dist/browser-extension/safari/content-script.js +1642 -123
- package/dist/browser-extension/safari/icon128.png +0 -0
- package/dist/browser-extension/safari/icon16.png +0 -0
- package/dist/browser-extension/safari/icon48.png +0 -0
- package/dist/browser-extension/safari/popup.css +352 -110
- package/dist/browser-extension/safari/popup.html +159 -48
- package/dist/browser-extension/safari/popup.js +1418 -46
- package/dist/browser-extension/safari/sidebar.css +772 -156
- package/dist/browser-extension/safari/sidebar.html +268 -85
- package/dist/browser-extension/safari/sidebar.js +25846 -84
- package/dist/browser-extension/sidebar.js +25846 -84
- package/dist/browser-extension/webgpu-ai.js +78 -5
- package/images/icon128.png +0 -0
- package/images/icon16.png +0 -0
- package/images/icon48.png +0 -0
- package/manifest.json +7 -2
- package/package.json +27 -10
- package/src/chat-widget.tsx +96 -0
- package/src/gui-primitives.tsx +116 -0
- package/src/icon128.png +0 -0
- package/src/icon16.png +0 -0
- package/src/icon32.png +0 -0
- package/src/icon48.png +0 -0
- package/src/manifest-firefox.json +23 -12
- package/src/manifest.json +19 -10
- package/src/package.json +1 -1
- package/src/popup.css +352 -110
- package/src/popup.html +159 -48
- package/src/popup.js +196 -0
- package/src/sidebar.css +772 -156
- package/src/sidebar.html +268 -85
- package/src/sidebar.js +885 -0
- package/.github/workflows/docs.yml +0 -44
- package/.github/workflows/release.yml +0 -55
- package/README.md +0 -126
- package/dist/browser-extension/ai-worker.js +0 -30
- package/dist/browser-extension/cdp-bridge-server.js +0 -444
- package/dist/browser-extension/chrome/icon32.png +0 -0
- package/dist/browser-extension/firefox/icon32.png +0 -0
- package/dist/browser-extension/hanzo-browser-extension-firefox-1.1.0.zip +0 -0
- package/dist/browser-extension/icon32.png +0 -0
- package/dist/browser-extension/popup.css +0 -468
- package/dist/browser-extension/popup.html +0 -191
- package/dist/browser-extension/safari/icon32.png +0 -0
- package/dist/browser-extension/sidebar.css +0 -718
- package/dist/browser-extension/sidebar.html +0 -184
- package/dist/cdp-bridge-server.js +0 -411
- package/dist/hanzo-ai-chrome-1.7.2.zip +0 -0
- package/dist/hanzo-ai-chrome-1.7.3.zip +0 -0
- package/dist/hanzo-ai-firefox-1.7.2.zip +0 -0
- package/dist/hanzo-ai-firefox-1.7.3.zip +0 -0
- package/dist/safari/Hanzo AI/Hanzo AI.xcodeproj/project.pbxproj +0 -1047
- package/dist/safari/Hanzo AI/Hanzo AI.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -98
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-128@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-128@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-16@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-16@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-256@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-256@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-32@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-32@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-512@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-512@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/universal-icon-1024@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/Contents.json +0 -6
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/LargeIcon.imageset/Contents.json +0 -21
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/LargeIcon.imageset/icon128.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Resources/Base.lproj/Main.html +0 -20
- package/dist/safari/Hanzo AI/Shared (App)/Resources/Icon.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Resources/Script.js +0 -24
- package/dist/safari/Hanzo AI/Shared (App)/Resources/Style.css +0 -61
- package/dist/safari/Hanzo AI/Shared (App)/ViewController.swift +0 -81
- package/dist/safari/Hanzo AI/Shared (Extension)/SafariWebExtensionHandler.swift +0 -42
- package/dist/safari/Hanzo AI/iOS (App)/AppDelegate.swift +0 -24
- package/dist/safari/Hanzo AI/iOS (App)/Base.lproj/LaunchScreen.storyboard +0 -36
- package/dist/safari/Hanzo AI/iOS (App)/Base.lproj/Main.storyboard +0 -38
- package/dist/safari/Hanzo AI/iOS (App)/Info.plist +0 -27
- package/dist/safari/Hanzo AI/iOS (App)/SceneDelegate.swift +0 -18
- package/dist/safari/Hanzo AI/iOS (Extension)/Info.plist +0 -13
- package/dist/safari/Hanzo AI/macOS (App)/AppDelegate.swift +0 -21
- package/dist/safari/Hanzo AI/macOS (App)/Base.lproj/Main.storyboard +0 -124
- package/dist/safari/Hanzo AI/macOS (App)/Info.plist +0 -8
- package/dist/safari/Hanzo AI/macOS (Extension)/Info.plist +0 -13
- package/docs/_config.yml +0 -13
- package/docs/_layouts/default.html +0 -435
- package/docs/index.md +0 -54
- package/hanzo-ai-chrome-v1.7.6.zip +0 -0
- package/hanzo-ai-firefox-v1.7.6.zip +0 -0
- package/install-extension.sh +0 -75
- package/test/claude-integration.test.ts +0 -251
- package/test/server-frameworks-edge-cases.test.ts +0 -145
- package/test/server-frameworks.test.ts +0 -395
- package/test-cdp-connection.js +0 -140
- package/tsconfig.json +0 -19
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="19085" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
|
|
3
|
-
<dependencies>
|
|
4
|
-
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19085"/>
|
|
5
|
-
<plugIn identifier="com.apple.WebKit2IBPlugin" version="19085"/>
|
|
6
|
-
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
7
|
-
</dependencies>
|
|
8
|
-
<scenes>
|
|
9
|
-
<!--Application-->
|
|
10
|
-
<scene sceneID="JPo-4y-FX3">
|
|
11
|
-
<objects>
|
|
12
|
-
<application id="hnw-xV-0zn" sceneMemberID="viewController">
|
|
13
|
-
<menu key="mainMenu" title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
|
|
14
|
-
<items>
|
|
15
|
-
<menuItem title="Hanzo AI" id="1Xt-HY-uBw">
|
|
16
|
-
<modifierMask key="keyEquivalentModifierMask"/>
|
|
17
|
-
<menu key="submenu" title="Hanzo AI" systemMenu="apple" id="uQy-DD-JDr">
|
|
18
|
-
<items>
|
|
19
|
-
<menuItem title="About Hanzo AI" id="5kV-Vb-QxS">
|
|
20
|
-
<modifierMask key="keyEquivalentModifierMask"/>
|
|
21
|
-
<connections>
|
|
22
|
-
<action selector="orderFrontStandardAboutPanel:" target="Ady-hI-5gd" id="Exp-CZ-Vem"/>
|
|
23
|
-
</connections>
|
|
24
|
-
</menuItem>
|
|
25
|
-
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
|
|
26
|
-
<menuItem title="Hide Hanzo AI" keyEquivalent="h" id="Olw-nP-bQN">
|
|
27
|
-
<connections>
|
|
28
|
-
<action selector="hide:" target="Ady-hI-5gd" id="PnN-Uc-m68"/>
|
|
29
|
-
</connections>
|
|
30
|
-
</menuItem>
|
|
31
|
-
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
|
|
32
|
-
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
|
33
|
-
<connections>
|
|
34
|
-
<action selector="hideOtherApplications:" target="Ady-hI-5gd" id="VT4-aY-XCT"/>
|
|
35
|
-
</connections>
|
|
36
|
-
</menuItem>
|
|
37
|
-
<menuItem title="Show All" id="Kd2-mp-pUS">
|
|
38
|
-
<modifierMask key="keyEquivalentModifierMask"/>
|
|
39
|
-
<connections>
|
|
40
|
-
<action selector="unhideAllApplications:" target="Ady-hI-5gd" id="Dhg-Le-xox"/>
|
|
41
|
-
</connections>
|
|
42
|
-
</menuItem>
|
|
43
|
-
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
|
|
44
|
-
<menuItem title="Quit Hanzo AI" keyEquivalent="q" id="4sb-4s-VLi">
|
|
45
|
-
<connections>
|
|
46
|
-
<action selector="terminate:" target="Ady-hI-5gd" id="Te7-pn-YzF"/>
|
|
47
|
-
</connections>
|
|
48
|
-
</menuItem>
|
|
49
|
-
</items>
|
|
50
|
-
</menu>
|
|
51
|
-
</menuItem>
|
|
52
|
-
<menuItem title="Help" id="wpr-3q-Mcd">
|
|
53
|
-
<modifierMask key="keyEquivalentModifierMask"/>
|
|
54
|
-
<menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
|
|
55
|
-
<items>
|
|
56
|
-
<menuItem title="Hanzo AI Help" keyEquivalent="?" id="FKE-Sm-Kum">
|
|
57
|
-
<connections>
|
|
58
|
-
<action selector="showHelp:" target="Ady-hI-5gd" id="y7X-2Q-9no"/>
|
|
59
|
-
</connections>
|
|
60
|
-
</menuItem>
|
|
61
|
-
</items>
|
|
62
|
-
</menu>
|
|
63
|
-
</menuItem>
|
|
64
|
-
</items>
|
|
65
|
-
</menu>
|
|
66
|
-
<connections>
|
|
67
|
-
<outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
|
|
68
|
-
</connections>
|
|
69
|
-
</application>
|
|
70
|
-
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModuleProvider="target"/>
|
|
71
|
-
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
|
72
|
-
<customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
|
73
|
-
</objects>
|
|
74
|
-
<point key="canvasLocation" x="76" y="-134"/>
|
|
75
|
-
</scene>
|
|
76
|
-
<!--Window Controller-->
|
|
77
|
-
<scene sceneID="R2V-B0-nI4">
|
|
78
|
-
<objects>
|
|
79
|
-
<windowController showSeguePresentationStyle="single" id="B8D-0N-5wS" sceneMemberID="viewController">
|
|
80
|
-
<window key="window" title="Hanzo AI" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" releasedWhenClosed="NO" animationBehavior="default" id="IQv-IB-iLA">
|
|
81
|
-
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
|
|
82
|
-
<windowCollectionBehavior key="collectionBehavior" fullScreenNone="YES"/>
|
|
83
|
-
<rect key="contentRect" x="196" y="240" width="425" height="325"/>
|
|
84
|
-
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
|
|
85
|
-
<connections>
|
|
86
|
-
<outlet property="delegate" destination="B8D-0N-5wS" id="98r-iN-zZc"/>
|
|
87
|
-
</connections>
|
|
88
|
-
</window>
|
|
89
|
-
<connections>
|
|
90
|
-
<segue destination="XfG-lQ-9wD" kind="relationship" relationship="window.shadowedContentViewController" id="cq2-FE-JQM"/>
|
|
91
|
-
</connections>
|
|
92
|
-
</windowController>
|
|
93
|
-
<customObject id="Oky-zY-oP4" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
|
94
|
-
</objects>
|
|
95
|
-
<point key="canvasLocation" x="75" y="250"/>
|
|
96
|
-
</scene>
|
|
97
|
-
<!--View Controller-->
|
|
98
|
-
<scene sceneID="hIz-AP-VOD">
|
|
99
|
-
<objects>
|
|
100
|
-
<viewController id="XfG-lQ-9wD" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController">
|
|
101
|
-
<view key="view" id="m2S-Jp-Qdl">
|
|
102
|
-
<rect key="frame" x="0.0" y="0.0" width="425" height="325"/>
|
|
103
|
-
<autoresizingMask key="autoresizingMask"/>
|
|
104
|
-
<subviews>
|
|
105
|
-
<wkWebView wantsLayer="YES" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eOr-cG-IQY">
|
|
106
|
-
<rect key="frame" x="0.0" y="0.0" width="425" height="325"/>
|
|
107
|
-
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
108
|
-
<wkWebViewConfiguration key="configuration">
|
|
109
|
-
<audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
|
|
110
|
-
<wkPreferences key="preferences"/>
|
|
111
|
-
</wkWebViewConfiguration>
|
|
112
|
-
</wkWebView>
|
|
113
|
-
</subviews>
|
|
114
|
-
</view>
|
|
115
|
-
<connections>
|
|
116
|
-
<outlet property="webView" destination="eOr-cG-IQY" id="GFe-mU-dBY"/>
|
|
117
|
-
</connections>
|
|
118
|
-
</viewController>
|
|
119
|
-
<customObject id="rPt-NT-nkU" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
|
120
|
-
</objects>
|
|
121
|
-
<point key="canvasLocation" x="75" y="655"/>
|
|
122
|
-
</scene>
|
|
123
|
-
</scenes>
|
|
124
|
-
</document>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
-
<plist version="1.0">
|
|
4
|
-
<dict>
|
|
5
|
-
<key>SFSafariWebExtensionConverterVersion</key>
|
|
6
|
-
<string>26.2</string>
|
|
7
|
-
</dict>
|
|
8
|
-
</plist>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
-
<plist version="1.0">
|
|
4
|
-
<dict>
|
|
5
|
-
<key>NSExtension</key>
|
|
6
|
-
<dict>
|
|
7
|
-
<key>NSExtensionPointIdentifier</key>
|
|
8
|
-
<string>com.apple.Safari.web-extension</string>
|
|
9
|
-
<key>NSExtensionPrincipalClass</key>
|
|
10
|
-
<string>$(PRODUCT_MODULE_NAME).SafariWebExtensionHandler</string>
|
|
11
|
-
</dict>
|
|
12
|
-
</dict>
|
|
13
|
-
</plist>
|
package/docs/_config.yml
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
title: Hanzo Browser Extension
|
|
2
|
-
description: AI-powered browser extension for Chrome, Firefox, Edge, Safari
|
|
3
|
-
url: https://hanzoai.github.io
|
|
4
|
-
baseurl: /browser-extension
|
|
5
|
-
remote_theme: pages-themes/midnight@v0.2.0
|
|
6
|
-
plugins:
|
|
7
|
-
- jekyll-remote-theme
|
|
8
|
-
|
|
9
|
-
defaults:
|
|
10
|
-
- scope:
|
|
11
|
-
path: ""
|
|
12
|
-
values:
|
|
13
|
-
layout: default
|
|
@@ -1,435 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>{{ page.title | default: site.title }}</title>
|
|
7
|
-
<meta name="description" content="{{ page.description | default: site.description }}">
|
|
8
|
-
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
-
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
11
|
-
<style>
|
|
12
|
-
:root {
|
|
13
|
-
/* Hanzo Red: rgb(216, 28, 54) */
|
|
14
|
-
--brand: #d81c33;
|
|
15
|
-
--brand-secondary: #f17485;
|
|
16
|
-
--brand-hover: #c01830;
|
|
17
|
-
--bg-primary: #0a0a0a;
|
|
18
|
-
--bg-secondary: #141414;
|
|
19
|
-
--bg-card: rgba(23, 23, 23, 0.5);
|
|
20
|
-
--border: #262626;
|
|
21
|
-
--text-primary: #fafafa;
|
|
22
|
-
--text-secondary: #a3a3a3;
|
|
23
|
-
--text-muted: #737373;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
27
|
-
|
|
28
|
-
body {
|
|
29
|
-
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
30
|
-
background: var(--bg-primary);
|
|
31
|
-
color: var(--text-primary);
|
|
32
|
-
line-height: 1.6;
|
|
33
|
-
min-height: 100vh;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.hero {
|
|
37
|
-
position: relative;
|
|
38
|
-
padding: 80px 24px 60px;
|
|
39
|
-
text-align: center;
|
|
40
|
-
overflow: hidden;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.hero::before {
|
|
44
|
-
content: '';
|
|
45
|
-
position: absolute;
|
|
46
|
-
top: 0;
|
|
47
|
-
left: 50%;
|
|
48
|
-
transform: translateX(-50%);
|
|
49
|
-
width: 800px;
|
|
50
|
-
height: 600px;
|
|
51
|
-
background: radial-gradient(ellipse at center, var(--brand) 0%, transparent 70%);
|
|
52
|
-
opacity: 0.08;
|
|
53
|
-
filter: blur(100px);
|
|
54
|
-
pointer-events: none;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.hero-content { position: relative; max-width: 800px; margin: 0 auto; }
|
|
58
|
-
|
|
59
|
-
.badge {
|
|
60
|
-
display: inline-flex;
|
|
61
|
-
align-items: center;
|
|
62
|
-
gap: 8px;
|
|
63
|
-
padding: 6px 16px;
|
|
64
|
-
background: var(--bg-card);
|
|
65
|
-
border: 1px solid var(--border);
|
|
66
|
-
border-radius: 9999px;
|
|
67
|
-
font-size: 14px;
|
|
68
|
-
color: var(--text-secondary);
|
|
69
|
-
margin-bottom: 24px;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.badge-dot {
|
|
73
|
-
width: 8px;
|
|
74
|
-
height: 8px;
|
|
75
|
-
background: var(--brand);
|
|
76
|
-
border-radius: 50%;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
h1 {
|
|
80
|
-
font-size: clamp(2.5rem, 5vw, 3.5rem);
|
|
81
|
-
font-weight: 700;
|
|
82
|
-
margin-bottom: 16px;
|
|
83
|
-
letter-spacing: -0.02em;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
h1 span { color: var(--text-secondary); }
|
|
87
|
-
|
|
88
|
-
.subtitle {
|
|
89
|
-
font-size: 1.25rem;
|
|
90
|
-
color: var(--text-secondary);
|
|
91
|
-
margin-bottom: 32px;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.buttons {
|
|
95
|
-
display: flex;
|
|
96
|
-
gap: 12px;
|
|
97
|
-
justify-content: center;
|
|
98
|
-
flex-wrap: wrap;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.btn {
|
|
102
|
-
display: inline-flex;
|
|
103
|
-
align-items: center;
|
|
104
|
-
gap: 8px;
|
|
105
|
-
padding: 12px 24px;
|
|
106
|
-
border-radius: 9999px;
|
|
107
|
-
font-size: 15px;
|
|
108
|
-
font-weight: 500;
|
|
109
|
-
text-decoration: none;
|
|
110
|
-
transition: all 0.2s;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.btn-primary {
|
|
114
|
-
background: var(--brand);
|
|
115
|
-
color: white;
|
|
116
|
-
border: none;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.btn-primary:hover { background: var(--brand-hover); }
|
|
120
|
-
|
|
121
|
-
.btn-secondary {
|
|
122
|
-
background: transparent;
|
|
123
|
-
color: var(--text-primary);
|
|
124
|
-
border: 1px solid var(--border);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
.btn-secondary:hover {
|
|
128
|
-
background: var(--bg-secondary);
|
|
129
|
-
border-color: var(--text-muted);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
main {
|
|
133
|
-
max-width: 900px;
|
|
134
|
-
margin: 0 auto;
|
|
135
|
-
padding: 0 24px 80px;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.content {
|
|
139
|
-
background: var(--bg-card);
|
|
140
|
-
border: 1px solid var(--border);
|
|
141
|
-
border-radius: 16px;
|
|
142
|
-
padding: 48px;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.content h2 {
|
|
146
|
-
font-size: 1.5rem;
|
|
147
|
-
font-weight: 600;
|
|
148
|
-
margin: 32px 0 16px;
|
|
149
|
-
color: var(--text-primary);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.content h2:first-child { margin-top: 0; }
|
|
153
|
-
|
|
154
|
-
.content h3 {
|
|
155
|
-
font-size: 1.125rem;
|
|
156
|
-
font-weight: 600;
|
|
157
|
-
margin: 24px 0 12px;
|
|
158
|
-
color: var(--text-primary);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.content p {
|
|
162
|
-
color: var(--text-secondary);
|
|
163
|
-
margin-bottom: 16px;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.content ul, .content ol {
|
|
167
|
-
color: var(--text-secondary);
|
|
168
|
-
margin: 0 0 16px 24px;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.content li { margin-bottom: 8px; }
|
|
172
|
-
|
|
173
|
-
.content a {
|
|
174
|
-
color: var(--brand);
|
|
175
|
-
text-decoration: none;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
.content a:hover { text-decoration: underline; }
|
|
179
|
-
|
|
180
|
-
.content code {
|
|
181
|
-
font-family: 'JetBrains Mono', monospace;
|
|
182
|
-
font-size: 0.875em;
|
|
183
|
-
background: var(--bg-secondary);
|
|
184
|
-
padding: 2px 6px;
|
|
185
|
-
border-radius: 4px;
|
|
186
|
-
color: var(--brand-secondary);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
.content pre {
|
|
190
|
-
background: var(--bg-secondary);
|
|
191
|
-
border: 1px solid var(--border);
|
|
192
|
-
border-radius: 8px;
|
|
193
|
-
padding: 16px;
|
|
194
|
-
overflow-x: auto;
|
|
195
|
-
margin: 16px 0;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.content pre code {
|
|
199
|
-
background: none;
|
|
200
|
-
padding: 0;
|
|
201
|
-
color: var(--text-primary);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
.content table {
|
|
205
|
-
width: 100%;
|
|
206
|
-
border-collapse: collapse;
|
|
207
|
-
margin: 16px 0;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
.content th, .content td {
|
|
211
|
-
text-align: left;
|
|
212
|
-
padding: 12px;
|
|
213
|
-
border-bottom: 1px solid var(--border);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
.content th {
|
|
217
|
-
color: var(--text-primary);
|
|
218
|
-
font-weight: 600;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
.content td { color: var(--text-secondary); }
|
|
222
|
-
|
|
223
|
-
footer {
|
|
224
|
-
text-align: center;
|
|
225
|
-
padding: 32px 24px;
|
|
226
|
-
color: var(--text-muted);
|
|
227
|
-
font-size: 14px;
|
|
228
|
-
border-top: 1px solid var(--border);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
footer a {
|
|
232
|
-
color: var(--text-secondary);
|
|
233
|
-
text-decoration: none;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
footer a:hover { color: var(--brand); }
|
|
237
|
-
|
|
238
|
-
.browser-badges {
|
|
239
|
-
display: flex;
|
|
240
|
-
gap: 8px;
|
|
241
|
-
justify-content: center;
|
|
242
|
-
margin-bottom: 24px;
|
|
243
|
-
flex-wrap: wrap;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
.browser-badge {
|
|
247
|
-
padding: 6px 12px;
|
|
248
|
-
background: var(--bg-card);
|
|
249
|
-
border: 1px solid var(--border);
|
|
250
|
-
border-radius: 8px;
|
|
251
|
-
font-size: 13px;
|
|
252
|
-
color: var(--text-secondary);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
@media (max-width: 640px) {
|
|
256
|
-
.hero { padding: 60px 16px 40px; }
|
|
257
|
-
.content { padding: 24px; }
|
|
258
|
-
.buttons { flex-direction: column; }
|
|
259
|
-
.btn { width: 100%; justify-content: center; }
|
|
260
|
-
}
|
|
261
|
-
</style>
|
|
262
|
-
</head>
|
|
263
|
-
<body>
|
|
264
|
-
<header class="hero">
|
|
265
|
-
<div class="hero-content">
|
|
266
|
-
<div class="badge">
|
|
267
|
-
<span class="badge-dot"></span>
|
|
268
|
-
<span>Browser Extension</span>
|
|
269
|
-
</div>
|
|
270
|
-
<h1>Hanzo AI <span>Browser Extension</span></h1>
|
|
271
|
-
<div class="browser-badges">
|
|
272
|
-
<span class="browser-badge">Chrome</span>
|
|
273
|
-
<span class="browser-badge">Firefox</span>
|
|
274
|
-
<span class="browser-badge">Edge</span>
|
|
275
|
-
<span class="browser-badge">Safari</span>
|
|
276
|
-
</div>
|
|
277
|
-
<p class="subtitle">{{ site.description }}</p>
|
|
278
|
-
<div class="buttons">
|
|
279
|
-
<a href="https://github.com/hanzoai/browser-extension/releases" class="btn btn-primary">
|
|
280
|
-
Download Latest
|
|
281
|
-
</a>
|
|
282
|
-
<a href="https://github.com/hanzoai/browser-extension" class="btn btn-secondary">
|
|
283
|
-
<svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
|
284
|
-
View Source
|
|
285
|
-
</a>
|
|
286
|
-
</div>
|
|
287
|
-
</div>
|
|
288
|
-
</header>
|
|
289
|
-
|
|
290
|
-
<main>
|
|
291
|
-
<div class="content">
|
|
292
|
-
{{ content }}
|
|
293
|
-
</div>
|
|
294
|
-
</main>
|
|
295
|
-
|
|
296
|
-
<footer>
|
|
297
|
-
<div class="footer-content">
|
|
298
|
-
<div class="footer-section">
|
|
299
|
-
<h4>Hanzo AI</h4>
|
|
300
|
-
<ul>
|
|
301
|
-
<li><a href="https://hanzo.ai">Website</a></li>
|
|
302
|
-
<li><a href="https://docs.hanzo.ai">Documentation</a></li>
|
|
303
|
-
<li><a href="https://github.com/hanzoai">GitHub</a></li>
|
|
304
|
-
<li><a href="https://hanzoai.github.io">Open Source</a></li>
|
|
305
|
-
</ul>
|
|
306
|
-
</div>
|
|
307
|
-
<div class="footer-section">
|
|
308
|
-
<h4>Editor Plugins</h4>
|
|
309
|
-
<ul>
|
|
310
|
-
<li><a href="https://hanzoai.github.io/hanzo.vim">hanzo.vim</a></li>
|
|
311
|
-
<li><a href="https://hanzoai.github.io/hanzo.el">hanzo.el</a></li>
|
|
312
|
-
<li><a href="https://hanzoai.github.io/ide-extension">VS Code / JetBrains</a></li>
|
|
313
|
-
<li><a href="https://hanzoai.github.io/browser-extension">Browser Extension</a></li>
|
|
314
|
-
</ul>
|
|
315
|
-
</div>
|
|
316
|
-
<div class="footer-section">
|
|
317
|
-
<h4>Ecosystem</h4>
|
|
318
|
-
<ul>
|
|
319
|
-
<li><a href="https://github.com/hanzoai/mcp">MCP Tools</a></li>
|
|
320
|
-
<li><a href="https://github.com/hanzoai/llm">LLM Gateway</a></li>
|
|
321
|
-
<li><a href="https://github.com/hanzoai/agent">Agent SDK</a></li>
|
|
322
|
-
<li><a href="https://luxfi.github.io">Lux Network</a></li>
|
|
323
|
-
</ul>
|
|
324
|
-
</div>
|
|
325
|
-
<div class="footer-section">
|
|
326
|
-
<h4>Community</h4>
|
|
327
|
-
<ul>
|
|
328
|
-
<li><a href="https://discord.gg/hanzo">Discord</a></li>
|
|
329
|
-
<li><a href="https://twitter.com/hanaborobot">Twitter</a></li>
|
|
330
|
-
<li><a href="https://zooai.github.io">Zoo AI</a></li>
|
|
331
|
-
<li><a href="https://zoo-labs.github.io">Zoo Labs</a></li>
|
|
332
|
-
</ul>
|
|
333
|
-
</div>
|
|
334
|
-
</div>
|
|
335
|
-
<div class="footer-bottom">
|
|
336
|
-
<div class="footer-logo">
|
|
337
|
-
<svg viewBox="0 0 67 67" xmlns="http://www.w3.org/2000/svg" width="24" height="24">
|
|
338
|
-
<path d="M22.21 67V44.6369H0V67H22.21Z" fill="currentColor"/>
|
|
339
|
-
<path d="M66.7038 22.3184H22.2534L0.0878906 44.6367H44.4634L66.7038 22.3184Z" fill="currentColor"/>
|
|
340
|
-
<path d="M22.21 0H0V22.3184H22.21V0Z" fill="currentColor"/>
|
|
341
|
-
<path d="M66.7198 0H44.5098V22.3184H66.7198V0Z" fill="currentColor"/>
|
|
342
|
-
<path d="M66.7198 67V44.6369H44.5098V67H66.7198Z" fill="currentColor"/>
|
|
343
|
-
</svg>
|
|
344
|
-
<span>Hanzo AI · Techstars '17</span>
|
|
345
|
-
</div>
|
|
346
|
-
<p>© 2024 Hanzo AI Inc. MIT License.</p>
|
|
347
|
-
</div>
|
|
348
|
-
</footer>
|
|
349
|
-
|
|
350
|
-
<style>
|
|
351
|
-
footer {
|
|
352
|
-
padding: 48px 24px 32px;
|
|
353
|
-
border-top: 1px solid var(--border);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
.footer-content {
|
|
357
|
-
max-width: 1200px;
|
|
358
|
-
margin: 0 auto 32px;
|
|
359
|
-
display: grid;
|
|
360
|
-
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
|
361
|
-
gap: 32px;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
.footer-section h4 {
|
|
365
|
-
font-size: 13px;
|
|
366
|
-
font-weight: 600;
|
|
367
|
-
color: var(--text-primary);
|
|
368
|
-
margin-bottom: 12px;
|
|
369
|
-
text-transform: uppercase;
|
|
370
|
-
letter-spacing: 0.05em;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
.footer-section ul {
|
|
374
|
-
list-style: none;
|
|
375
|
-
margin: 0;
|
|
376
|
-
padding: 0;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
.footer-section li {
|
|
380
|
-
margin-bottom: 8px;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
.footer-section a {
|
|
384
|
-
color: var(--text-muted);
|
|
385
|
-
text-decoration: none;
|
|
386
|
-
font-size: 14px;
|
|
387
|
-
transition: color 0.2s;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
.footer-section a:hover {
|
|
391
|
-
color: var(--brand);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
.footer-bottom {
|
|
395
|
-
max-width: 1200px;
|
|
396
|
-
margin: 0 auto;
|
|
397
|
-
padding-top: 24px;
|
|
398
|
-
border-top: 1px solid var(--border);
|
|
399
|
-
display: flex;
|
|
400
|
-
justify-content: space-between;
|
|
401
|
-
align-items: center;
|
|
402
|
-
flex-wrap: wrap;
|
|
403
|
-
gap: 16px;
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
.footer-logo {
|
|
407
|
-
display: flex;
|
|
408
|
-
align-items: center;
|
|
409
|
-
gap: 8px;
|
|
410
|
-
color: var(--text-muted);
|
|
411
|
-
font-size: 14px;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
.footer-logo svg {
|
|
415
|
-
color: var(--brand);
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
.footer-bottom p {
|
|
419
|
-
color: var(--text-muted);
|
|
420
|
-
font-size: 13px;
|
|
421
|
-
margin: 0;
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
@media (max-width: 640px) {
|
|
425
|
-
.footer-content {
|
|
426
|
-
grid-template-columns: repeat(2, 1fr);
|
|
427
|
-
}
|
|
428
|
-
.footer-bottom {
|
|
429
|
-
flex-direction: column;
|
|
430
|
-
text-align: center;
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
</style>
|
|
434
|
-
</body>
|
|
435
|
-
</html>
|
package/docs/index.md
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Hanzo AI Browser Extension
|
|
3
|
-
description: AI-powered browser extension for Chrome, Firefox, Edge, Safari
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Hanzo AI Browser Extension
|
|
7
|
-
|
|
8
|
-
AI-powered browser extension with support for Claude, GPT-4, Gemini, and more.
|
|
9
|
-
|
|
10
|
-
## Installation
|
|
11
|
-
|
|
12
|
-
### Chrome / Edge / Brave
|
|
13
|
-
|
|
14
|
-
1. Download from [Releases](https://github.com/hanzoai/browser-extension/releases)
|
|
15
|
-
2. Open `chrome://extensions`
|
|
16
|
-
3. Enable "Developer mode"
|
|
17
|
-
4. Click "Load unpacked" and select `dist` folder
|
|
18
|
-
|
|
19
|
-
### Firefox
|
|
20
|
-
|
|
21
|
-
1. Download release
|
|
22
|
-
2. Open `about:debugging`
|
|
23
|
-
3. Click "This Firefox" → "Load Temporary Add-on"
|
|
24
|
-
4. Select `manifest.json`
|
|
25
|
-
|
|
26
|
-
## Features
|
|
27
|
-
|
|
28
|
-
- **AI Chat Sidebar**: Chat with Claude, GPT-4, Gemini
|
|
29
|
-
- **Page Analysis**: Summarize, explain, query any webpage
|
|
30
|
-
- **Selection Actions**: Right-click AI operations
|
|
31
|
-
- **MCP Integration**: 260+ MCP tools
|
|
32
|
-
- **Cloud Sync**: Sync via cloud.hanzo.ai
|
|
33
|
-
|
|
34
|
-
## Architecture
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
|
38
|
-
│ Content Script │ ◄──► │ Background │ ◄──► │ Hanzo API │
|
|
39
|
-
│ (Page Context) │ │ (Service Worker) │ │ (api.hanzo.ai) │
|
|
40
|
-
└─────────────────┘ └──────────────────┘ └─────────────────┘
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Development
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
npm install
|
|
47
|
-
npm run build
|
|
48
|
-
npm run watch # Development mode
|
|
49
|
-
npm test
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Configuration
|
|
53
|
-
|
|
54
|
-
Login at [cloud.hanzo.ai](https://cloud.hanzo.ai) to sync settings.
|
|
Binary file
|
|
Binary file
|