neoagent 2.4.1-beta.20 → 2.4.1-beta.22
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/extensions/chrome-browser/icons/logo.svg +12 -2
- package/flutter_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/flutter_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/flutter_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/flutter_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/flutter_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/flutter_app/assets/branding/app_icon_1024.png +0 -0
- package/flutter_app/assets/branding/app_icon_128.png +0 -0
- package/flutter_app/assets/branding/app_icon_192.png +0 -0
- package/flutter_app/assets/branding/app_icon_256.png +0 -0
- package/flutter_app/assets/branding/app_icon_32.png +0 -0
- package/flutter_app/assets/branding/app_icon_512.png +0 -0
- package/flutter_app/assets/branding/app_icon_64.png +0 -0
- package/flutter_app/assets/branding/app_icon_light_1024.png +0 -0
- package/flutter_app/assets/branding/app_icon_light_128.png +0 -0
- package/flutter_app/assets/branding/app_icon_light_192.png +0 -0
- package/flutter_app/assets/branding/app_icon_light_256.png +0 -0
- package/flutter_app/assets/branding/app_icon_light_32.png +0 -0
- package/flutter_app/assets/branding/app_icon_light_512.png +0 -0
- package/flutter_app/assets/branding/app_icon_light_64.png +0 -0
- package/flutter_app/assets/branding/tray_icon_light_template.png +0 -0
- package/flutter_app/assets/branding/tray_icon_template.png +0 -0
- package/flutter_app/linux/runner/resources/app_icon.png +0 -0
- package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png +0 -0
- package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png +0 -0
- package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png +0 -0
- package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png +0 -0
- package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png +0 -0
- package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png +0 -0
- package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png +0 -0
- package/flutter_app/tool/generate_desktop_branding.py +73 -28
- package/flutter_app/web/favicon.png +0 -0
- package/flutter_app/web/favicon.svg +12 -2
- package/flutter_app/web/favicon_light.svg +12 -2
- package/flutter_app/web/icons/Icon-192-light.png +0 -0
- package/flutter_app/web/icons/Icon-192.png +0 -0
- package/flutter_app/web/icons/Icon-512-light.png +0 -0
- package/flutter_app/web/icons/Icon-512.png +0 -0
- package/flutter_app/web/icons/Icon-maskable-192-light.png +0 -0
- package/flutter_app/web/icons/Icon-maskable-192.png +0 -0
- package/flutter_app/web/icons/Icon-maskable-512-light.png +0 -0
- package/flutter_app/web/icons/Icon-maskable-512.png +0 -0
- package/flutter_app/windows/runner/resources/app_icon.ico +0 -0
- package/package.json +7 -7
- package/server/public/.last_build_id +1 -1
- package/server/public/assets/assets/branding/app_icon_256.png +0 -0
- package/server/public/assets/assets/branding/app_icon_512.png +0 -0
- package/server/public/assets/assets/branding/app_icon_light_256.png +0 -0
- package/server/public/assets/assets/branding/app_icon_light_512.png +0 -0
- package/server/public/assets/assets/branding/tray_icon_light_template.png +0 -0
- package/server/public/assets/assets/branding/tray_icon_template.png +0 -0
- package/server/public/assets/web/icons/Icon-192.png +0 -0
- package/server/public/favicon.png +0 -0
- package/server/public/favicon.svg +12 -2
- package/server/public/favicon_light.svg +12 -2
- package/server/public/flutter_bootstrap.js +1 -1
- package/server/public/icons/Icon-192-light.png +0 -0
- package/server/public/icons/Icon-192.png +0 -0
- package/server/public/icons/Icon-512-light.png +0 -0
- package/server/public/icons/Icon-512.png +0 -0
- package/server/public/icons/Icon-maskable-192-light.png +0 -0
- package/server/public/icons/Icon-maskable-192.png +0 -0
- package/server/public/icons/Icon-maskable-512-light.png +0 -0
- package/server/public/icons/Icon-maskable-512.png +0 -0
- package/server/public/main.dart.js +4 -4
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
2
|
-
<
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="#95764a"/>
|
|
5
|
+
<stop offset="100%" stop-color="#3a8679"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect x="2.5" y="2.5" width="27" height="27" rx="9" ry="9" fill="url(#bg)" stroke="#ffffff" stroke-opacity="0.16" stroke-width="1"/>
|
|
9
|
+
<rect x="3" y="3" width="26" height="26" rx="8.5" ry="8.5" fill="none" stroke="#ffffff" stroke-opacity="0.18" stroke-width="1"/>
|
|
10
|
+
<path d="M16 5.7 26.8 12.1 16 16.5 5.2 12.1Z" fill="#ffffff"/>
|
|
11
|
+
<path d="M16 14.2 26.5 19.3 16 22.4 5.5 19.3Z" fill="#ffffff"/>
|
|
12
|
+
<path d="M16 20 25.4 24.6 16 27 6.6 24.6Z" fill="#ffffff"/>
|
|
3
13
|
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -18,9 +18,15 @@ LINUX_ICON_DIR = ROOT / "linux" / "runner" / "resources"
|
|
|
18
18
|
ANDROID_RES_DIR = ROOT / "android" / "app" / "src" / "main" / "res"
|
|
19
19
|
SERVER_PUBLIC_DIR = ROOT.parent / "server" / "public"
|
|
20
20
|
SERVER_PUBLIC_ICONS_DIR = SERVER_PUBLIC_DIR / "icons"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
STATIC_IMG_DIR = ROOT.parent / "static" / "img"
|
|
22
|
+
LANDING_LOGO_PATH = ROOT.parent / "landing" / "assets" / "logo.svg"
|
|
23
|
+
EXTENSION_LOGO_PATH = ROOT.parent / "extensions" / "chrome-browser" / "icons" / "logo.svg"
|
|
24
|
+
|
|
25
|
+
ACCENT = (118, 89, 50)
|
|
26
|
+
ACCENT_ALT = (40, 105, 92)
|
|
27
|
+
ACCENT_DARK = (149, 118, 74)
|
|
28
|
+
ACCENT_ALT_DARK = (58, 134, 121)
|
|
29
|
+
SYMBOL_LIGHT = (255, 249, 237, 255)
|
|
24
30
|
WHITE = (255, 255, 255, 255)
|
|
25
31
|
TRANSPARENT = (0, 0, 0, 0)
|
|
26
32
|
|
|
@@ -29,7 +35,11 @@ def lerp(a: float, b: float, t: float) -> float:
|
|
|
29
35
|
return a + (b - a) * t
|
|
30
36
|
|
|
31
37
|
|
|
32
|
-
def gradient_background(
|
|
38
|
+
def gradient_background(
|
|
39
|
+
size: int,
|
|
40
|
+
start: tuple[int, int, int],
|
|
41
|
+
end: tuple[int, int, int],
|
|
42
|
+
) -> Image.Image:
|
|
33
43
|
img = Image.new("RGBA", (size, size), TRANSPARENT)
|
|
34
44
|
px = img.load()
|
|
35
45
|
for y in range(size):
|
|
@@ -38,36 +48,38 @@ def gradient_background(size: int) -> Image.Image:
|
|
|
38
48
|
ty = y / max(size - 1, 1)
|
|
39
49
|
t = (tx + ty) / 2
|
|
40
50
|
px[x, y] = (
|
|
41
|
-
int(lerp(
|
|
42
|
-
int(lerp(
|
|
43
|
-
int(lerp(
|
|
51
|
+
int(lerp(start[0], end[0], t)),
|
|
52
|
+
int(lerp(start[1], end[1], t)),
|
|
53
|
+
int(lerp(start[2], end[2], t)),
|
|
44
54
|
255,
|
|
45
55
|
)
|
|
46
56
|
return img
|
|
47
57
|
|
|
48
58
|
|
|
49
|
-
def logo_paths(size: int, padding_ratio: float = 0.
|
|
59
|
+
def logo_paths(size: int, padding_ratio: float = 0.16):
|
|
50
60
|
pad = size * padding_ratio
|
|
51
61
|
inner = size - pad * 2
|
|
52
62
|
def point(x: float, y: float) -> tuple[float, float]:
|
|
53
63
|
return (pad + inner * x, pad + inner * y)
|
|
54
64
|
|
|
55
|
-
top = [point(0.5, 0.08), point(0.
|
|
56
|
-
middle = [point(0.
|
|
57
|
-
bottom = [point(0.
|
|
58
|
-
return top, middle, bottom
|
|
65
|
+
top = [point(0.5, 0.08), point(0.92, 0.35), point(0.5, 0.53), point(0.08, 0.35)]
|
|
66
|
+
middle = [point(0.5, 0.43), point(0.9, 0.64), point(0.5, 0.76), point(0.1, 0.64)]
|
|
67
|
+
bottom = [point(0.5, 0.67), point(0.86, 0.86), point(0.5, 0.96), point(0.14, 0.86)]
|
|
68
|
+
return top, middle, bottom
|
|
59
69
|
|
|
60
70
|
|
|
61
71
|
def draw_logo(draw: ImageDraw.ImageDraw, size: int, color: tuple[int, int, int, int]) -> None:
|
|
62
|
-
top, middle, bottom
|
|
63
|
-
stroke = max(2, round(inner * 0.08))
|
|
72
|
+
top, middle, bottom = logo_paths(size)
|
|
64
73
|
draw.polygon(top, fill=color)
|
|
65
|
-
draw.
|
|
66
|
-
draw.
|
|
74
|
+
draw.polygon(middle, fill=color)
|
|
75
|
+
draw.polygon(bottom, fill=color)
|
|
67
76
|
|
|
68
77
|
|
|
69
|
-
def make_app_icon(size: int) -> Image.Image:
|
|
78
|
+
def make_app_icon(size: int, *, light: bool = False) -> Image.Image:
|
|
70
79
|
canvas = Image.new("RGBA", (size, size), TRANSPARENT)
|
|
80
|
+
start = ACCENT if light else ACCENT_DARK
|
|
81
|
+
end = ACCENT_ALT if light else ACCENT_ALT_DARK
|
|
82
|
+
symbol = SYMBOL_LIGHT if light else WHITE
|
|
71
83
|
|
|
72
84
|
shadow = Image.new("RGBA", (size, size), TRANSPARENT)
|
|
73
85
|
shadow_draw = ImageDraw.Draw(shadow)
|
|
@@ -86,7 +98,7 @@ def make_app_icon(size: int) -> Image.Image:
|
|
|
86
98
|
base_rect = (size * 0.08, size * 0.08, size * 0.92, size * 0.92)
|
|
87
99
|
mask_draw.rounded_rectangle(base_rect, radius=corner, fill=255)
|
|
88
100
|
|
|
89
|
-
base = gradient_background(size)
|
|
101
|
+
base = gradient_background(size, start, end)
|
|
90
102
|
clipped = Image.new("RGBA", (size, size), TRANSPARENT)
|
|
91
103
|
clipped.paste(base, mask=base_mask)
|
|
92
104
|
canvas.alpha_composite(clipped)
|
|
@@ -103,15 +115,18 @@ def make_app_icon(size: int) -> Image.Image:
|
|
|
103
115
|
|
|
104
116
|
glyph = Image.new("RGBA", (size, size), TRANSPARENT)
|
|
105
117
|
draw = ImageDraw.Draw(glyph)
|
|
106
|
-
draw_logo(draw, size,
|
|
118
|
+
draw_logo(draw, size, symbol)
|
|
107
119
|
canvas.alpha_composite(glyph)
|
|
108
120
|
return canvas
|
|
109
121
|
|
|
110
122
|
|
|
111
|
-
def make_tray_template(
|
|
123
|
+
def make_tray_template(
|
|
124
|
+
size: int = 64,
|
|
125
|
+
color: tuple[int, int, int, int] = (0, 0, 0, 255),
|
|
126
|
+
) -> Image.Image:
|
|
112
127
|
img = Image.new("RGBA", (size, size), TRANSPARENT)
|
|
113
128
|
draw = ImageDraw.Draw(img)
|
|
114
|
-
draw_logo(draw, size,
|
|
129
|
+
draw_logo(draw, size, color)
|
|
115
130
|
return img
|
|
116
131
|
|
|
117
132
|
|
|
@@ -121,6 +136,9 @@ def ensure_dirs() -> None:
|
|
|
121
136
|
MAC_ICON_DIR.mkdir(parents=True, exist_ok=True)
|
|
122
137
|
LINUX_ICON_DIR.mkdir(parents=True, exist_ok=True)
|
|
123
138
|
SERVER_PUBLIC_ICONS_DIR.mkdir(parents=True, exist_ok=True)
|
|
139
|
+
STATIC_IMG_DIR.mkdir(parents=True, exist_ok=True)
|
|
140
|
+
LANDING_LOGO_PATH.parent.mkdir(parents=True, exist_ok=True)
|
|
141
|
+
EXTENSION_LOGO_PATH.parent.mkdir(parents=True, exist_ok=True)
|
|
124
142
|
|
|
125
143
|
|
|
126
144
|
def write_text(path: Path, content: str) -> None:
|
|
@@ -132,18 +150,24 @@ def copy_png(image: Image.Image, path: Path, size: int) -> None:
|
|
|
132
150
|
save_png(image, path, size)
|
|
133
151
|
|
|
134
152
|
|
|
135
|
-
def write_favicon_svg(path: Path) -> None:
|
|
153
|
+
def write_favicon_svg(path: Path, *, light: bool = False) -> None:
|
|
154
|
+
start = ACCENT if light else ACCENT_DARK
|
|
155
|
+
end = ACCENT_ALT if light else ACCENT_ALT_DARK
|
|
156
|
+
symbol = "#fff9ed" if light else "#ffffff"
|
|
157
|
+
stroke = "#000000" if light else "#ffffff"
|
|
158
|
+
stroke_opacity = "0.24" if light else "0.16"
|
|
136
159
|
svg = f"""<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
137
160
|
<defs>
|
|
138
161
|
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
139
|
-
<stop offset="0%" stop-color="#{
|
|
140
|
-
<stop offset="100%" stop-color="#{
|
|
162
|
+
<stop offset="0%" stop-color="#{start[0]:02x}{start[1]:02x}{start[2]:02x}"/>
|
|
163
|
+
<stop offset="100%" stop-color="#{end[0]:02x}{end[1]:02x}{end[2]:02x}"/>
|
|
141
164
|
</linearGradient>
|
|
142
165
|
</defs>
|
|
143
|
-
<rect x="2.5" y="2.5" width="27" height="27" rx="9" ry="9" fill="url(#bg)" stroke="
|
|
144
|
-
<
|
|
145
|
-
<
|
|
146
|
-
<
|
|
166
|
+
<rect x="2.5" y="2.5" width="27" height="27" rx="9" ry="9" fill="url(#bg)" stroke="{stroke}" stroke-opacity="{stroke_opacity}" stroke-width="1"/>
|
|
167
|
+
<rect x="3" y="3" width="26" height="26" rx="8.5" ry="8.5" fill="none" stroke="#ffffff" stroke-opacity="0.18" stroke-width="1"/>
|
|
168
|
+
<path d="M16 5.7 26.8 12.1 16 16.5 5.2 12.1Z" fill="{symbol}"/>
|
|
169
|
+
<path d="M16 14.2 26.5 19.3 16 22.4 5.5 19.3Z" fill="{symbol}"/>
|
|
170
|
+
<path d="M16 20 25.4 24.6 16 27 6.6 24.6Z" fill="{symbol}"/>
|
|
147
171
|
</svg>
|
|
148
172
|
"""
|
|
149
173
|
write_text(path, svg)
|
|
@@ -156,6 +180,7 @@ def save_png(image: Image.Image, path: Path, size: int) -> None:
|
|
|
156
180
|
def main() -> None:
|
|
157
181
|
ensure_dirs()
|
|
158
182
|
master = make_app_icon(1024)
|
|
183
|
+
light_master = make_app_icon(1024, light=True)
|
|
159
184
|
|
|
160
185
|
save_png(master, BRANDING_DIR / "app_icon_1024.png", 1024)
|
|
161
186
|
save_png(master, BRANDING_DIR / "app_icon_512.png", 512)
|
|
@@ -164,9 +189,18 @@ def main() -> None:
|
|
|
164
189
|
save_png(master, BRANDING_DIR / "app_icon_128.png", 128)
|
|
165
190
|
save_png(master, BRANDING_DIR / "app_icon_64.png", 64)
|
|
166
191
|
save_png(master, BRANDING_DIR / "app_icon_32.png", 32)
|
|
192
|
+
save_png(light_master, BRANDING_DIR / "app_icon_light_1024.png", 1024)
|
|
193
|
+
save_png(light_master, BRANDING_DIR / "app_icon_light_512.png", 512)
|
|
194
|
+
save_png(light_master, BRANDING_DIR / "app_icon_light_256.png", 256)
|
|
195
|
+
save_png(light_master, BRANDING_DIR / "app_icon_light_192.png", 192)
|
|
196
|
+
save_png(light_master, BRANDING_DIR / "app_icon_light_128.png", 128)
|
|
197
|
+
save_png(light_master, BRANDING_DIR / "app_icon_light_64.png", 64)
|
|
198
|
+
save_png(light_master, BRANDING_DIR / "app_icon_light_32.png", 32)
|
|
167
199
|
|
|
168
200
|
tray = make_tray_template(64)
|
|
169
201
|
save_png(tray, BRANDING_DIR / "tray_icon_template.png", 64)
|
|
202
|
+
light_tray = make_tray_template(64, WHITE)
|
|
203
|
+
save_png(light_tray, BRANDING_DIR / "tray_icon_light_template.png", 64)
|
|
170
204
|
|
|
171
205
|
icon_sizes = {
|
|
172
206
|
16: "app_icon_16.png",
|
|
@@ -196,13 +230,24 @@ def main() -> None:
|
|
|
196
230
|
for size, filename in web_icon_sizes.items():
|
|
197
231
|
copy_png(master, WEB_ICONS_DIR / filename, size)
|
|
198
232
|
copy_png(master, WEB_ICONS_DIR / filename.replace("Icon-", "Icon-maskable-"), size)
|
|
233
|
+
copy_png(light_master, WEB_ICONS_DIR / filename.replace(".png", "-light.png"), size)
|
|
234
|
+
copy_png(light_master, WEB_ICONS_DIR / filename.replace("Icon-", "Icon-maskable-").replace(".png", "-light.png"), size)
|
|
199
235
|
copy_png(master, SERVER_PUBLIC_ICONS_DIR / filename, size)
|
|
200
236
|
copy_png(master, SERVER_PUBLIC_ICONS_DIR / filename.replace("Icon-", "Icon-maskable-"), size)
|
|
201
237
|
|
|
202
238
|
copy_png(master, WEB_DIR / "favicon.png", 32)
|
|
203
239
|
copy_png(master, SERVER_PUBLIC_DIR / "favicon.png", 32)
|
|
204
240
|
write_favicon_svg(WEB_DIR / "favicon.svg")
|
|
241
|
+
write_favicon_svg(WEB_DIR / "favicon_light.svg", light=True)
|
|
205
242
|
write_favicon_svg(SERVER_PUBLIC_DIR / "favicon.svg")
|
|
243
|
+
write_favicon_svg(SERVER_PUBLIC_DIR / "favicon_light.svg", light=True)
|
|
244
|
+
write_favicon_svg(LANDING_LOGO_PATH, light=True)
|
|
245
|
+
write_favicon_svg(EXTENSION_LOGO_PATH)
|
|
246
|
+
copy_png(master, STATIC_IMG_DIR / "app_icon.png", 512)
|
|
247
|
+
copy_png(light_master, STATIC_IMG_DIR / "app_icon_light.png", 512)
|
|
248
|
+
copy_png(master, SERVER_PUBLIC_DIR / "assets" / "assets" / "branding" / "app_icon_256.png", 256)
|
|
249
|
+
copy_png(tray, SERVER_PUBLIC_DIR / "assets" / "assets" / "branding" / "tray_icon_template.png", 64)
|
|
250
|
+
copy_png(master, SERVER_PUBLIC_DIR / "assets" / "web" / "icons" / "Icon-192.png", 192)
|
|
206
251
|
|
|
207
252
|
android_icon_sizes = {
|
|
208
253
|
"mipmap-mdpi": 48,
|
|
Binary file
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
2
|
-
<
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="#95764a"/>
|
|
5
|
+
<stop offset="100%" stop-color="#3a8679"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect x="2.5" y="2.5" width="27" height="27" rx="9" ry="9" fill="url(#bg)" stroke="#ffffff" stroke-opacity="0.16" stroke-width="1"/>
|
|
9
|
+
<rect x="3" y="3" width="26" height="26" rx="8.5" ry="8.5" fill="none" stroke="#ffffff" stroke-opacity="0.18" stroke-width="1"/>
|
|
10
|
+
<path d="M16 5.7 26.8 12.1 16 16.5 5.2 12.1Z" fill="#ffffff"/>
|
|
11
|
+
<path d="M16 14.2 26.5 19.3 16 22.4 5.5 19.3Z" fill="#ffffff"/>
|
|
12
|
+
<path d="M16 20 25.4 24.6 16 27 6.6 24.6Z" fill="#ffffff"/>
|
|
3
13
|
</svg>
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
2
|
-
<
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="#765932"/>
|
|
5
|
+
<stop offset="100%" stop-color="#28695c"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect x="2.5" y="2.5" width="27" height="27" rx="9" ry="9" fill="url(#bg)" stroke="#000000" stroke-opacity="0.24" stroke-width="1"/>
|
|
9
|
+
<rect x="3" y="3" width="26" height="26" rx="8.5" ry="8.5" fill="none" stroke="#ffffff" stroke-opacity="0.18" stroke-width="1"/>
|
|
10
|
+
<path d="M16 5.7 26.8 12.1 16 16.5 5.2 12.1Z" fill="#fff9ed"/>
|
|
11
|
+
<path d="M16 14.2 26.5 19.3 16 22.4 5.5 19.3Z" fill="#fff9ed"/>
|
|
12
|
+
<path d="M16 20 25.4 24.6 16 27 6.6 24.6Z" fill="#fff9ed"/>
|
|
3
13
|
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neoagent",
|
|
3
|
-
"version": "2.4.1-beta.
|
|
3
|
+
"version": "2.4.1-beta.22",
|
|
4
4
|
"description": "Proactive personal AI agent with no limits",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"main": "server/index.js",
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"flutter:build:web": "cd flutter_app && flutter build web --output ../server/public --dart-define=NEOAGENT_BACKEND_URL=${NEOAGENT_BACKEND_URL:-} --dart-define=NEOAGENT_WEB_BUILD_ID=$(node ../scripts/web_build_id.js)",
|
|
40
40
|
"manage": "node bin/neoagent.js",
|
|
41
41
|
"test": "npm run test:backend",
|
|
42
|
-
"test:unit": "node --test --test-reporter=spec
|
|
43
|
-
"test:integration": "node --test --test-reporter=spec
|
|
44
|
-
"test:security": "node --test --test-reporter=spec
|
|
45
|
-
"test:contract": "node --test --test-reporter=spec
|
|
46
|
-
"test:e2e": "node --test --test-reporter=spec
|
|
47
|
-
"test:ws": "node --test --test-reporter=spec
|
|
42
|
+
"test:unit": "node --test --test-reporter=spec test/backend/unit/*.test.js",
|
|
43
|
+
"test:integration": "node --test --test-reporter=spec test/integration/*.test.js",
|
|
44
|
+
"test:security": "node --test --test-reporter=spec test/security/*.test.js",
|
|
45
|
+
"test:contract": "node --test --test-reporter=spec test/contract/*.test.js",
|
|
46
|
+
"test:e2e": "node --test --test-reporter=spec test/e2e/*.test.js",
|
|
47
|
+
"test:ws": "node --test --test-reporter=spec test/websocket/*.test.js",
|
|
48
48
|
"test:backend": "npm run test:unit && npm run test:integration && npm run test:security && npm run test:contract && npm run test:e2e && npm run test:ws",
|
|
49
49
|
"test:load": "node test/load/auth_load.js",
|
|
50
50
|
"flutter:test": "cd flutter_app && flutter test ../test/flutter/unit ../test/flutter/widget",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
fba7f11f026fd312d6f63282ecee7a80
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
2
|
-
<
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="#95764a"/>
|
|
5
|
+
<stop offset="100%" stop-color="#3a8679"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect x="2.5" y="2.5" width="27" height="27" rx="9" ry="9" fill="url(#bg)" stroke="#ffffff" stroke-opacity="0.16" stroke-width="1"/>
|
|
9
|
+
<rect x="3" y="3" width="26" height="26" rx="8.5" ry="8.5" fill="none" stroke="#ffffff" stroke-opacity="0.18" stroke-width="1"/>
|
|
10
|
+
<path d="M16 5.7 26.8 12.1 16 16.5 5.2 12.1Z" fill="#ffffff"/>
|
|
11
|
+
<path d="M16 14.2 26.5 19.3 16 22.4 5.5 19.3Z" fill="#ffffff"/>
|
|
12
|
+
<path d="M16 20 25.4 24.6 16 27 6.6 24.6Z" fill="#ffffff"/>
|
|
3
13
|
</svg>
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
2
|
-
<
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="#765932"/>
|
|
5
|
+
<stop offset="100%" stop-color="#28695c"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect x="2.5" y="2.5" width="27" height="27" rx="9" ry="9" fill="url(#bg)" stroke="#000000" stroke-opacity="0.24" stroke-width="1"/>
|
|
9
|
+
<rect x="3" y="3" width="26" height="26" rx="8.5" ry="8.5" fill="none" stroke="#ffffff" stroke-opacity="0.18" stroke-width="1"/>
|
|
10
|
+
<path d="M16 5.7 26.8 12.1 16 16.5 5.2 12.1Z" fill="#fff9ed"/>
|
|
11
|
+
<path d="M16 14.2 26.5 19.3 16 22.4 5.5 19.3Z" fill="#fff9ed"/>
|
|
12
|
+
<path d="M16 20 25.4 24.6 16 27 6.6 24.6Z" fill="#fff9ed"/>
|
|
3
13
|
</svg>
|
|
@@ -37,6 +37,6 @@ _flutter.buildConfig = {"engineRevision":"4c525dac5ebe5971c5708ef73558ed8edcf4a3
|
|
|
37
37
|
|
|
38
38
|
_flutter.loader.load({
|
|
39
39
|
serviceWorkerSettings: {
|
|
40
|
-
serviceWorkerVersion: "
|
|
40
|
+
serviceWorkerVersion: "1418440308" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
|
|
41
41
|
}
|
|
42
42
|
});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -132757,7 +132757,7 @@ r===$&&A.b()
|
|
|
132757
132757
|
o.push(A.jJ(p,A.j7(!1,new A.a3(B.uk,A.e1(new A.cJ(B.ho,new A.a7e(r,p),p),p,p),p),!1,B.H,!0),p,p,0,0,0,p))}r=!1
|
|
132758
132758
|
if(!s.ay)if(!s.ch){r=s.e
|
|
132759
132759
|
r===$&&A.b()
|
|
132760
|
-
r=B.b.t("
|
|
132760
|
+
r=B.b.t("mpmi455n-190ed57").length!==0&&r.b}if(r){r=s.d
|
|
132761
132761
|
r===$&&A.b()
|
|
132762
132762
|
r=r.ad&&!r.Z?84:0
|
|
132763
132763
|
q=s.e
|
|
@@ -138212,7 +138212,7 @@ $S:0}
|
|
|
138212
138212
|
A.ZH.prototype={}
|
|
138213
138213
|
A.Sw.prototype={
|
|
138214
138214
|
nc(a){var s=this
|
|
138215
|
-
if(B.b.t("
|
|
138215
|
+
if(B.b.t("mpmi455n-190ed57").length===0||s.a!=null)return
|
|
138216
138216
|
s.AH()
|
|
138217
138217
|
s.a=A.qf(B.R3,new A.b9B(s))},
|
|
138218
138218
|
AH(){var s=0,r=A.l(t.H),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f
|
|
@@ -138230,7 +138230,7 @@ if(!t.f.b(k)){s=1
|
|
|
138230
138230
|
break}i=J.U(k,"buildId")
|
|
138231
138231
|
h=i==null?null:B.b.t(J.p(i))
|
|
138232
138232
|
j=h==null?"":h
|
|
138233
|
-
if(J.bj(j)===0||J.d(j,"
|
|
138233
|
+
if(J.bj(j)===0||J.d(j,"mpmi455n-190ed57")){s=1
|
|
138234
138234
|
break}n.b=!0
|
|
138235
138235
|
n.F()
|
|
138236
138236
|
p=2
|
|
@@ -138247,7 +138247,7 @@ case 2:return A.i(o.at(-1),r)}})
|
|
|
138247
138247
|
return A.k($async$AH,r)},
|
|
138248
138248
|
vs(){var s=0,r=A.l(t.H),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1
|
|
138249
138249
|
var $async$vs=A.h(function(a2,a3){if(a2===1){o.push(a3)
|
|
138250
|
-
s=p}for(;;)switch(s){case 0:if(B.b.t("
|
|
138250
|
+
s=p}for(;;)switch(s){case 0:if(B.b.t("mpmi455n-190ed57").length===0||n.c){s=1
|
|
138251
138251
|
break}n.c=!0
|
|
138252
138252
|
n.F()
|
|
138253
138253
|
p=4
|