@operatingtag/dsh-unclesam 0.0.0-stage → 1.0.1
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 +928 -0
- package/LICENSE +144 -0
- package/README.de.md +274 -0
- package/README.es.md +268 -0
- package/README.fr.md +272 -0
- package/README.hi.md +263 -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 +260 -2
- package/README.nl.md +266 -0
- package/README.pl.md +266 -0
- package/README.pt.md +265 -0
- package/README.ru.md +269 -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/client.js +1099 -0
- package/cordis.patch.yml +48 -0
- package/icon.svg +17 -0
- package/index.js +1414 -0
- package/install.cmd +43 -0
- package/install.ps1 +311 -0
- package/lib/cdp.mjs +247 -0
- package/lib/engine.mjs +1412 -0
- package/lib/i18n.mjs +141 -0
- package/lib/prefs.mjs +101 -0
- package/lib/prompt.mjs +498 -0
- package/lib/savings.mjs +131 -0
- package/locale/ar.json +98 -0
- package/locale/az.json +98 -0
- package/locale/bg.json +98 -0
- package/locale/bn.json +98 -0
- package/locale/cs.json +98 -0
- package/locale/da.json +98 -0
- package/locale/de.json +98 -0
- package/locale/el.json +98 -0
- package/locale/en.json +98 -0
- package/locale/es.json +98 -0
- package/locale/fa.json +98 -0
- package/locale/fi.json +98 -0
- package/locale/fr.json +98 -0
- package/locale/he.json +98 -0
- package/locale/hi.json +98 -0
- package/locale/hr.json +98 -0
- package/locale/hu.json +98 -0
- package/locale/id.json +98 -0
- package/locale/it.json +98 -0
- package/locale/ja.json +98 -0
- package/locale/ka.json +98 -0
- package/locale/kk.json +98 -0
- package/locale/km.json +98 -0
- package/locale/ko.json +98 -0
- package/locale/lt.json +98 -0
- package/locale/mr.json +98 -0
- package/locale/ms.json +98 -0
- package/locale/my.json +98 -0
- package/locale/ne.json +98 -0
- package/locale/nl.json +98 -0
- package/locale/no.json +98 -0
- package/locale/pl.json +98 -0
- package/locale/pt.json +98 -0
- package/locale/ro.json +98 -0
- package/locale/ru.json +98 -0
- package/locale/si.json +98 -0
- package/locale/sk.json +98 -0
- package/locale/sl.json +98 -0
- package/locale/sr.json +98 -0
- package/locale/sv.json +98 -0
- package/locale/sw.json +98 -0
- package/locale/ta.json +98 -0
- package/locale/te.json +98 -0
- package/locale/th.json +98 -0
- package/locale/tl.json +98 -0
- package/locale/tr.json +98 -0
- package/locale/uk.json +98 -0
- package/locale/ur.json +98 -0
- package/locale/uz.json +98 -0
- package/locale/vi.json +98 -0
- package/locale/zh.json +98 -0
- package/package.json +89 -4
package/README.pl.md
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
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.hi.md) · [Nederlands](README.nl.md) · [Українська](README.uk.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**Dostawca modeli dla DeepSeek Harness, który odpowiada przez Twoją własną przeglądarkę, na koncie web, które już masz — zamiast przez płatne API.**
|
|
6
|
+
|
|
7
|
+
**☕ [Postaw mi kawę](https://revolut.me/operatingtag)** — pisze to jedna osoba, nocami, bez finansowania. Nie ma innego modelu przychodu. Gwiazdka albo zgłoszenie błędu są warte tyle samo.
|
|
8
|
+
|
|
9
|
+
> **Ten produkt jest w aktywnym rozwoju. Spodziewaj się błędów.**
|
|
10
|
+
>
|
|
11
|
+
> Działa, jest szybki i od tygodni używany codziennie — ale ciągle się zmienia, a ścieżka przeglądarki zależy od
|
|
12
|
+
> strony, która zmienia się bez ostrzeżenia. Jeśli coś się zepsuje, zrzut ekranu i numer wersji są warte więcej niż
|
|
13
|
+
> opis. Przypnij wersję, jeśli na nim polegasz.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
dostawca deepseek-web
|
|
17
|
+
modele deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
koszt nic za token — korzysta z subskrypcji już otwartej w Twojej przeglądarce
|
|
19
|
+
stan w rozwoju — spodziewaj się błędów
|
|
20
|
+
zmierzone pierwszy token ~1,9 s · narzut ~0,6 s · cała tura w ~2,5 s
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Odpowiedzi ze ścieżki web są podpisane **🔴 Uncle Sam**. Ta nazwa to żart, nie twierdzenie: oznacza, która ścieżka
|
|
24
|
+
odpowiedziała, a odpowiedzi API nie mają żadnego podpisu. Zawsze wiesz, kto Ci odpowiedział.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Co oszczędza
|
|
29
|
+
|
|
30
|
+
API liczy opłatę za token. Produkt web nie. Ta wtyczka rejestruje `deepseek-web` jako dostawcę modeli i odpowiada
|
|
31
|
+
na każde wywołanie, sterując `chat.deepseek.com` w prawdziwej przeglądarce — pracę wykonuje strona, sesję trzyma
|
|
32
|
+
przeglądarka i nic nie jest mierzone.
|
|
33
|
+
|
|
34
|
+
| | Ścieżka API | Ścieżka web |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Koszt | za token, zawsze | nic ponad subskrypcję |
|
|
37
|
+
| Szybkość | szybko | ~2,5 s na turę, zmierzone |
|
|
38
|
+
| Wywołanie narzędzi | natywne i pewne | emulowane, działa, ale słabsze |
|
|
39
|
+
| Zależy od | API | strony, która zmienia się bez ostrzeżenia |
|
|
40
|
+
|
|
41
|
+
**Obie ścieżki pozostają zainstalowane.** Przełącznikiem jest wybór modelu: domyślnie tania ścieżka, a po API
|
|
42
|
+
sięgasz, gdy zadanie wymaga pewnych narzędzi.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Instalacja
|
|
47
|
+
|
|
48
|
+
Uncle Sam to **wtyczka DeepSeek Harness**. Poza harnessem nic nie robi, bo rejestruje dostawcę modeli, trasę na
|
|
49
|
+
hoście i dwa miejsca w interfejsie.
|
|
50
|
+
|
|
51
|
+
**Wymagania**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | dowolna nowsza kompilacja z menedżerem wtyczek |
|
|
56
|
+
| Przeglądarka | zalecany Brave; Edge używany automatycznie, gdy Brave jest niedostępny |
|
|
57
|
+
| Node | 22 lub nowszy |
|
|
58
|
+
|
|
59
|
+
**Z npm**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Z tego repozytorium**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Następnie dodaj wiersz pakietu do swojego profilu, żeby harness go załadował:
|
|
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
|
+
**Albo z folderu:** Ustawienia → Wtyczki → zainstaluj ze ścieżki lokalnej, wskazując folder z `package.json`.
|
|
87
|
+
|
|
88
|
+
### Pierwsze uruchomienie
|
|
89
|
+
|
|
90
|
+
Kliknij **Zaloguj się / otwórz czat**. Przeglądarka otworzy się i **pozostanie widoczna**, dopóki nie zalogujesz
|
|
91
|
+
się na chat.deepseek.com. Potem sama się zminimalizuje i już jej nie zobaczysz. Sesja żyje w profilu
|
|
92
|
+
przeglądarki, więc **wtyczka nie przechowuje żadnego hasła** — nie ma czego ujawnić.
|
|
93
|
+
|
|
94
|
+
Powinieneś wtedy zobaczyć:
|
|
95
|
+
|
|
96
|
+
1. **Ustawienia → Uncle Sam** — stronę z wierszami stanu i przyciskiem logowania.
|
|
97
|
+
2. **Pod polem wiadomości** — `● DeepSeek Harness` albo `● Uncle Sam`, kliknij, by przełączyć.
|
|
98
|
+
3. **Listę modeli** — cztery modele `(web)` obok modeli API.
|
|
99
|
+
|
|
100
|
+
### Usuwanie
|
|
101
|
+
|
|
102
|
+
Ustawienia → Wtyczki → Uncle Sam → Odinstaluj. Poza profilem przeglądarki, w którym się zalogowałeś, nic nie jest
|
|
103
|
+
zapisywane.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Przełącznik API / web
|
|
108
|
+
|
|
109
|
+
**Przełącznikiem jest wybór modelu.** Nie ma drugiego elementu sterującego, bo drugi element, który też wybierałby
|
|
110
|
+
model, byłyby dwoma źródłami prawdy dla jednej decyzji.
|
|
111
|
+
|
|
112
|
+
| Wybierz ten model | Ścieżka | DeepThink | Wyszukiwanie |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| `DeepSeek Chat (web)` | przeglądarka | wył. | wył. |
|
|
115
|
+
| `DeepSeek Chat + Search (web)` | przeglądarka | wył. | **wł.** |
|
|
116
|
+
| `DeepSeek Reasoner (web)` | przeglądarka | **wł.** | wył. |
|
|
117
|
+
| `DeepSeek Reasoner + Search (web)` | przeglądarka | **wł.** | **wł.** |
|
|
118
|
+
| dowolny model bez `(web)` | API | — | — |
|
|
119
|
+
|
|
120
|
+
Obok nazwy modelu pojawia się plakietka **WEB** lub **API**, więc aktywna ścieżka jest widoczna na pierwszy rzut
|
|
121
|
+
oka. Gdy nazwa nie jest rozpoznana, plakietka nie pokazuje niczego zamiast zgadywać — błędna plakietka byłaby
|
|
122
|
+
gorsza niż żadna.
|
|
123
|
+
|
|
124
|
+
Wybór przetrwa ponowne uruchomienie. **DeepThink** to przebieg rozumowania; **Wyszukiwanie** pozwala mu czytać
|
|
125
|
+
żywy internet.
|
|
126
|
+
|
|
127
|
+
### Wyszukiwanie widać w rozmowie
|
|
128
|
+
|
|
129
|
+
Z modelem wyszukiwania jedna tura daje **dwa bloki** — zapytanie, którego użył, znalezione źródła, a potem
|
|
130
|
+
odpowiedź, która z nich skorzystała:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Wyszukiwanie w sieci — „Jaki jest dzisiejszy nagłówek technologiczny?”
|
|
134
|
+
Źródła (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
135
|
+
Linki: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Strona nie ujawnia zapytania wpisanego wewnętrznie, więc cytowane zapytanie to wiadomość, która uruchomiła
|
|
139
|
+
wyszukiwanie. Źródła i linki są odczytywane ze strony po ustabilizowaniu się odpowiedzi. Ponieważ źródła istnieją
|
|
140
|
+
dopiero na końcu, **tury z wyszukiwaniem są buforowane zamiast strumieniowane**; zwykłe tury nadal płyną token po
|
|
141
|
+
tokenie.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Dlaczego przeglądarka, a nie ich HTTP API
|
|
146
|
+
|
|
147
|
+
Oczywista droga — wywołanie własnego API `chat.deepseek.com` — została wypróbowana i porzucona. Serwis
|
|
148
|
+
przepuszcza każdą wiadomość przez dwie bramy:
|
|
149
|
+
|
|
150
|
+
| Brama | Co to znaczy |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `/api/v0/chat/create_pow_challenge` | **dowód pracy** na każdą wiadomość |
|
|
153
|
+
| `challenges.cloudflare.com/turnstile` | bariera antybotowa na originie |
|
|
154
|
+
|
|
155
|
+
Ponowne zaimplementowanie którejkolwiek to przegrana gra: są zaciemnione, zmieniają się, a gdy się zmieniają,
|
|
156
|
+
awaria wygląda dokładnie jak awaria sieci. **Strona już rozwiązu-je obie na potrzeby własnych żądań.**
|
|
157
|
+
|
|
158
|
+
Adapter nigdy więc nie rozmawia z serwisem po HTTP. Steruje stroną, a reszta należy do strony. Uwierzytelnianie,
|
|
159
|
+
dowód pracy i Turnstile przestają być naszym problemem i nie mogą zepsuć się niezależnie od samego serwisu.
|
|
160
|
+
|
|
161
|
+
**Sprawdzone:** zwykły `HEAD` do serwisu zwraca `403`; ścieżka przez przeglądarkę zwraca odpowiedzi.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Ograniczenia, powiedziane uczciwie
|
|
166
|
+
|
|
167
|
+
**Wywołanie narzędzi jest emulowane.** Czat web nie ma strukturalnego kanału narzędzi: narzędzia opisuje się w
|
|
168
|
+
prompcie, a wywołanie odzyskuje się, parsując obiekt JSON z odpowiedzi. To działa — sprawdzone — ale jest słabsze
|
|
169
|
+
niż natywne wywołanie: model, który zignoruje instrukcję, odpowiada prozą, a harness nie widzi w tej turze żadnego
|
|
170
|
+
użycia narzędzi. **Do ciężkiej pracy agentowej ścieżka API jest pewniejsza.** Ścieżka web najlepiej nadaje się do
|
|
171
|
+
rozmowy, długich odpowiedzi, podagentów, kompakcji i każdej tury, w której model musi być modelem web.
|
|
172
|
+
|
|
173
|
+
**Zależy od strony, której nie kontrolujesz.** Gdy strona zmienia kształt, wtyczka musi zmienić się razem z nią.
|
|
174
|
+
To jest ostrzeżenie o aktywnym rozwoju na górze tej strony, nie formalność.
|
|
175
|
+
|
|
176
|
+
**Nie jest powiązana z DeepSeek.** Nie jest przez nich firmowana ani wspierana i nie daje Ci żadnych praw do ich
|
|
177
|
+
usługi. Twoje korzystanie z tej usługi regulują ich warunki.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Konfiguracja
|
|
182
|
+
|
|
183
|
+
`cordis.patch.yml` ustawia:
|
|
184
|
+
|
|
185
|
+
| klucz | domyślnie | znaczenie |
|
|
186
|
+
|---|---|---|
|
|
187
|
+
| `port` | `9222` | port debugowania przeglądarki |
|
|
188
|
+
| `defaultModel` | `deepseek-chat-search` | używany, gdy wywołanie nie podaje modelu |
|
|
189
|
+
| `showBrowser` | `true` | czy okno jest widoczne podczas pracy |
|
|
190
|
+
|
|
191
|
+
Przeglądarka musi mieć zalogowaną sesję `chat.deepseek.com`. Pierwsze wywołanie uruchamia Brave na profilu
|
|
192
|
+
**Default**, jeśli port nie jest jeszcze otwarty. Jeśli Brave już działa *bez* portu debugowania, adapter nie może
|
|
193
|
+
się podłączyć i mówi to wprost, zamiast cicho zawieść.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Budowa
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
index.js adapter: StreamChunk harnessu ←→ silnik
|
|
201
|
+
lib/engine.mjs przeglądarka + strona: pisz, wyślij, strumieniuj, ustabilizuj
|
|
202
|
+
lib/cdp.mjs klient Chrome DevTools Protocol, zero zależności
|
|
203
|
+
lib/prompt.mjs spłaszcza wiadomości + narzędzia do jednej wiadomości; odzyskuje wywołania z odpowiedzi
|
|
204
|
+
lib/savings.mjs ile zaoszczędziła ścieżka web, wycenione wobec API
|
|
205
|
+
lib/i18n.mjs 51 języków panelu
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Żadnych zależności.** Node 24 ma globalne `WebSocket` i `fetch`, a CDP niczego więcej nie potrzebuje — strumień
|
|
209
|
+
tokenów nigdy nie opuszcza procesu hosta i nie ma skoku IPC na każdą deltę.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Wsparcie
|
|
214
|
+
|
|
215
|
+
Uncle Sam istnieje po to, żebyś przestał płacić za token. Jeśli oszczędził Ci pieniądze i chciałbyś zobaczyć
|
|
216
|
+
następny na sprzęcie, któremu nie kończy się pamięć w połowie drogi:
|
|
217
|
+
|
|
218
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
219
|
+
|
|
220
|
+
Gwiazdka w repozytorium albo użyteczne zgłoszenie błędu są warte tyle samo.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Licencja
|
|
225
|
+
|
|
226
|
+
**CC BY-NC-ND 4.0** — Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 4.0
|
|
227
|
+
Międzynarodowe. Copyright (c) 2026 Darren T. Weldon, opublikowane pod nazwą Operating Tag.
|
|
228
|
+
|
|
229
|
+
**Cała umowa w jednym zdaniu: zainstaluj i używaj osobiście, za darmo. Nie zmieniaj, nie udostępniaj, nie
|
|
230
|
+
sprzedawaj i nie używaj w firmie.**
|
|
231
|
+
|
|
232
|
+
To nie jest open source i nie udaje, że jest.
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
możesz zainstalować i uruchomić · używać osobiście, niekomercyjnie
|
|
236
|
+
czytać źródło, żeby je zrozumieć
|
|
237
|
+
|
|
238
|
+
nie możesz modyfikować, adaptować ani tworzyć utworu zależnego
|
|
239
|
+
kopiować, rozpowszechniać, publikować, tworzyć kopii lustrzanej
|
|
240
|
+
ani udostępniać komukolwiek
|
|
241
|
+
wgrywać na jakikolwiek hosting kodu, rejestr, stronę, forum lub czat
|
|
242
|
+
sprzedawać, odsprzedawać, wynajmować ani pobierać opłat za niego
|
|
243
|
+
lub za dostęp do niego
|
|
244
|
+
włączać do czegokolwiek, co przekazujesz innej osobie
|
|
245
|
+
używać w jakimkolwiek celu komercyjnym lub w ramach działalności gospodarczej
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Jedyne dwa legalne źródła to to repozytorium i pakiet npm
|
|
249
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Kopia z
|
|
250
|
+
jakiegokolwiek innego miejsca nie jest licencjonowana, kimkolwiek została dostarczona. Jeśli widzisz to
|
|
251
|
+
oprogramowanie na sprzedaż, nie sprzedaje go autor.
|
|
252
|
+
|
|
253
|
+
**Użycie komercyjne oraz prawo do modyfikowania i rozpowszechniania są dostępne na podstawie odrębnej pisemnej
|
|
254
|
+
licencji.** Zapytaj Operating Tag — dostaniesz jasną odpowiedź i jasną cenę.
|
|
255
|
+
|
|
256
|
+
Wiążący jest plik [LICENSE](LICENSE), a otwiera się tym samym podsumowaniem prostym angielskim.
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
Uncle Sam to niezależna wtyczka. Niepowiązana z DeepSeek, nie firmowana ani nie wspierana przez nich.
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
@operatingtag/dsh-unclesam v1.0.1
|
|
264
|
+
Autor Operating Tag
|
|
265
|
+
Licencja CC BY-NC-ND 4.0 — wolno używać, nie wolno zmieniać, udostępniać ani sprzedawać
|
|
266
|
+
```
|
package/README.pt.md
ADDED
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · **Português** · [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)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**Um provedor para o DeepSeek Harness que responde pelo seu próprio navegador, na conta web que você já tem, em vez da API cobrada por token.**
|
|
6
|
+
|
|
7
|
+
**☕ [Pague-me um café](https://revolut.me/operatingtag)** — escrito por uma pessoa, à noite, sem financiamento. Não há outro modelo de receita. Uma estrela ou um relato de bug vale o mesmo.
|
|
8
|
+
|
|
9
|
+
> **Este produto está em desenvolvimento ativo. Espere bugs.**
|
|
10
|
+
>
|
|
11
|
+
> Funciona, é rápido e roda diariamente há semanas — mas muda o tempo todo, e a rota do navegador depende de um
|
|
12
|
+
> site que muda sem avisar. Se algo quebrar, uma captura de tela e o número da versão valem mais do que uma
|
|
13
|
+
> descrição. Fixe uma versão se você depender dele.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
provedor deepseek-web
|
|
17
|
+
modelos deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
custo nada por token — usa a assinatura que já está aberta no seu navegador
|
|
19
|
+
estado em desenvolvimento — espere bugs
|
|
20
|
+
medido primeiro token ~1,9 s · sobrecarga ~0,6 s · um turno completo em ~2,5 s
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
As respostas da rota web vêm assinadas com **🔴 Uncle Sam**. O nome é uma piada, não uma afirmação: ele marca
|
|
24
|
+
qual rota respondeu, e as respostas da API não levam assinatura nenhuma. Você sempre sabe qual das duas falou
|
|
25
|
+
com você.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## O que ele economiza
|
|
30
|
+
|
|
31
|
+
A API cobra por token. O produto web não. Este plugin registra `deepseek-web` como provedor de modelos e responde
|
|
32
|
+
cada chamada conduzindo o `chat.deepseek.com` em um navegador de verdade — a página faz o trabalho, o navegador
|
|
33
|
+
guarda a sessão, e nada é medido.
|
|
34
|
+
|
|
35
|
+
| | Rota API | Rota web |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| Custo | por token, para sempre | nada além da assinatura |
|
|
38
|
+
| Velocidade | rápida | ~2,5 s por turno, medido |
|
|
39
|
+
| Chamada de ferramentas | nativa e confiável | emulada, funciona mas é mais frágil |
|
|
40
|
+
| Depende de | a API | um site que muda sem avisar |
|
|
41
|
+
|
|
42
|
+
**As duas rotas ficam instaladas.** O seletor de modelo é o interruptor: use a rota barata por padrão e recorra à
|
|
43
|
+
API quando a tarefa exigir ferramentas confiáveis.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Instalação
|
|
48
|
+
|
|
49
|
+
O Uncle Sam é um **plugin do DeepSeek Harness**. Fora do harness ele não faz nada, porque registra um provedor de
|
|
50
|
+
modelos, uma rota no host e dois espaços de interface.
|
|
51
|
+
|
|
52
|
+
**Requisitos**
|
|
53
|
+
|
|
54
|
+
| | |
|
|
55
|
+
|---|---|
|
|
56
|
+
| DeepSeek Harness | qualquer versão recente com gerenciador de plugins |
|
|
57
|
+
| Navegador | Brave recomendado; o Edge é usado automaticamente se o Brave não estiver presente |
|
|
58
|
+
| Node | 22 ou mais novo |
|
|
59
|
+
|
|
60
|
+
**Pelo npm**
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Por este repositório**
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
70
|
+
cd dsh-unclesam
|
|
71
|
+
pnpm install
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Depois acrescente a linha do pacote ao seu perfil para o harness carregá-lo:
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
# cordis.patch.yml
|
|
78
|
+
- insert:
|
|
79
|
+
- id: dsh-unclesam
|
|
80
|
+
name: '@operatingtag/dsh-unclesam'
|
|
81
|
+
config:
|
|
82
|
+
port: 9222
|
|
83
|
+
defaultModel: deepseek-chat-search
|
|
84
|
+
autoMinimise: true
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Ou por uma pasta:** Configurações → Plugins → instalar de um caminho local, apontando para a pasta que tem o
|
|
88
|
+
`package.json`.
|
|
89
|
+
|
|
90
|
+
### Primeira execução
|
|
91
|
+
|
|
92
|
+
Clique em **Entrar / abrir o chat**. O navegador abre e **fica visível** até você entrar no chat.deepseek.com.
|
|
93
|
+
Depois disso ele se minimiza sozinho e você não o vê mais. A sessão fica no seu perfil do navegador, então **o
|
|
94
|
+
plugin não guarda nenhuma senha** — não há nada para vazar.
|
|
95
|
+
|
|
96
|
+
Você deve ver então:
|
|
97
|
+
|
|
98
|
+
1. **Configurações → Uncle Sam** — uma página com linhas de status e um botão de login.
|
|
99
|
+
2. **Abaixo da caixa de mensagem** — `● DeepSeek Harness` ou `● Uncle Sam`, clique para alternar.
|
|
100
|
+
3. **A lista de modelos** — quatro modelos `(web)` ao lado dos da API.
|
|
101
|
+
|
|
102
|
+
### Removê-lo
|
|
103
|
+
|
|
104
|
+
Configurações → Plugins → Uncle Sam → Desinstalar. Nada é gravado fora do perfil de navegador em que você entrou.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## O interruptor API / web
|
|
109
|
+
|
|
110
|
+
**O seletor de modelo é o interruptor.** Não há um segundo controle, porque um segundo controle que também
|
|
111
|
+
escolhesse o modelo seriam duas fontes de verdade para uma única decisão.
|
|
112
|
+
|
|
113
|
+
| Escolha este modelo | Rota | DeepThink | Busca |
|
|
114
|
+
|---|---|---|---|
|
|
115
|
+
| `DeepSeek Chat (web)` | navegador | desligado | desligado |
|
|
116
|
+
| `DeepSeek Chat + Search (web)` | navegador | desligado | **ligado** |
|
|
117
|
+
| `DeepSeek Reasoner (web)` | navegador | **ligado** | desligado |
|
|
118
|
+
| `DeepSeek Reasoner + Search (web)` | navegador | **ligado** | **ligado** |
|
|
119
|
+
| qualquer modelo sem `(web)` | a API | — | — |
|
|
120
|
+
|
|
121
|
+
Um selo **WEB** ou **API** aparece ao lado do nome do modelo para a rota ativa ficar visível de relance. Quando o
|
|
122
|
+
nome não é reconhecido, o selo não mostra nada em vez de adivinhar — um selo errado seria pior que nenhum.
|
|
123
|
+
|
|
124
|
+
Sua escolha permanece entre reinícios. **DeepThink** é a passada de raciocínio; **Busca** permite ler a web ao
|
|
125
|
+
vivo.
|
|
126
|
+
|
|
127
|
+
### A busca aparece na conversa
|
|
128
|
+
|
|
129
|
+
Com um modelo de busca, um turno produz **dois blocos** — a consulta usada, as fontes encontradas e então a
|
|
130
|
+
resposta que se serviu delas:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Busca na web — "Qual é uma manchete de tecnologia de hoje?"
|
|
134
|
+
Fontes (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
135
|
+
Links: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
A página não expõe a consulta que digitou internamente, então a consulta citada é a mensagem que disparou a
|
|
139
|
+
busca. As fontes e os links são lidos da página quando a resposta se assenta. Como as fontes só existem no fim,
|
|
140
|
+
**turnos com busca acumulam em vez de transmitir em fluxo**; turnos comuns continuam transmitindo token a token.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Por que um navegador, e não a API HTTP deles
|
|
145
|
+
|
|
146
|
+
A rota óbvia — chamar a API própria do `chat.deepseek.com` — foi tentada e abandonada. O site faz cada mensagem
|
|
147
|
+
passar por dois portões:
|
|
148
|
+
|
|
149
|
+
| Portão | O que significa |
|
|
150
|
+
|---|---|
|
|
151
|
+
| `/api/v0/chat/create_pow_challenge` | um desafio de **prova de trabalho** por mensagem |
|
|
152
|
+
| `challenges.cloudflare.com/turnstile` | uma barreira anti-bot na origem |
|
|
153
|
+
|
|
154
|
+
Reimplementar qualquer um dos dois é jogo perdido: são ofuscados, mudam, e quando mudam a falha parece
|
|
155
|
+
exatamente uma falha de rede. **A página já resolve os dois para as próprias requisições.**
|
|
156
|
+
|
|
157
|
+
Então o adaptador nunca fala HTTP com o site. Ele conduz a página, e a página faz o resto. Autenticação, prova de
|
|
158
|
+
trabalho e Turnstile deixam de ser problema nosso e não podem quebrar independentemente do próprio site.
|
|
159
|
+
|
|
160
|
+
**Verificado:** um `HEAD` simples para o site devolve `403`; a rota do navegador devolve respostas.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Limites, ditos com honestidade
|
|
165
|
+
|
|
166
|
+
**O uso de ferramentas é emulado.** Um chat web não tem canal estruturado de ferramentas: elas são descritas no
|
|
167
|
+
prompt, e uma chamada é recuperada analisando um objeto JSON na resposta. Funciona — verificado —, mas é mais
|
|
168
|
+
frágil que a chamada nativa: um modelo que ignora a instrução responde em prosa e o harness não vê ferramenta
|
|
169
|
+
naquele turno. **Para trabalho agêntico pesado, a rota API é mais confiável.** A rota web é melhor para conversa,
|
|
170
|
+
respostas longas, subagentes, compactação e qualquer turno em que o modelo precise ser o modelo web.
|
|
171
|
+
|
|
172
|
+
**Depende de um site que você não controla.** Quando a página muda de forma, o plugin tem que mudar junto. É o
|
|
173
|
+
aviso de desenvolvimento ativo no topo desta página, não uma formalidade.
|
|
174
|
+
|
|
175
|
+
**Não é afiliado ao DeepSeek.** Não é endossado nem apoiado por eles, e não dá a você nenhum direito sobre o
|
|
176
|
+
serviço deles. Seu uso desse serviço é regido pelos termos deles.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Configuração
|
|
181
|
+
|
|
182
|
+
O `cordis.patch.yml` define:
|
|
183
|
+
|
|
184
|
+
| chave | padrão | significado |
|
|
185
|
+
|---|---|---|
|
|
186
|
+
| `port` | `9222` | a porta de depuração do navegador |
|
|
187
|
+
| `defaultModel` | `deepseek-chat-search` | usado quando a chamada não nomeia um modelo |
|
|
188
|
+
| `showBrowser` | `true` | se a janela é visível enquanto trabalha |
|
|
189
|
+
|
|
190
|
+
O navegador precisa ter uma sessão aberta no `chat.deepseek.com`. A primeira chamada abre o Brave no perfil
|
|
191
|
+
**Default** se a porta ainda não estiver aberta. Se o Brave já estiver rodando *sem* porta de depuração, o
|
|
192
|
+
adaptador não consegue se conectar e diz isso claramente em vez de falhar em silêncio.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Arquitetura
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
index.js o adaptador: StreamChunk do harness ←→ motor
|
|
200
|
+
lib/engine.mjs navegador + página: digitar, enviar, transmitir, assentar
|
|
201
|
+
lib/cdp.mjs cliente do Chrome DevTools Protocol, sem dependências
|
|
202
|
+
lib/prompt.mjs achata mensagens + ferramentas em uma mensagem; recupera chamadas da resposta
|
|
203
|
+
lib/savings.mjs o que a rota web economizou, precificado contra a API
|
|
204
|
+
lib/i18n.mjs 51 idiomas para o painel
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Sem dependências.** O Node 24 traz `WebSocket` e `fetch` globais, que é tudo de que o CDP precisa: o fluxo de
|
|
208
|
+
tokens nunca sai do processo host e não há salto de IPC por delta.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Apoio
|
|
213
|
+
|
|
214
|
+
O Uncle Sam existe para você parar de pagar por token. Se ele economizou seu dinheiro e você gostaria de ver o
|
|
215
|
+
próximo construído em hardware que não fica sem memória no meio do caminho:
|
|
216
|
+
|
|
217
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
218
|
+
|
|
219
|
+
Uma estrela no repositório ou um relato de bug útil vale o mesmo.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Licença
|
|
224
|
+
|
|
225
|
+
**CC BY-NC-ND 4.0** — Creative Commons Atribuição-NãoComercial-SemDerivações 4.0 Internacional.
|
|
226
|
+
Copyright (c) 2026 Darren T. Weldon, publicado sob o nome Operating Tag.
|
|
227
|
+
|
|
228
|
+
**O acordo inteiro em uma linha: instale e use, pessoalmente, de graça. Não altere, não compartilhe, não venda e
|
|
229
|
+
não use numa empresa.**
|
|
230
|
+
|
|
231
|
+
Isso não é software livre, e não finge ser.
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
você pode instalá-lo e executá-lo · usá-lo pessoalmente, sem fins comerciais
|
|
235
|
+
ler o código-fonte para entendê-lo
|
|
236
|
+
|
|
237
|
+
você não pode modificá-lo, adaptá-lo ou criar uma obra derivada
|
|
238
|
+
copiá-lo, distribuí-lo, publicá-lo, espelhá-lo ou
|
|
239
|
+
disponibilizá-lo a qualquer pessoa
|
|
240
|
+
enviá-lo a qualquer hospedagem de código, registro, site,
|
|
241
|
+
fórum ou chat
|
|
242
|
+
vendê-lo, revendê-lo, alugá-lo ou cobrar por ele ou pelo acesso a ele
|
|
243
|
+
incluí-lo em qualquer coisa que você entregue a outra pessoa
|
|
244
|
+
usá-lo para qualquer fim comercial ou no exercício de uma atividade empresarial
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**As duas únicas fontes legítimas são este repositório e o pacote npm
|
|
248
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Uma cópia vinda de
|
|
249
|
+
qualquer outro lugar não é licenciada, seja quem for que a forneceu. Se você vir este software à venda, não é o
|
|
250
|
+
autor que está vendendo.
|
|
251
|
+
|
|
252
|
+
**O uso comercial, e o direito de modificar e distribuir, estão disponíveis sob uma licença escrita separada.**
|
|
253
|
+
Pergunte ao Operating Tag e você terá uma resposta clara e um preço claro.
|
|
254
|
+
|
|
255
|
+
O arquivo [LICENSE](LICENSE) é o que vale, e ele abre com o mesmo resumo em inglês simples.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
O Uncle Sam é um plugin independente. Não afiliado ao DeepSeek, nem endossado nem apoiado por ele.
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
@operatingtag/dsh-unclesam v1.0.1
|
|
263
|
+
Autor Operating Tag
|
|
264
|
+
Licença CC BY-NC-ND 4.0 — livre para usar, não para alterar, compartilhar ou vender
|
|
265
|
+
```
|