@mseep/anything-analyzer 3.6.50

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.
Files changed (172) hide show
  1. package/.codeartsdoer/.codebaseignore +0 -0
  2. package/.codeartsdoer/AGENTS.md +12 -0
  3. package/.github/workflows/build.yml +146 -0
  4. package/README.en.md +264 -0
  5. package/README.md +276 -0
  6. package/RELEASE_NOTES.md +16 -0
  7. package/USAGE.md +490 -0
  8. package/color-preview-r3.html +414 -0
  9. package/color-preview.html +414 -0
  10. package/dev-app-update.yml +3 -0
  11. package/electron-builder.yml +36 -0
  12. package/electron.vite.config.ts +40 -0
  13. package/package.json +53 -0
  14. package/report-2026-04-13-copilot-claude-sonnet-4.6.md +955 -0
  15. package/resources/doloffer-logo.png +0 -0
  16. package/resources/entitlements.mac.plist +12 -0
  17. package/resources/icon.ico +0 -0
  18. package/resources/icon.png +0 -0
  19. package/src/main/ai/ai-analyzer.ts +517 -0
  20. package/src/main/ai/crypto-script-extractor.ts +206 -0
  21. package/src/main/ai/data-assembler.ts +205 -0
  22. package/src/main/ai/llm-router.ts +1120 -0
  23. package/src/main/ai/prompt-builder.ts +349 -0
  24. package/src/main/ai/scene-detector.ts +302 -0
  25. package/src/main/capture/capture-engine.ts +130 -0
  26. package/src/main/capture/interaction-recorder.ts +171 -0
  27. package/src/main/capture/js-injector.ts +57 -0
  28. package/src/main/capture/replay-engine.ts +256 -0
  29. package/src/main/capture/storage-collector.ts +76 -0
  30. package/src/main/cdp/cdp-manager.ts +233 -0
  31. package/src/main/db/database.ts +41 -0
  32. package/src/main/db/migrations.ts +235 -0
  33. package/src/main/db/repositories.ts +574 -0
  34. package/src/main/fingerprint/http-spoofing.ts +48 -0
  35. package/src/main/fingerprint/presets.ts +173 -0
  36. package/src/main/fingerprint/profile-generator.ts +115 -0
  37. package/src/main/fingerprint/profile-store.ts +52 -0
  38. package/src/main/index.ts +260 -0
  39. package/src/main/ipc.ts +856 -0
  40. package/src/main/logger.ts +42 -0
  41. package/src/main/mcp/mcp-config.ts +66 -0
  42. package/src/main/mcp/mcp-manager.ts +155 -0
  43. package/src/main/mcp/mcp-server.ts +1038 -0
  44. package/src/main/prompt-templates.ts +170 -0
  45. package/src/main/proxy/ca-manager.ts +204 -0
  46. package/src/main/proxy/cert-download-page.ts +171 -0
  47. package/src/main/proxy/cert-installer.ts +242 -0
  48. package/src/main/proxy/mitm-proxy-config.ts +37 -0
  49. package/src/main/proxy/mitm-proxy-server.ts +1085 -0
  50. package/src/main/proxy/system-proxy.ts +248 -0
  51. package/src/main/session/session-manager.ts +724 -0
  52. package/src/main/tab-manager.ts +582 -0
  53. package/src/main/updater.ts +111 -0
  54. package/src/main/window.ts +235 -0
  55. package/src/preload/hook-script.ts +270 -0
  56. package/src/preload/index.ts +211 -0
  57. package/src/preload/interaction-hook.ts +286 -0
  58. package/src/preload/stealth-script.ts +302 -0
  59. package/src/preload/target-preload.ts +15 -0
  60. package/src/renderer/App.tsx +656 -0
  61. package/src/renderer/components/AiLogDetail.tsx +173 -0
  62. package/src/renderer/components/AiLogList.tsx +101 -0
  63. package/src/renderer/components/AiLogView.module.css +364 -0
  64. package/src/renderer/components/AiLogView.tsx +86 -0
  65. package/src/renderer/components/AnalyzeBar.module.css +79 -0
  66. package/src/renderer/components/AnalyzeBar.tsx +104 -0
  67. package/src/renderer/components/BrowserPanel.module.css +67 -0
  68. package/src/renderer/components/BrowserPanel.tsx +90 -0
  69. package/src/renderer/components/ControlBar.module.css +47 -0
  70. package/src/renderer/components/ControlBar.tsx +205 -0
  71. package/src/renderer/components/HookLog.tsx +132 -0
  72. package/src/renderer/components/InteractionLog.tsx +183 -0
  73. package/src/renderer/components/MCPServerModal.tsx +427 -0
  74. package/src/renderer/components/PromptTemplateModal.tsx +254 -0
  75. package/src/renderer/components/ReportView.module.css +413 -0
  76. package/src/renderer/components/ReportView.tsx +429 -0
  77. package/src/renderer/components/RequestDetail.module.css +191 -0
  78. package/src/renderer/components/RequestDetail.tsx +202 -0
  79. package/src/renderer/components/RequestLog.module.css +69 -0
  80. package/src/renderer/components/RequestLog.tsx +208 -0
  81. package/src/renderer/components/SessionList.module.css +245 -0
  82. package/src/renderer/components/SessionList.tsx +247 -0
  83. package/src/renderer/components/SettingsModal.tsx +100 -0
  84. package/src/renderer/components/StatusBar.module.css +44 -0
  85. package/src/renderer/components/StatusBar.tsx +102 -0
  86. package/src/renderer/components/StorageView.module.css +41 -0
  87. package/src/renderer/components/StorageView.tsx +178 -0
  88. package/src/renderer/components/TabBar.module.css +88 -0
  89. package/src/renderer/components/TabBar.tsx +70 -0
  90. package/src/renderer/components/Titlebar.module.css +254 -0
  91. package/src/renderer/components/Titlebar.tsx +169 -0
  92. package/src/renderer/components/settings/FingerprintSection.tsx +198 -0
  93. package/src/renderer/components/settings/GeneralSection.tsx +164 -0
  94. package/src/renderer/components/settings/LLMSection.tsx +148 -0
  95. package/src/renderer/components/settings/MCPServerSection.tsx +136 -0
  96. package/src/renderer/components/settings/MitmProxySection.tsx +320 -0
  97. package/src/renderer/components/settings/ProxySection.tsx +110 -0
  98. package/src/renderer/css-modules.d.ts +4 -0
  99. package/src/renderer/hooks/useCapture.ts +383 -0
  100. package/src/renderer/hooks/useConfirm.tsx +91 -0
  101. package/src/renderer/hooks/useSession.ts +136 -0
  102. package/src/renderer/hooks/useTabs.ts +103 -0
  103. package/src/renderer/i18n/en.ts +167 -0
  104. package/src/renderer/i18n/index.ts +47 -0
  105. package/src/renderer/i18n/zh.ts +170 -0
  106. package/src/renderer/index.html +12 -0
  107. package/src/renderer/main.tsx +15 -0
  108. package/src/renderer/styles/global.css +144 -0
  109. package/src/renderer/styles/themes/ayu-dark.css +59 -0
  110. package/src/renderer/styles/themes/catppuccin.css +59 -0
  111. package/src/renderer/styles/themes/discord.css +59 -0
  112. package/src/renderer/styles/themes/dracula.css +59 -0
  113. package/src/renderer/styles/themes/github-dark.css +59 -0
  114. package/src/renderer/styles/themes/gruvbox.css +59 -0
  115. package/src/renderer/styles/themes/index.css +11 -0
  116. package/src/renderer/styles/themes/light.css +59 -0
  117. package/src/renderer/styles/themes/nord.css +59 -0
  118. package/src/renderer/styles/themes/one-dark.css +59 -0
  119. package/src/renderer/styles/themes/tokyo-night.css +59 -0
  120. package/src/renderer/styles/tokens.css +137 -0
  121. package/src/renderer/theme.ts +31 -0
  122. package/src/renderer/ui/Badge.module.css +38 -0
  123. package/src/renderer/ui/Badge.tsx +36 -0
  124. package/src/renderer/ui/Button.module.css +142 -0
  125. package/src/renderer/ui/Button.tsx +46 -0
  126. package/src/renderer/ui/Collapse.module.css +49 -0
  127. package/src/renderer/ui/Collapse.tsx +57 -0
  128. package/src/renderer/ui/CopyableBlock.module.css +56 -0
  129. package/src/renderer/ui/CopyableBlock.tsx +42 -0
  130. package/src/renderer/ui/Empty.module.css +19 -0
  131. package/src/renderer/ui/Empty.tsx +34 -0
  132. package/src/renderer/ui/Icons.tsx +346 -0
  133. package/src/renderer/ui/Input.module.css +103 -0
  134. package/src/renderer/ui/Input.tsx +94 -0
  135. package/src/renderer/ui/InputNumber.module.css +68 -0
  136. package/src/renderer/ui/InputNumber.tsx +104 -0
  137. package/src/renderer/ui/Modal.module.css +83 -0
  138. package/src/renderer/ui/Modal.tsx +67 -0
  139. package/src/renderer/ui/Popconfirm.module.css +73 -0
  140. package/src/renderer/ui/Popconfirm.tsx +74 -0
  141. package/src/renderer/ui/Progress.module.css +35 -0
  142. package/src/renderer/ui/Progress.tsx +30 -0
  143. package/src/renderer/ui/Select.module.css +91 -0
  144. package/src/renderer/ui/Select.tsx +100 -0
  145. package/src/renderer/ui/Spinner.module.css +44 -0
  146. package/src/renderer/ui/Spinner.tsx +27 -0
  147. package/src/renderer/ui/Switch.module.css +39 -0
  148. package/src/renderer/ui/Switch.tsx +43 -0
  149. package/src/renderer/ui/Tabs.module.css +76 -0
  150. package/src/renderer/ui/Tabs.tsx +53 -0
  151. package/src/renderer/ui/Tag.module.css +66 -0
  152. package/src/renderer/ui/Tag.tsx +47 -0
  153. package/src/renderer/ui/Timeline.module.css +42 -0
  154. package/src/renderer/ui/Timeline.tsx +29 -0
  155. package/src/renderer/ui/Toast.module.css +99 -0
  156. package/src/renderer/ui/Toast.tsx +90 -0
  157. package/src/renderer/ui/Tooltip.module.css +26 -0
  158. package/src/renderer/ui/Tooltip.tsx +23 -0
  159. package/src/renderer/ui/VirtualTable.module.css +230 -0
  160. package/src/renderer/ui/VirtualTable.tsx +416 -0
  161. package/src/renderer/ui/index.ts +55 -0
  162. package/src/shared/types.ts +695 -0
  163. package/tests/main/ai/crypto-script-extractor.test.ts +281 -0
  164. package/tests/main/ai/llm-router.test.ts +1537 -0
  165. package/tests/main/ai/prompt-builder.test.ts +178 -0
  166. package/tests/main/ai/scene-detector.test.ts +212 -0
  167. package/tests/main/db/migrations.test.ts +134 -0
  168. package/tests/main/release-workflow.test.ts +59 -0
  169. package/tsconfig.json +7 -0
  170. package/tsconfig.node.json +23 -0
  171. package/tsconfig.web.json +24 -0
  172. package/vitest.config.ts +13 -0
@@ -0,0 +1,414 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>配色方案预览 Round 3 — Anything Analyzer</title>
6
+ <style>
7
+ * { margin: 0; padding: 0; box-sizing: border-box; }
8
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; background: #111; color: #fff; padding: 40px; }
9
+ h1 { text-align: center; margin-bottom: 10px; font-size: 28px; }
10
+ .subtitle { text-align: center; color: #888; margin-bottom: 40px; font-size: 14px; }
11
+ .schemes { display: flex; flex-direction: column; gap: 48px; max-width: 1100px; margin: 0 auto; }
12
+ .scheme { border-radius: 16px; overflow: hidden; box-shadow: 0 8px 32px rgba(0,0,0,0.5); }
13
+ .scheme-label { padding: 14px 24px; font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 12px; }
14
+ .scheme-label .tag { font-size: 11px; padding: 3px 10px; border-radius: 20px; font-weight: 500; }
15
+
16
+ .mock { display: flex; height: 420px; }
17
+ .mock-sidebar { width: 220px; display: flex; flex-direction: column; flex-shrink: 0; }
18
+ .mock-main { flex: 1; display: flex; flex-direction: column; }
19
+ .mock-titlebar { height: 44px; display: flex; align-items: center; padding: 0 16px; gap: 16px; font-size: 13px; border-bottom-width: 1px; border-bottom-style: solid; }
20
+ .mock-titlebar .logo { font-weight: 700; letter-spacing: 1px; }
21
+ .mock-titlebar .tabs { display: flex; gap: 4px; }
22
+ .mock-titlebar .tab { padding: 5px 12px; border-radius: 6px; font-size: 12px; cursor: default; }
23
+ .mock-sidebar-header { padding: 14px 16px 8px; font-size: 10px; text-transform: uppercase; letter-spacing: 2px; font-weight: 600; }
24
+ .mock-session { padding: 10px 16px; margin: 2px 10px; border-radius: 8px; cursor: default; }
25
+ .mock-session .name { font-size: 13px; font-weight: 600; }
26
+ .mock-session .meta { font-size: 11px; margin-top: 3px; display: flex; align-items: center; gap: 6px; }
27
+ .mock-session .dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
28
+ .mock-sidebar-spacer { flex: 1; }
29
+ .mock-new-btn { margin: 10px 14px; padding: 8px; border-radius: 8px; text-align: center; font-size: 13px; font-weight: 600; cursor: default; border-width: 1px; border-style: solid; }
30
+ .mock-footer { padding: 8px 16px; font-size: 11px; display: flex; justify-content: space-between; border-top-width: 1px; border-top-style: solid; }
31
+ .mock-browser { padding: 10px 16px; display: flex; align-items: center; gap: 8px; border-bottom-width: 1px; border-bottom-style: solid; }
32
+ .mock-browser .nav { display: flex; gap: 4px; }
33
+ .mock-browser .nav span { width: 28px; height: 28px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 14px; }
34
+ .mock-browser .url { flex: 1; padding: 6px 12px; border-radius: 6px; font-size: 12px; border-width: 1px; border-style: solid; }
35
+ .mock-browser .pill { padding: 4px 14px; border-radius: 6px; font-size: 11px; font-weight: 600; }
36
+ .mock-content { flex: 1; display: flex; align-items: center; justify-content: center; font-size: 13px; }
37
+ .mock-statusbar { height: 26px; display: flex; align-items: center; padding: 0 16px; font-size: 11px; gap: 16px; border-top-width: 1px; border-top-style: solid; }
38
+
39
+ /* ========== I. Nord 极光蓝 ========== */
40
+ .schemeI .scheme-label { background: #2e3440; color: #eceff4; }
41
+ .schemeI .tag { background: rgba(136,192,208,0.15); color: #88c0d0; }
42
+
43
+ .schemeI .mock-sidebar {
44
+ background: #2e3440;
45
+ border-right: 1px solid #3b4252;
46
+ }
47
+ .schemeI .mock-sidebar-header { color: #616e88; }
48
+ .schemeI .mock-session { color: #d8dee9; }
49
+ .schemeI .mock-session.active {
50
+ background: #3b4252;
51
+ border-left: 3px solid #88c0d0;
52
+ color: #eceff4;
53
+ }
54
+ .schemeI .mock-session .meta { color: #616e88; }
55
+ .schemeI .mock-session .dot { background: #a3be8c; box-shadow: 0 0 6px rgba(163,190,140,0.3); }
56
+ .schemeI .mock-session .dot.stopped { background: #4c566a; box-shadow: none; }
57
+ .schemeI .mock-new-btn {
58
+ background: rgba(136,192,208,0.08);
59
+ border-color: #434c5e;
60
+ color: #88c0d0;
61
+ }
62
+ .schemeI .mock-footer {
63
+ background: #272c36;
64
+ border-top-color: #3b4252;
65
+ color: #616e88;
66
+ }
67
+
68
+ .schemeI .mock-titlebar {
69
+ background: #3b4252;
70
+ border-bottom-color: #434c5e;
71
+ color: #81a1c1;
72
+ }
73
+ .schemeI .mock-titlebar .logo { color: #eceff4; }
74
+ .schemeI .mock-titlebar .tab { color: #616e88; }
75
+ .schemeI .mock-titlebar .tab.active { background: #434c5e; color: #eceff4; }
76
+
77
+ .schemeI .mock-browser {
78
+ background: #3b4252;
79
+ border-bottom-color: #434c5e;
80
+ }
81
+ .schemeI .mock-browser .nav span { background: #434c5e; color: #81a1c1; }
82
+ .schemeI .mock-browser .url { background: #2e3440; border-color: #434c5e; color: #d8dee9; }
83
+ .schemeI .mock-browser .pill { background: #a3be8c; color: #2e3440; }
84
+
85
+ .schemeI .mock-content { background: #2e3440; color: #4c566a; }
86
+ .schemeI .mock-statusbar { background: #272c36; border-top-color: #3b4252; color: #616e88; }
87
+
88
+ /* ========== J. Tokyo Night 东京霓虹 ========== */
89
+ .schemeJ .scheme-label { background: #1a1b26; color: #c0caf5; }
90
+ .schemeJ .tag { background: rgba(122,162,247,0.15); color: #7aa2f7; }
91
+
92
+ .schemeJ .mock-sidebar {
93
+ background: #1a1b26;
94
+ border-right: 1px solid #292e42;
95
+ }
96
+ .schemeJ .mock-sidebar-header { color: #565f89; }
97
+ .schemeJ .mock-session { color: #a9b1d6; }
98
+ .schemeJ .mock-session.active {
99
+ background: #292e42;
100
+ border-left: 3px solid #7aa2f7;
101
+ color: #c0caf5;
102
+ }
103
+ .schemeJ .mock-session .meta { color: #565f89; }
104
+ .schemeJ .mock-session .dot { background: #9ece6a; box-shadow: 0 0 6px rgba(158,206,106,0.3); }
105
+ .schemeJ .mock-session .dot.stopped { background: #3b4261; box-shadow: none; }
106
+ .schemeJ .mock-new-btn {
107
+ background: rgba(122,162,247,0.08);
108
+ border-color: #33394e;
109
+ color: #7aa2f7;
110
+ }
111
+ .schemeJ .mock-footer {
112
+ background: #16161e;
113
+ border-top-color: #292e42;
114
+ color: #565f89;
115
+ }
116
+
117
+ .schemeJ .mock-titlebar {
118
+ background: #1f2335;
119
+ border-bottom-color: #292e42;
120
+ color: #565f89;
121
+ }
122
+ .schemeJ .mock-titlebar .logo { color: #c0caf5; }
123
+ .schemeJ .mock-titlebar .tab { color: #565f89; }
124
+ .schemeJ .mock-titlebar .tab.active { background: #292e42; color: #c0caf5; }
125
+
126
+ .schemeJ .mock-browser {
127
+ background: #1f2335;
128
+ border-bottom-color: #292e42;
129
+ }
130
+ .schemeJ .mock-browser .nav span { background: #292e42; color: #7aa2f7; }
131
+ .schemeJ .mock-browser .url { background: #1a1b26; border-color: #292e42; color: #a9b1d6; }
132
+ .schemeJ .mock-browser .pill { background: #9ece6a; color: #1a1b26; }
133
+
134
+ .schemeJ .mock-content { background: #1a1b26; color: #3b4261; }
135
+ .schemeJ .mock-statusbar { background: #16161e; border-top-color: #292e42; color: #565f89; }
136
+
137
+ /* ========== K. Gruvbox 复古暖调 ========== */
138
+ .schemeK .scheme-label { background: #282828; color: #ebdbb2; }
139
+ .schemeK .tag { background: rgba(215,153,33,0.15); color: #d79921; }
140
+
141
+ .schemeK .mock-sidebar {
142
+ background: #282828;
143
+ border-right: 1px solid #3c3836;
144
+ }
145
+ .schemeK .mock-sidebar-header { color: #7c6f64; }
146
+ .schemeK .mock-session { color: #d5c4a1; }
147
+ .schemeK .mock-session.active {
148
+ background: #3c3836;
149
+ border-left: 3px solid #fe8019;
150
+ color: #fbf1c7;
151
+ }
152
+ .schemeK .mock-session .meta { color: #928374; }
153
+ .schemeK .mock-session .dot { background: #b8bb26; box-shadow: 0 0 6px rgba(184,187,38,0.3); }
154
+ .schemeK .mock-session .dot.stopped { background: #504945; box-shadow: none; }
155
+ .schemeK .mock-new-btn {
156
+ background: rgba(254,128,25,0.1);
157
+ border-color: #504945;
158
+ color: #fe8019;
159
+ }
160
+ .schemeK .mock-footer {
161
+ background: #1d2021;
162
+ border-top-color: #3c3836;
163
+ color: #7c6f64;
164
+ }
165
+
166
+ .schemeK .mock-titlebar {
167
+ background: #32302f;
168
+ border-bottom-color: #3c3836;
169
+ color: #a89984;
170
+ }
171
+ .schemeK .mock-titlebar .logo { color: #fbf1c7; }
172
+ .schemeK .mock-titlebar .tab { color: #7c6f64; }
173
+ .schemeK .mock-titlebar .tab.active { background: #504945; color: #fbf1c7; }
174
+
175
+ .schemeK .mock-browser {
176
+ background: #32302f;
177
+ border-bottom-color: #3c3836;
178
+ }
179
+ .schemeK .mock-browser .nav span { background: #504945; color: #a89984; }
180
+ .schemeK .mock-browser .url { background: #282828; border-color: #504945; color: #d5c4a1; }
181
+ .schemeK .mock-browser .pill { background: #b8bb26; color: #282828; }
182
+
183
+ .schemeK .mock-content { background: #282828; color: #504945; }
184
+ .schemeK .mock-statusbar { background: #1d2021; border-top-color: #3c3836; color: #7c6f64; }
185
+
186
+ /* ========== L. Ayu Dark 深邃橙 ========== */
187
+ .schemeL .scheme-label { background: #0b0e14; color: #bfbdb6; }
188
+ .schemeL .tag { background: rgba(255,180,84,0.12); color: #ffb454; }
189
+
190
+ .schemeL .mock-sidebar {
191
+ background: #0d1017;
192
+ border-right: 1px solid #1c2030;
193
+ }
194
+ .schemeL .mock-sidebar-header { color: #565b66; }
195
+ .schemeL .mock-session { color: #acb6bf; }
196
+ .schemeL .mock-session.active {
197
+ background: #131721;
198
+ border-left: 3px solid #e6b450;
199
+ color: #bfbdb6;
200
+ }
201
+ .schemeL .mock-session .meta { color: #565b66; }
202
+ .schemeL .mock-session .dot { background: #7fd962; box-shadow: 0 0 6px rgba(127,217,98,0.3); }
203
+ .schemeL .mock-session .dot.stopped { background: #2d3440; box-shadow: none; }
204
+ .schemeL .mock-new-btn {
205
+ background: rgba(230,180,80,0.06);
206
+ border-color: #1c2030;
207
+ color: #e6b450;
208
+ }
209
+ .schemeL .mock-footer {
210
+ background: #0a0d12;
211
+ border-top-color: #1c2030;
212
+ color: #565b66;
213
+ }
214
+
215
+ .schemeL .mock-titlebar {
216
+ background: #0f1219;
217
+ border-bottom-color: #1c2030;
218
+ color: #565b66;
219
+ }
220
+ .schemeL .mock-titlebar .logo { color: #bfbdb6; }
221
+ .schemeL .mock-titlebar .tab { color: #565b66; }
222
+ .schemeL .mock-titlebar .tab.active { background: #1c2030; color: #bfbdb6; }
223
+
224
+ .schemeL .mock-browser {
225
+ background: #0f1219;
226
+ border-bottom-color: #1c2030;
227
+ }
228
+ .schemeL .mock-browser .nav span { background: #1c2030; color: #565b66; }
229
+ .schemeL .mock-browser .url { background: #0b0e14; border-color: #1c2030; color: #acb6bf; }
230
+ .schemeL .mock-browser .pill { background: #7fd962; color: #0b0e14; }
231
+
232
+ .schemeL .mock-content { background: #0b0e14; color: #2d3440; }
233
+ .schemeL .mock-statusbar { background: #0a0d12; border-top-color: #1c2030; color: #565b66; }
234
+
235
+ /* ========== M. One Dark 经典灰蓝 ========== */
236
+ .schemeM .scheme-label { background: #282c34; color: #abb2bf; }
237
+ .schemeM .tag { background: rgba(97,175,239,0.15); color: #61afef; }
238
+
239
+ .schemeM .mock-sidebar {
240
+ background: #21252b;
241
+ border-right: 1px solid #2c313a;
242
+ }
243
+ .schemeM .mock-sidebar-header { color: #5c6370; }
244
+ .schemeM .mock-session { color: #abb2bf; }
245
+ .schemeM .mock-session.active {
246
+ background: #2c313a;
247
+ border-left: 3px solid #61afef;
248
+ color: #d7dae0;
249
+ }
250
+ .schemeM .mock-session .meta { color: #5c6370; }
251
+ .schemeM .mock-session .dot { background: #98c379; box-shadow: 0 0 6px rgba(152,195,121,0.3); }
252
+ .schemeM .mock-session .dot.stopped { background: #3e4451; box-shadow: none; }
253
+ .schemeM .mock-new-btn {
254
+ background: rgba(97,175,239,0.08);
255
+ border-color: #3e4451;
256
+ color: #61afef;
257
+ }
258
+ .schemeM .mock-footer {
259
+ background: #1b1e24;
260
+ border-top-color: #2c313a;
261
+ color: #5c6370;
262
+ }
263
+
264
+ .schemeM .mock-titlebar {
265
+ background: #282c34;
266
+ border-bottom-color: #2c313a;
267
+ color: #636d83;
268
+ }
269
+ .schemeM .mock-titlebar .logo { color: #d7dae0; }
270
+ .schemeM .mock-titlebar .tab { color: #5c6370; }
271
+ .schemeM .mock-titlebar .tab.active { background: #2c313a; color: #d7dae0; }
272
+
273
+ .schemeM .mock-browser {
274
+ background: #282c34;
275
+ border-bottom-color: #2c313a;
276
+ }
277
+ .schemeM .mock-browser .nav span { background: #2c313a; color: #636d83; }
278
+ .schemeM .mock-browser .url { background: #21252b; border-color: #2c313a; color: #abb2bf; }
279
+ .schemeM .mock-browser .pill { background: #98c379; color: #21252b; }
280
+
281
+ .schemeM .mock-content { background: #282c34; color: #3e4451; }
282
+ .schemeM .mock-statusbar { background: #1b1e24; border-top-color: #2c313a; color: #5c6370; }
283
+
284
+ .compare-note { text-align: center; color: #666; font-size: 13px; margin-top: 32px; }
285
+ </style>
286
+ </head>
287
+ <body>
288
+
289
+ <h1>Anything Analyzer 配色方案预览 (Round 3)</h1>
290
+ <p class="subtitle">5 套深色方案 — I/J/K/L/M — 浏览器打开此文件查看</p>
291
+
292
+ <div class="schemes">
293
+
294
+ <!-- I -->
295
+ <div class="scheme schemeI">
296
+ <div class="scheme-label">I. Nord 极光蓝 <span class="tag">冷色 · 北欧极简 · 护眼</span></div>
297
+ <div class="mock">
298
+ <div class="mock-sidebar">
299
+ <div class="mock-sidebar-header">SESSIONS</div>
300
+ <div class="mock-session active"><div class="name">test</div><div class="meta"><span class="dot stopped"></span> 已停止 · 3 reqs</div></div>
301
+ <div class="mock-session"><div class="name">copilot全面监听</div><div class="meta"><span class="dot"></span> 运行中</div></div>
302
+ <div class="mock-session"><div class="name">openai</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
303
+ <div class="mock-session"><div class="name">Cursor</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
304
+ <div class="mock-sidebar-spacer"></div>
305
+ <div class="mock-new-btn">+ 新建会话</div>
306
+ <div class="mock-footer"><span>⚙ 设置</span><span>v3.2.0</span></div>
307
+ </div>
308
+ <div class="mock-main">
309
+ <div class="mock-titlebar"><span class="logo">Anything Analyzer</span><div class="tabs"><span class="tab active">⊕ 浏览器</span><span class="tab">&lt;&gt; 检查器</span><span class="tab">☆ AI 报告</span></div></div>
310
+ <div class="mock-browser"><div class="nav"><span>←</span><span>→</span><span>↻</span></div><div class="url">https://stats.customs.gov.cn/</div><span class="pill">● 开始</span></div>
311
+ <div class="mock-content">浏览器内容区域</div>
312
+ <div class="mock-statusbar"><span>● 会话 已停止</span><span>请求 3</span><span>Hooks 0</span></div>
313
+ </div>
314
+ </div>
315
+ </div>
316
+
317
+ <!-- J -->
318
+ <div class="scheme schemeJ">
319
+ <div class="scheme-label">J. Tokyo Night 东京霓虹 <span class="tag">冷蓝紫 · 现代 · 潮流</span></div>
320
+ <div class="mock">
321
+ <div class="mock-sidebar">
322
+ <div class="mock-sidebar-header">SESSIONS</div>
323
+ <div class="mock-session active"><div class="name">test</div><div class="meta"><span class="dot stopped"></span> 已停止 · 3 reqs</div></div>
324
+ <div class="mock-session"><div class="name">copilot全面监听</div><div class="meta"><span class="dot"></span> 运行中</div></div>
325
+ <div class="mock-session"><div class="name">openai</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
326
+ <div class="mock-session"><div class="name">Cursor</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
327
+ <div class="mock-sidebar-spacer"></div>
328
+ <div class="mock-new-btn">+ 新建会话</div>
329
+ <div class="mock-footer"><span>⚙ 设置</span><span>v3.2.0</span></div>
330
+ </div>
331
+ <div class="mock-main">
332
+ <div class="mock-titlebar"><span class="logo">Anything Analyzer</span><div class="tabs"><span class="tab active">⊕ 浏览器</span><span class="tab">&lt;&gt; 检查器</span><span class="tab">☆ AI 报告</span></div></div>
333
+ <div class="mock-browser"><div class="nav"><span>←</span><span>→</span><span>↻</span></div><div class="url">https://stats.customs.gov.cn/</div><span class="pill">● 开始</span></div>
334
+ <div class="mock-content">浏览器内容区域</div>
335
+ <div class="mock-statusbar"><span>● 会话 已停止</span><span>请求 3</span><span>Hooks 0</span></div>
336
+ </div>
337
+ </div>
338
+ </div>
339
+
340
+ <!-- K -->
341
+ <div class="scheme schemeK">
342
+ <div class="scheme-label">K. Gruvbox 复古暖调 <span class="tag">暖色 · 复古 · 高辨识</span></div>
343
+ <div class="mock">
344
+ <div class="mock-sidebar">
345
+ <div class="mock-sidebar-header">SESSIONS</div>
346
+ <div class="mock-session active"><div class="name">test</div><div class="meta"><span class="dot stopped"></span> 已停止 · 3 reqs</div></div>
347
+ <div class="mock-session"><div class="name">copilot全面监听</div><div class="meta"><span class="dot"></span> 运行中</div></div>
348
+ <div class="mock-session"><div class="name">openai</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
349
+ <div class="mock-session"><div class="name">Cursor</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
350
+ <div class="mock-sidebar-spacer"></div>
351
+ <div class="mock-new-btn">+ 新建会话</div>
352
+ <div class="mock-footer"><span>⚙ 设置</span><span>v3.2.0</span></div>
353
+ </div>
354
+ <div class="mock-main">
355
+ <div class="mock-titlebar"><span class="logo">Anything Analyzer</span><div class="tabs"><span class="tab active">⊕ 浏览器</span><span class="tab">&lt;&gt; 检查器</span><span class="tab">☆ AI 报告</span></div></div>
356
+ <div class="mock-browser"><div class="nav"><span>←</span><span>→</span><span>↻</span></div><div class="url">https://stats.customs.gov.cn/</div><span class="pill">● 开始</span></div>
357
+ <div class="mock-content">浏览器内容区域</div>
358
+ <div class="mock-statusbar"><span>● 会话 已停止</span><span>请求 3</span><span>Hooks 0</span></div>
359
+ </div>
360
+ </div>
361
+ </div>
362
+
363
+ <!-- L -->
364
+ <div class="scheme schemeL">
365
+ <div class="scheme-label">L. Ayu Dark 深邃橙 <span class="tag">极深底色 · 暖橙点缀 · 沉浸</span></div>
366
+ <div class="mock">
367
+ <div class="mock-sidebar">
368
+ <div class="mock-sidebar-header">SESSIONS</div>
369
+ <div class="mock-session active"><div class="name">test</div><div class="meta"><span class="dot stopped"></span> 已停止 · 3 reqs</div></div>
370
+ <div class="mock-session"><div class="name">copilot全面监听</div><div class="meta"><span class="dot"></span> 运行中</div></div>
371
+ <div class="mock-session"><div class="name">openai</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
372
+ <div class="mock-session"><div class="name">Cursor</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
373
+ <div class="mock-sidebar-spacer"></div>
374
+ <div class="mock-new-btn">+ 新建会话</div>
375
+ <div class="mock-footer"><span>⚙ 设置</span><span>v3.2.0</span></div>
376
+ </div>
377
+ <div class="mock-main">
378
+ <div class="mock-titlebar"><span class="logo">Anything Analyzer</span><div class="tabs"><span class="tab active">⊕ 浏览器</span><span class="tab">&lt;&gt; 检查器</span><span class="tab">☆ AI 报告</span></div></div>
379
+ <div class="mock-browser"><div class="nav"><span>←</span><span>→</span><span>↻</span></div><div class="url">https://stats.customs.gov.cn/</div><span class="pill">● 开始</span></div>
380
+ <div class="mock-content">浏览器内容区域</div>
381
+ <div class="mock-statusbar"><span>● 会话 已停止</span><span>请求 3</span><span>Hooks 0</span></div>
382
+ </div>
383
+ </div>
384
+ </div>
385
+
386
+ <!-- M -->
387
+ <div class="scheme schemeM">
388
+ <div class="scheme-label">M. One Dark 经典灰蓝 <span class="tag">Atom经典 · 中性 · 百搭</span></div>
389
+ <div class="mock">
390
+ <div class="mock-sidebar">
391
+ <div class="mock-sidebar-header">SESSIONS</div>
392
+ <div class="mock-session active"><div class="name">test</div><div class="meta"><span class="dot stopped"></span> 已停止 · 3 reqs</div></div>
393
+ <div class="mock-session"><div class="name">copilot全面监听</div><div class="meta"><span class="dot"></span> 运行中</div></div>
394
+ <div class="mock-session"><div class="name">openai</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
395
+ <div class="mock-session"><div class="name">Cursor</div><div class="meta"><span class="dot stopped"></span> 已停止</div></div>
396
+ <div class="mock-sidebar-spacer"></div>
397
+ <div class="mock-new-btn">+ 新建会话</div>
398
+ <div class="mock-footer"><span>⚙ 设置</span><span>v3.2.0</span></div>
399
+ </div>
400
+ <div class="mock-main">
401
+ <div class="mock-titlebar"><span class="logo">Anything Analyzer</span><div class="tabs"><span class="tab active">⊕ 浏览器</span><span class="tab">&lt;&gt; 检查器</span><span class="tab">☆ AI 报告</span></div></div>
402
+ <div class="mock-browser"><div class="nav"><span>←</span><span>→</span><span>↻</span></div><div class="url">https://stats.customs.gov.cn/</div><span class="pill">● 开始</span></div>
403
+ <div class="mock-content">浏览器内容区域</div>
404
+ <div class="mock-statusbar"><span>● 会话 已停止</span><span>请求 3</span><span>Hooks 0</span></div>
405
+ </div>
406
+ </div>
407
+ </div>
408
+
409
+ </div>
410
+
411
+ <p class="compare-note">Round 3 · 5 套深色方案 · 浏览器打开 color-preview-r3.html 查看</p>
412
+
413
+ </body>
414
+ </html>