@goodandready/dsh-clinebot 0.6.19 → 0.6.21
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 +10 -0
- package/README.md +1 -1
- package/README.ru.md +1 -1
- package/README.zh.md +1 -1
- package/lib/index.js +28 -1
- package/lib/transport/cline-transport.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,16 @@ All notable changes to `@goodandready/dsh-clinebot` will be documented in this f
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.6.21] - 2026-10-28
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **Startup catalog backfill** now also refreshes an existing but stale catalog (older than 5 minutes), not only a completely unsynced profile. This makes the 15-second retry work on WEB profiles that already had a `planSyncedAt` value.
|
|
12
|
+
|
|
13
|
+
## [0.6.20] - 2026-10-28
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **Catalog backfill without manual Sync**: auto-discovery retries after 15 seconds when the plan has not been synced yet, and refreshes the model/free/dated catalog every 6 hours. An in-flight guard prevents overlapping discovery runs.
|
|
17
|
+
|
|
8
18
|
## [0.6.19] - 2026-10-28
|
|
9
19
|
|
|
10
20
|
### Added
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
<h3>Native ClineBot / ClinePass Provider Companion for DeepSeek Harness</h3>
|
|
6
6
|
|
|
7
|
-
<p><b>0.6.
|
|
7
|
+
<p><b>0.6.21</b> backfills the model/free/dated catalog automatically, including stale WEB profiles (15-second startup refresh plus a 6-hour refresh), and keeps FREE annotations, DSH <code>0.2.1-rc.4</code>, model-scoped credit cooldowns and 402/413 errors. Chat runs on the native <code>ctx.llm</code> adapter; the legacy <code>llm-pi-ai</code>, loopback proxy and <code>llm/stream</code> path are removed.</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://www.npmjs.com/package/@goodandready/dsh-clinebot"><img src="https://img.shields.io/npm/v/@goodandready/dsh-clinebot.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
|
package/README.ru.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
<h3>Нативное подключение провайдера ClineBot / ClinePass для DeepSeek Harness</h3>
|
|
6
6
|
|
|
7
|
-
<p><b>0.6.
|
|
7
|
+
<p><b>0.6.21</b> автоматически добирает каталог моделей/FREE/dated, включая устаревшие WEB-профили (refresh через 15 секунд после старта и раз в 6 часов), и сохраняет FREE-аннотации, DSH <code>0.2.1-rc.4</code>, cooldown недостатка кредитов только для конкретной модели и понятные ошибки 402/413. Чат работает через нативный адаптер <code>ctx.llm</code>; старые <code>llm-pi-ai</code>, loopback-прокси и <code>llm/stream</code> удалены.</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://www.npmjs.com/package/@goodandready/dsh-clinebot"><img src="https://img.shields.io/npm/v/@goodandready/dsh-clinebot.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
|
package/README.zh.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
<h3>适用于 DeepSeek Harness 的 ClineBot / ClinePass 原生模型提供商伴侣插件</h3>
|
|
6
6
|
|
|
7
|
-
<p><b>0.6.
|
|
7
|
+
<p><b>0.6.21</b> 自动补齐模型/免费/日期变体目录,包括过期的 WEB 配置(启动后 15 秒刷新并每 6 小时刷新),同时保留免费模型标记、DSH <code>0.2.1-rc.4</code>、按模型隔离的余额不足冷却和明确的 402/413 错误。聊天使用原生 <code>ctx.llm</code> 适配器;旧的 <code>llm-pi-ai</code>、回环代理和 <code>llm/stream</code> 已删除。</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://www.npmjs.com/package/@goodandready/dsh-clinebot"><img src="https://img.shields.io/npm/v/@goodandready/dsh-clinebot.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
|
package/lib/index.js
CHANGED
|
@@ -31,6 +31,9 @@ import { applyTuiSettings } from './tui-settings.js'
|
|
|
31
31
|
export const name = '@goodandready/dsh-clinebot'
|
|
32
32
|
export const inject = []
|
|
33
33
|
|
|
34
|
+
const CATALOG_REFRESH_MS = 6 * 60 * 60 * 1000
|
|
35
|
+
const CATALOG_STALE_MS = 5 * 60 * 1000
|
|
36
|
+
|
|
34
37
|
export function configReader(config) {
|
|
35
38
|
return () => config
|
|
36
39
|
}
|
|
@@ -90,8 +93,19 @@ export function apply(ctx, config) {
|
|
|
90
93
|
}
|
|
91
94
|
}
|
|
92
95
|
|
|
96
|
+
let autoDiscoverInFlight = false
|
|
93
97
|
const triggerAutoDiscover = () => {
|
|
94
|
-
|
|
98
|
+
if (autoDiscoverInFlight) return
|
|
99
|
+
autoDiscoverInFlight = true
|
|
100
|
+
Promise.resolve(autoDiscoverPlanModels(ctx, {
|
|
101
|
+
live,
|
|
102
|
+
getSettingsApi: () => settingsApi,
|
|
103
|
+
syncProviderState,
|
|
104
|
+
}))
|
|
105
|
+
.catch(() => {})
|
|
106
|
+
.finally(() => {
|
|
107
|
+
autoDiscoverInFlight = false
|
|
108
|
+
})
|
|
95
109
|
}
|
|
96
110
|
|
|
97
111
|
let activeStatsPath = resolvePath(publicConfig(live()).statsPath)
|
|
@@ -326,9 +340,22 @@ export function apply(ctx, config) {
|
|
|
326
340
|
ctx.effect(() => {
|
|
327
341
|
const timer = setTimeout(triggerAutoDiscover, 500)
|
|
328
342
|
const retryTimer = setTimeout(triggerAutoDiscover, 3000)
|
|
343
|
+
const lateRetry = setTimeout(() => {
|
|
344
|
+
const syncedAt = Number(publicConfig(live()).planSyncedAt || 0)
|
|
345
|
+
if (Date.now() - syncedAt >= CATALOG_STALE_MS) triggerAutoDiscover()
|
|
346
|
+
}, 15000)
|
|
347
|
+
const refreshTimer = setInterval(() => {
|
|
348
|
+
const syncedAt = Number(publicConfig(live()).planSyncedAt || 0)
|
|
349
|
+
if (Date.now() - syncedAt >= CATALOG_REFRESH_MS) triggerAutoDiscover()
|
|
350
|
+
}, 60 * 60 * 1000)
|
|
351
|
+
for (const handle of [timer, retryTimer, lateRetry, refreshTimer]) {
|
|
352
|
+
if (typeof handle.unref === 'function') handle.unref()
|
|
353
|
+
}
|
|
329
354
|
return () => {
|
|
330
355
|
clearTimeout(timer)
|
|
331
356
|
clearTimeout(retryTimer)
|
|
357
|
+
clearTimeout(lateRetry)
|
|
358
|
+
clearInterval(refreshTimer)
|
|
332
359
|
}
|
|
333
360
|
}, 'dsh-clinebot: auto-discover')
|
|
334
361
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-clinebot",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.21",
|
|
4
4
|
"description": "DeepSeek Harness companion for ClineBot / ClinePass: dynamic subscription models sync, quota exhaustion warnings, session metrics, dedicated settings page, live usage limits, and /cline slash-command.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|