@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.
- package/CHANGELOG.md +49 -0
- package/README.ar.md +1 -1
- package/README.az.md +1 -1
- package/README.bg.md +1 -1
- package/README.bn.md +1 -1
- package/README.cs.md +1 -1
- package/README.da.md +1 -1
- package/README.de.md +1 -1
- package/README.el.md +1 -1
- package/README.es.md +270 -270
- package/README.fa.md +1 -1
- package/README.fi.md +1 -1
- package/README.fr.md +1 -1
- package/README.he.md +1 -1
- package/README.hi.md +1 -1
- package/README.hr.md +1 -1
- package/README.hu.md +1 -1
- package/README.id.md +1 -1
- package/README.it.md +1 -1
- package/README.ja.md +1 -1
- package/README.ka.md +1 -1
- package/README.kk.md +1 -1
- package/README.km.md +1 -1
- package/README.ko.md +1 -1
- package/README.lt.md +1 -1
- package/README.md +1 -1
- package/README.mr.md +1 -1
- package/README.ms.md +1 -1
- package/README.my.md +1 -1
- package/README.ne.md +1 -1
- package/README.nl.md +1 -1
- package/README.no.md +1 -1
- package/README.pl.md +1 -1
- package/README.pt.md +1 -1
- package/README.ro.md +1 -1
- package/README.ru.md +1 -1
- package/README.si.md +1 -1
- package/README.sk.md +1 -1
- package/README.sl.md +1 -1
- package/README.sr.md +1 -1
- package/README.sv.md +1 -1
- package/README.sw.md +1 -1
- package/README.ta.md +1 -1
- package/README.te.md +1 -1
- package/README.th.md +1 -1
- package/README.tl.md +1 -1
- package/README.tr.md +1 -1
- package/README.uk.md +1 -1
- package/README.ur.md +1 -1
- package/README.uz.md +1 -1
- package/README.vi.md +1 -1
- package/README.zh.md +1 -1
- package/cordis.patch.yml +2 -2
- package/index.js +2 -3
- package/lib/prompt.mjs +43 -21
- 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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
262
|
+
@operatingtag/dsh-unclesam v1.3.2
|
|
263
263
|
作者 Operating Tag
|
|
264
264
|
ライセンス CC BY-NC-ND 4.0 — 使用は自由、変更・共有・販売は不可
|
|
265
265
|
```
|