@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.ru.md
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · [Italiano](README.it.md) · [Türkçe](README.tr.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [简体中文](README.zh.md) · **Русский** · [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
|
+
**Провайдер для DeepSeek Harness, который отвечает через ваш собственный браузер — на том веб-аккаунте, который у вас уже есть, — вместо платного API.**
|
|
6
|
+
|
|
7
|
+
**☕ [Угостите меня кофе](https://revolut.me/operatingtag)** — пишет один человек, ночью, без финансирования. Другой модели дохода нет. Звезда на репозитории или полезный отчёт об ошибке стоит столько же.
|
|
8
|
+
|
|
9
|
+
> **Продукт находится в активной разработке. Ожидайте ошибок.**
|
|
10
|
+
>
|
|
11
|
+
> Он работает, он быстрый и им пользуются каждый день уже несколько недель — но он постоянно меняется, а
|
|
12
|
+
> браузерный путь зависит от сайта, который меняется без предупреждения. Если что-то сломалось, скриншот и
|
|
13
|
+
> номер версии полезнее описания. Закрепите версию, если вы от него зависите.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
провайдер deepseek-web
|
|
17
|
+
модели deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
цена ноль за токен — используется подписка, уже открытая в вашем браузере
|
|
19
|
+
состояние в разработке — ожидайте ошибок
|
|
20
|
+
измерено первый токен ~1,9 с · накладные ~0,6 с · полный ход ~2,5 с
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Ответы веб-пути подписаны **🔴 Uncle Sam**. Это имя — шутка, а не заявление: оно отмечает, какой путь
|
|
24
|
+
ответил, а ответы API вообще без подписи. Вы всегда знаете, кто вам ответил.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Что это экономит
|
|
29
|
+
|
|
30
|
+
API берёт деньги за токены. Веб-продукт — нет. Плагин регистрирует `deepseek-web` как провайдера моделей и
|
|
31
|
+
отвечает на каждый вызов, управляя `chat.deepseek.com` в настоящем браузере: работу делает страница, сеанс
|
|
32
|
+
держит браузер, и ничего не тарифицируется.
|
|
33
|
+
|
|
34
|
+
| | Путь API | Веб-путь |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Цена | за токен, всегда | ничего сверх подписки |
|
|
37
|
+
| Скорость | быстро | ~2,5 с на ход, измерено |
|
|
38
|
+
| Вызов инструментов | нативный и надёжный | эмуляция: работает, но слабее |
|
|
39
|
+
| Зависит от | API | сайта, который меняется без предупреждения |
|
|
40
|
+
|
|
41
|
+
**Оба пути остаются установленными.** Переключатель — это выбор модели: по умолчанию дешёвый путь, а к API
|
|
42
|
+
обращаетесь, когда задаче нужны надёжные инструменты.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Установка
|
|
47
|
+
|
|
48
|
+
Uncle Sam — **плагин DeepSeek Harness**. Вне Harness он ничего не делает: он регистрирует провайдера моделей,
|
|
49
|
+
маршрут на хосте и два места в интерфейсе.
|
|
50
|
+
|
|
51
|
+
**Требования**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | любая свежая сборка с менеджером плагинов |
|
|
56
|
+
| Браузер | рекомендуется Brave; Edge используется автоматически, если Brave нет |
|
|
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 его загрузил:
|
|
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
|
+
1. **Настройки → Uncle Sam** — страница со строками состояния и кнопкой входа.
|
|
97
|
+
2. **Под полем ввода** — `● DeepSeek Harness` или `● Uncle Sam`, нажмите, чтобы переключить.
|
|
98
|
+
3. **Список моделей** — четыре модели `(web)` рядом с моделями API.
|
|
99
|
+
|
|
100
|
+
### Удаление
|
|
101
|
+
|
|
102
|
+
Настройки → Плагины → Uncle Sam → Удалить. За пределами профиля браузера, в котором вы вошли, ничего не
|
|
103
|
+
записывается.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Переключатель API / веб
|
|
108
|
+
|
|
109
|
+
**Переключатель — это выбор модели.** Второго элемента управления нет, потому что второй элемент, который ещё
|
|
110
|
+
и выбирал бы модель, был бы двумя источниками правды для одного решения.
|
|
111
|
+
|
|
112
|
+
| Выберите эту модель | Путь | DeepThink | Поиск |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| `DeepSeek Chat (web)` | браузер | выкл | выкл |
|
|
115
|
+
| `DeepSeek Chat + Search (web)` | браузер | выкл | **вкл** |
|
|
116
|
+
| `DeepSeek Reasoner (web)` | браузер | **вкл** | выкл |
|
|
117
|
+
| `DeepSeek Reasoner + Search (web)` | браузер | **вкл** | **вкл** |
|
|
118
|
+
| любая модель без `(web)` | API | — | — |
|
|
119
|
+
|
|
120
|
+
Рядом с названием модели появляется значок **WEB** или **API**, чтобы активный путь был виден сразу. Если
|
|
121
|
+
название не распознано, значок не показывает ничего вместо того, чтобы угадывать: неверный значок хуже, чем
|
|
122
|
+
никакого.
|
|
123
|
+
|
|
124
|
+
Выбор сохраняется между перезапусками. **DeepThink** — проход рассуждения; **Поиск** позволяет читать живой
|
|
125
|
+
веб.
|
|
126
|
+
|
|
127
|
+
### Поиск виден в переписке
|
|
128
|
+
|
|
129
|
+
С моделью поиска ход даёт **два блока** — запрос, с которым она искала, найденные источники и затем ответ,
|
|
130
|
+
который ими воспользовался:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Веб-поиск — «Какая сегодня новость из мира технологий?»
|
|
134
|
+
Источники (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
135
|
+
Ссылки: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Страница не раскрывает запрос, который ввела внутри себя, поэтому цитируемый запрос — это сообщение,
|
|
139
|
+
запустившее поиск. Источники и ссылки считываются со страницы, когда ответ устоялся. Поскольку источники
|
|
140
|
+
существуют только в конце, **ходы с поиском буферизуются, а не транслируются**; обычные ходы по-прежнему
|
|
141
|
+
идут токен за токеном.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Почему браузер, а не их HTTP API
|
|
146
|
+
|
|
147
|
+
Очевидный путь — вызывать собственный API `chat.deepseek.com` — был испробован и отброшен. Сайт заставляет
|
|
148
|
+
каждое сообщение пройти двое ворот:
|
|
149
|
+
|
|
150
|
+
| Ворота | Что это значит |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `/api/v0/chat/create_pow_challenge` | **доказательство работы** на каждое сообщение |
|
|
153
|
+
| `challenges.cloudflare.com/turnstile` | защита от ботов на источнике |
|
|
154
|
+
|
|
155
|
+
Повторно реализовывать любое из них — заведомо проигрышное дело: они обфусцированы, они меняются, и когда они
|
|
156
|
+
меняются, сбой выглядит ровно как сетевая авария. **Страница уже решает и то, и другое для своих собственных
|
|
157
|
+
запросов.**
|
|
158
|
+
|
|
159
|
+
Поэтому адаптер никогда не говорит с сайтом по HTTP. Он управляет страницей, а страница делает остальное.
|
|
160
|
+
Авторизация, доказательство работы и Turnstile перестают быть нашей проблемой и не могут сломаться отдельно от
|
|
161
|
+
самого сайта.
|
|
162
|
+
|
|
163
|
+
**Проверено:** простой `HEAD` к сайту возвращает `403`; браузерный путь возвращает ответы.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Ограничения, названные честно
|
|
168
|
+
|
|
169
|
+
**Вызов инструментов эмулируется.** У веб-чата нет структурированного канала для инструментов: они описываются
|
|
170
|
+
в запросе, а вызов восстанавливается разбором JSON-объекта из ответа. Это работает — проверено — но слабее
|
|
171
|
+
нативного вызова: модель, проигнорировавшая инструкцию, отвечает текстом, и Harness в этом ходе вовсе не видит
|
|
172
|
+
использования инструментов. **Для тяжёлой агентской работы путь через API надёжнее.** Веб-путь лучше всего
|
|
173
|
+
подходит для беседы, длинных ответов, подагентов, сжатия контекста и любого хода, где модель обязана быть
|
|
174
|
+
веб-моделью.
|
|
175
|
+
|
|
176
|
+
**Он зависит от сайта, который вы не контролируете.** Когда страница меняет форму, плагин должен меняться
|
|
177
|
+
вместе с ней. Это и есть предупреждение о разработке в начале страницы, а не формальность.
|
|
178
|
+
|
|
179
|
+
**Он не связан с DeepSeek.** Они его не одобряют и не поддерживают, и он не даёт вам никаких прав на их
|
|
180
|
+
сервис. Ваше использование этого сервиса регулируется их условиями.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Настройка
|
|
185
|
+
|
|
186
|
+
`cordis.patch.yml` задаёт:
|
|
187
|
+
|
|
188
|
+
| ключ | по умолчанию | значение |
|
|
189
|
+
|---|---|---|
|
|
190
|
+
| `port` | `9222` | порт отладки браузера |
|
|
191
|
+
| `defaultModel` | `deepseek-chat-search` | используется, когда вызов не называет модель |
|
|
192
|
+
| `showBrowser` | `true` | видно ли окно во время работы |
|
|
193
|
+
|
|
194
|
+
В браузере должен быть открытый сеанс `chat.deepseek.com`. Первый вызов запускает Brave с профилем
|
|
195
|
+
**Default**, если порт ещё не открыт. Если Brave уже работает *без* порта отладки, адаптер не может
|
|
196
|
+
подключиться и прямо об этом сообщает, а не падает молча.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Устройство
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
index.js адаптер: StreamChunk Harness ←→ движок
|
|
204
|
+
lib/engine.mjs браузер и страница: набрать, отправить, транслировать, дождаться
|
|
205
|
+
lib/cdp.mjs клиент Chrome DevTools Protocol, без зависимостей
|
|
206
|
+
lib/prompt.mjs сводит сообщения и инструменты в одно сообщение; достаёт вызовы из ответа
|
|
207
|
+
lib/savings.mjs сколько сэкономил веб-путь, в ценах API
|
|
208
|
+
lib/i18n.mjs 51 язык для панели
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Никаких зависимостей.** В Node 24 есть глобальные `WebSocket` и `fetch` — больше CDP ничего не нужно,
|
|
212
|
+
поэтому поток токенов никогда не покидает процесс хоста и на каждую дельту нет перехода через IPC.
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Поддержка
|
|
217
|
+
|
|
218
|
+
Uncle Sam существует, чтобы вы перестали платить за токены. Если он сэкономил вам деньги и вам хотелось бы
|
|
219
|
+
увидеть следующий на железе, которое не кончается память на полпути:
|
|
220
|
+
|
|
221
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
222
|
+
|
|
223
|
+
Звезда на репозитории или полезный отчёт об ошибке стоит столько же.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Лицензия
|
|
228
|
+
|
|
229
|
+
**CC BY-NC-ND 4.0** — Creative Commons «Атрибуция — Некоммерческое использование — Без производных» 4.0
|
|
230
|
+
International. Copyright (c) 2026 Darren T. Weldon, опубликовано под именем Operating Tag.
|
|
231
|
+
|
|
232
|
+
**Весь договор одной строкой: установите и пользуйтесь лично, бесплатно. Не меняйте, не передавайте, не
|
|
233
|
+
продавайте и не используйте в компании.**
|
|
234
|
+
|
|
235
|
+
Это не открытый исходный код, и он не притворяется им.
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
можно устанавливать и запускать · использовать лично, не в коммерческих целях
|
|
239
|
+
читать исходный код, чтобы его понять
|
|
240
|
+
|
|
241
|
+
нельзя изменять, адаптировать или создавать производное произведение
|
|
242
|
+
копировать, распространять, публиковать, зеркалить или
|
|
243
|
+
делать доступным кому-либо
|
|
244
|
+
загружать на любой хостинг кода, в реестр, на сайт, форум или в чат
|
|
245
|
+
продавать, перепродавать, сдавать в аренду или брать деньги за него
|
|
246
|
+
или за доступ к нему
|
|
247
|
+
включать в что-либо, что вы передаёте другому лицу
|
|
248
|
+
использовать в коммерческих целях или в рамках предпринимательской деятельности
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Единственные два законных источника — этот репозиторий и пакет npm
|
|
252
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Копия, полученная
|
|
253
|
+
где-либо ещё, не лицензирована, кто бы её ни передал. Если вы видите этот софт в продаже, продаёт его не
|
|
254
|
+
автор.
|
|
255
|
+
|
|
256
|
+
**Коммерческое использование, а также право изменять и распространять, доступны по отдельной письменной
|
|
257
|
+
лицензии.** Спросите Operating Tag — получите прямой ответ и понятную цену.
|
|
258
|
+
|
|
259
|
+
Имеет силу файл [LICENSE](LICENSE), и он начинается с того же краткого изложения простым английским.
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
Uncle Sam — независимый плагин. Не связан с DeepSeek, не одобрен и не поддерживается им.
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
267
|
+
Автор Operating Tag
|
|
268
|
+
Лицензия CC BY-NC-ND 4.0 — бесплатно для использования, не для изменения, передачи или продажи
|
|
269
|
+
```
|
package/README.sv.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.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** · [Dansk](README.da.md) · [Suomi](README.fi.md) · [Magyar](README.hu.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**En leverantör för DeepSeek Harness som svarar genom din egen webbläsare, på det webbkonto du redan har, i stället för det debiterade API:t.**
|
|
6
|
+
|
|
7
|
+
**☕ [Bjud mig på en kaffe](https://revolut.me/operatingtag)** — skrivs av en person, på nätterna, utan finansiering. Det finns ingen annan intäktsmodell. En stjärna eller en användbar felrapport är värd lika mycket.
|
|
8
|
+
|
|
9
|
+
> **Den här produkten utvecklas aktivt. Räkna med buggar.**
|
|
10
|
+
>
|
|
11
|
+
> Den fungerar, den är snabb och den har använts dagligen i veckor — men den ändras hela tiden, och webbläsarvägen
|
|
12
|
+
> beror på en webbplats som ändras utan förvarning. Om något går sönder är en skärmbild och versionsnumret värt mer än
|
|
13
|
+
> en beskrivning. Lås en version om du är beroende av den.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
leverantör deepseek-web
|
|
17
|
+
modeller deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
kostnad inget per token — den använder prenumerationen som redan är öppen i din webbläsare
|
|
19
|
+
status under utveckling — räkna med buggar
|
|
20
|
+
mätt första token ~1,9 s · överhead ~0,6 s · en hel tur på ~2,5 s
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Svar från webbvägen signeras **🔴 Uncle Sam**. Namnet är ett skämt, inte ett påstående: det markerar vilken väg som
|
|
24
|
+
svarade, och API-svar har ingen signatur alls. Du vet alltid vem som svarade dig.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Vad det sparar åt dig
|
|
29
|
+
|
|
30
|
+
API:t debiterar per token. Webbprodukten gör det inte. Insticksprogrammet registrerar `deepseek-web` som
|
|
31
|
+
modellleverantör och svarar på varje anrop genom att styra `chat.deepseek.com` i en riktig webbläsare — sidan gör
|
|
32
|
+
jobbet, webbläsaren håller sessionen och ingenting mäts.
|
|
33
|
+
|
|
34
|
+
| | API-vägen | Webbvägen |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Kostnad | per token, för alltid | inget utöver prenumerationen |
|
|
37
|
+
| Hastighet | snabb | ~2,5 s per tur, mätt |
|
|
38
|
+
| Verktygsanrop | inbyggt och pålitligt | emulerat, fungerar men svagare |
|
|
39
|
+
| Beror på | API:t | en webbplats som ändras utan förvarning |
|
|
40
|
+
|
|
41
|
+
**Båda vägarna finns kvar.** Modellväljaren är strömbrytaren: använd den billiga vägen som standard och ta API:t när
|
|
42
|
+
en uppgift behöver pålitliga verktyg.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Installation
|
|
47
|
+
|
|
48
|
+
Uncle Sam är ett **insticksprogram för DeepSeek Harness**. Utanför harness gör det ingenting, eftersom det registrerar
|
|
49
|
+
en modellleverantör, en väg på värden och två platser i gränssnittet.
|
|
50
|
+
|
|
51
|
+
**Krav**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | vilken nyare version som helst med instickshanteraren |
|
|
56
|
+
| Webbläsare | Brave rekommenderas; Edge används automatiskt om Brave saknas |
|
|
57
|
+
| Node | 22 eller nyare |
|
|
58
|
+
|
|
59
|
+
**Från npm**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Från det här arkivet**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Lägg sedan till paketrader i din profil så att harness laddar det:
|
|
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
|
+
**Eller från en mapp:** Inställningar → Insticksprogram → installera från en lokal sökväg, peka på mappen med
|
|
87
|
+
`package.json`.
|
|
88
|
+
|
|
89
|
+
### Första körningen
|
|
90
|
+
|
|
91
|
+
Klicka på **Logga in / öppna chatten**. Webbläsaren öppnas och **förblir synlig** tills du har loggat in på
|
|
92
|
+
chat.deepseek.com. Därefter minimeras den själv och du ser den inte igen. Sessionen ligger i din webbläsarprofil, så
|
|
93
|
+
**insticksprogrammet sparar inget lösenord** — det finns inget att läcka.
|
|
94
|
+
|
|
95
|
+
Du bör då se:
|
|
96
|
+
|
|
97
|
+
1. **Inställningar → Uncle Sam** — en sida med statusrader och en inloggningsknapp.
|
|
98
|
+
2. **Under meddelanderutan** — `● DeepSeek Harness` eller `● Uncle Sam`, klicka för att växla.
|
|
99
|
+
3. **Modellistan** — fyra `(web)`-modeller bredvid API:ts modeller.
|
|
100
|
+
|
|
101
|
+
### Ta bort
|
|
102
|
+
|
|
103
|
+
Inställningar → Insticksprogram → Uncle Sam → Avinstallera. Ingenting skrivs utanför webbläsarprofilen du loggade in
|
|
104
|
+
med.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Växeln API / webb
|
|
109
|
+
|
|
110
|
+
**Modellväljaren är växeln.** Det finns ingen andra kontroll, eftersom en andra kontroll som också valde modell skulle
|
|
111
|
+
vara två källor till sanning för ett beslut.
|
|
112
|
+
|
|
113
|
+
| Välj den här modellen | Väg | DeepThink | Sökning |
|
|
114
|
+
|---|---|---|---|
|
|
115
|
+
| `DeepSeek Chat (web)` | webbläsare | av | av |
|
|
116
|
+
| `DeepSeek Chat + Search (web)` | webbläsare | av | **på** |
|
|
117
|
+
| `DeepSeek Reasoner (web)` | webbläsare | **på** | av |
|
|
118
|
+
| `DeepSeek Reasoner + Search (web)` | webbläsare | **på** | **på** |
|
|
119
|
+
| vilken modell som helst utan `(web)` | API:t | — | — |
|
|
120
|
+
|
|
121
|
+
En bricka **WEB** eller **API** visas bredvid modellnamnet så att den aktiva vägen syns direkt. När namnet inte känns
|
|
122
|
+
igen visar brickan ingenting i stället för att gissa — en felaktig bricka är värre än ingen.
|
|
123
|
+
|
|
124
|
+
Ditt val består mellan omstarter. **DeepThink** är resonemangssteget; **Sökning** låter den läsa den levande webben.
|
|
125
|
+
|
|
126
|
+
### Sökningen syns i konversationen
|
|
127
|
+
|
|
128
|
+
Med en sökmodell ger en tur **två block** — frågan den sökte med, källorna den hittade och sedan svaret som använde
|
|
129
|
+
dem:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Webbsökning — "Vilken är en teknikrubrik i dag?"
|
|
133
|
+
Källor (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
134
|
+
Länkar: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Sidan avslöjar inte frågan den skrev in internt, så den citerade frågan är meddelandet som utlöste sökningen. Källor och
|
|
138
|
+
länkar läses från sidan när svaret har lagt sig. Eftersom källor bara finns i slutet, **buffras sökturer i stället för
|
|
139
|
+
att strömmas**; vanliga turer strömmas fortfarande token för token.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Varför en webbläsare och inte deras HTTP-API
|
|
144
|
+
|
|
145
|
+
Den uppenbara vägen — att anropa `chat.deepseek.com`s eget API — provades och övergavs. Sajten tvingar varje meddelande
|
|
146
|
+
genom två portar:
|
|
147
|
+
|
|
148
|
+
| Port | Vad det betyder |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `/api/v0/chat/create_pow_challenge` | ett **arbetsbevis** per meddelande |
|
|
151
|
+
| `challenges.cloudflare.com/turnstile` | en botport vid ursprunget |
|
|
152
|
+
|
|
153
|
+
Att återimplementera någon av dem är ett förlorat spel: de är obfuskerade, de ändras, och när de ändras ser felet ut
|
|
154
|
+
precis som ett nätverksfel. **Sidan löser redan båda för sina egna förfrågningar.**
|
|
155
|
+
|
|
156
|
+
Så adaptern talar aldrig HTTP med sajten. Den styr sidan, och sidan gör resten. Autentisering, arbetsbevis och
|
|
157
|
+
Turnstile slutar vara vårt problem och kan inte gå sönder oberoende av sajten själv.
|
|
158
|
+
|
|
159
|
+
**Verifierat:** en vanlig `HEAD` mot sajten ger `403`; webbläsarvägen ger svar.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Gränser, ärligt sagda
|
|
164
|
+
|
|
165
|
+
**Verktygsanrop är emulerat.** En webbchatt har ingen strukturerad verktygskanal: verktyg beskrivs i prompten och ett
|
|
166
|
+
anrop återskapas genom att extrahera ett JSON-objekt ur svaret. Det fungerar — verifierat — men är svagare än inbyggt
|
|
167
|
+
anrop: en modell som ignorerar instruktionen svarar i prosa och harness ser ingen verktygsanvändning den turen. **För
|
|
168
|
+
tungt agentarbete är API-vägen pålitligare.** Webbvägen passar bäst för samtal, långa svar, subagenter, komprimering
|
|
169
|
+
och varje tur där modellen måste vara webbmodellen.
|
|
170
|
+
|
|
171
|
+
**Den beror på en webbplats du inte kontrollerar.** När sidan byter form måste insticksprogrammet följa med. Det är
|
|
172
|
+
utvecklingsvarningen högst upp på sidan, inte en formalitet.
|
|
173
|
+
|
|
174
|
+
**Den är inte knuten till DeepSeek.** Den är inte godkänd eller stödd av dem och ger dig inga rättigheter i deras
|
|
175
|
+
tjänst. Din användning av den tjänsten styrs av deras villkor.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Konfiguration
|
|
180
|
+
|
|
181
|
+
`cordis.patch.yml` anger:
|
|
182
|
+
|
|
183
|
+
| nyckel | standard | betydelse |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `port` | `9222` | webbläsarens felsökningsport |
|
|
186
|
+
| `defaultModel` | `deepseek-chat-search` | används när ett anrop inte anger någon modell |
|
|
187
|
+
| `showBrowser` | `true` | om fönstret syns medan det arbetar |
|
|
188
|
+
|
|
189
|
+
Webbläsaren måste ha en inloggad session på `chat.deepseek.com`. Första anropet startar Brave med profilen **Default**
|
|
190
|
+
om porten inte redan är öppen. Om Brave redan körs *utan* felsökningsport kan adaptern inte ansluta och säger det
|
|
191
|
+
tydligt i stället för att misslyckas tyst.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Uppbyggnad
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
index.js adaptern: harness StreamChunk ←→ motor
|
|
199
|
+
lib/engine.mjs webbläsare + sida: skriva, skicka, strömma, låta lägga sig
|
|
200
|
+
lib/cdp.mjs Chrome DevTools Protocol-klient, inga beroenden
|
|
201
|
+
lib/prompt.mjs plattar ut meddelanden + verktyg till ett meddelande; hämtar anrop ur svaret
|
|
202
|
+
lib/savings.mjs vad webbvägen sparade åt dig, prissatt mot API:t
|
|
203
|
+
lib/i18n.mjs 51 språk för panelen
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Inga beroenden.** Node 24 har globala `WebSocket` och `fetch`, vilket är allt CDP behöver, så tokenströmmen lämnar
|
|
207
|
+
aldrig värdprocessen och det finns inget IPC-hopp per delta.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Stöd
|
|
212
|
+
|
|
213
|
+
Uncle Sam finns för att du ska sluta betala per token. Om det sparade pengar åt dig och du vill se nästa byggd på
|
|
214
|
+
hårdvara som inte tar slut på minne halvvägs:
|
|
215
|
+
|
|
216
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
217
|
+
|
|
218
|
+
En stjärna på arkivet eller en användbar felrapport är värd lika mycket.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Licens
|
|
223
|
+
|
|
224
|
+
**CC BY-NC-ND 4.0** — Creative Commons Erkännande-IckeKommersiell-IngaBearbetningar 4.0 Internationell.
|
|
225
|
+
Copyright (c) 2026 Darren T. Weldon, publicerat under namnet Operating Tag.
|
|
226
|
+
|
|
227
|
+
**Hela överenskommelsen på en rad: installera och använd personligen, gratis. Ändra inte, dela inte, sälj inte och
|
|
228
|
+
använd inte i ett företag.**
|
|
229
|
+
|
|
230
|
+
Det här är inte öppen källkod, och det låtsas inte vara det.
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
du får installera och köra det · använda det personligen, icke-kommersiellt
|
|
234
|
+
läsa källkoden för att förstå den
|
|
235
|
+
|
|
236
|
+
du får inte ändra, anpassa eller skapa ett bearbetat verk
|
|
237
|
+
kopiera, distribuera, publicera, spegla eller
|
|
238
|
+
göra det tillgängligt för någon annan
|
|
239
|
+
ladda upp det till någon kodvärd, register, webbplats, forum eller chatt
|
|
240
|
+
sälja, återförsälja, hyra ut eller ta betalt för det eller för åtkomst till det
|
|
241
|
+
inkludera det i något du lämnar till någon annan
|
|
242
|
+
använda det för något kommersiellt syfte eller inom affärsverksamhet
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**De enda två legitima källorna är det här arkivet och npm-paketet
|
|
246
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** En kopia från någon
|
|
247
|
+
annanstans är inte licensierad, vem som än gav den. Om du ser den här programvaran till salu är det inte författaren
|
|
248
|
+
som säljer den.
|
|
249
|
+
|
|
250
|
+
**Kommersiell användning, samt rätten att ändra och distribuera, finns under en separat skriftlig licens.** Fråga
|
|
251
|
+
Operating Tag — du får ett tydligt svar och ett tydligt pris.
|
|
252
|
+
|
|
253
|
+
Filen [LICENSE](LICENSE) är den som gäller, och den börjar med samma sammanfattning på enkel engelska.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
Uncle Sam är ett fristående insticksprogram. Inte knutet till DeepSeek, inte godkänt eller stött av dem.
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
261
|
+
Författare Operating Tag
|
|
262
|
+
Licens CC BY-NC-ND 4.0 — fritt att använda, inte att ändra, dela eller sälja
|
|
263
|
+
```
|