@operatingtag/dsh-unclesam 1.0.0 → 1.1.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 +59 -0
- package/LICENSE +2 -0
- package/README.cs.md +260 -0
- package/README.da.md +261 -0
- package/README.de.md +274 -0
- package/README.el.md +270 -0
- package/README.es.md +268 -0
- package/README.fa.md +260 -0
- package/README.fi.md +262 -0
- package/README.fr.md +272 -0
- package/README.he.md +252 -0
- package/README.hi.md +263 -0
- package/README.hu.md +264 -0
- package/README.id.md +264 -0
- package/README.it.md +268 -0
- package/README.ja.md +263 -0
- package/README.ko.md +258 -0
- package/README.md +129 -223
- package/README.nl.md +266 -0
- package/README.pl.md +266 -0
- package/README.pt.md +265 -0
- package/README.ro.md +262 -0
- package/README.ru.md +269 -0
- package/README.sv.md +263 -0
- package/README.th.md +256 -0
- package/README.tr.md +265 -0
- package/README.uk.md +265 -0
- package/README.vi.md +263 -0
- package/README.zh.md +248 -0
- package/index.js +5 -2
- package/lib/prompt.mjs +24 -44
- package/package.json +28 -2
package/README.fi.md
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · [Italiano](README.it.md) · [Türkçe](README.tr.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [简体中文](README.zh.md) · [Русский](README.ru.md) · [Polski](README.pl.md) · [हिन्दी](README.hi.md) · [Nederlands](README.nl.md) · [Українська](README.uk.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [ไทย](README.th.md) · [فارسی](README.fa.md) · [Ελληνικά](README.el.md) · [עברית](README.he.md) · [Čeština](README.cs.md) · [Română](README.ro.md) · [Svenska](README.sv.md) · [Dansk](README.da.md) · **Suomi** · [Magyar](README.hu.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**DeepSeek Harnessin tarjoaja, joka vastaa oman selaimesi kautta sillä verkkotilillä, joka sinulla jo on, laskutetun API:n sijaan.**
|
|
6
|
+
|
|
7
|
+
**☕ [Tarjoa minulle kahvi](https://revolut.me/operatingtag)** — kirjoittaa yksi ihminen, öisin, ilman rahoitusta. Muuta tulomallia ei ole. Tähti tai hyödyllinen virheraportti on yhtä arvokas.
|
|
8
|
+
|
|
9
|
+
> **Tämä tuote on aktiivisessa kehityksessä. Odota bugeja.**
|
|
10
|
+
>
|
|
11
|
+
> Se toimii, on nopea ja sitä on käytetty päivittäin viikkoja — mutta se muuttuu jatkuvasti, ja selainpolku riippuu
|
|
12
|
+
> sivustosta, joka muuttuu ilman varoitusta. Jos jokin menee rikki, kuvakaappaus ja versionumero ovat arvokkaampia kuin
|
|
13
|
+
> kuvaus. Kiinnitä versio, jos olet siitä riippuvainen.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
tarjoaja deepseek-web
|
|
17
|
+
mallit deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
hinta ei mitään tokenilta — käyttää selaimessasi jo avoinna olevaa tilausta
|
|
19
|
+
tila kehityksessä — odota bugeja
|
|
20
|
+
mitattu ensimmäinen token ~1,9 s · ylimääräinen ~0,6 s · koko kierros ~2,5 s
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Web-polun vastaukset allekirjoitetaan **🔴 Uncle Sam**. Nimi on vitsi, ei väite: se kertoo, mikä polku vastasi, ja
|
|
24
|
+
API-vastauksissa ei ole lainkaan allekirjoitusta. Tiedät aina, kuka sinulle vastasi.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Mitä se säästää
|
|
29
|
+
|
|
30
|
+
API laskuttaa tokenilta. Verkkotuote ei. Tämä lisäosa rekisteröi `deepseek-web`-mallitarjoajan ja vastaa jokaiseen
|
|
31
|
+
kutsuun ohjaamalla `chat.deepseek.com`-sivua oikeassa selaimessa — sivu tekee työn, selain pitää istunnon, eikä mitään
|
|
32
|
+
mitata.
|
|
33
|
+
|
|
34
|
+
| | API-polku | Web-polku |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Hinta | tokenilta, aina | ei mitään tilauksen lisäksi |
|
|
37
|
+
| Nopeus | nopea | ~2,5 s kierrosta kohden, mitattu |
|
|
38
|
+
| Työkalujen kutsu | natiivi ja luotettava | emuloitu, toimii mutta heikompi |
|
|
39
|
+
| Riippuu | API:sta | sivustosta, joka muuttuu ilman varoitusta |
|
|
40
|
+
|
|
41
|
+
**Molemmat polut pysyvät asennettuina.** Mallivalitsin on kytkin: käytä halpaa polkua oletuksena ja siirry API:in, kun
|
|
42
|
+
tehtävä vaatii luotettavia työkaluja.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Asennus
|
|
47
|
+
|
|
48
|
+
Uncle Sam on **DeepSeek Harness -lisäosa**. Harnessin ulkopuolella se ei tee mitään, koska se rekisteröi
|
|
49
|
+
mallitarjoajan, reitin isännälle ja kaksi kohtaa käyttöliittymään.
|
|
50
|
+
|
|
51
|
+
**Vaatimukset**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | mikä tahansa tuore versio, jossa on lisäosien hallinta |
|
|
56
|
+
| Selain | Brave suositeltu; Edgeä käytetään automaattisesti, jos Brave puuttuu |
|
|
57
|
+
| Node | 22 tai uudempi |
|
|
58
|
+
|
|
59
|
+
**npm:stä**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Tästä repositoriosta**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Lisää sitten pakettirivi profiiliisi, jotta harness lataa sen:
|
|
74
|
+
|
|
75
|
+
```yaml
|
|
76
|
+
# cordis.patch.yml
|
|
77
|
+
- insert:
|
|
78
|
+
- id: dsh-unclesam
|
|
79
|
+
name: '@operatingtag/dsh-unclesam'
|
|
80
|
+
config:
|
|
81
|
+
port: 9222
|
|
82
|
+
defaultModel: deepseek-chat-search
|
|
83
|
+
autoMinimise: true
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Tai kansiosta:** Asetukset → Lisäosat → asenna paikallisesta polusta, osoita kansio, jossa on `package.json`.
|
|
87
|
+
|
|
88
|
+
### Ensimmäinen käynnistys
|
|
89
|
+
|
|
90
|
+
Napsauta **Kirjaudu / avaa chat**. Selain avautuu ja **pysyy näkyvissä**, kunnes olet kirjautunut chat.deepseek.comiin.
|
|
91
|
+
Sen jälkeen se pienentyy itsestään, etkä näe sitä enää. Istunto on selainprofiilissasi, joten **lisäosa ei tallenna
|
|
92
|
+
salasanaa** — ei ole mitään vuodettavaa.
|
|
93
|
+
|
|
94
|
+
Sinun pitäisi nähdä:
|
|
95
|
+
|
|
96
|
+
1. **Asetukset → Uncle Sam** — sivu, jossa tilan rivit ja kirjautumispainike.
|
|
97
|
+
2. **Viestikentän alla** — `● DeepSeek Harness` tai `● Uncle Sam`, napsauta vaihtaaksesi.
|
|
98
|
+
3. **Malliluettelo** — neljä `(web)`-mallia API:n mallien vieressä.
|
|
99
|
+
|
|
100
|
+
### Poistaminen
|
|
101
|
+
|
|
102
|
+
Asetukset → Lisäosat → Uncle Sam → Poista asennus. Mitään ei kirjoiteta sen selainprofiilin ulkopuolelle, jolla
|
|
103
|
+
kirjauduit.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## API / web -kytkin
|
|
108
|
+
|
|
109
|
+
**Mallivalitsin on kytkin.** Toista säätöä ei ole, koska toinen säätö, joka valitsisi myös mallin, olisi kaksi totuuden
|
|
110
|
+
lähdettä yhdelle päätökselle.
|
|
111
|
+
|
|
112
|
+
| Valitse tämä malli | Polku | DeepThink | Haku |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| `DeepSeek Chat (web)` | selain | pois | pois |
|
|
115
|
+
| `DeepSeek Chat + Search (web)` | selain | pois | **päällä** |
|
|
116
|
+
| `DeepSeek Reasoner (web)` | selain | **päällä** | pois |
|
|
117
|
+
| `DeepSeek Reasoner + Search (web)` | selain | **päällä** | **päällä** |
|
|
118
|
+
| mikä tahansa malli ilman `(web)` | API | — | — |
|
|
119
|
+
|
|
120
|
+
Mallin nimen vieressä näkyy **WEB**- tai **API**-merkki, joten aktiivinen polku näkyy yhdellä silmäyksellä. Kun nimeä
|
|
121
|
+
ei tunnisteta, merkki ei näytä mitään sen sijaan että arvaisi — väärä merkki olisi pahempi kuin ei merkkiä.
|
|
122
|
+
|
|
123
|
+
Valintasi säilyy uudelleenkäynnistysten yli. **DeepThink** on päättelykierros; **Haku** antaa sen lukea elävää
|
|
124
|
+
verkkoa.
|
|
125
|
+
|
|
126
|
+
### Haku näkyy keskustelussa
|
|
127
|
+
|
|
128
|
+
Hakumallin kanssa yksi kierros tuottaa **kaksi lohkoa** — kyselyn, jolla se haki, löydetyt lähteet ja sitten
|
|
129
|
+
vastauksen, joka niitä käytti:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Verkkohaku — "Mikä on tämän päivän teknologiaotsikko?"
|
|
133
|
+
Lähteet (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
134
|
+
Linkit: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Sivu ei paljasta kyselyä, jonka se kirjoitti sisäisesti, joten siteerattu kysely on viesti, joka käynnisti haun.
|
|
138
|
+
Lähteet ja linkit luetaan sivulta, kun vastaus on asettunut. Koska lähteitä on vain lopussa, **hakukierrokset
|
|
139
|
+
puskuroidaan virtaamisen sijaan**; tavalliset kierrokset virtaavat edelleen token kerrallaan.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Miksi selain eikä heidän HTTP-API
|
|
144
|
+
|
|
145
|
+
Ilmeinen polku — kutsua `chat.deepseek.com`in omaa API:a — kokeiltiin ja hylättiin. Sivusto pakottaa jokaisen viestin
|
|
146
|
+
kahden portin läpi:
|
|
147
|
+
|
|
148
|
+
| Portti | Mitä se tarkoittaa |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `/api/v0/chat/create_pow_challenge` | **työtodistus** jokaista viestiä kohden |
|
|
151
|
+
| `challenges.cloudflare.com/turnstile` | bottiportti alkuperässä |
|
|
152
|
+
|
|
153
|
+
Kumman tahansa uudelleenrakentaminen on hävitty peli: ne on hämärretty, ne muuttuvat, ja kun ne muuttuvat, vika näyttää
|
|
154
|
+
täsmälleen verkkohäiriöltä. **Sivu ratkaisee jo molemmat omien pyyntöjensä osalta.**
|
|
155
|
+
|
|
156
|
+
Siksi sovitin ei koskaan puhu HTTP:tä sivuston kanssa. Se ohjaa sivua, ja sivu tekee loput. Todennus, työtodistus ja
|
|
157
|
+
Turnstile lakkaavat olemasta ongelmamme eivätkä voi hajota erillään itse sivustosta.
|
|
158
|
+
|
|
159
|
+
**Vahvistettu:** pelkkä `HEAD` sivustolle palauttaa `403`; selainpolku palauttaa vastauksia.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Rajat, rehellisesti sanottuna
|
|
164
|
+
|
|
165
|
+
**Työkalujen kutsu on emuloitu.** Verkkokeskustelussa ei ole jäsenneltyä työkalukanavaa: työkalut kuvataan kehotteessa
|
|
166
|
+
ja kutsu palautetaan poimimalla JSON-objekti vastauksesta. Se toimii — vahvistettu — mutta on heikompi kuin natiivi
|
|
167
|
+
kutsu: malli, joka jättää ohjeen huomiotta, vastaa proosalla, eikä harness näe työkalujen käyttöä sillä kierroksella.
|
|
168
|
+
**Raskaaseen agenttityöhön API-polku on luotettavampi.** Web-polku sopii parhaiten keskusteluun, pitkiin vastauksiin,
|
|
169
|
+
alagentteihin, tiivistämiseen ja jokaiseen kierrokseen, jossa mallin on oltava web-malli.
|
|
170
|
+
|
|
171
|
+
**Se riippuu sivustosta, jota et hallitse.** Kun sivu muuttaa muotoaan, lisäosan on muututtava mukana. Se on tämän
|
|
172
|
+
sivun yläreunan kehitysvaroitus, ei muodollisuus.
|
|
173
|
+
|
|
174
|
+
**Se ei liity DeepSeekiin.** He eivät hyväksy tai tue sitä, eikä se anna sinulle mitään oikeuksia heidän palveluunsa.
|
|
175
|
+
Käyttöäsi siinä palvelussa säätelevät heidän ehtonsa.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Asetukset
|
|
180
|
+
|
|
181
|
+
`cordis.patch.yml` asettaa:
|
|
182
|
+
|
|
183
|
+
| avain | oletus | merkitys |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `port` | `9222` | selaimen virheenkorjausportti |
|
|
186
|
+
| `defaultModel` | `deepseek-chat-search` | käytetään, kun kutsu ei nimeä mallia |
|
|
187
|
+
| `showBrowser` | `true` | näkyykö ikkuna työn aikana |
|
|
188
|
+
|
|
189
|
+
Selaimessa on oltava kirjautunut `chat.deepseek.com`-istunto. Ensimmäinen kutsu käynnistää Braven **Default**-profiililla,
|
|
190
|
+
jos portti ei ole jo auki. Jos Brave on jo käynnissä *ilman* virheenkorjausporttia, sovitin ei voi liittyä ja sanoo sen
|
|
191
|
+
selvästi sen sijaan että epäonnistuisi hiljaa.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Rakenne
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
index.js sovitin: harnessin StreamChunk ←→ moottori
|
|
199
|
+
lib/engine.mjs selain + sivu: kirjoita, lähetä, virtaa, anna asettua
|
|
200
|
+
lib/cdp.mjs Chrome DevTools Protocol -asiakas, ei riippuvuuksia
|
|
201
|
+
lib/prompt.mjs litistää viestit + työkalut yhdeksi viestiksi; poimii kutsut vastauksesta
|
|
202
|
+
lib/savings.mjs mitä web-polku säästi, hinnoiteltuna API:ta vasten
|
|
203
|
+
lib/i18n.mjs 51 kieltä paneelille
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Ei riippuvuuksia.** Nodessa 24 on globaalit `WebSocket` ja `fetch`, mikä on kaikki mitä CDP tarvitsee, joten
|
|
207
|
+
tokenvirta ei koskaan poistu isäntäprosessista eikä jokaisesta deltasta ole IPC-hyppyä.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Tuki
|
|
212
|
+
|
|
213
|
+
Uncle Sam on olemassa, jotta lopetat tokenikohtaisen maksamisen. Jos se säästi rahaa ja haluaisit nähdä seuraavan
|
|
214
|
+
rakennettuna laitteistolle, jolta muisti ei lopu kesken:
|
|
215
|
+
|
|
216
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
217
|
+
|
|
218
|
+
Tähti repositoriossa tai hyödyllinen virheraportti on yhtä arvokas.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Lisenssi
|
|
223
|
+
|
|
224
|
+
**CC BY-NC-ND 4.0** — Creative Commons Nimeä-EiKaupallinen-EiMuutoksia 4.0 Kansainvälinen.
|
|
225
|
+
Copyright (c) 2026 Darren T. Weldon, julkaistu nimellä Operating Tag.
|
|
226
|
+
|
|
227
|
+
**Koko sopimus yhdellä rivillä: asenna ja käytä henkilökohtaisesti, ilmaiseksi. Älä muuta, älä jaa, älä myy äläkä
|
|
228
|
+
käytä yrityksessä.**
|
|
229
|
+
|
|
230
|
+
Tämä ei ole avointa lähdekoodia, eikä se teeskentele olevansa.
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
saat asentaa ja ajaa sitä · käyttää sitä henkilökohtaisesti, ei-kaupallisesti
|
|
234
|
+
lukea lähdekoodia ymmärtääksesi sitä
|
|
235
|
+
|
|
236
|
+
et saa muuttaa, sovittaa tai luoda johdannaisteosta
|
|
237
|
+
kopioida, jakaa, julkaista, peilata tai
|
|
238
|
+
saattaa kenenkään muun saataville
|
|
239
|
+
ladata sitä mihinkään koodin hosting-palveluun, rekisteriin, sivustolle, foorumille tai chattiin
|
|
240
|
+
myydä, jälleenmyydä, vuokrata tai periä maksua siitä tai sen käytöstä
|
|
241
|
+
sisällyttää sitä mihinkään, jonka luovutat toiselle
|
|
242
|
+
käyttää mihin tahansa kaupalliseen tarkoitukseen tai liiketoiminnan yhteydessä
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Ainoat kaksi laillista lähdettä ovat tämä repositorio ja npm-paketti
|
|
246
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Muualta saatu kopio ei
|
|
247
|
+
ole lisensoitu, kuka sen ikinä antoikaan. Jos näet tämän ohjelmiston myynnissä, sitä ei myy sen tekijä.
|
|
248
|
+
|
|
249
|
+
**Kaupallinen käyttö sekä oikeus muuttaa ja jakaa ovat saatavissa erillisellä kirjallisella lisenssillä.** Kysy
|
|
250
|
+
Operating Tagilta — saat selvän vastauksen ja selvän hinnan.
|
|
251
|
+
|
|
252
|
+
Tiedosto [LICENSE](LICENSE) on ratkaiseva, ja se alkaa samalla yhteenvedolla yksinkertaisella englannilla.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
Uncle Sam on itsenäinen lisäosa. Ei sidoksissa DeepSeekiin, ei heidän hyväksymänsä tai tukemansa.
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
260
|
+
Tekijä Operating Tag
|
|
261
|
+
Lisenssi CC BY-NC-ND 4.0 — vapaa käytettäväksi, ei muutettavaksi, jaettavaksi tai myytäväksi
|
|
262
|
+
```
|
package/README.fr.md
ADDED
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · **Français** · [Deutsch](README.de.md) · [Português](README.pt.md) · [Italiano](README.it.md) · [Türkçe](README.tr.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [简体中文](README.zh.md) · [Русский](README.ru.md) · [Polski](README.pl.md) · [हिन्दी](README.hi.md) · [Nederlands](README.nl.md) · [Українська](README.uk.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [ไทย](README.th.md) · [فارسی](README.fa.md) · [Ελληνικά](README.el.md) · [עברית](README.he.md) · [Čeština](README.cs.md) · [Română](README.ro.md) · [Svenska](README.sv.md) · [Dansk](README.da.md) · [Suomi](README.fi.md) · [Magyar](README.hu.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**Un fournisseur pour DeepSeek Harness qui répond à travers votre propre navigateur, sur le compte web que vous avez déjà, au lieu de l'API facturée.**
|
|
6
|
+
|
|
7
|
+
**☕ [Offrez-moi un café](https://revolut.me/operatingtag)** — écrit par une seule personne, la nuit, sans financement. Il n'y a pas d'autre modèle économique. Une étoile ou un rapport de bug vaut tout autant.
|
|
8
|
+
|
|
9
|
+
> **Ce produit est en développement actif. Attendez-vous à des bugs.**
|
|
10
|
+
>
|
|
11
|
+
> Il fonctionne, il est rapide, et il est utilisé tous les jours depuis des semaines — mais il change sans
|
|
12
|
+
> cesse, et la route navigateur dépend d'un site web qui change sans prévenir. Si quelque chose casse, une
|
|
13
|
+
> capture d'écran et le numéro de version valent mieux qu'une description. Épinglez une version si vous en
|
|
14
|
+
> dépendez.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
fournisseur deepseek-web
|
|
18
|
+
modèles deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
19
|
+
coût rien par token — il utilise l'abonnement déjà ouvert dans votre navigateur
|
|
20
|
+
état en développement — attendez-vous à des bugs
|
|
21
|
+
mesuré premier token ~1,9 s · surcoût ~0,6 s · un tour complet en ~2,5 s
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Les réponses de la route web sont signées **🔴 Uncle Sam**. Ce nom est une plaisanterie, pas une revendication :
|
|
25
|
+
il indique quelle route a répondu, et les réponses de l'API ne portent aucune signature. Vous savez toujours
|
|
26
|
+
laquelle des deux vous a répondu.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Ce que cela vous économise
|
|
31
|
+
|
|
32
|
+
L'API facture au token. Le produit web ne facture pas. Ce plugin enregistre `deepseek-web` comme fournisseur de
|
|
33
|
+
modèles et répond à chaque appel en pilotant `chat.deepseek.com` dans un vrai navigateur — la page fait le
|
|
34
|
+
travail, le navigateur garde la session, et rien n'est mesuré.
|
|
35
|
+
|
|
36
|
+
| | Route API | Route web |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| Coût | au token, indéfiniment | rien au-delà de l'abonnement |
|
|
39
|
+
| Vitesse | rapide | ~2,5 s par tour, mesuré |
|
|
40
|
+
| Appel d'outils | natif et fiable | émulé, fonctionne mais plus fragile |
|
|
41
|
+
| Dépend de | l'API | un site web qui change sans prévenir |
|
|
42
|
+
|
|
43
|
+
**Les deux routes restent installées.** Le sélecteur de modèle est l'interrupteur : vous pouvez utiliser la
|
|
44
|
+
route bon marché par défaut et recourir à l'API quand une tâche exige des outils fiables.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Installation
|
|
49
|
+
|
|
50
|
+
Uncle Sam est un **plugin DeepSeek Harness**. Il ne fait rien en dehors du harness, car il enregistre un
|
|
51
|
+
fournisseur de modèles, une route côté hôte et deux emplacements d'interface.
|
|
52
|
+
|
|
53
|
+
**Prérequis**
|
|
54
|
+
|
|
55
|
+
| | |
|
|
56
|
+
|---|---|
|
|
57
|
+
| DeepSeek Harness | toute version récente avec le gestionnaire de plugins |
|
|
58
|
+
| Navigateur | Brave recommandé, Edge utilisé automatiquement si Brave est absent |
|
|
59
|
+
| Node | 22 ou plus récent |
|
|
60
|
+
|
|
61
|
+
**Depuis npm**
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Depuis ce dépôt**
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
71
|
+
cd dsh-unclesam
|
|
72
|
+
pnpm install
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Ajoutez ensuite la ligne du paquet à votre profil pour que le harness le charge :
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
# cordis.patch.yml
|
|
79
|
+
- insert:
|
|
80
|
+
- id: dsh-unclesam
|
|
81
|
+
name: '@operatingtag/dsh-unclesam'
|
|
82
|
+
config:
|
|
83
|
+
port: 9222
|
|
84
|
+
defaultModel: deepseek-chat-search
|
|
85
|
+
autoMinimise: true
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Ou depuis un dossier :** Réglages → Plugins → installer depuis un chemin local, en pointant le dossier qui
|
|
89
|
+
contient `package.json`.
|
|
90
|
+
|
|
91
|
+
### Premier lancement
|
|
92
|
+
|
|
93
|
+
Cliquez sur **Se connecter / ouvrir le chat**. Le navigateur s'ouvre et **reste visible** jusqu'à ce que vous
|
|
94
|
+
soyez connecté à chat.deepseek.com. Ensuite il se réduit de lui-même et vous ne le verrez plus. La session vit
|
|
95
|
+
dans votre profil de navigateur : **le plugin ne stocke aucun mot de passe**, il n'y a donc rien à divulguer.
|
|
96
|
+
|
|
97
|
+
Vous devriez alors voir :
|
|
98
|
+
|
|
99
|
+
1. **Réglages → Uncle Sam** — une page avec des lignes d'état et un bouton de connexion.
|
|
100
|
+
2. **Sous la zone de saisie** — `● DeepSeek Harness` ou `● Uncle Sam`, cliquez pour basculer.
|
|
101
|
+
3. **La liste des modèles** — quatre modèles `(web)` à côté de ceux de l'API.
|
|
102
|
+
|
|
103
|
+
### Le désinstaller
|
|
104
|
+
|
|
105
|
+
Réglages → Plugins → Uncle Sam → Désinstaller. Rien n'est écrit en dehors du profil de navigateur avec lequel
|
|
106
|
+
vous vous êtes connecté.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## L'interrupteur API / web
|
|
111
|
+
|
|
112
|
+
**Le sélecteur de modèle est l'interrupteur.** Il n'y a pas de second contrôle, car un second contrôle qui
|
|
113
|
+
choisirait aussi le modèle serait deux sources de vérité pour une seule décision.
|
|
114
|
+
|
|
115
|
+
| Choisissez ce modèle | Route | DeepThink | Recherche |
|
|
116
|
+
|---|---|---|---|
|
|
117
|
+
| `DeepSeek Chat (web)` | navigateur | off | off |
|
|
118
|
+
| `DeepSeek Chat + Search (web)` | navigateur | off | **on** |
|
|
119
|
+
| `DeepSeek Reasoner (web)` | navigateur | **on** | off |
|
|
120
|
+
| `DeepSeek Reasoner + Search (web)` | navigateur | **on** | **on** |
|
|
121
|
+
| tout modèle sans `(web)` | l'API | — | — |
|
|
122
|
+
|
|
123
|
+
Un badge **WEB** ou **API** s'affiche à côté de l'étiquette du modèle pour que la route active soit visible
|
|
124
|
+
d'un coup d'œil. Quand l'étiquette n'est pas reconnue, le badge n'affiche rien plutôt que de deviner — un badge
|
|
125
|
+
faux serait pire que pas de badge.
|
|
126
|
+
|
|
127
|
+
Votre choix persiste entre les redémarrages. **DeepThink** est la passe de raisonnement ; **Recherche** lui
|
|
128
|
+
permet de lire le web en direct.
|
|
129
|
+
|
|
130
|
+
### La recherche est visible dans la conversation
|
|
131
|
+
|
|
132
|
+
Avec un modèle de recherche, un tour produit **deux blocs** — la requête utilisée, les sources trouvées, puis
|
|
133
|
+
la réponse qui s'en sert :
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
Recherche web — « Quel est un titre technologique du jour ? »
|
|
137
|
+
Sources (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
138
|
+
Liens : https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
La page n'expose pas la requête saisie en interne : la requête citée est donc le message qui a déclenché la
|
|
142
|
+
recherche. Les sources et les liens sont lus sur la page une fois la réponse stabilisée. Comme les sources
|
|
143
|
+
n'existent qu'à la fin, **les tours avec recherche s'accumulent au lieu d'être diffusés en flux** ; les tours
|
|
144
|
+
ordinaires sont toujours diffusés token par token.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Pourquoi un navigateur, et pas leur API HTTP
|
|
149
|
+
|
|
150
|
+
La route évidente — appeler l'API de `chat.deepseek.com` — a été tentée puis abandonnée. Le site fait franchir
|
|
151
|
+
deux portes à chaque message :
|
|
152
|
+
|
|
153
|
+
| Porte | Ce que cela signifie |
|
|
154
|
+
|---|---|
|
|
155
|
+
| `/api/v0/chat/create_pow_challenge` | une **preuve de travail** par message |
|
|
156
|
+
| `challenges.cloudflare.com/turnstile` | une barrière anti-robots sur l'origine |
|
|
157
|
+
|
|
158
|
+
Réimplémenter l'une ou l'autre est une bataille perdue : elles sont obscurcies, elles changent, et quand elles
|
|
159
|
+
changent la panne ressemble exactement à une panne réseau. **La page résout déjà les deux pour ses propres
|
|
160
|
+
requêtes.**
|
|
161
|
+
|
|
162
|
+
L'adaptateur ne parle donc jamais HTTP au site. Il pilote la page, et la page fait le reste. L'authentification,
|
|
163
|
+
la preuve de travail et Turnstile cessent d'être notre problème et ne peuvent pas casser indépendamment du site
|
|
164
|
+
lui-même.
|
|
165
|
+
|
|
166
|
+
**Vérifié :** un simple `HEAD` vers le site renvoie `403` ; la route navigateur renvoie des réponses.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Limites, dites honnêtement
|
|
171
|
+
|
|
172
|
+
**L'appel d'outils est émulé.** Un chat web n'a pas de canal d'outils structuré : les outils sont décrits dans
|
|
173
|
+
le message, et un appel est récupéré en analysant un objet JSON dans la réponse. Cela fonctionne — vérifié —
|
|
174
|
+
mais c'est plus fragile que l'appel natif : un modèle qui ignore la consigne répond en prose, et le harness ne
|
|
175
|
+
voit aucun outil ce tour-là. **Pour un travail agentique lourd, la route API est plus fiable.** La route web est
|
|
176
|
+
meilleure pour la conversation, les réponses longues, les sous-agents, la compaction, et tout tour où le modèle
|
|
177
|
+
doit être le modèle web.
|
|
178
|
+
|
|
179
|
+
**Il dépend d'un site web que vous ne contrôlez pas.** Quand la page change de forme, le plugin doit changer
|
|
180
|
+
avec elle. C'est l'avertissement de développement actif en haut de cette page, pas une formalité.
|
|
181
|
+
|
|
182
|
+
**Il n'est pas affilié à DeepSeek.** Il n'est ni approuvé ni soutenu par eux, et il ne vous donne aucun droit
|
|
183
|
+
sur leur service. Votre usage de ce service est régi par leurs conditions.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Configuration
|
|
188
|
+
|
|
189
|
+
`cordis.patch.yml` définit :
|
|
190
|
+
|
|
191
|
+
| clé | défaut | signification |
|
|
192
|
+
|---|---|---|
|
|
193
|
+
| `port` | `9222` | le port de débogage du navigateur |
|
|
194
|
+
| `defaultModel` | `deepseek-chat-search` | utilisé quand un appel ne nomme aucun modèle |
|
|
195
|
+
| `showBrowser` | `true` | si la fenêtre est visible pendant le travail |
|
|
196
|
+
|
|
197
|
+
Le navigateur doit avoir une session connectée à `chat.deepseek.com`. Le premier appel lance Brave sur le
|
|
198
|
+
profil **Default** si le port n'est pas déjà ouvert. Si Brave tourne déjà *sans* port de débogage, l'adaptateur
|
|
199
|
+
ne peut pas s'y attacher, et le dit clairement au lieu d'échouer en silence.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Architecture
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
index.js l'adaptateur : StreamChunk du harness ←→ moteur
|
|
207
|
+
lib/engine.mjs navigateur + page : écrire, envoyer, diffuser, stabiliser
|
|
208
|
+
lib/cdp.mjs client Chrome DevTools Protocol, sans dépendances
|
|
209
|
+
lib/prompt.mjs aplatit messages + outils en un message ; récupère les appels dans la réponse
|
|
210
|
+
lib/savings.mjs ce que la route web vous a économisé, valorisé face à l'API
|
|
211
|
+
lib/i18n.mjs 51 langues pour le panneau
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Aucune dépendance.** Node 24 fournit `WebSocket` et `fetch` en global, ce qui suffit à CDP : le flux de
|
|
215
|
+
tokens ne quitte donc jamais le processus hôte et il n'y a pas d'aller-retour IPC par delta.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Soutien
|
|
220
|
+
|
|
221
|
+
Uncle Sam existe pour que vous cessiez de payer au token. S'il vous a fait économiser de l'argent et que vous
|
|
222
|
+
aimeriez voir le suivant construit sur du matériel qui ne tombe pas en panne de mémoire à mi-chemin :
|
|
223
|
+
|
|
224
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
225
|
+
|
|
226
|
+
Une étoile sur le dépôt ou un rapport de bug utile vaut tout autant.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Licence
|
|
231
|
+
|
|
232
|
+
**CC BY-NC-ND 4.0** — Creative Commons Attribution-Pas d'Utilisation Commerciale-Pas de Modification 4.0
|
|
233
|
+
International. Copyright (c) 2026 Darren T. Weldon, publié sous le nom Operating Tag.
|
|
234
|
+
|
|
235
|
+
**Tout l'accord, en une ligne : installez-le et utilisez-le, personnellement, gratuitement. Ne le modifiez pas,
|
|
236
|
+
ne le partagez pas, ne le vendez pas, et ne l'utilisez pas dans une entreprise.**
|
|
237
|
+
|
|
238
|
+
Ce n'est pas de l'open source, et cela ne prétend pas l'être.
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
vous pouvez l'installer et l'exécuter · l'utiliser personnellement, à des fins non commerciales
|
|
242
|
+
lire le code source pour le comprendre
|
|
243
|
+
|
|
244
|
+
vous ne pouvez pas le modifier, l'adapter ou en créer une œuvre dérivée
|
|
245
|
+
pas le copier, le distribuer, le publier, le mettre en miroir
|
|
246
|
+
ou le rendre disponible à quiconque
|
|
247
|
+
pas le déposer sur un hébergement de code, un registre, un site,
|
|
248
|
+
un forum ou un chat
|
|
249
|
+
pas le vendre, le revendre, le louer, ni facturer son accès
|
|
250
|
+
pas l'intégrer à quoi que ce soit que vous fournissez à autrui
|
|
251
|
+
pas l'utiliser à des fins commerciales ni dans le cadre d'une activité
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
**Les deux seules sources légitimes sont ce dépôt et le paquet npm
|
|
255
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Une copie venant
|
|
256
|
+
d'ailleurs n'est pas sous licence, quelle que soit la personne qui l'a fournie. Si vous voyez ce logiciel en
|
|
257
|
+
vente, il n'est pas vendu par son auteur.
|
|
258
|
+
|
|
259
|
+
**L'usage commercial, ainsi que le droit de modifier et de distribuer, sont disponibles sous une licence écrite
|
|
260
|
+
séparée.** Demandez à Operating Tag : vous aurez une réponse claire et un prix clair.
|
|
261
|
+
|
|
262
|
+
Le fichier [LICENSE](LICENSE) fait foi, et il s'ouvre sur le même résumé en anglais simple.
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
Uncle Sam est un plugin indépendant. Non affilié à DeepSeek, ni approuvé ni soutenu par eux.
|
|
267
|
+
|
|
268
|
+
```
|
|
269
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
270
|
+
Auteur Operating Tag
|
|
271
|
+
Licence CC BY-NC-ND 4.0 — gratuit à l'usage, pas au changement, au partage ou à la vente
|
|
272
|
+
```
|