@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.it.md
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · **Italiano** · [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
|
+
**Un provider per DeepSeek Harness che risponde attraverso il tuo browser, sull'account web che hai già, invece dell'API a pagamento.**
|
|
6
|
+
|
|
7
|
+
**☕ [Offrimi un caffè](https://revolut.me/operatingtag)** — scritto da una persona, di notte, senza finanziamenti. Non c'è nessun altro modello di ricavo. Una stella o una segnalazione di bug valgono lo stesso.
|
|
8
|
+
|
|
9
|
+
> **Questo prodotto è in sviluppo attivo. Aspettati dei bug.**
|
|
10
|
+
>
|
|
11
|
+
> Funziona, è veloce ed è usato ogni giorno da settimane — ma cambia di continuo, e la strada del browser dipende
|
|
12
|
+
> da un sito che cambia senza avvisare. Se qualcosa si rompe, uno screenshot e il numero di versione valgono più
|
|
13
|
+
> di una descrizione. Fissa una versione se ci fai affidamento.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
provider deepseek-web
|
|
17
|
+
modelli deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
costo niente per token — usa l'abbonamento già aperto nel tuo browser
|
|
19
|
+
stato in sviluppo — aspettati dei bug
|
|
20
|
+
misurato primo token ~1,9 s · sovraccarico ~0,6 s · un turno completo in ~2,5 s
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Le risposte della strada web sono firmate **🔴 Uncle Sam**. Il nome è uno scherzo, non una dichiarazione: indica
|
|
24
|
+
quale strada ha risposto, e le risposte dell'API non portano alcuna firma. Sai sempre chi ti ha risposto.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Quanto ti fa risparmiare
|
|
29
|
+
|
|
30
|
+
L'API fattura per token. Il prodotto web no. Questo plugin registra `deepseek-web` come provider di modelli e
|
|
31
|
+
risponde a ogni chiamata guidando `chat.deepseek.com` in un browser vero — il lavoro lo fa la pagina, la sessione
|
|
32
|
+
la tiene il browser, e niente viene misurato.
|
|
33
|
+
|
|
34
|
+
| | Strada API | Strada web |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Costo | per token, per sempre | niente oltre l'abbonamento |
|
|
37
|
+
| Velocità | veloce | ~2,5 s per turno, misurato |
|
|
38
|
+
| Chiamata strumenti | nativa e affidabile | emulata, funziona ma è più debole |
|
|
39
|
+
| Dipende da | l'API | un sito che cambia senza avvisare |
|
|
40
|
+
|
|
41
|
+
**Restano installate entrambe le strade.** Il selettore di modello è l'interruttore: usa quella economica come
|
|
42
|
+
predefinita e passa all'API quando un compito richiede strumenti affidabili.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Installazione
|
|
47
|
+
|
|
48
|
+
Uncle Sam è un **plugin di DeepSeek Harness**. Fuori dall'harness non fa nulla, perché registra un provider di
|
|
49
|
+
modelli, una rotta sull'host e due spazi dell'interfaccia.
|
|
50
|
+
|
|
51
|
+
**Requisiti**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | qualsiasi versione recente con il gestore di plugin |
|
|
56
|
+
| Browser | Brave consigliato, Edge usato automaticamente se manca Brave |
|
|
57
|
+
| Node | 22 o superiore |
|
|
58
|
+
|
|
59
|
+
**Da npm**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Da questo repository**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Poi aggiungi la riga del pacchetto al tuo profilo perché l'harness lo carichi:
|
|
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
|
+
**Oppure da una cartella:** Impostazioni → Plugin → installa da un percorso locale, indicando la cartella con il
|
|
87
|
+
`package.json`.
|
|
88
|
+
|
|
89
|
+
### Primo avvio
|
|
90
|
+
|
|
91
|
+
Premi **Accedi / apri la chat**. Il browser si apre e **resta visibile** finché non hai fatto l'accesso su
|
|
92
|
+
chat.deepseek.com. Dopo si riduce da solo e non lo vedrai più. La sessione vive nel profilo del browser, quindi
|
|
93
|
+
**il plugin non memorizza nessuna password** — non c'è niente da far trapelare.
|
|
94
|
+
|
|
95
|
+
Dovresti poi vedere:
|
|
96
|
+
|
|
97
|
+
1. **Impostazioni → Uncle Sam** — una pagina con righe di stato e un pulsante di accesso.
|
|
98
|
+
2. **Sotto la casella di testo** — `● DeepSeek Harness` o `● Uncle Sam`, clicca per cambiare.
|
|
99
|
+
3. **L'elenco dei modelli** — quattro modelli `(web)` accanto a quelli dell'API.
|
|
100
|
+
|
|
101
|
+
### Rimuoverlo
|
|
102
|
+
|
|
103
|
+
Impostazioni → Plugin → Uncle Sam → Disinstalla. Non viene scritto nulla fuori dal profilo del browser con cui
|
|
104
|
+
hai fatto l'accesso.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## L'interruttore API / web
|
|
109
|
+
|
|
110
|
+
**Il selettore di modello è l'interruttore.** Non c'è un secondo comando, perché un secondo comando che scegliesse
|
|
111
|
+
anche il modello sarebbe due fonti di verità per una sola decisione.
|
|
112
|
+
|
|
113
|
+
| Scegli questo modello | Strada | DeepThink | Ricerca |
|
|
114
|
+
|---|---|---|---|
|
|
115
|
+
| `DeepSeek Chat (web)` | browser | off | off |
|
|
116
|
+
| `DeepSeek Chat + Search (web)` | browser | off | **on** |
|
|
117
|
+
| `DeepSeek Reasoner (web)` | browser | **on** | off |
|
|
118
|
+
| `DeepSeek Reasoner + Search (web)` | browser | **on** | **on** |
|
|
119
|
+
| qualsiasi modello senza `(web)` | l'API | — | — |
|
|
120
|
+
|
|
121
|
+
Accanto al nome del modello compare un badge **WEB** o **API**, così la strada attiva si vede a colpo d'occhio.
|
|
122
|
+
Quando il nome non viene riconosciuto il badge non mostra nulla invece di indovinare — un badge sbagliato sarebbe
|
|
123
|
+
peggio di nessun badge.
|
|
124
|
+
|
|
125
|
+
La scelta resta anche dopo il riavvio. **DeepThink** è la passata di ragionamento; **Ricerca** gli permette di
|
|
126
|
+
leggere il web dal vivo.
|
|
127
|
+
|
|
128
|
+
### La ricerca si vede nella conversazione
|
|
129
|
+
|
|
130
|
+
Con un modello di ricerca un turno produce **due blocchi** — la query usata, le fonti trovate e poi la risposta
|
|
131
|
+
che se n'è servita:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Ricerca web — «Qual è una notizia tecnologica di oggi?»
|
|
135
|
+
Fonti (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
136
|
+
Link: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
La pagina non espone la query digitata internamente, quindi la query citata è il messaggio che ha fatto partire la
|
|
140
|
+
ricerca. Fonti e link vengono letti dalla pagina quando la risposta si è assestata. Poiché le fonti esistono solo
|
|
141
|
+
alla fine, **i turni con ricerca si accumulano invece di andare in streaming**; i turni normali continuano a
|
|
142
|
+
streaming token per token.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Perché un browser e non la loro API HTTP
|
|
147
|
+
|
|
148
|
+
La strada ovvia — chiamare l'API di `chat.deepseek.com` — è stata tentata e abbandonata. Il sito fa passare ogni
|
|
149
|
+
messaggio attraverso due cancelli:
|
|
150
|
+
|
|
151
|
+
| Cancello | Cosa significa |
|
|
152
|
+
|---|---|
|
|
153
|
+
| `/api/v0/chat/create_pow_challenge` | una **prova di lavoro** per messaggio |
|
|
154
|
+
| `challenges.cloudflare.com/turnstile` | una barriera anti-bot sull'origine |
|
|
155
|
+
|
|
156
|
+
Reimplementare l'uno o l'altro è una partita persa: sono offuscati, cambiano, e quando cambiano il guasto sembra
|
|
157
|
+
esattamente un guasto di rete. **La pagina risolve già entrambi per le proprie richieste.**
|
|
158
|
+
|
|
159
|
+
Quindi l'adattatore non parla mai HTTP con il sito. Guida la pagina, e la pagina fa il resto. Autenticazione,
|
|
160
|
+
prova di lavoro e Turnstile smettono di essere un nostro problema e non possono rompersi indipendentemente dal
|
|
161
|
+
sito stesso.
|
|
162
|
+
|
|
163
|
+
**Verificato:** un semplice `HEAD` al sito restituisce `403`; la strada del browser restituisce risposte.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Limiti, detti con onestà
|
|
168
|
+
|
|
169
|
+
**La chiamata di strumenti è emulata.** Una chat web non ha un canale strutturato per gli strumenti: vengono
|
|
170
|
+
descritti nel prompt e una chiamata viene recuperata estraendo un oggetto JSON dalla risposta. Funziona —
|
|
171
|
+
verificato — ma è più debole della chiamata nativa: un modello che ignora l'istruzione risponde in prosa e
|
|
172
|
+
l'harness non vede alcuno strumento in quel turno. **Per lavoro agentico pesante la strada API è più affidabile.**
|
|
173
|
+
La strada web è migliore per conversazione, risposte lunghe, subagenti, compattazione e ogni turno in cui il
|
|
174
|
+
modello deve essere quello web.
|
|
175
|
+
|
|
176
|
+
**Dipende da un sito che non controlli.** Quando la pagina cambia forma, il plugin deve cambiare con lei. È
|
|
177
|
+
l'avviso di sviluppo attivo in cima a questa pagina, non una formalità.
|
|
178
|
+
|
|
179
|
+
**Non è affiliato a DeepSeek.** Non è approvato né supportato da loro, e non ti dà alcun diritto sul loro
|
|
180
|
+
servizio. Il tuo uso di quel servizio è regolato dai loro termini.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Configurazione
|
|
185
|
+
|
|
186
|
+
`cordis.patch.yml` imposta:
|
|
187
|
+
|
|
188
|
+
| chiave | predefinito | significato |
|
|
189
|
+
|---|---|---|
|
|
190
|
+
| `port` | `9222` | la porta di debug del browser |
|
|
191
|
+
| `defaultModel` | `deepseek-chat-search` | usato quando una chiamata non indica un modello |
|
|
192
|
+
| `showBrowser` | `true` | se la finestra è visibile mentre lavora |
|
|
193
|
+
|
|
194
|
+
Il browser deve avere una sessione aperta su `chat.deepseek.com`. La prima chiamata avvia Brave con il profilo
|
|
195
|
+
**Default** se la porta non è già aperta. Se Brave è già in esecuzione *senza* porta di debug, l'adattatore non
|
|
196
|
+
riesce a collegarsi e lo dice chiaramente invece di fallire in silenzio.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Struttura
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
index.js l'adattatore: StreamChunk dell'harness ←→ motore
|
|
204
|
+
lib/engine.mjs browser + pagina: scrivere, inviare, trasmettere, assestare
|
|
205
|
+
lib/cdp.mjs client Chrome DevTools Protocol, zero dipendenze
|
|
206
|
+
lib/prompt.mjs appiattisce messaggi + strumenti in un messaggio; recupera le chiamate dalla risposta
|
|
207
|
+
lib/savings.mjs quanto ti ha fatto risparmiare la strada web, prezzato contro l'API
|
|
208
|
+
lib/i18n.mjs 51 lingue per il pannello
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Nessuna dipendenza.** Node 24 include `WebSocket` e `fetch` globali, che è tutto ciò di cui il CDP ha bisogno:
|
|
212
|
+
il flusso dei token non lascia mai il processo host e non c'è un salto IPC per ogni delta.
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Sostegno
|
|
217
|
+
|
|
218
|
+
Uncle Sam esiste perché tu smetta di pagare per token. Se ti ha fatto risparmiare e vorresti vedere il prossimo
|
|
219
|
+
costruito su hardware che non finisce la memoria a metà strada:
|
|
220
|
+
|
|
221
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
222
|
+
|
|
223
|
+
Una stella sul repository o una segnalazione di bug utile valgono lo stesso.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Licenza
|
|
228
|
+
|
|
229
|
+
**CC BY-NC-ND 4.0** — Creative Commons Attribuzione-NonCommerciale-NonOpereDerivate 4.0 Internazionale.
|
|
230
|
+
Copyright (c) 2026 Darren T. Weldon, pubblicato con il nome Operating Tag.
|
|
231
|
+
|
|
232
|
+
**Tutto l'accordo in una riga: installalo e usalo, personalmente, gratis. Non modificarlo, non condividerlo, non
|
|
233
|
+
venderlo e non usarlo in un'azienda.**
|
|
234
|
+
|
|
235
|
+
Questo non è open source, e non finge di esserlo.
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
puoi installarlo ed eseguirlo · usarlo personalmente, senza fini commerciali
|
|
239
|
+
leggere il codice per capirlo
|
|
240
|
+
|
|
241
|
+
non puoi modificarlo, adattarlo o crearne un'opera derivata
|
|
242
|
+
copiarlo, distribuirlo, pubblicarlo, rispecchiarlo o renderlo
|
|
243
|
+
disponibile a chiunque altro
|
|
244
|
+
caricarlo su qualsiasi hosting di codice, registro, sito, forum o chat
|
|
245
|
+
venderlo, rivenderlo, affittarlo o farsi pagare per esso o per accedervi
|
|
246
|
+
includerlo in qualsiasi cosa consegni a un'altra persona
|
|
247
|
+
usarlo per qualsiasi fine commerciale o nell'esercizio di un'attività d'impresa
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**Le uniche due fonti legittime sono questo repository e il pacchetto npm
|
|
251
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Una copia arrivata
|
|
252
|
+
da qualunque altro posto non è sotto licenza, chiunque te l'abbia fornita. Se vedi questo software in vendita, non
|
|
253
|
+
lo sta vendendo l'autore.
|
|
254
|
+
|
|
255
|
+
**L'uso commerciale, e il diritto di modificare e distribuire, sono disponibili con una licenza scritta
|
|
256
|
+
separata.** Chiedi a Operating Tag e avrai una risposta chiara e un prezzo chiaro.
|
|
257
|
+
|
|
258
|
+
Il file [LICENSE](LICENSE) è quello che fa fede, e si apre con lo stesso riassunto in inglese semplice.
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
Uncle Sam è un plugin indipendente. Non affiliato a DeepSeek, né approvato né supportato da loro.
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
266
|
+
Autore Operating Tag
|
|
267
|
+
Licenza CC BY-NC-ND 4.0 — libero da usare, non da modificare, condividere o vendere
|
|
268
|
+
```
|
package/README.ja.md
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
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.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
|
+
**課金される API の代わりに、すでにお使いの Web アカウントを使って、あなた自身のブラウザ経由で応答する DeepSeek Harness 用プロバイダーです。**
|
|
6
|
+
|
|
7
|
+
**☕ [コーヒーをおごってください](https://revolut.me/operatingtag)** — ひとりが夜に、資金もなく書いています。ほかに収益源はありません。スターや不具合の報告も同じくらい嬉しいものです。
|
|
8
|
+
|
|
9
|
+
> **この製品は現在も開発を続けています。不具合はあるものと思ってください。**
|
|
10
|
+
>
|
|
11
|
+
> 動作し、速く、何週間も毎日使われていますが、常に変わっていきますし、ブラウザ経由の経路は予告なく
|
|
12
|
+
> 変わる Web サイトに依存しています。壊れたときは、説明よりもスクリーンショットとバージョン番号の
|
|
13
|
+
> ほうが役に立ちます。依存するならバージョンを固定してください。
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
プロバイダー deepseek-web
|
|
17
|
+
モデル deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
コスト トークンあたり 0 円 — ブラウザで開いているサブスクリプションを使います
|
|
19
|
+
状態 開発中 — 不具合はあるものと思ってください
|
|
20
|
+
実測 最初のトークンまで約 1.9 秒 · オーバーヘッド約 0.6 秒 · 1 ターン約 2.5 秒
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Web 経由の応答には **🔴 Uncle Sam** の署名が付きます。これは冗談の名前で、主張ではありません。どちらの
|
|
24
|
+
経路が答えたかを示す印であり、API の応答には署名が一切ありません。どちらが答えたかは常に分かります。
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 何を節約できるか
|
|
29
|
+
|
|
30
|
+
API はトークン単位で課金されます。Web 版は課金されません。このプラグインは `deepseek-web` をモデル
|
|
31
|
+
プロバイダーとして登録し、実際のブラウザで `chat.deepseek.com` を操作して応答します。作業はページが
|
|
32
|
+
行い、セッションはブラウザが保持し、何も計測されません。
|
|
33
|
+
|
|
34
|
+
| | API 経路 | Web 経路 |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| コスト | トークン単位でずっと | サブスクリプション以外は無料 |
|
|
37
|
+
| 速度 | 速い | 1 ターン約 2.5 秒(実測) |
|
|
38
|
+
| ツール呼び出し | ネイティブで確実 | エミュレート、動くが弱い |
|
|
39
|
+
| 依存先 | API | 予告なく変わる Web サイト |
|
|
40
|
+
|
|
41
|
+
**両方の経路が入ったまま残ります。** 切り替えはモデル選択そのものです。ふだんは安いほうを使い、確実な
|
|
42
|
+
ツール操作が要る作業だけ API に切り替えられます。
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## インストール
|
|
47
|
+
|
|
48
|
+
Uncle Sam は **DeepSeek Harness のプラグイン**です。モデルプロバイダー、ホストのルート、UI の 2 つの
|
|
49
|
+
スロットを登録するため、Harness の外では何もしません。
|
|
50
|
+
|
|
51
|
+
**必要なもの**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | プラグインマネージャー付きの新しいビルド |
|
|
56
|
+
| ブラウザ | Brave 推奨。無ければ Edge を自動で使います |
|
|
57
|
+
| Node | 22 以上 |
|
|
58
|
+
|
|
59
|
+
**npm から**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**このリポジトリから**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
そのうえで、Harness が読み込むようにプロフィールへ 1 行追加します。
|
|
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
|
+
**フォルダから入れる場合:** 設定 → プラグイン → ローカルパスからインストール、`package.json` のある
|
|
87
|
+
フォルダを指定します。
|
|
88
|
+
|
|
89
|
+
### 最初の実行
|
|
90
|
+
|
|
91
|
+
**サインイン / チャットを開く** を押します。chat.deepseek.com でサインインするまでブラウザは**表示された
|
|
92
|
+
まま**になります。その後は自動で最小化され、二度と見えません。セッションはブラウザのプロフィールに
|
|
93
|
+
残るので、**プラグインはパスワードを保存しません**。漏れるものがありません。
|
|
94
|
+
|
|
95
|
+
そのあと次が見えるはずです。
|
|
96
|
+
|
|
97
|
+
1. **設定 → Uncle Sam** — 状態の行とサインインボタンのあるページ。
|
|
98
|
+
2. **入力欄の下** — `● DeepSeek Harness` または `● Uncle Sam`、クリックで切り替え。
|
|
99
|
+
3. **モデル一覧** — API のモデルの隣に 4 つの `(web)` モデル。
|
|
100
|
+
|
|
101
|
+
### 削除する
|
|
102
|
+
|
|
103
|
+
設定 → プラグイン → Uncle Sam → アンインストール。サインインしたブラウザのプロフィール以外には何も
|
|
104
|
+
書き込まれません。
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## API / Web の切り替え
|
|
109
|
+
|
|
110
|
+
**モデル選択がそのままスイッチです。** 2 つ目の操作系はありません。モデルも選ぶ 2 つ目の操作系は、
|
|
111
|
+
1 つの判断に対して 2 つの正解を持つことになるからです。
|
|
112
|
+
|
|
113
|
+
| このモデルを選ぶ | 経路 | DeepThink | 検索 |
|
|
114
|
+
|---|---|---|---|
|
|
115
|
+
| `DeepSeek Chat (web)` | ブラウザ | オフ | オフ |
|
|
116
|
+
| `DeepSeek Chat + Search (web)` | ブラウザ | オフ | **オン** |
|
|
117
|
+
| `DeepSeek Reasoner (web)` | ブラウザ | **オン** | オフ |
|
|
118
|
+
| `DeepSeek Reasoner + Search (web)` | ブラウザ | **オン** | **オン** |
|
|
119
|
+
| `(web)` の付かないモデル | API | — | — |
|
|
120
|
+
|
|
121
|
+
モデル名の横に **WEB** または **API** のバッジが出るので、いまどちらの経路かが一目で分かります。名前を
|
|
122
|
+
認識できないときは、推測せずに何も表示しません。間違ったバッジは、バッジが無いより悪いからです。
|
|
123
|
+
|
|
124
|
+
選択は再起動しても残ります。**DeepThink** は推論のパス、**検索** は Web を読ませる機能です。
|
|
125
|
+
|
|
126
|
+
### 検索は会話に表示されます
|
|
127
|
+
|
|
128
|
+
検索モデルでは 1 ターンで**2 つのブロック**が出ます。検索したクエリ、見つけた出典、そしてそれを使った
|
|
129
|
+
回答です。
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Web 検索 — 「今日のテクノロジーニュースの見出しは?」
|
|
133
|
+
出典 (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
134
|
+
リンク: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
ページは内部で入力したクエリを公開しないため、引用されるクエリは検索を起こしたメッセージそのものです。
|
|
138
|
+
出典とリンクは回答が落ち着いてからページから読み取ります。出典は最後にしか存在しないので、**検索ターンは
|
|
139
|
+
ストリームせずまとめて出力**します。通常のターンは今まで通りトークン単位で流れます。
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## なぜブラウザなのか、なぜ自前の HTTP API ではないのか
|
|
144
|
+
|
|
145
|
+
素直な方法 — `chat.deepseek.com` 自身の API を呼ぶ — は試してやめました。このサイトはすべてのメッセージ
|
|
146
|
+
に 2 つの関門を課します。
|
|
147
|
+
|
|
148
|
+
| 関門 | 意味 |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `/api/v0/chat/create_pow_challenge` | メッセージごとの**プルーフ・オブ・ワーク** |
|
|
151
|
+
| `challenges.cloudflare.com/turnstile` | オリジン側のボット対策 |
|
|
152
|
+
|
|
153
|
+
どちらかを再実装するのは負け戦です。難読化されていて、変わり、変わったときの失敗はネットワーク障害と
|
|
154
|
+
まったく同じに見えます。**ページ自身はそのどちらも自分のリクエストのために解決済みです。**
|
|
155
|
+
|
|
156
|
+
そこでアダプターはサイトと HTTP で話しません。ページを操作し、あとはページに任せます。認証、プルーフ・
|
|
157
|
+
オブ・ワーク、Turnstile はこちらの問題ではなくなり、サイト本体とは独立に壊れることもありません。
|
|
158
|
+
|
|
159
|
+
**確認済み:** サイトへの単純な `HEAD` は `403` を返し、ブラウザ経由の経路は回答を返します。
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 正直に書く制限
|
|
164
|
+
|
|
165
|
+
**ツール呼び出しはエミュレートです。** Web チャットには構造化されたツールの経路がありません。ツールは
|
|
166
|
+
プロンプトに文章で書き、呼び出しは応答から JSON を抜き出して復元します。動きます — 確認済みです — が、
|
|
167
|
+
ネイティブのツール呼び出しより弱いです。指示を無視したモデルは文章で答えてしまい、そのターン Harness は
|
|
168
|
+
ツール利用をまったく見ません。**重いエージェント作業には API 経路のほうが確実です。** Web 経路は会話、
|
|
169
|
+
長い回答、サブエージェント、圧縮、そしてモデルが Web モデルでなければならないターンに向いています。
|
|
170
|
+
|
|
171
|
+
**あなたが制御できない Web サイトに依存します。** ページの形が変われば、プラグインも変わらなければ
|
|
172
|
+
なりません。これはこのページ冒頭の開発中の警告であって、飾りではありません。
|
|
173
|
+
|
|
174
|
+
**DeepSeek とは関係ありません。** 彼らによる承認も支援もなく、彼らのサービスに対する権利も与えません。
|
|
175
|
+
そのサービスの利用は彼らの規約に従います。
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 設定
|
|
180
|
+
|
|
181
|
+
`cordis.patch.yml` で設定します。
|
|
182
|
+
|
|
183
|
+
| キー | 既定値 | 意味 |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `port` | `9222` | ブラウザのデバッグポート |
|
|
186
|
+
| `defaultModel` | `deepseek-chat-search` | 呼び出しがモデルを指定しないときに使う |
|
|
187
|
+
| `showBrowser` | `true` | 作業中にウィンドウを表示するか |
|
|
188
|
+
|
|
189
|
+
ブラウザには `chat.deepseek.com` のサインイン済みセッションが必要です。最初の呼び出しのとき、ポートが
|
|
190
|
+
まだ開いていなければ Brave を **Default** プロフィールで起動します。Brave がデバッグポート*なし*で
|
|
191
|
+
すでに動いている場合はアダプターが接続できず、黙って失敗せずにその旨をはっきり伝えます。
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 構成
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
index.js Harness の StreamChunk ←→ エンジン のアダプター
|
|
199
|
+
lib/engine.mjs ブラウザとページ:入力、送信、ストリーム、落ち着き待ち
|
|
200
|
+
lib/cdp.mjs Chrome DevTools Protocol クライアント、依存ゼロ
|
|
201
|
+
lib/prompt.mjs メッセージとツールを 1 通にまとめ、応答からツール呼び出しを復元
|
|
202
|
+
lib/savings.mjs Web 経路で浮いた額を API 価格で換算
|
|
203
|
+
lib/i18n.mjs パネル用の 51 言語
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**依存パッケージはありません。** Node 24 は `WebSocket` と `fetch` を標準で持っており、CDP に必要なのは
|
|
207
|
+
それだけです。トークンの流れがホストプロセスから出ることはなく、差分ごとの IPC もありません。
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 支援
|
|
212
|
+
|
|
213
|
+
Uncle Sam は、トークン課金を止めるためにあります。お金の節約になったなら、途中でメモリ不足にならない
|
|
214
|
+
ハードウェアで次を作りたいと思っています。
|
|
215
|
+
|
|
216
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
217
|
+
|
|
218
|
+
リポジトリへのスターや役に立つ不具合報告も同じくらい嬉しいものです。
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## ライセンス
|
|
223
|
+
|
|
224
|
+
**CC BY-NC-ND 4.0** — クリエイティブ・コモンズ 表示-非営利-改変禁止 4.0 国際。
|
|
225
|
+
Copyright (c) 2026 Darren T. Weldon、Operating Tag 名義で公開。
|
|
226
|
+
|
|
227
|
+
**ひとことで言えば:個人的に、無料でインストールして使えます。変更しない、共有しない、売らない、企業で
|
|
228
|
+
使わない。**
|
|
229
|
+
|
|
230
|
+
これはオープンソースではありませんし、そう装いもしません。
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
できること インストールして実行する · 個人的に非営利で使う
|
|
234
|
+
理解のためにソースを読む
|
|
235
|
+
|
|
236
|
+
できないこと 改変・翻案・二次的著作物の作成
|
|
237
|
+
複製・配布・公開・ミラー・誰かに利用可能にすること
|
|
238
|
+
コードホスティング、レジストリ、Web サイト、フォーラム、
|
|
239
|
+
チャットのいずれかへのアップロード
|
|
240
|
+
販売・転売・貸与、および本体やアクセスに対する課金
|
|
241
|
+
他者に提供するものへの組み込み
|
|
242
|
+
商業目的、または事業活動のなかでの使用
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**正規に入手できるのは、このリポジトリと npm パッケージ
|
|
246
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam) の 2 か所だけ
|
|
247
|
+
です。** ほかから入手したコピーは、誰が渡したものであってもライセンスされていません。このソフトが売られて
|
|
248
|
+
いたら、売っているのは作者ではありません。
|
|
249
|
+
|
|
250
|
+
**商用利用、および改変・配布の権利は、別途の書面ライセンスで提供します。** Operating Tag に問い合わせて
|
|
251
|
+
いただければ、はっきりした答えとはっきりした価格をお伝えします。
|
|
252
|
+
|
|
253
|
+
効力を持つのは [LICENSE](LICENSE) ファイルで、その冒頭に同じ内容が平易な英語で書かれています。
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
Uncle Sam は独立したプラグインです。DeepSeek とは関係がなく、承認も支援も受けていません。
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
261
|
+
作者 Operating Tag
|
|
262
|
+
ライセンス CC BY-NC-ND 4.0 — 使用は自由、変更・共有・販売は不可
|
|
263
|
+
```
|