KelaoHu/dsh-lowtide--packages-core ↗★ 9
lowtide-core
Platform-agnostic core logic for lowtide (windows/pricing/model/digest/scheduler/ledger)
安装
此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗
说明文档
阅读完整 README ↗Day-to-day usage
Three ways to file a task. The intercept card (type at peak, one click, your draft becomes the ticket unchanged); the ticket modal ("New" beside the input area — prompt, strategy, rounds, priority); or the API (POST /ds-lowtide/tasks, wire it into your own automation).
Life in the queue dock. Grouped by workspace into pending / finished / dropped. Inline per task: ✓ approve, ⏸ defer, ✕ drop (soft delete, restorable). "Approve all" releases everything; "clear finished" keeps it tidy (the books are unaffected); "Run now" skips the wait and launches a batch immediately — that's how you debug.
Time semantics. Official peak hours are judged in Beijing time (DeepSeek bills in Beijing time, so the books stay aligned; weekends are off-peak all day). Your custom windows and the run window are judged in your local time, with overnight ranges and per-weekday rules. Window end stops new launches; running tasks are never interrupted.
The ledger. ledger[YYYY-MM-DD] = { yuan, savedYuan } — spend and savings, accrued daily. The displayed price is the billed price: one formula, auditable to the digit.
Configuration reference
GET /ds-lowtide/config reads; PUT partially updates (unlisted fields are rejected):
| Field | Type | Default | Notes |
|---|---|---|---|
autonomy | 'l1'|'l2'|'l3' | l2 | Autonomy level; per-task override in the ticket modal |
batch.window | "HH:MM-HH:MM" | 19:00-23:30 | Off-peak run window (local timezone) |
batch.tz | IANA timezone | system | Run-window timezone (empty = local) |
batch.gateLeadMin | minutes | 30 | Batch gate lead time |
batch.maxTasksPerNight | number | 10 | Tasks per batch cap |
batch.maxDurationMin | minutes | 240 | Per-task duration cap (cancel + one retry on timeout) |
batch.maxConcurrency | number | 3 | Max concurrency 1–8 (serial per workspace, parallel across) |
batch.paused | boolean | false | Pause automatic batching |
budgetDailyYuan | ¥ | 0 | Daily budget (0 = unlimited) |
windows[] | array | [] | Custom windows; empty = official peak (Beijing time) |
windows[].level | peak|off|custom | — | Peak / off-peak / custom (off-peak price × multiplier) |
windows[].start/end | "HH:MM" | — | Local clock, overnight supported |
windows[].days | 1..7 array | every day | ISO weekdays (1 = Mon … 7 = Sun) |
windows[].tz | IANA timezone | system | Per-window timezone |
windows[].multiplier | number | 1 | Off-peak price multiplier for custom windows |
prices[model].{peak,off}.{input,inputCached,output} | ¥/1M | official | Price-table overrides |