dsh-deepseek-web-login 0.2.0
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/CHANGELOG.md +3165 -0
- package/LICENSE +202 -0
- package/NOTICE +12 -0
- package/README.en.md +510 -0
- package/README.md +673 -0
- package/cordis.patch.yml +6 -0
- package/docs/assets/architecture.svg +264 -0
- package/docs/assets/banner-dsh-deepseek-web-login.jpg +0 -0
- package/docs/assets/hero.svg +53 -0
- package/docs/assets/login-flow.svg +307 -0
- package/docs/assets/panel-preview.svg +64 -0
- package/docs/assets/qq-group.jpg +0 -0
- package/docs/assets/screenshot-settings.png +0 -0
- package/docs/assets/screenshot-usage-stats.png +0 -0
- package/docs/assets/tool-bridge.svg +276 -0
- package/lib/client.js +2165 -0
- package/lib/client.js.map +1 -0
- package/lib/index.js +9585 -0
- package/lib/index.js.map +1 -0
- package/package.json +79 -0
- package/scripts/build.mjs +59 -0
- package/scripts/build.sh +6 -0
- package/scripts/make-dev-copy.mjs +49 -0
- package/scripts/prepare.mjs +25 -0
- package/tools/changelog-section.mjs +42 -0
- package/tools/inspect-session.mjs +223 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
<svg data-theme="light" width="1080" height="600" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 600" role="img" lang="zh-CN" aria-labelledby="archify-diagram-title archify-diagram-description" data-preset="classic" data-quality-profile="showcase">
|
|
2
|
+
<style>
|
|
3
|
+
<![CDATA[
|
|
4
|
+
svg {
|
|
5
|
+
|
|
6
|
+
--bg: #f8fafc;
|
|
7
|
+
--grid: #e2e8f0;
|
|
8
|
+
--text: #0f172a;
|
|
9
|
+
--text-muted: #64748b;
|
|
10
|
+
--text-dim: #94a3b8;
|
|
11
|
+
--text-faint: #64748b;
|
|
12
|
+
|
|
13
|
+
--panel: #ffffff;
|
|
14
|
+
--panel-border: #e2e8f0;
|
|
15
|
+
--lane-fill: rgba(248, 250, 252, 0.65);
|
|
16
|
+
--lane-stroke: #cbd5e1;
|
|
17
|
+
|
|
18
|
+
--arrow: #94a3b8;
|
|
19
|
+
--arrow-emphasis: #059669;
|
|
20
|
+
|
|
21
|
+
--mask: #ffffff;
|
|
22
|
+
|
|
23
|
+
--frontend-fill: rgba(34, 211, 238, 0.15);
|
|
24
|
+
--frontend-stroke: #0891b2;
|
|
25
|
+
--backend-fill: rgba(52, 211, 153, 0.18);
|
|
26
|
+
--backend-stroke: #059669;
|
|
27
|
+
--database-fill: rgba(167, 139, 250, 0.2);
|
|
28
|
+
--database-stroke: #7c3aed;
|
|
29
|
+
--cloud-fill: rgba(251, 191, 36, 0.18);
|
|
30
|
+
--cloud-stroke: #d97706;
|
|
31
|
+
--security-fill: rgba(251, 113, 133, 0.15);
|
|
32
|
+
--security-stroke: #e11d48;
|
|
33
|
+
--messagebus-fill: rgba(251, 146, 60, 0.15);
|
|
34
|
+
--messagebus-stroke:#ea580c;
|
|
35
|
+
--external-fill: rgba(148, 163, 184, 0.18);
|
|
36
|
+
--external-stroke: #64748b;
|
|
37
|
+
|
|
38
|
+
--toolbar-bg: rgba(255, 255, 255, 0.92);
|
|
39
|
+
--toolbar-border: #cbd5e1;
|
|
40
|
+
--toolbar-text: #334155;
|
|
41
|
+
--toolbar-hover: #ffffff;
|
|
42
|
+
--toolbar-menu-bg: #ffffff;
|
|
43
|
+
}
|
|
44
|
+
svg .archify-export-bg { fill: var(--bg); }
|
|
45
|
+
/* ========================================================== SVG SEMANTIC CLASSES — use these instead of inline fill/stroke ========================================================== */ .c-grid { stroke: var(--grid); fill: none; }
|
|
46
|
+
.c-mask { fill: var(--mask); stroke: none; }
|
|
47
|
+
.c-frontend { fill: var(--frontend-fill); stroke: var(--frontend-stroke); }
|
|
48
|
+
.c-backend { fill: var(--backend-fill); stroke: var(--backend-stroke); }
|
|
49
|
+
.c-database { fill: var(--database-fill); stroke: var(--database-stroke); }
|
|
50
|
+
.c-cloud { fill: var(--cloud-fill); stroke: var(--cloud-stroke); }
|
|
51
|
+
.c-external { fill: var(--external-fill); stroke: var(--external-stroke); }
|
|
52
|
+
/* Text helpers */ .t-primary { fill: var(--text); }
|
|
53
|
+
.t-muted { fill: var(--text-muted); }
|
|
54
|
+
.t-dim { fill: var(--text-dim); }
|
|
55
|
+
.t-backend { fill: var(--backend-stroke); }
|
|
56
|
+
.t-security { fill: var(--security-stroke); }
|
|
57
|
+
.t-messagebus { fill: var(--messagebus-stroke); }
|
|
58
|
+
/* Semantic Sigils are small authored role stamps, not icons from a brand pack and not viewer controls. Prefix selectors with svg so the canonical export's SVG-only stylesheet collector keeps them automatically. */ svg .semantic-sigil { fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; opacity: 0.76; pointer-events: none; }
|
|
59
|
+
svg .semantic-sigil > * { vector-effect: non-scaling-stroke; }
|
|
60
|
+
svg .semantic-sigil .sigil-fill { fill: currentColor; stroke: none; }
|
|
61
|
+
svg .s-frontend { color: var(--frontend-stroke); }
|
|
62
|
+
svg .s-backend { color: var(--backend-stroke); }
|
|
63
|
+
svg .s-database { color: var(--database-stroke); }
|
|
64
|
+
svg .s-cloud { color: var(--cloud-stroke); }
|
|
65
|
+
svg .s-external { color: var(--external-stroke); }
|
|
66
|
+
/* Arrows */ .a-default { stroke: var(--arrow); fill: none; }
|
|
67
|
+
.a-emphasis { stroke: var(--arrow-emphasis); fill: none; }
|
|
68
|
+
.a-security { stroke: var(--security-stroke); fill: none; stroke-dasharray: 5,5; }
|
|
69
|
+
.a-dashed { stroke: var(--database-stroke); fill: none; stroke-dasharray: 4,4; }
|
|
70
|
+
/* Arrowhead markers reference these */ .m-default { fill: var(--arrow); }
|
|
71
|
+
.m-emphasis { fill: var(--arrow-emphasis); }
|
|
72
|
+
.m-security { fill: var(--security-stroke); }
|
|
73
|
+
.m-dashed { fill: var(--database-stroke); }
|
|
74
|
+
.c-lane { fill: var(--lane-fill); stroke: var(--lane-stroke); stroke-dasharray: 6,6; }
|
|
75
|
+
]]>
|
|
76
|
+
</style>
|
|
77
|
+
<rect width="100%" height="100%" class="archify-export-bg"/>
|
|
78
|
+
|
|
79
|
+
<title id="archify-diagram-title">登录与凭证捕获:浏览器窗口登录一次</title>
|
|
80
|
+
<desc id="archify-diagram-description">由 Archify 生成的时序图。</desc>
|
|
81
|
+
<!-- Definitions -->
|
|
82
|
+
<defs>
|
|
83
|
+
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
84
|
+
<polygon points="0 0, 10 3.5, 0 7" class="m-default" />
|
|
85
|
+
</marker>
|
|
86
|
+
<marker id="arrowhead-emphasis" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
87
|
+
<polygon points="0 0, 10 3.5, 0 7" class="m-emphasis" />
|
|
88
|
+
</marker>
|
|
89
|
+
<marker id="arrowhead-security" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
90
|
+
<polygon points="0 0, 10 3.5, 0 7" class="m-security" />
|
|
91
|
+
</marker>
|
|
92
|
+
<marker id="arrowhead-dashed" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
93
|
+
<polygon points="0 0, 10 3.5, 0 7" class="m-dashed" />
|
|
94
|
+
</marker>
|
|
95
|
+
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
|
96
|
+
<path d="M 40 0 L 0 0 0 40" class="c-grid" stroke-width="0.5"/>
|
|
97
|
+
</pattern>
|
|
98
|
+
</defs>
|
|
99
|
+
|
|
100
|
+
<!-- Background Grid -->
|
|
101
|
+
<rect width="100%" height="100%" fill="url(#grid)" />
|
|
102
|
+
|
|
103
|
+
<!-- Time Segments -->
|
|
104
|
+
<rect data-graph-role="structural-frame" data-composition-frame-kind="segment" data-composition-frame-id="0" x="48" y="150" width="984" height="146" rx="10" class="c-lane" stroke-width="1"/>
|
|
105
|
+
|
|
106
|
+
<rect data-graph-role="structural-frame" data-composition-frame-kind="segment" data-composition-frame-id="1" x="48" y="296" width="984" height="108" rx="10" class="c-lane" stroke-width="1"/>
|
|
107
|
+
|
|
108
|
+
<rect data-graph-role="structural-frame" data-composition-frame-kind="segment" data-composition-frame-id="2" x="48" y="404" width="984" height="108" rx="10" class="c-lane" stroke-width="1"/>
|
|
109
|
+
|
|
110
|
+
<!-- Lifelines -->
|
|
111
|
+
<path d="M 145.5 142 L 145.5 535" class="a-default" stroke-width="0.8" stroke-dasharray="3,7"/>
|
|
112
|
+
<path d="M 348.25 142 L 348.25 535" class="a-default" stroke-width="0.8" stroke-dasharray="3,7"/>
|
|
113
|
+
<path d="M 551 142 L 551 535" class="a-default" stroke-width="0.8" stroke-dasharray="3,7"/>
|
|
114
|
+
<path d="M 753.75 142 L 753.75 535" class="a-default" stroke-width="0.8" stroke-dasharray="3,7"/>
|
|
115
|
+
<path d="M 956.5 142 L 956.5 535" class="a-default" stroke-width="0.8" stroke-dasharray="3,7"/>
|
|
116
|
+
|
|
117
|
+
<!-- Activations -->
|
|
118
|
+
<rect x="343.25" y="170" width="10" height="342" rx="3" class="c-mask"/>
|
|
119
|
+
<rect x="343.25" y="170" width="10" height="342" rx="3" class="c-backend" stroke-width="1"/>
|
|
120
|
+
<rect x="546" y="206" width="10" height="108" rx="3" class="c-mask"/>
|
|
121
|
+
<rect x="546" y="206" width="10" height="108" rx="3" class="c-external" stroke-width="1"/>
|
|
122
|
+
<rect x="748.75" y="242" width="10" height="144" rx="3" class="c-mask"/>
|
|
123
|
+
<rect x="748.75" y="242" width="10" height="144" rx="3" class="c-cloud" stroke-width="1"/>
|
|
124
|
+
<rect x="951.5" y="422" width="10" height="72" rx="3" class="c-mask"/>
|
|
125
|
+
<rect x="951.5" y="422" width="10" height="72" rx="3" class="c-database" stroke-width="1"/>
|
|
126
|
+
|
|
127
|
+
<!-- Messages -->
|
|
128
|
+
<g data-edge-from="panel" data-edge-to="host" data-edge-label="点击「浏览器窗口登录」" data-edge-key="0">
|
|
129
|
+
<path data-composition-edge-from="panel" data-composition-edge-to="host" data-composition-points="152.5,170;341.25,170" d="M 152.5 170 L 341.25 170" class="a-emphasis" stroke-width="1.8" marker-end="url(#arrowhead-emphasis)"/>
|
|
130
|
+
<g data-detail="context">
|
|
131
|
+
<rect x="183.675" y="150" width="126.4" height="16" rx="3" class="c-mask"/>
|
|
132
|
+
<text x="246.875" y="160" class="t-backend" font-size="9" text-anchor="middle">点击「浏览器窗口登录」</text>
|
|
133
|
+
</g>
|
|
134
|
+
</g>
|
|
135
|
+
|
|
136
|
+
<g data-edge-from="host" data-edge-to="browser" data-edge-label="启动 Edge / Chrome(CDP)" data-edge-key="1">
|
|
137
|
+
<path data-composition-edge-from="host" data-composition-edge-to="browser" data-composition-points="355.25,206;544,206" d="M 355.25 206 L 544 206" class="a-emphasis" stroke-width="1.8" marker-end="url(#arrowhead-emphasis)"/>
|
|
138
|
+
<g data-detail="context">
|
|
139
|
+
<rect x="378.625" y="186" width="142" height="16" rx="3" class="c-mask"/>
|
|
140
|
+
<text x="449.625" y="196" class="t-backend" font-size="9" text-anchor="middle">启动 Edge / Chrome(CDP)</text>
|
|
141
|
+
</g>
|
|
142
|
+
</g>
|
|
143
|
+
|
|
144
|
+
<g data-edge-from="browser" data-edge-to="web" data-edge-label="手机号 / 邮箱 / 验证码" data-edge-key="2">
|
|
145
|
+
<path data-composition-edge-from="browser" data-composition-edge-to="web" data-composition-points="558,242;746.75,242" d="M 558 242 L 746.75 242" class="a-default" stroke-width="1.4" marker-end="url(#arrowhead)"/>
|
|
146
|
+
<g data-detail="context">
|
|
147
|
+
<rect x="589.175" y="222" width="126.4" height="16" rx="3" class="c-mask"/>
|
|
148
|
+
<text x="652.375" y="232" class="t-backend" font-size="9" text-anchor="middle">手机号 / 邮箱 / 验证码</text>
|
|
149
|
+
</g>
|
|
150
|
+
</g>
|
|
151
|
+
|
|
152
|
+
<g data-edge-from="web" data-edge-to="browser" data-edge-label="登录成功,写入登录态" data-edge-key="3">
|
|
153
|
+
<path data-composition-edge-from="web" data-composition-edge-to="browser" data-composition-points="746.75,278;558,278" d="M 746.75 278 L 558 278" class="a-default" stroke-width="1.4" stroke-dasharray="3,5" marker-end="url(#arrowhead)"/>
|
|
154
|
+
<g data-detail="context">
|
|
155
|
+
<rect x="594.375" y="258" width="116" height="16" rx="3" class="c-mask"/>
|
|
156
|
+
<text x="652.375" y="268" class="t-muted" font-size="9" text-anchor="middle">登录成功,写入登录态</text>
|
|
157
|
+
</g>
|
|
158
|
+
</g>
|
|
159
|
+
|
|
160
|
+
<g data-edge-from="browser" data-edge-to="host" data-edge-label="旁路捕获凭证" data-edge-key="4">
|
|
161
|
+
<path data-composition-edge-from="browser" data-composition-edge-to="host" data-composition-points="544,314;355.25,314" d="M 544 314 L 355.25 314" class="a-security" stroke-width="1.4" marker-end="url(#arrowhead-security)"/>
|
|
162
|
+
<g data-detail="context">
|
|
163
|
+
<rect x="412.425" y="294" width="74.4" height="16" rx="3" class="c-mask"/>
|
|
164
|
+
<text x="449.625" y="304" class="t-security" font-size="9" text-anchor="middle">旁路捕获凭证</text>
|
|
165
|
+
</g>
|
|
166
|
+
</g>
|
|
167
|
+
|
|
168
|
+
<g data-edge-from="host" data-edge-to="web" data-edge-label="GET /api/v0/users/current" data-edge-key="5">
|
|
169
|
+
<path data-composition-edge-from="host" data-composition-edge-to="web" data-composition-points="355.25,350;746.75,350" d="M 355.25 350 L 746.75 350" class="a-security" stroke-width="1.4" marker-end="url(#arrowhead-security)"/>
|
|
170
|
+
<g data-detail="context">
|
|
171
|
+
<rect x="480" y="330" width="142" height="16" rx="3" class="c-mask"/>
|
|
172
|
+
<text x="551" y="340" class="t-security" font-size="9" text-anchor="middle">GET /api/v0/users/current</text>
|
|
173
|
+
</g>
|
|
174
|
+
</g>
|
|
175
|
+
|
|
176
|
+
<g data-edge-from="web" data-edge-to="host" data-edge-label="200 用户信息" data-edge-key="6">
|
|
177
|
+
<path data-composition-edge-from="web" data-composition-edge-to="host" data-composition-points="746.75,386;355.25,386" d="M 746.75 386 L 355.25 386" class="a-default" stroke-width="1.4" stroke-dasharray="3,5" marker-end="url(#arrowhead)"/>
|
|
178
|
+
<g data-detail="context">
|
|
179
|
+
<rect x="513.8" y="366" width="74.4" height="16" rx="3" class="c-mask"/>
|
|
180
|
+
<text x="551" y="376" class="t-muted" font-size="9" text-anchor="middle">200 用户信息</text>
|
|
181
|
+
</g>
|
|
182
|
+
</g>
|
|
183
|
+
|
|
184
|
+
<g data-edge-from="host" data-edge-to="creds" data-edge-label="落盘 deepseek-auth.json" data-edge-key="7">
|
|
185
|
+
<path data-composition-edge-from="host" data-composition-edge-to="creds" data-composition-points="355.25,422;949.5,422" d="M 355.25 422 L 949.5 422" class="a-emphasis" stroke-width="1.8" marker-end="url(#arrowhead-emphasis)"/>
|
|
186
|
+
<g data-detail="context">
|
|
187
|
+
<rect x="586.575" y="402" width="131.60000000000002" height="16" rx="3" class="c-mask"/>
|
|
188
|
+
<text x="652.375" y="412" class="t-backend" font-size="9" text-anchor="middle">落盘 deepseek-auth.json</text>
|
|
189
|
+
</g>
|
|
190
|
+
</g>
|
|
191
|
+
|
|
192
|
+
<g data-edge-from="host" data-edge-to="creds" data-edge-label="凭证丢失时复用持久分区重建" data-edge-key="8">
|
|
193
|
+
<path data-composition-edge-from="host" data-composition-edge-to="creds" data-composition-points="355.25,458;949.5,458" d="M 355.25 458 L 949.5 458" class="a-dashed" stroke-width="1.4" marker-end="url(#arrowhead-dashed)"/>
|
|
194
|
+
<g data-detail="context">
|
|
195
|
+
<rect x="578.775" y="438" width="147.20000000000002" height="16" rx="3" class="c-mask"/>
|
|
196
|
+
<text x="652.375" y="448" class="t-messagebus" font-size="9" text-anchor="middle">凭证丢失时复用持久分区重建</text>
|
|
197
|
+
</g>
|
|
198
|
+
</g>
|
|
199
|
+
|
|
200
|
+
<g data-edge-from="host" data-edge-to="panel" data-edge-label="面板显示已登录" data-edge-key="9">
|
|
201
|
+
<path data-composition-edge-from="host" data-composition-edge-to="panel" data-composition-points="341.25,494;152.5,494" d="M 341.25 494 L 152.5 494" class="a-default" stroke-width="1.4" stroke-dasharray="3,5" marker-end="url(#arrowhead)"/>
|
|
202
|
+
<g data-detail="context">
|
|
203
|
+
<rect x="204.475" y="474" width="84.8" height="16" rx="3" class="c-mask"/>
|
|
204
|
+
<text x="246.875" y="484" class="t-muted" font-size="9" text-anchor="middle">面板显示已登录</text>
|
|
205
|
+
</g>
|
|
206
|
+
</g>
|
|
207
|
+
|
|
208
|
+
<!-- Segment Labels -->
|
|
209
|
+
<g data-graph-role="segment-label" data-segment-id="0">
|
|
210
|
+
<rect x="56" y="128" width="55.6" height="18" rx="3" class="c-mask"/>
|
|
211
|
+
<text x="62" y="141" class="t-dim" font-size="9" font-weight="600">登录一次</text>
|
|
212
|
+
</g>
|
|
213
|
+
<g data-graph-role="segment-label" data-segment-id="1">
|
|
214
|
+
<rect x="56" y="274" width="66" height="18" rx="3" class="c-mask"/>
|
|
215
|
+
<text x="62" y="287" class="t-dim" font-size="9" font-weight="600">捕获与校验</text>
|
|
216
|
+
</g>
|
|
217
|
+
<g data-graph-role="segment-label" data-segment-id="2">
|
|
218
|
+
<rect x="56" y="382" width="66" height="18" rx="3" class="c-mask"/>
|
|
219
|
+
<text x="62" y="395" class="t-dim" font-size="9" font-weight="600">落盘与救援</text>
|
|
220
|
+
</g>
|
|
221
|
+
|
|
222
|
+
<!-- Participants -->
|
|
223
|
+
<g id="node-panel" data-node-id="panel" data-node-label="设置面板" tabindex="0" role="button" aria-label="聚焦设置面板,DSH 设置页, 时序参与者" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="DSH 设置页" data-node-context="时序参与者">
|
|
224
|
+
<title>设置面板 · DSH 设置页 · 时序参与者</title>
|
|
225
|
+
<rect x="62" y="72" width="167" height="54" rx="6" class="c-mask"/>
|
|
226
|
+
<rect x="62" y="72" width="167" height="54" rx="6" class="c-frontend" stroke-width="1.5"/>
|
|
227
|
+
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(68 78) scale(0.6875)">
|
|
228
|
+
<rect x="2" y="3" width="12" height="10" rx="2"/>
|
|
229
|
+
<path d="M2 6.5h12"/>
|
|
230
|
+
<circle cx="4.1" cy="4.8" r=".7" class="sigil-fill"/>
|
|
231
|
+
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
|
232
|
+
</g>
|
|
233
|
+
<text data-node-label="" data-detail-anchor="" x="145.5" y="94" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">设置面板</text>
|
|
234
|
+
<text data-detail="context" x="145.5" y="111" class="t-muted" font-size="7" text-anchor="middle">DSH 设置页</text>
|
|
235
|
+
</g>
|
|
236
|
+
|
|
237
|
+
<g id="node-host" data-node-id="host" data-node-label="插件 host" tabindex="0" role="button" aria-label="聚焦插件 host,插件进程, 时序参与者" aria-pressed="false" data-node-kind="backend" data-node-sublabel="插件进程" data-node-context="时序参与者">
|
|
238
|
+
<title>插件 host · 插件进程 · 时序参与者</title>
|
|
239
|
+
<rect x="264.75" y="72" width="167" height="54" rx="6" class="c-mask"/>
|
|
240
|
+
<rect x="264.75" y="72" width="167" height="54" rx="6" class="c-backend" stroke-width="1.5"/>
|
|
241
|
+
<g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(270.75 78) scale(0.6875)">
|
|
242
|
+
<path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
|
|
243
|
+
</g>
|
|
244
|
+
<text data-node-label="" data-detail-anchor="" x="348.25" y="94" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">插件 host</text>
|
|
245
|
+
<text data-detail="context" x="348.25" y="111" class="t-muted" font-size="7" text-anchor="middle">插件进程</text>
|
|
246
|
+
</g>
|
|
247
|
+
|
|
248
|
+
<g id="node-browser" data-node-id="browser" data-node-label="浏览器登录窗口" tabindex="0" role="button" aria-label="聚焦浏览器登录窗口,Edge / Chrome, 时序参与者" aria-pressed="false" data-node-kind="external" data-node-sublabel="Edge / Chrome" data-node-context="时序参与者">
|
|
249
|
+
<title>浏览器登录窗口 · Edge / Chrome · 时序参与者</title>
|
|
250
|
+
<rect x="467.5" y="72" width="167" height="54" rx="6" class="c-mask"/>
|
|
251
|
+
<rect x="467.5" y="72" width="167" height="54" rx="6" class="c-external" stroke-width="1.5"/>
|
|
252
|
+
<g aria-hidden="true" data-semantic-sigil="external" class="semantic-sigil s-external" transform="translate(473.5 78) scale(0.6875)">
|
|
253
|
+
<rect x="2.5" y="5" width="8.5" height="8" rx="1.5"/>
|
|
254
|
+
<path d="M8 2.5h5.5V8M13.5 2.5 7.5 8.5"/>
|
|
255
|
+
</g>
|
|
256
|
+
<text data-node-label="" data-detail-anchor="" x="551" y="94" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">浏览器登录窗口</text>
|
|
257
|
+
<text data-detail="context" x="551" y="111" class="t-muted" font-size="7" text-anchor="middle">Edge / Chrome</text>
|
|
258
|
+
</g>
|
|
259
|
+
|
|
260
|
+
<g id="node-web" data-node-id="web" data-node-label="chat.deepseek.com" tabindex="0" role="button" aria-label="聚焦chat.deepseek.com,网页端, 时序参与者" aria-pressed="false" data-node-kind="cloud" data-node-sublabel="网页端" data-node-context="时序参与者">
|
|
261
|
+
<title>chat.deepseek.com · 网页端 · 时序参与者</title>
|
|
262
|
+
<rect x="670.25" y="72" width="167" height="54" rx="6" class="c-mask"/>
|
|
263
|
+
<rect x="670.25" y="72" width="167" height="54" rx="6" class="c-cloud" stroke-width="1.5"/>
|
|
264
|
+
<g aria-hidden="true" data-semantic-sigil="cloud" class="semantic-sigil s-cloud" transform="translate(676.25 78) scale(0.6875)">
|
|
265
|
+
<path d="M4.3 12.5h7.3a2.4 2.4 0 0 0 .2-4.8 4 4 0 0 0-7.5-1.3A3.1 3.1 0 0 0 4.3 12.5Z"/>
|
|
266
|
+
</g>
|
|
267
|
+
<text data-node-label="" data-detail-anchor="" x="753.75" y="94" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">chat.deepseek.com</text>
|
|
268
|
+
<text data-detail="context" x="753.75" y="111" class="t-muted" font-size="7" text-anchor="middle">网页端</text>
|
|
269
|
+
</g>
|
|
270
|
+
|
|
271
|
+
<g id="node-creds" data-node-id="creds" data-node-label="本机凭证" tabindex="0" role="button" aria-label="聚焦本机凭证,本机文件, 时序参与者" aria-pressed="false" data-node-kind="database" data-node-sublabel="本机文件" data-node-context="时序参与者">
|
|
272
|
+
<title>本机凭证 · 本机文件 · 时序参与者</title>
|
|
273
|
+
<rect x="873" y="72" width="167" height="54" rx="6" class="c-mask"/>
|
|
274
|
+
<rect x="873" y="72" width="167" height="54" rx="6" class="c-database" stroke-width="1.5"/>
|
|
275
|
+
<g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(879 78) scale(0.6875)">
|
|
276
|
+
<ellipse cx="8" cy="4" rx="5" ry="2"/>
|
|
277
|
+
<path d="M3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/>
|
|
278
|
+
</g>
|
|
279
|
+
<text data-node-label="" data-detail-anchor="" x="956.5" y="94" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">本机凭证</text>
|
|
280
|
+
<text data-detail="context" x="956.5" y="111" class="t-muted" font-size="7" text-anchor="middle">本机文件</text>
|
|
281
|
+
</g>
|
|
282
|
+
|
|
283
|
+
<!-- Legend -->
|
|
284
|
+
<g data-legend="">
|
|
285
|
+
<text x="40" y="526" class="t-primary" font-size="12" font-weight="650">图例</text>
|
|
286
|
+
<g data-legend-semantic-kind="emphasis" data-legend-x="40" data-legend-baseline="546" data-legend-width="63">
|
|
287
|
+
<path d="M 40 543 L 74 543" class="a-emphasis" stroke-width="1.8" marker-end="url(#arrowhead-emphasis)"/>
|
|
288
|
+
<text x="83" y="546" class="t-muted" font-size="10" font-weight="500">请求</text>
|
|
289
|
+
</g>
|
|
290
|
+
<g data-legend-semantic-kind="return" data-legend-x="125" data-legend-baseline="546" data-legend-width="63">
|
|
291
|
+
<path d="M 125 543 L 159 543" class="a-default" stroke-width="1.4" stroke-dasharray="3,5" marker-end="url(#arrowhead)"/>
|
|
292
|
+
<text x="168" y="546" class="t-muted" font-size="10" font-weight="500">返回</text>
|
|
293
|
+
</g>
|
|
294
|
+
<g data-legend-semantic-kind="security" data-legend-x="210" data-legend-baseline="546" data-legend-width="63">
|
|
295
|
+
<path d="M 210 543 L 244 543" class="a-security" stroke-width="1.4" marker-end="url(#arrowhead-security)"/>
|
|
296
|
+
<text x="253" y="546" class="t-muted" font-size="10" font-weight="500">安全</text>
|
|
297
|
+
</g>
|
|
298
|
+
<g data-legend-semantic-kind="dashed" data-legend-x="295" data-legend-baseline="546" data-legend-width="83">
|
|
299
|
+
<path d="M 295 543 L 329 543" class="a-dashed" stroke-width="1.4" marker-end="url(#arrowhead-dashed)"/>
|
|
300
|
+
<text x="338" y="546" class="t-muted" font-size="10" font-weight="500">异步追踪</text>
|
|
301
|
+
</g>
|
|
302
|
+
<g data-legend-semantic-kind="default" data-legend-x="400" data-legend-baseline="546" data-legend-width="83">
|
|
303
|
+
<path d="M 400 543 L 434 543" class="a-default" stroke-width="1.4" marker-end="url(#arrowhead)"/>
|
|
304
|
+
<text x="443" y="546" class="t-muted" font-size="10" font-weight="500">默认消息</text>
|
|
305
|
+
</g>
|
|
306
|
+
</g>
|
|
307
|
+
</svg>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="660" viewBox="0 0 900 660" role="img" aria-label="设置面板示意">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.panel{fill:#151922;stroke:#2a2f3a;stroke-width:1.4}
|
|
5
|
+
.h{font:600 13.5px system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;fill:#e8edf5}
|
|
6
|
+
.b{font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;fill:#cbd5e1}
|
|
7
|
+
.k{font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;fill:#8b93a3}
|
|
8
|
+
.btn{font:600 12px system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;fill:#ffffff}
|
|
9
|
+
.ghost{font:600 12px system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;fill:#cbd5e1}
|
|
10
|
+
.hint{font:11.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;fill:#8b93a3}
|
|
11
|
+
</style>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect x="0" y="0" width="900" height="660" rx="14" fill="#0f1115" stroke="#2a2f3a" stroke-width="1.6"/>
|
|
14
|
+
<text x="24" y="34" class="h" font-size="14">DeepSeek 网页登录(免费模型)</text>
|
|
15
|
+
<text x="24" y="56" class="hint">用 chat.deepseek.com 网页版登录态驱动 DSH agent —— 不需要 API Key。provider 路由:deepseek-web</text>
|
|
16
|
+
|
|
17
|
+
<!-- 登录状态卡 -->
|
|
18
|
+
<rect class="panel" x="24" y="74" width="852" height="212" rx="10"/>
|
|
19
|
+
<text x="42" y="100" class="h">登录状态</text>
|
|
20
|
+
<rect x="126" y="88" width="52" height="17" rx="8.5" fill="#1d3a2a" stroke="#2ecc71"/>
|
|
21
|
+
<text x="136" y="100.5" font-family="system-ui,sans-serif" font-size="11" fill="#2ecc71">已登录</text>
|
|
22
|
+
|
|
23
|
+
<text x="42" y="128" class="k">适配器注册</text><text x="180" y="128" class="b">✅ deepseek-web 已注册到 llm</text>
|
|
24
|
+
<text x="42" y="150" class="k">账号</text><text x="180" y="150" class="b">use***@example.com</text>
|
|
25
|
+
<text x="42" y="172" class="k">捕获时间</text><text x="180" y="172" class="b">2026/09/10 21:14:03</text>
|
|
26
|
+
<text x="42" y="194" class="k">Cookie</text><text x="180" y="194" class="b">已捕获</text>
|
|
27
|
+
<text x="42" y="216" class="k">指纹头</text><text x="180" y="216" class="b">已捕获</text>
|
|
28
|
+
<text x="42" y="238" class="k">PoW WASM</text><text x="180" y="238" class="b">fe-static.deepseek.com</text>
|
|
29
|
+
<text x="42" y="260" class="k">服务端校验</text><text x="180" y="260" class="b">通过</text>
|
|
30
|
+
|
|
31
|
+
<rect x="596" y="118" width="128" height="32" rx="6" fill="#4a9eff"/>
|
|
32
|
+
<text x="614" y="139" class="btn">浏览器窗口登录</text>
|
|
33
|
+
<rect x="734" y="118" width="128" height="32" rx="6" fill="none" stroke="#444c5c"/>
|
|
34
|
+
<text x="742" y="139" class="ghost">从已登录窗口恢复</text>
|
|
35
|
+
<rect x="734" y="160" width="88" height="30" rx="6" fill="none" stroke="#444c5c"/>
|
|
36
|
+
<text x="758" y="180" class="ghost">刷新状态</text>
|
|
37
|
+
<text x="600" y="216" class="hint">「从已登录窗口恢复」= 复用上次登录过的</text>
|
|
38
|
+
<text x="600" y="232" class="hint">窗口分区直接取凭证(免重新登录)</text>
|
|
39
|
+
<text x="600" y="256" class="hint">凭证存于 ~/.dsh/web-login/(不入仓库)</text>
|
|
40
|
+
|
|
41
|
+
<!-- 手动 token -->
|
|
42
|
+
<rect class="panel" x="24" y="302" width="852" height="150" rx="10"/>
|
|
43
|
+
<text x="42" y="328" class="h">手动粘贴 Token(可选路径)</text>
|
|
44
|
+
<text x="42" y="352" class="hint">在浏览器打开 chat.deepseek.com 并登录 → F12 控制台执行下面一行 → 粘贴结果:</text>
|
|
45
|
+
<rect x="42" y="362" width="470" height="26" rx="5" fill="#0f1115" stroke="#333a47"/>
|
|
46
|
+
<text x="54" y="380" class="b">JSON.parse(localStorage.getItem('userToken')).value</text>
|
|
47
|
+
<rect x="42" y="398" width="816" height="34" rx="6" fill="#0f1115" stroke="#333a47"/>
|
|
48
|
+
<text x="54" y="420" class="k">粘贴 token(包装 JSON 或裸 token 都行;可选:下一行粘贴 Cookie)</text>
|
|
49
|
+
|
|
50
|
+
<!-- 测试 -->
|
|
51
|
+
<rect class="panel" x="24" y="468" width="852" height="86" rx="10"/>
|
|
52
|
+
<text x="42" y="494" class="h">连通性测试</text>
|
|
53
|
+
<text x="42" y="516" class="hint">直接经适配器发一次最小请求(会消耗一点网页端额度):</text>
|
|
54
|
+
<rect x="42" y="524" width="240" height="26" rx="6" fill="#0f1115" stroke="#333a47"/>
|
|
55
|
+
<text x="54" y="542" class="b">DeepSeek 网页 · 快速模式(不思考)</text>
|
|
56
|
+
<rect x="296" y="522" width="96" height="30" rx="6" fill="#4a9eff"/>
|
|
57
|
+
<text x="320" y="543" class="btn">发送测试</text>
|
|
58
|
+
|
|
59
|
+
<!-- 模型 -->
|
|
60
|
+
<rect class="panel" x="24" y="570" width="852" height="70" rx="10"/>
|
|
61
|
+
<text x="42" y="596" class="h">可用模型(网页免费)</text>
|
|
62
|
+
<text x="42" y="618" class="b">deepseek-chat · thinking 关 · 上下文 0.8M | deepseek-reasoner · thinking 开 · 上下文 0.8M</text>
|
|
63
|
+
<text x="42" y="634" class="hint">两条是同一个「快速模式」的思考开关两档预设;图片输入直接可用(走网页端文件上传通道)</text>
|
|
64
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|