KelaoHu/dsh-lowtide--packages-core ↗★ 169

lowtide-core

Platform-agnostic core logic for lowtide (windows/pricing/model/digest/scheduler/ledger) 适合需要进行离线批处理任务管理、状态控制及调试的系统管理员。

Package
lowtide-core
Compatibility
Unverified
Version
0.2.5
License
MIT
Last updated
Sep 16, 2026

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full 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):

FieldTypeDefaultNotes
autonomy'l1'|'l2'|'l3'l2Autonomy level; per-task override in the ticket modal
batch.window"HH:MM-HH:MM"19:00-23:30Off-peak run window (local timezone); mirrors batch.windows[0]
batch.windows"HH:MM-HH:MM"[]—Multiple run windows (1–6); each runs one batch per day. Absent = the single batch.window
batch.tzIANA timezonesystemRun-window timezone (empty = local)
batch.gateLeadMinminutes30Batch gate lead time
batch.maxTasksPerNightnumber10Tasks per batch cap
batch.maxDurationMinminutes240Per-task duration cap (cancel + one retry on timeout)
batch.maxConcurrencynumber3Max concurrency 1–8 (serial per workspace, parallel across)
batch.pausedbooleanfalsePause automatic batching
budgetDailyYuan¥0Daily budget (0 = unlimited)
windows[]array[]Custom windows; empty = official peak (Beijing time)
windows[].levelpeak|off|custom—Peak / off-peak / custom (off-peak price × multiplier)
windows[].start/end"HH:MM"—Local clock, overnight supported
windows[].days1..7 arrayevery dayISO weekdays (1 = Mon … 7 = Sun)
windows[].tzIANA timezonesystemPer-window timezone
windows[].multipliernumber1Off-peak price multiplier for custom windows
prices[model].{peak,off}.{input,inputCached,output}¥/1MofficialPrice-table overrides