@operatingtag/dsh-unclesam 1.3.0 → 1.3.2

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 (56) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.ar.md +1 -1
  3. package/README.az.md +1 -1
  4. package/README.bg.md +1 -1
  5. package/README.bn.md +1 -1
  6. package/README.cs.md +1 -1
  7. package/README.da.md +1 -1
  8. package/README.de.md +1 -1
  9. package/README.el.md +1 -1
  10. package/README.es.md +270 -270
  11. package/README.fa.md +1 -1
  12. package/README.fi.md +1 -1
  13. package/README.fr.md +1 -1
  14. package/README.he.md +1 -1
  15. package/README.hi.md +1 -1
  16. package/README.hr.md +1 -1
  17. package/README.hu.md +1 -1
  18. package/README.id.md +1 -1
  19. package/README.it.md +1 -1
  20. package/README.ja.md +1 -1
  21. package/README.ka.md +1 -1
  22. package/README.kk.md +1 -1
  23. package/README.km.md +1 -1
  24. package/README.ko.md +1 -1
  25. package/README.lt.md +1 -1
  26. package/README.md +1 -1
  27. package/README.mr.md +1 -1
  28. package/README.ms.md +1 -1
  29. package/README.my.md +1 -1
  30. package/README.ne.md +1 -1
  31. package/README.nl.md +1 -1
  32. package/README.no.md +1 -1
  33. package/README.pl.md +1 -1
  34. package/README.pt.md +1 -1
  35. package/README.ro.md +1 -1
  36. package/README.ru.md +1 -1
  37. package/README.si.md +1 -1
  38. package/README.sk.md +1 -1
  39. package/README.sl.md +1 -1
  40. package/README.sr.md +1 -1
  41. package/README.sv.md +1 -1
  42. package/README.sw.md +1 -1
  43. package/README.ta.md +1 -1
  44. package/README.te.md +1 -1
  45. package/README.th.md +1 -1
  46. package/README.tl.md +1 -1
  47. package/README.tr.md +1 -1
  48. package/README.uk.md +1 -1
  49. package/README.ur.md +1 -1
  50. package/README.uz.md +1 -1
  51. package/README.vi.md +1 -1
  52. package/README.zh.md +1 -1
  53. package/cordis.patch.yml +2 -2
  54. package/index.js +2 -3
  55. package/lib/prompt.mjs +43 -21
  56. package/package.json +1 -1
package/README.es.md CHANGED
@@ -1,270 +1,270 @@
1
- [English](README.md) · **Español** · [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](README.fi.md) · [Magyar](README.hu.md) · [العربية](README.ar.md) · [Oʻzbekcha](README.uz.md) · [Azərbaycan](README.az.md) · [Български](README.bg.md) · [Hrvatski](README.hr.md) · [Қазақша](README.kk.md) · [ქართული](README.ka.md) · [नेपाली](README.ne.md) · [සිංහල](README.si.md) · [தமிழ்](README.ta.md) · [తెలుగు](README.te.md) · [मराठी](README.mr.md) · [বাংলা](README.bn.md) · [ខ្មែរ](README.km.md) · [Lietuvių](README.lt.md) · [Bahasa Melayu](README.ms.md) · [မြန်မာ](README.my.md) · [Norsk](README.no.md) · [Slovenčina](README.sk.md) · [Slovenščina](README.sl.md) · [Српски](README.sr.md) · [Kiswahili](README.sw.md) · [Filipino](README.tl.md) · [اردو](README.ur.md)
2
-
3
- # Uncle Sam
4
-
5
- **Un proveedor para DeepSeek Harness que responde a través de tu propio navegador, con la cuenta web que ya tienes, en lugar de la API de pago.**
6
-
7
- **El plugin de DeepSeek Harness que conduce chat.deepseek.com en un navegador real: la alternativa gratuita a la API de DeepSeek. Chat, DeepThink y búsqueda web con tu propia cuenta, sin clave de API y sin pagar por token.**
8
-
9
- **☕ [Invítame a un café](https://revolut.me/operatingtag)** — lo escribe una persona, de noche, sin financiación. No hay otro modelo de ingresos. Una estrella o un informe de fallo vale lo mismo.
10
-
11
- > **Este producto está en desarrollo activo. Espera fallos.**
12
- >
13
- > Funciona, es rápido y se ha usado a diario durante semanas, pero cambia con frecuencia y la ruta del
14
- > navegador depende de un sitio web que cambia sin avisar. Si algo se rompe, una captura de pantalla y el
15
- > número de versión valen más que una descripción. Fija una versión si dependes de él.
16
-
17
- ```
18
- proveedor deepseek-web
19
- modelos deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
20
- coste nada por token: usa la suscripción que ya tienes abierta en el navegador
21
- estado en desarrollo — espera fallos
22
- medido primer token ~1,9 s · sobrecoste ~0,6 s · un turno completo en ~2,5 s
23
- ```
24
-
25
- Las respuestas de la ruta web van firmadas con **🔴 Uncle Sam**. El nombre es una broma, no una afirmación:
26
- marca qué ruta ha respondido, y las respuestas de la API no llevan firma. Siempre sabes cuál de las dos te ha
27
- contestado.
28
-
29
- ---
30
-
31
- ## Qué te ahorra
32
-
33
- La API cobra por token. El producto web no. Este plugin registra `deepseek-web` como proveedor de modelos y
34
- responde cada llamada conduciendo `chat.deepseek.com` en un navegador real: la página hace el trabajo, el
35
- navegador mantiene la sesión y no se factura nada.
36
-
37
- | | Ruta API | Ruta web |
38
- |---|---|---|
39
- | Coste | por token, siempre | nada más allá de la suscripción |
40
- | Velocidad | rápida | ~2,5 s por turno, medido |
41
- | Llamadas a herramientas | nativas y fiables | emuladas, funciona pero es más débil |
42
- | Depende de | la API | un sitio web que cambia sin avisar |
43
-
44
- **Las dos rutas quedan instaladas.** El selector de modelo es el interruptor, así que puedes usar la barata por
45
- defecto y recurrir a la API cuando una tarea necesite herramientas fiables.
46
-
47
- ---
48
-
49
- ## Instalación
50
-
51
- Uncle Sam es un **plugin de DeepSeek Harness**. No hace nada fuera del harness, porque registra un proveedor de
52
- modelos, una ruta del host y dos espacios de interfaz.
53
-
54
- **Requisitos**
55
-
56
- | | |
57
- |---|---|
58
- | DeepSeek Harness | cualquier versión reciente con gestor de plugins |
59
- | Navegador | Brave recomendado; Edge se usa automáticamente si falta Brave |
60
- | Node | 22 o superior |
61
-
62
- **Desde npm**
63
-
64
- ```bash
65
- pnpm add @operatingtag/dsh-unclesam
66
- ```
67
-
68
- **Desde este repositorio**
69
-
70
- ```bash
71
- git clone https://github.com/operatingtag/dsh-unclesam
72
- cd dsh-unclesam
73
- pnpm install
74
- ```
75
-
76
- Después añade la fila del paquete a tu perfil para que el harness lo cargue:
77
-
78
- ```yaml
79
- # cordis.patch.yml
80
- - insert:
81
- - id: dsh-unclesam
82
- name: '@operatingtag/dsh-unclesam'
83
- config:
84
- port: 9222
85
- defaultModel: deepseek-chat-search
86
- autoMinimise: true
87
- ```
88
-
89
- **O desde una carpeta:** Ajustes → Plugins → instalar desde una ruta local, apuntando a la carpeta que contiene
90
- `package.json`.
91
-
92
- ### Primera ejecución
93
-
94
- Pulsa **Iniciar sesión / abrir el chat**. El navegador se abre y **permanece visible** hasta que hayas iniciado
95
- sesión en chat.deepseek.com. Después se minimiza solo y no lo volverás a ver. La sesión vive en tu perfil del
96
- navegador, así que **el plugin no guarda ninguna contraseña**: no hay nada que filtrar.
97
-
98
- Deberías ver entonces:
99
-
100
- 1. **Ajustes → Uncle Sam** — una página con filas de estado y un botón de inicio de sesión.
101
- 2. **Bajo la caja de chat** — `● DeepSeek Harness` o `● Uncle Sam`, pulsa para cambiar.
102
- 3. **La lista de modelos** — cuatro modelos `(web)` junto a los de la API.
103
-
104
- ### Desinstalarlo
105
-
106
- Ajustes → Plugins → Uncle Sam → Desinstalar. No se escribe nada fuera del perfil del navegador con el que
107
- iniciaste sesión.
108
-
109
- ---
110
-
111
- ## El interruptor API / web
112
-
113
- **El selector de modelo es el interruptor.** No hay un segundo control, porque un segundo control que además
114
- eligiera el modelo serían dos fuentes de verdad para una sola decisión.
115
-
116
- | Elige este modelo | Ruta | DeepThink | Búsqueda |
117
- |---|---|---|---|
118
- | `DeepSeek Chat (web)` | navegador | no | no |
119
- | `DeepSeek Chat + Search (web)` | navegador | no | **sí** |
120
- | `DeepSeek Reasoner (web)` | navegador | **sí** | no |
121
- | `DeepSeek Reasoner + Search (web)` | navegador | **sí** | **sí** |
122
- | cualquier modelo sin `(web)` | la API | — | — |
123
-
124
- Una insignia **WEB** o **API** aparece junto a la etiqueta del modelo para que la ruta activa se vea de un
125
- vistazo. Cuando la etiqueta no se reconoce, la insignia no muestra nada en lugar de adivinar: una insignia
126
- equivocada sería peor que ninguna.
127
-
128
- Tu elección se mantiene entre reinicios. **DeepThink** es la pasada de razonamiento; **Búsqueda** le permite
129
- leer la web en vivo.
130
-
131
- ### La búsqueda se ve en la conversación
132
-
133
- Con un modelo de búsqueda, un turno produce **dos bloques**: la consulta con la que buscó, las fuentes que
134
- encontró y después la respuesta que las usó.
135
-
136
- ```
137
- Búsqueda web — "¿Cuál es un titular tecnológico de hoy?"
138
- Fuentes (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
139
- Enlaces: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
140
- ```
141
-
142
- La página no expone la consulta que escribió internamente, así que la consulta citada es el mensaje que
143
- provocó la búsqueda. Las fuentes y los enlaces se leen de la página cuando la respuesta se asienta. Como las
144
- fuentes solo existen al final, **los turnos con búsqueda se acumulan en lugar de emitirse en streaming**; los
145
- turnos normales siguen emitiéndose token a token.
146
-
147
- ---
148
-
149
- ## Por qué un navegador y no su API HTTP
150
-
151
- La ruta obvia —llamar a la API propia de `chat.deepseek.com`— se intentó y se abandonó. El sitio hace que cada
152
- mensaje pase dos puertas:
153
-
154
- | Puerta | Qué significa |
155
- |---|---|
156
- | `/api/v0/chat/create_pow_challenge` | un desafío de **prueba de trabajo** por mensaje |
157
- | `challenges.cloudflare.com/turnstile` | una barrera anti-bots en el origen |
158
-
159
- Reimplementar cualquiera de las dos es perder el tiempo: están ofuscadas, cambian, y cuando cambian el fallo
160
- parece exactamente un fallo de red. **La página ya resuelve ambas para sus propias peticiones.**
161
-
162
- Así que el adaptador nunca habla HTTP con el sitio. Conduce la página, y la página hace el resto. La
163
- autenticación, la prueba de trabajo y Turnstile dejan de ser nuestro problema y no pueden romperse de forma
164
- independiente al propio sitio.
165
-
166
- **Verificado:** un `HEAD` simple al sitio devuelve `403`; la ruta del navegador devuelve respuestas.
167
-
168
- ---
169
-
170
- ## Límites, dichos con honestidad
171
-
172
- **El uso de herramientas está emulado.** Un chat web no tiene canal estructurado de herramientas, así que las
173
- herramientas se describen en el mensaje y una llamada se recupera analizando un objeto JSON de la respuesta.
174
- Funciona —verificado— pero es más débil que las llamadas nativas: un modelo que ignora la instrucción responde
175
- en prosa y el harness no ve ninguna herramienta ese turno. **Para trabajo agéntico pesado, la ruta API es más
176
- fiable.** La ruta web es mejor para conversación, respuestas largas, subagentes, compactación y cualquier turno
177
- en el que el modelo deba ser el modelo web.
178
-
179
- **Depende de un sitio web que no controlas.** Cuando la página cambia de forma, el plugin tiene que cambiar con
180
- ella. Eso es la advertencia de desarrollo activo de arriba, no una formalidad.
181
-
182
- **No está afiliado a DeepSeek.** No está respaldado por ellos y no te da ningún derecho sobre su servicio. Tu
183
- uso de ese servicio se rige por sus términos.
184
-
185
- ---
186
-
187
- ## Configuración
188
-
189
- `cordis.patch.yml` define:
190
-
191
- | clave | por defecto | significado |
192
- |---|---|---|
193
- | `port` | `9222` | el puerto de depuración del navegador |
194
- | `defaultModel` | `deepseek-chat-search` | se usa cuando una llamada no indica modelo |
195
- | `showBrowser` | `true` | si la ventana es visible mientras trabaja |
196
-
197
- El navegador debe tener una sesión iniciada en `chat.deepseek.com`. La primera llamada abre Brave con el perfil
198
- **Default** si el puerto no está ya abierto. Si Brave ya se está ejecutando *sin* puerto de depuración, el
199
- adaptador no puede conectarse y lo dice claramente en lugar de fallar en silencio.
200
-
201
- ---
202
-
203
- ## Arquitectura
204
-
205
- ```
206
- index.js el adaptador: StreamChunk del harness ←→ motor
207
- lib/engine.mjs navegador + página: escribir, enviar, transmitir, asentar
208
- lib/cdp.mjs cliente del Chrome DevTools Protocol, sin dependencias
209
- lib/prompt.mjs aplana mensajes + herramientas en un mensaje; recupera llamadas de la respuesta
210
- lib/savings.mjs lo que te ahorró la ruta web, valorado contra la API
211
- lib/i18n.mjs 51 idiomas para el panel
212
- ```
213
-
214
- **Sin dependencias.** Node 24 incluye `WebSocket` y `fetch` globales, que es todo lo que CDP necesita, así que
215
- el flujo de tokens nunca sale del proceso host y no hay salto IPC por delta.
216
-
217
- ---
218
-
219
- ## Apoyo
220
-
221
- Uncle Sam existe para que dejes de pagar por token. Si te ha ahorrado dinero y te gustaría ver el siguiente
222
- construido sobre hardware que no se queda sin memoria a mitad de camino:
223
-
224
- **[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
225
-
226
- Una estrella en el repositorio o un informe de fallo útil vale lo mismo.
227
-
228
- ---
229
-
230
- ## Licencia
231
-
232
- **CC BY-NC-ND 4.0** — Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.
233
- Copyright (c) 2026 Darren T. Weldon, publicado bajo el nombre Operating Tag.
234
-
235
- **Todo el acuerdo, en una línea: instálalo y úsalo, personalmente, gratis. No lo cambies, no lo compartas, no
236
- lo vendas y no lo uses en una empresa.**
237
-
238
- Eso no es código abierto, y no pretende serlo.
239
-
240
- ```
241
- puedes instalarlo y ejecutarlo · usarlo personalmente, sin fines comerciales
242
- leer el código para entenderlo
243
-
244
- no puedes modificarlo, adaptarlo ni crear una obra derivada
245
- copiarlo, distribuirlo, publicarlo, replicarlo ni ponerlo a disposición de nadie
246
- subirlo a ningún alojamiento de código, registro, web, foro o chat
247
- venderlo, revenderlo, alquilarlo ni cobrar por él o por acceder a él
248
- incluirlo en cualquier cosa que entregues a otra persona
249
- usarlo con cualquier fin comercial ni en el ejercicio de una actividad empresarial
250
- ```
251
-
252
- **Las dos únicas fuentes legítimas son este repositorio y el paquete npm
253
- [`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Una copia que
254
- venga de cualquier otro sitio no está licenciada, sea quien sea que la haya facilitado. Si ves este software a
255
- la venta, no lo está vendiendo su autor.
256
-
257
- **El uso comercial, y el derecho a modificar y distribuir, están disponibles bajo una licencia escrita
258
- separada.** Pregunta a Operating Tag y recibirás una respuesta clara y un precio claro.
259
-
260
- El archivo [LICENSE](LICENSE) es el que rige, y abre con el mismo resumen en inglés sencillo.
261
-
262
- ---
263
-
264
- Uncle Sam es un plugin independiente. No está afiliado, respaldado ni soportado por DeepSeek.
265
-
266
- ```
267
- @operatingtag/dsh-unclesam v1.3.0
268
- Autor Operating Tag
269
- Licencia CC BY-NC-ND 4.0 — gratis para usar, no para cambiar, compartir o vender
270
- ```
1
+ [English](README.md) · **Español** · [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](README.fi.md) · [Magyar](README.hu.md) · [العربية](README.ar.md) · [Oʻzbekcha](README.uz.md) · [Azərbaycan](README.az.md) · [Български](README.bg.md) · [Hrvatski](README.hr.md) · [Қазақша](README.kk.md) · [ქართული](README.ka.md) · [नेपाली](README.ne.md) · [සිංහල](README.si.md) · [தமிழ்](README.ta.md) · [తెలుగు](README.te.md) · [मराठी](README.mr.md) · [বাংলা](README.bn.md) · [ខ្មែរ](README.km.md) · [Lietuvių](README.lt.md) · [Bahasa Melayu](README.ms.md) · [မြန်မာ](README.my.md) · [Norsk](README.no.md) · [Slovenčina](README.sk.md) · [Slovenščina](README.sl.md) · [Српски](README.sr.md) · [Kiswahili](README.sw.md) · [Filipino](README.tl.md) · [اردو](README.ur.md)
2
+
3
+ # Uncle Sam
4
+
5
+ **Un proveedor para DeepSeek Harness que responde a través de tu propio navegador, con la cuenta web que ya tienes, en lugar de la API de pago.**
6
+
7
+ **El plugin de DeepSeek Harness que conduce chat.deepseek.com en un navegador real: la alternativa gratuita a la API de DeepSeek. Chat, DeepThink y búsqueda web con tu propia cuenta, sin clave de API y sin pagar por token.**
8
+
9
+ **☕ [Invítame a un café](https://revolut.me/operatingtag)** — lo escribe una persona, de noche, sin financiación. No hay otro modelo de ingresos. Una estrella o un informe de fallo vale lo mismo.
10
+
11
+ > **Este producto está en desarrollo activo. Espera fallos.**
12
+ >
13
+ > Funciona, es rápido y se ha usado a diario durante semanas, pero cambia con frecuencia y la ruta del
14
+ > navegador depende de un sitio web que cambia sin avisar. Si algo se rompe, una captura de pantalla y el
15
+ > número de versión valen más que una descripción. Fija una versión si dependes de él.
16
+
17
+ ```
18
+ proveedor deepseek-web
19
+ modelos deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
20
+ coste nada por token: usa la suscripción que ya tienes abierta en el navegador
21
+ estado en desarrollo — espera fallos
22
+ medido primer token ~1,9 s · sobrecoste ~0,6 s · un turno completo en ~2,5 s
23
+ ```
24
+
25
+ Las respuestas de la ruta web van firmadas con **🔴 Uncle Sam**. El nombre es una broma, no una afirmación:
26
+ marca qué ruta ha respondido, y las respuestas de la API no llevan firma. Siempre sabes cuál de las dos te ha
27
+ contestado.
28
+
29
+ ---
30
+
31
+ ## Qué te ahorra
32
+
33
+ La API cobra por token. El producto web no. Este plugin registra `deepseek-web` como proveedor de modelos y
34
+ responde cada llamada conduciendo `chat.deepseek.com` en un navegador real: la página hace el trabajo, el
35
+ navegador mantiene la sesión y no se factura nada.
36
+
37
+ | | Ruta API | Ruta web |
38
+ |---|---|---|
39
+ | Coste | por token, siempre | nada más allá de la suscripción |
40
+ | Velocidad | rápida | ~2,5 s por turno, medido |
41
+ | Llamadas a herramientas | nativas y fiables | emuladas, funciona pero es más débil |
42
+ | Depende de | la API | un sitio web que cambia sin avisar |
43
+
44
+ **Las dos rutas quedan instaladas.** El selector de modelo es el interruptor, así que puedes usar la barata por
45
+ defecto y recurrir a la API cuando una tarea necesite herramientas fiables.
46
+
47
+ ---
48
+
49
+ ## Instalación
50
+
51
+ Uncle Sam es un **plugin de DeepSeek Harness**. No hace nada fuera del harness, porque registra un proveedor de
52
+ modelos, una ruta del host y dos espacios de interfaz.
53
+
54
+ **Requisitos**
55
+
56
+ | | |
57
+ |---|---|
58
+ | DeepSeek Harness | cualquier versión reciente con gestor de plugins |
59
+ | Navegador | Brave recomendado; Edge se usa automáticamente si falta Brave |
60
+ | Node | 22 o superior |
61
+
62
+ **Desde npm**
63
+
64
+ ```bash
65
+ pnpm add @operatingtag/dsh-unclesam
66
+ ```
67
+
68
+ **Desde este repositorio**
69
+
70
+ ```bash
71
+ git clone https://github.com/operatingtag/dsh-unclesam
72
+ cd dsh-unclesam
73
+ pnpm install
74
+ ```
75
+
76
+ Después añade la fila del paquete a tu perfil para que el harness lo cargue:
77
+
78
+ ```yaml
79
+ # cordis.patch.yml
80
+ - insert:
81
+ - id: dsh-unclesam
82
+ name: '@operatingtag/dsh-unclesam'
83
+ config:
84
+ port: 9222
85
+ defaultModel: deepseek-chat-search
86
+ autoMinimise: true
87
+ ```
88
+
89
+ **O desde una carpeta:** Ajustes → Plugins → instalar desde una ruta local, apuntando a la carpeta que contiene
90
+ `package.json`.
91
+
92
+ ### Primera ejecución
93
+
94
+ Pulsa **Iniciar sesión / abrir el chat**. El navegador se abre y **permanece visible** hasta que hayas iniciado
95
+ sesión en chat.deepseek.com. Después se minimiza solo y no lo volverás a ver. La sesión vive en tu perfil del
96
+ navegador, así que **el plugin no guarda ninguna contraseña**: no hay nada que filtrar.
97
+
98
+ Deberías ver entonces:
99
+
100
+ 1. **Ajustes → Uncle Sam** — una página con filas de estado y un botón de inicio de sesión.
101
+ 2. **Bajo la caja de chat** — `● DeepSeek Harness` o `● Uncle Sam`, pulsa para cambiar.
102
+ 3. **La lista de modelos** — cuatro modelos `(web)` junto a los de la API.
103
+
104
+ ### Desinstalarlo
105
+
106
+ Ajustes → Plugins → Uncle Sam → Desinstalar. No se escribe nada fuera del perfil del navegador con el que
107
+ iniciaste sesión.
108
+
109
+ ---
110
+
111
+ ## El interruptor API / web
112
+
113
+ **El selector de modelo es el interruptor.** No hay un segundo control, porque un segundo control que además
114
+ eligiera el modelo serían dos fuentes de verdad para una sola decisión.
115
+
116
+ | Elige este modelo | Ruta | DeepThink | Búsqueda |
117
+ |---|---|---|---|
118
+ | `DeepSeek Chat (web)` | navegador | no | no |
119
+ | `DeepSeek Chat + Search (web)` | navegador | no | **sí** |
120
+ | `DeepSeek Reasoner (web)` | navegador | **sí** | no |
121
+ | `DeepSeek Reasoner + Search (web)` | navegador | **sí** | **sí** |
122
+ | cualquier modelo sin `(web)` | la API | — | — |
123
+
124
+ Una insignia **WEB** o **API** aparece junto a la etiqueta del modelo para que la ruta activa se vea de un
125
+ vistazo. Cuando la etiqueta no se reconoce, la insignia no muestra nada en lugar de adivinar: una insignia
126
+ equivocada sería peor que ninguna.
127
+
128
+ Tu elección se mantiene entre reinicios. **DeepThink** es la pasada de razonamiento; **Búsqueda** le permite
129
+ leer la web en vivo.
130
+
131
+ ### La búsqueda se ve en la conversación
132
+
133
+ Con un modelo de búsqueda, un turno produce **dos bloques**: la consulta con la que buscó, las fuentes que
134
+ encontró y después la respuesta que las usó.
135
+
136
+ ```
137
+ Búsqueda web — "¿Cuál es un titular tecnológico de hoy?"
138
+ Fuentes (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
139
+ Enlaces: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
140
+ ```
141
+
142
+ La página no expone la consulta que escribió internamente, así que la consulta citada es el mensaje que
143
+ provocó la búsqueda. Las fuentes y los enlaces se leen de la página cuando la respuesta se asienta. Como las
144
+ fuentes solo existen al final, **los turnos con búsqueda se acumulan en lugar de emitirse en streaming**; los
145
+ turnos normales siguen emitiéndose token a token.
146
+
147
+ ---
148
+
149
+ ## Por qué un navegador y no su API HTTP
150
+
151
+ La ruta obvia —llamar a la API propia de `chat.deepseek.com`— se intentó y se abandonó. El sitio hace que cada
152
+ mensaje pase dos puertas:
153
+
154
+ | Puerta | Qué significa |
155
+ |---|---|
156
+ | `/api/v0/chat/create_pow_challenge` | un desafío de **prueba de trabajo** por mensaje |
157
+ | `challenges.cloudflare.com/turnstile` | una barrera anti-bots en el origen |
158
+
159
+ Reimplementar cualquiera de las dos es perder el tiempo: están ofuscadas, cambian, y cuando cambian el fallo
160
+ parece exactamente un fallo de red. **La página ya resuelve ambas para sus propias peticiones.**
161
+
162
+ Así que el adaptador nunca habla HTTP con el sitio. Conduce la página, y la página hace el resto. La
163
+ autenticación, la prueba de trabajo y Turnstile dejan de ser nuestro problema y no pueden romperse de forma
164
+ independiente al propio sitio.
165
+
166
+ **Verificado:** un `HEAD` simple al sitio devuelve `403`; la ruta del navegador devuelve respuestas.
167
+
168
+ ---
169
+
170
+ ## Límites, dichos con honestidad
171
+
172
+ **El uso de herramientas está emulado.** Un chat web no tiene canal estructurado de herramientas, así que las
173
+ herramientas se describen en el mensaje y una llamada se recupera analizando un objeto JSON de la respuesta.
174
+ Funciona —verificado— pero es más débil que las llamadas nativas: un modelo que ignora la instrucción responde
175
+ en prosa y el harness no ve ninguna herramienta ese turno. **Para trabajo agéntico pesado, la ruta API es más
176
+ fiable.** La ruta web es mejor para conversación, respuestas largas, subagentes, compactación y cualquier turno
177
+ en el que el modelo deba ser el modelo web.
178
+
179
+ **Depende de un sitio web que no controlas.** Cuando la página cambia de forma, el plugin tiene que cambiar con
180
+ ella. Eso es la advertencia de desarrollo activo de arriba, no una formalidad.
181
+
182
+ **No está afiliado a DeepSeek.** No está respaldado por ellos y no te da ningún derecho sobre su servicio. Tu
183
+ uso de ese servicio se rige por sus términos.
184
+
185
+ ---
186
+
187
+ ## Configuración
188
+
189
+ `cordis.patch.yml` define:
190
+
191
+ | clave | por defecto | significado |
192
+ |---|---|---|
193
+ | `port` | `9222` | el puerto de depuración del navegador |
194
+ | `defaultModel` | `deepseek-chat-search` | se usa cuando una llamada no indica modelo |
195
+ | `showBrowser` | `true` | si la ventana es visible mientras trabaja |
196
+
197
+ El navegador debe tener una sesión iniciada en `chat.deepseek.com`. La primera llamada abre Brave con el perfil
198
+ **Default** si el puerto no está ya abierto. Si Brave ya se está ejecutando *sin* puerto de depuración, el
199
+ adaptador no puede conectarse y lo dice claramente en lugar de fallar en silencio.
200
+
201
+ ---
202
+
203
+ ## Arquitectura
204
+
205
+ ```
206
+ index.js el adaptador: StreamChunk del harness ←→ motor
207
+ lib/engine.mjs navegador + página: escribir, enviar, transmitir, asentar
208
+ lib/cdp.mjs cliente del Chrome DevTools Protocol, sin dependencias
209
+ lib/prompt.mjs aplana mensajes + herramientas en un mensaje; recupera llamadas de la respuesta
210
+ lib/savings.mjs lo que te ahorró la ruta web, valorado contra la API
211
+ lib/i18n.mjs 51 idiomas para el panel
212
+ ```
213
+
214
+ **Sin dependencias.** Node 24 incluye `WebSocket` y `fetch` globales, que es todo lo que CDP necesita, así que
215
+ el flujo de tokens nunca sale del proceso host y no hay salto IPC por delta.
216
+
217
+ ---
218
+
219
+ ## Apoyo
220
+
221
+ Uncle Sam existe para que dejes de pagar por token. Si te ha ahorrado dinero y te gustaría ver el siguiente
222
+ construido sobre hardware que no se queda sin memoria a mitad de camino:
223
+
224
+ **[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
225
+
226
+ Una estrella en el repositorio o un informe de fallo útil vale lo mismo.
227
+
228
+ ---
229
+
230
+ ## Licencia
231
+
232
+ **CC BY-NC-ND 4.0** — Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.
233
+ Copyright (c) 2026 Darren T. Weldon, publicado bajo el nombre Operating Tag.
234
+
235
+ **Todo el acuerdo, en una línea: instálalo y úsalo, personalmente, gratis. No lo cambies, no lo compartas, no
236
+ lo vendas y no lo uses en una empresa.**
237
+
238
+ Eso no es código abierto, y no pretende serlo.
239
+
240
+ ```
241
+ puedes instalarlo y ejecutarlo · usarlo personalmente, sin fines comerciales
242
+ leer el código para entenderlo
243
+
244
+ no puedes modificarlo, adaptarlo ni crear una obra derivada
245
+ copiarlo, distribuirlo, publicarlo, replicarlo ni ponerlo a disposición de nadie
246
+ subirlo a ningún alojamiento de código, registro, web, foro o chat
247
+ venderlo, revenderlo, alquilarlo ni cobrar por él o por acceder a él
248
+ incluirlo en cualquier cosa que entregues a otra persona
249
+ usarlo con cualquier fin comercial ni en el ejercicio de una actividad empresarial
250
+ ```
251
+
252
+ **Las dos únicas fuentes legítimas son este repositorio y el paquete npm
253
+ [`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Una copia que
254
+ venga de cualquier otro sitio no está licenciada, sea quien sea que la haya facilitado. Si ves este software a
255
+ la venta, no lo está vendiendo su autor.
256
+
257
+ **El uso comercial, y el derecho a modificar y distribuir, están disponibles bajo una licencia escrita
258
+ separada.** Pregunta a Operating Tag y recibirás una respuesta clara y un precio claro.
259
+
260
+ El archivo [LICENSE](LICENSE) es el que rige, y abre con el mismo resumen en inglés sencillo.
261
+
262
+ ---
263
+
264
+ Uncle Sam es un plugin independiente. No está afiliado, respaldado ni soportado por DeepSeek.
265
+
266
+ ```
267
+ @operatingtag/dsh-unclesam v1.3.2
268
+ Autor Operating Tag
269
+ Licencia CC BY-NC-ND 4.0 — gratis para usar, no para cambiar, compartir o vender
270
+ ```
package/README.fa.md CHANGED
@@ -256,7 +256,7 @@ Copyright (c) 2026 Darren T. Weldon، منتشرشده با نام Operating Tag
256
256
  Uncle Sam یک افزونه مستقل است. وابسته به DeepSeek نیست، تأیید یا پشتیبانی نمی‌شود.
257
257
 
258
258
  ```
259
- @operatingtag/dsh-unclesam v1.3.0
259
+ @operatingtag/dsh-unclesam v1.3.2
260
260
  نویسنده Operating Tag
261
261
  پروانه CC BY-NC-ND 4.0 — آزاد برای استفاده، نه برای تغییر، اشتراک یا فروش
262
262
  ```
package/README.fi.md CHANGED
@@ -258,7 +258,7 @@ Tiedosto [LICENSE](LICENSE) on ratkaiseva, ja se alkaa samalla yhteenvedolla yks
258
258
  Uncle Sam on itsenäinen lisäosa. Ei sidoksissa DeepSeekiin, ei heidän hyväksymänsä tai tukemansa.
259
259
 
260
260
  ```
261
- @operatingtag/dsh-unclesam v1.3.0
261
+ @operatingtag/dsh-unclesam v1.3.2
262
262
  Tekijä Operating Tag
263
263
  Lisenssi CC BY-NC-ND 4.0 — vapaa käytettäväksi, ei muutettavaksi, jaettavaksi tai myytäväksi
264
264
  ```
package/README.fr.md CHANGED
@@ -268,7 +268,7 @@ Le fichier [LICENSE](LICENSE) fait foi, et il s'ouvre sur le même résumé en a
268
268
  Uncle Sam est un plugin indépendant. Non affilié à DeepSeek, ni approuvé ni soutenu par eux.
269
269
 
270
270
  ```
271
- @operatingtag/dsh-unclesam v1.3.0
271
+ @operatingtag/dsh-unclesam v1.3.2
272
272
  Auteur Operating Tag
273
273
  Licence CC BY-NC-ND 4.0 — gratuit à l'usage, pas au changement, au partage ou à la vente
274
274
  ```
package/README.he.md CHANGED
@@ -248,7 +248,7 @@ Copyright (c) 2026 Darren T. Weldon, פורסם תחת השם Operating Tag.
248
248
  Uncle Sam הוא תוסף עצמאי. לא קשור ל‑DeepSeek, לא מאושר ולא נתמך על ידם.
249
249
 
250
250
  ```
251
- @operatingtag/dsh-unclesam v1.3.0
251
+ @operatingtag/dsh-unclesam v1.3.2
252
252
  יוצר Operating Tag
253
253
  רישיון CC BY-NC-ND 4.0 — חופשי לשימוש, לא לשינוי, שיתוף או מכירה
254
254
  ```
package/README.hi.md CHANGED
@@ -259,7 +259,7 @@ Copyright (c) 2026 Darren T. Weldon, Operating Tag नाम से प्रक
259
259
  Uncle Sam एक स्वतंत्र प्लगइन है। DeepSeek से जुड़ा नहीं, उनका समर्थन या अनुमोदन नहीं।
260
260
 
261
261
  ```
262
- @operatingtag/dsh-unclesam v1.3.0
262
+ @operatingtag/dsh-unclesam v1.3.2
263
263
  लेखक Operating Tag
264
264
  लाइसेंस CC BY-NC-ND 4.0 — इस्तेमाल मुफ़्त, बदलना, बाँटना या बेचना नहीं
265
265
  ```
package/README.hr.md CHANGED
@@ -256,7 +256,7 @@ Datoteka [LICENSE](LICENSE) je obvezujuća i počinje istim sažetkom na jednost
256
256
  Uncle Sam je neovisni dodatak. Nije povezan s DeepSeekom, nije odobren ni podržan od njih.
257
257
 
258
258
  ```
259
- @operatingtag/dsh-unclesam v1.3.0
259
+ @operatingtag/dsh-unclesam v1.3.2
260
260
  Autor Operating Tag
261
261
  Licencija CC BY-NC-ND 4.0 — besplatno za korištenje, ne za izmjenu, dijeljenje ili prodaju
262
262
  ```
package/README.hu.md CHANGED
@@ -260,7 +260,7 @@ A [LICENSE](LICENSE) fájl a mérvadó, és ugyanazzal az egyszerű angol össze
260
260
  Az Uncle Sam független bővítmény. Nem kapcsolódik a DeepSeekhez, ő nem hagyja jóvá és nem támogatja.
261
261
 
262
262
  ```
263
- @operatingtag/dsh-unclesam v1.3.0
263
+ @operatingtag/dsh-unclesam v1.3.2
264
264
  Szerző Operating Tag
265
265
  Licenc CC BY-NC-ND 4.0 — szabadon használható, nem módosítható, osztható meg vagy adható el
266
266
  ```
package/README.id.md CHANGED
@@ -260,7 +260,7 @@ Berkas [LICENSE](LICENSE) yang mengikat, dan ia dibuka dengan ringkasan yang sam
260
260
  Uncle Sam adalah plugin independen. Tidak berafiliasi dengan DeepSeek, tidak didukung maupun disponsori oleh mereka.
261
261
 
262
262
  ```
263
- @operatingtag/dsh-unclesam v1.3.0
263
+ @operatingtag/dsh-unclesam v1.3.2
264
264
  Penulis Operating Tag
265
265
  Lisensi CC BY-NC-ND 4.0 — bebas dipakai, tidak untuk diubah, dibagikan, atau dijual
266
266
  ```
package/README.it.md CHANGED
@@ -264,7 +264,7 @@ Il file [LICENSE](LICENSE) è quello che fa fede, e si apre con lo stesso riassu
264
264
  Uncle Sam è un plugin indipendente. Non affiliato a DeepSeek, né approvato né supportato da loro.
265
265
 
266
266
  ```
267
- @operatingtag/dsh-unclesam v1.3.0
267
+ @operatingtag/dsh-unclesam v1.3.2
268
268
  Autore Operating Tag
269
269
  Licenza CC BY-NC-ND 4.0 — libero da usare, non da modificare, condividere o vendere
270
270
  ```
package/README.ja.md CHANGED
@@ -259,7 +259,7 @@ Copyright (c) 2026 Darren T. Weldon、Operating Tag 名義で公開。
259
259
  Uncle Sam は独立したプラグインです。DeepSeek とは関係がなく、承認も支援も受けていません。
260
260
 
261
261
  ```
262
- @operatingtag/dsh-unclesam v1.3.0
262
+ @operatingtag/dsh-unclesam v1.3.2
263
263
  作者 Operating Tag
264
264
  ライセンス CC BY-NC-ND 4.0 — 使用は自由、変更・共有・販売は不可
265
265
  ```