dshbase

插件目录 / Developer / dsh-when

dsh-when

已验证 · 实测可装 ZhijiangTang

✓ 持续维护 基于 3 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
—语言
2026-08-16最近推送
跨平台平台

功能简介

DSH plugin: parse natural-language relative times into ISO timestamps (fail-fast)

✅
我们的评价
可用 — 实测通过,早期项目

DSH plugin: parse natural-language relative times into ISO timestamps (fail-fast) 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-when

DSH 插件:把中文自然语言相对时间短语解析成 ISO 时间戳,注册一个 when 工具。纯 ESM、零依赖、无构建。

安装

dsh plugin --profile <name> add file:./plugins/dsh-when
# 或 npm 发布后:dsh plugin --profile <name> add dsh-when

安装后组合层挂载 when 工具(when 层 id)。

工具:when

参数:

参数 类型 必填 说明
text string 是 自然语言时间短语,如 明天 9 点、2 小时后、下周一 9 点、18:30 或 ISO 8601
tz string 否 IANA 时区名(如 Asia/Shanghai、UTC),默认本地时区;无效时区返回规范错误
now string 否 ISO 8601 基准时间,默认当前时间

返回规范值:{ ok, text, iso, local, relativeSeconds, matchedPattern, errors }

  • iso:UTC ISO 8601 字符串(带 Z)。
  • local:目标时区本地 ISO 字符串(带 ±HH:MM 偏移)。
  • relativeSeconds:目标时刻相对 now 的秒数(目标 − now,可为负)。
  • matchedPattern:命中的模式名(day-offset / duration / weekday / clock-time / iso)。
  • 失败时 ok:false,iso/local/relativeSeconds/matchedPattern 为 null,errors 给出原因。

支持短语表

模式名 短语 说明
day-offset 今天 / 明天 / 后天 [HH:MM|HH点|上午|下午|中午|晚上] 上午=9 点、下午=15 点、中午=12 点、晚上=20 点;缺时间默认 9 点
duration N 分钟后 / 小时后 / 天后 / 周后 N = 阿拉伯数字或中文数字「一到十」
weekday 下周X / 周X [HH:MM|HH点] 本周已过的周 X 自动取下周;缺时间默认 9 点
clock-time HH:MM 纯时刻 = 今天该时刻,已过则明天
iso ISO 8601 2026-08-16T09:00:00、2026-08-16T09:00Z、带 ±HH:MM 偏移、或纯日期(按 00:00 解释)

「fail-fast 不猜语义」原则

本工具只解析明确支持的短语。任何无法识别的输入(例如 随便什么、明天上午9点 这种超出短语表的组合)都会返回 ok:false,并在 errors 中给出完整支持列表提示——绝不根据模糊语义“猜”一个时间,避免给下游(调度、提醒)埋下错误时间的隐患。

与 dsh-cron-parse 配套场景

  • dsh-cron-parse 解析 cron 表达式(结构化、周期性规则)并预览未来运行时刻。
  • dsh-when 解析一次性自然语言相对时间(“明天 9 点”“2 小时后”)得到具体时刻。
  • 两者互补:cron 表达周期性计划,when 表达单次时刻;when 的产物(ISO 时刻)可直接作为 dsh-scheduler 之类调度插件的一次性触发点。

自检

挂载时自动执行 4 条自检(明天 9 点 / 2 小时后 / 下周一 9 点 / 不支持短语),证据行输出到日志,前缀 [dsh-when]。

局限

  • 仅支持上表列出的短语形态,不支持“半小时后”“上午 9 点 30 分”等组合或口语化表述(fail-fast)。
  • ISO 无时区信息时按 tz(默认本地)墙钟解释;带 Z/偏移时按绝对时刻透传。
  • 夏令时切换瞬间的歧义/重复墙钟时刻按定点迭代的某一侧解释(与 dsh-cron-parse 一致)。

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-when」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:ZhijiangTang/dsh-when

Headless(CLI)profile:

dsh plugin --profile headless add github:ZhijiangTang/dsh-when

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7819 个插件 →