@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.
Files changed (83) hide show
  1. package/CHANGELOG.md +928 -0
  2. package/LICENSE +144 -0
  3. package/README.de.md +274 -0
  4. package/README.es.md +268 -0
  5. package/README.fr.md +272 -0
  6. package/README.hi.md +263 -0
  7. package/README.id.md +264 -0
  8. package/README.it.md +268 -0
  9. package/README.ja.md +263 -0
  10. package/README.ko.md +258 -0
  11. package/README.md +260 -2
  12. package/README.nl.md +266 -0
  13. package/README.pl.md +266 -0
  14. package/README.pt.md +265 -0
  15. package/README.ru.md +269 -0
  16. package/README.tr.md +265 -0
  17. package/README.uk.md +265 -0
  18. package/README.vi.md +263 -0
  19. package/README.zh.md +248 -0
  20. package/client.js +1099 -0
  21. package/cordis.patch.yml +48 -0
  22. package/icon.svg +17 -0
  23. package/index.js +1414 -0
  24. package/install.cmd +43 -0
  25. package/install.ps1 +311 -0
  26. package/lib/cdp.mjs +247 -0
  27. package/lib/engine.mjs +1412 -0
  28. package/lib/i18n.mjs +141 -0
  29. package/lib/prefs.mjs +101 -0
  30. package/lib/prompt.mjs +498 -0
  31. package/lib/savings.mjs +131 -0
  32. package/locale/ar.json +98 -0
  33. package/locale/az.json +98 -0
  34. package/locale/bg.json +98 -0
  35. package/locale/bn.json +98 -0
  36. package/locale/cs.json +98 -0
  37. package/locale/da.json +98 -0
  38. package/locale/de.json +98 -0
  39. package/locale/el.json +98 -0
  40. package/locale/en.json +98 -0
  41. package/locale/es.json +98 -0
  42. package/locale/fa.json +98 -0
  43. package/locale/fi.json +98 -0
  44. package/locale/fr.json +98 -0
  45. package/locale/he.json +98 -0
  46. package/locale/hi.json +98 -0
  47. package/locale/hr.json +98 -0
  48. package/locale/hu.json +98 -0
  49. package/locale/id.json +98 -0
  50. package/locale/it.json +98 -0
  51. package/locale/ja.json +98 -0
  52. package/locale/ka.json +98 -0
  53. package/locale/kk.json +98 -0
  54. package/locale/km.json +98 -0
  55. package/locale/ko.json +98 -0
  56. package/locale/lt.json +98 -0
  57. package/locale/mr.json +98 -0
  58. package/locale/ms.json +98 -0
  59. package/locale/my.json +98 -0
  60. package/locale/ne.json +98 -0
  61. package/locale/nl.json +98 -0
  62. package/locale/no.json +98 -0
  63. package/locale/pl.json +98 -0
  64. package/locale/pt.json +98 -0
  65. package/locale/ro.json +98 -0
  66. package/locale/ru.json +98 -0
  67. package/locale/si.json +98 -0
  68. package/locale/sk.json +98 -0
  69. package/locale/sl.json +98 -0
  70. package/locale/sr.json +98 -0
  71. package/locale/sv.json +98 -0
  72. package/locale/sw.json +98 -0
  73. package/locale/ta.json +98 -0
  74. package/locale/te.json +98 -0
  75. package/locale/th.json +98 -0
  76. package/locale/tl.json +98 -0
  77. package/locale/tr.json +98 -0
  78. package/locale/uk.json +98 -0
  79. package/locale/ur.json +98 -0
  80. package/locale/uz.json +98 -0
  81. package/locale/vi.json +98 -0
  82. package/locale/zh.json +98 -0
  83. 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
+ ```