@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.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) · [ไทย](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
|
+
**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.1.0
|
|
263
|
+
Autor Operating Tag
|
|
264
|
+
Licença CC BY-NC-ND 4.0 — livre para usar, não para alterar, compartilhar ou vender
|
|
265
|
+
```
|
package/README.ro.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ă** · [Svenska](README.sv.md) · [Dansk](README.da.md) · [Suomi](README.fi.md) · [Magyar](README.hu.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**Un furnizor pentru DeepSeek Harness care răspunde prin propriul tău browser, pe contul web pe care îl ai deja, în locul API-ului cu plată.**
|
|
6
|
+
|
|
7
|
+
**☕ [Cumpără-mi o cafea](https://revolut.me/operatingtag)** — scris de o singură persoană, noaptea, fără finanțare. Nu există alt model de venit. O stea sau un raport de eroare util valorează la fel.
|
|
8
|
+
|
|
9
|
+
> **Acest produs este în dezvoltare activă. Așteaptă-te la erori.**
|
|
10
|
+
>
|
|
11
|
+
> Funcționează, este rapid și este folosit zilnic de săptămâni — dar se schimbă continuu, iar ruta prin browser
|
|
12
|
+
> depinde de un site care se schimbă fără anunț. Dacă se strică ceva, o captură de ecran și numărul versiunii valorează
|
|
13
|
+
> mai mult decât o descriere. Fixează o versiune dacă depinzi de el.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
furnizor deepseek-web
|
|
17
|
+
modele deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
cost nimic pe token — folosește abonamentul deja deschis în browserul tău
|
|
19
|
+
stare în dezvoltare — așteaptă-te la erori
|
|
20
|
+
măsurat primul token ~1,9 s · suprasarcină ~0,6 s · un tur complet în ~2,5 s
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Răspunsurile de pe ruta web sunt semnate **🔴 Uncle Sam**. Numele este o glumă, nu o afirmație: marchează care rută a
|
|
24
|
+
răspuns, iar răspunsurile API nu au nicio semnătură. Știi mereu cine ți-a răspuns.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Ce îți economisește
|
|
29
|
+
|
|
30
|
+
API-ul taxează pe token. Produsul web nu. Acest plugin înregistrează `deepseek-web` ca furnizor de modele și răspunde
|
|
31
|
+
la fiecare apel conducând `chat.deepseek.com` într-un browser real — pagina face treaba, browserul ține sesiunea și
|
|
32
|
+
nimic nu este măsurat.
|
|
33
|
+
|
|
34
|
+
| | Ruta API | Ruta web |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Cost | pe token, pentru totdeauna | nimic peste abonament |
|
|
37
|
+
| Viteză | rapidă | ~2,5 s pe tur, măsurat |
|
|
38
|
+
| Apel de unelte | nativ și de încredere | emulat, funcționează dar mai slab |
|
|
39
|
+
| Depinde de | API | un site care se schimbă fără anunț |
|
|
40
|
+
|
|
41
|
+
**Ambele rute rămân instalate.** Selectorul de model este întrerupătorul: folosește ruta ieftină implicit și recurge la
|
|
42
|
+
API când o sarcină are nevoie de unelte de încredere.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Instalare
|
|
47
|
+
|
|
48
|
+
Uncle Sam este un **plugin DeepSeek Harness**. În afara harness-ului nu face nimic, pentru că înregistrează un furnizor
|
|
49
|
+
de modele, o rută pe host și două locuri în interfață.
|
|
50
|
+
|
|
51
|
+
**Cerințe**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | orice versiune recentă cu manager de pluginuri |
|
|
56
|
+
| Browser | Brave recomandat; Edge este folosit automat când Brave lipsește |
|
|
57
|
+
| Node | 22 sau mai nou |
|
|
58
|
+
|
|
59
|
+
**Din npm**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Din acest depozit**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Apoi adaugă linia pachetului în profilul tău ca harness-ul să îl încarce:
|
|
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
|
+
**Sau dintr-un dosar:** Setări → Pluginuri → instalează dintr-o cale locală, indicând dosarul cu `package.json`.
|
|
87
|
+
|
|
88
|
+
### Prima rulare
|
|
89
|
+
|
|
90
|
+
Apasă **Autentificare / deschide chatul**. Browserul se deschide și **rămâne vizibil** până te autentifici pe
|
|
91
|
+
chat.deepseek.com. După aceea se minimalizează singur și nu îl vei mai vedea. Sesiunea trăiește în profilul
|
|
92
|
+
browserului, deci **pluginul nu stochează nicio parolă** — nu e nimic de scurs.
|
|
93
|
+
|
|
94
|
+
Ar trebui să vezi:
|
|
95
|
+
|
|
96
|
+
1. **Setări → Uncle Sam** — o pagină cu rânduri de stare și un buton de autentificare.
|
|
97
|
+
2. **Sub caseta de mesaj** — `● DeepSeek Harness` sau `● Uncle Sam`, click pentru a comuta.
|
|
98
|
+
3. **Lista de modele** — patru modele `(web)` lângă cele ale API-ului.
|
|
99
|
+
|
|
100
|
+
### Dezinstalare
|
|
101
|
+
|
|
102
|
+
Setări → Pluginuri → Uncle Sam → Dezinstalează. Nimic nu este scris în afara profilului de browser cu care te-ai
|
|
103
|
+
autentificat.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Întrerupătorul API / web
|
|
108
|
+
|
|
109
|
+
**Selectorul de model este întrerupătorul.** Nu există un al doilea control, pentru că un al doilea control care ar
|
|
110
|
+
alege și modelul ar fi două surse de adevăr pentru o singură decizie.
|
|
111
|
+
|
|
112
|
+
| Alege acest model | Ruta | DeepThink | Căutare |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| `DeepSeek Chat (web)` | browser | oprit | oprit |
|
|
115
|
+
| `DeepSeek Chat + Search (web)` | browser | oprit | **pornit** |
|
|
116
|
+
| `DeepSeek Reasoner (web)` | browser | **pornit** | oprit |
|
|
117
|
+
| `DeepSeek Reasoner + Search (web)` | browser | **pornit** | **pornit** |
|
|
118
|
+
| orice model fără `(web)` | API | — | — |
|
|
119
|
+
|
|
120
|
+
Un ecuson **WEB** sau **API** apare lângă numele modelului, ca ruta activă să fie vizibilă dintr-o privire. Când numele
|
|
121
|
+
nu este recunoscut, ecusonul nu arată nimic în loc să ghicească — un ecuson greșit ar fi mai rău decât niciunul.
|
|
122
|
+
|
|
123
|
+
Alegerea ta persistă între reporniri. **DeepThink** este trecerea de raționament; **Căutarea** îi permite să citească
|
|
124
|
+
webul în direct.
|
|
125
|
+
|
|
126
|
+
### Căutarea se vede în conversație
|
|
127
|
+
|
|
128
|
+
Cu un model de căutare, un tur produce **două blocuri** — interogarea cu care a căutat, sursele găsite și apoi
|
|
129
|
+
răspunsul care le-a folosit:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Căutare web — „Care este un titlu tehnologic de azi?”
|
|
133
|
+
Surse (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
134
|
+
Linkuri: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Pagina nu expune interogarea tastată intern, deci interogarea citată este mesajul care a declanșat căutarea. Sursele și
|
|
138
|
+
linkurile sunt citite de pe pagină după ce răspunsul se așază. Fiindcă sursele există doar la final, **tururile cu
|
|
139
|
+
căutare se acumulează în loc să fie transmise în flux**; tururile obișnuite încă transmit token cu token.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## De ce un browser și nu HTTP API-ul lor
|
|
144
|
+
|
|
145
|
+
Calea evidentă — apelarea API-ului propriu al `chat.deepseek.com` — a fost încercată și abandonată. Site-ul obligă
|
|
146
|
+
fiecare mesaj să treacă prin două porți:
|
|
147
|
+
|
|
148
|
+
| Poartă | Ce înseamnă |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `/api/v0/chat/create_pow_challenge` | o **dovadă de muncă** pe mesaj |
|
|
151
|
+
| `challenges.cloudflare.com/turnstile` | o poartă anti-bot la origine |
|
|
152
|
+
|
|
153
|
+
Reimplementarea oricăreia este un joc pierdut: sunt ofuscate, se schimbă, iar când se schimbă eșecul arată exact ca o
|
|
154
|
+
pană de rețea. **Pagina rezolvă deja ambele pentru propriile cereri.**
|
|
155
|
+
|
|
156
|
+
Așa că adaptorul nu vorbește niciodată HTTP cu site-ul. Conduce pagina, iar pagina face restul. Autentificarea, dovada
|
|
157
|
+
de muncă și Turnstile încetează să fie problema noastră și nu pot eșua independent de site.
|
|
158
|
+
|
|
159
|
+
**Verificat:** un `HEAD` simplu către site returnează `403`; ruta prin browser returnează răspunsuri.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Limite, spuse cinstit
|
|
164
|
+
|
|
165
|
+
**Apelul de unelte este emulat.** Un chat web nu are canal structurat de unelte: uneltele sunt descrise în prompt, iar
|
|
166
|
+
un apel este recuperat extrăgând un obiect JSON din răspuns. Funcționează — verificat — dar este mai slab decât
|
|
167
|
+
apelul nativ: un model care ignoră instrucțiunea răspunde în proză și harness-ul nu vede nicio utilizare de unelte în
|
|
168
|
+
acel tur. **Pentru muncă agentică grea, ruta API este mai de încredere.** Ruta web este cea mai bună pentru conversație,
|
|
169
|
+
răspunsuri lungi, subagenți, compactare și orice tur în care modelul trebuie să fie modelul web.
|
|
170
|
+
|
|
171
|
+
**Depinde de un site pe care nu îl controlezi.** Când pagina își schimbă forma, pluginul trebuie să se schimbe cu ea.
|
|
172
|
+
Acesta este avertismentul de dezvoltare din capul paginii, nu o formalitate.
|
|
173
|
+
|
|
174
|
+
**Nu este afiliat cu DeepSeek.** Nu este aprobat sau susținut de ei și nu îți dă niciun drept asupra serviciului lor.
|
|
175
|
+
Folosirea acelui serviciu este guvernată de termenii lor.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Configurare
|
|
180
|
+
|
|
181
|
+
`cordis.patch.yml` stabilește:
|
|
182
|
+
|
|
183
|
+
| cheie | implicit | sens |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `port` | `9222` | portul de depanare al browserului |
|
|
186
|
+
| `defaultModel` | `deepseek-chat-search` | folosit când un apel nu numește un model |
|
|
187
|
+
| `showBrowser` | `true` | dacă fereastra este vizibilă în timp ce lucrează |
|
|
188
|
+
|
|
189
|
+
Browserul trebuie să aibă o sesiune autentificată pe `chat.deepseek.com`. Primul apel pornește Brave cu profilul
|
|
190
|
+
**Default** dacă portul nu este deja deschis. Dacă Brave rulează deja *fără* port de depanare, adaptorul nu se poate
|
|
191
|
+
conecta și spune asta clar în loc să eșueze în tăcere.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Structură
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
index.js adaptorul: StreamChunk al harness-ului ←→ motor
|
|
199
|
+
lib/engine.mjs browser + pagină: tastare, trimitere, flux, așezare
|
|
200
|
+
lib/cdp.mjs client Chrome DevTools Protocol, fără dependențe
|
|
201
|
+
lib/prompt.mjs aplatizează mesaje + unelte într-un mesaj; recuperează apeluri din răspuns
|
|
202
|
+
lib/savings.mjs ce ți-a economisit ruta web, prețuit față de API
|
|
203
|
+
lib/i18n.mjs 51 de limbi pentru panou
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Fără dependențe.** Node 24 are `WebSocket` și `fetch` globale, tot ce are nevoie CDP, așa că fluxul de tokenuri nu
|
|
207
|
+
părăsește niciodată procesul gazdă și nu există un salt IPC pe delta.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Sprijin
|
|
212
|
+
|
|
213
|
+
Uncle Sam există ca să nu mai plătești pe token. Dacă ți-a economisit bani și ai vrea ca următorul să fie construit pe
|
|
214
|
+
hardware care nu rămâne fără memorie la jumătatea drumului:
|
|
215
|
+
|
|
216
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
217
|
+
|
|
218
|
+
O stea pe depozit sau un raport de eroare util valorează la fel.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Licență
|
|
223
|
+
|
|
224
|
+
**CC BY-NC-ND 4.0** — Creative Commons Atribuire-Necomercial-FărăModificări 4.0 Internațional.
|
|
225
|
+
Copyright (c) 2026 Darren T. Weldon, publicat sub numele Operating Tag.
|
|
226
|
+
|
|
227
|
+
**Toată înțelegerea într-o linie: instalează și folosește personal, gratuit. Nu modifica, nu partaja, nu vinde și nu
|
|
228
|
+
folosi într-o companie.**
|
|
229
|
+
|
|
230
|
+
Asta nu este open source și nu pretinde că ar fi.
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
poți să îl instalezi și să îl rulezi · să îl folosești personal, necomercial
|
|
234
|
+
să citești codul sursă ca să îl înțelegi
|
|
235
|
+
|
|
236
|
+
nu poți să îl modifici, adaptezi sau să creezi o operă derivată
|
|
237
|
+
să îl copiezi, distribui, publici, oglindești sau
|
|
238
|
+
să îl pui la dispoziția altcuiva
|
|
239
|
+
să îl încarci pe orice găzduire de cod, registru, site, forum sau chat
|
|
240
|
+
să îl vinzi, revinzi, închiriezi sau să ceri bani pentru el ori pentru accesul la el
|
|
241
|
+
să îl incluzi în orice predai altcuiva
|
|
242
|
+
să îl folosești în orice scop comercial sau în cadrul unei activități de afaceri
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Singurele două surse legitime sunt acest depozit și pachetul npm
|
|
246
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** O copie de oriunde
|
|
247
|
+
altundeva nu este licențiată, oricine ar fi furnizat-o. Dacă vezi acest software de vânzare, nu autorul îl vinde.
|
|
248
|
+
|
|
249
|
+
**Utilizarea comercială, precum și dreptul de a modifica și distribui, sunt disponibile printr-o licență scrisă
|
|
250
|
+
separată.** Întreabă Operating Tag — vei primi un răspuns clar și un preț clar.
|
|
251
|
+
|
|
252
|
+
Fișierul [LICENSE](LICENSE) este cel care guvernează și începe cu același rezumat în engleză simplă.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
Uncle Sam este un plugin independent. Neafiliat cu DeepSeek, neaprobat și nesprijinit de ei.
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
260
|
+
Autor Operating Tag
|
|
261
|
+
Licență CC BY-NC-ND 4.0 — liber de folosit, nu de modificat, partajat sau vândut
|
|
262
|
+
```
|