{"_id":"@buddhilive/dsh-util-time","name":"@buddhilive/dsh-util-time","dist-tags":{"alpha":"0.1.2-alpha.3","latest":"0.1.2-alpha.3"},"versions":{"0.1.2-alpha.3":{"name":"@buddhilive/dsh-util-time","description":"Zero-dependency time vocabulary shared by wire boundaries: canonicalClientTimeZone (IANA zone validation and canonicalization only, no formatting)","version":"0.1.2-alpha.3","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Buddhilive/buddhi-ai-harness.git","directory":"packages/util/time"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/cordis":"^4.0.2","@buddhilive/dsh-invariants":"^0.1.2-alpha.3"},"devDependencies":{"@deepseek-ai/cordis":"^4.0.2","@buddhilive/dsh-invariants":"^0.1.2-alpha.3"},"_id":"@buddhilive/dsh-util-time@0.1.2-alpha.3","bugs":{"url":"https://github.com/Buddhilive/buddhi-ai-harness/issues"},"homepage":"https://github.com/Buddhilive/buddhi-ai-harness#readme","_integrity":"sha512-bdauCvlDlTOBEXV7MtNd9s9KOBj0aeBisbPZyK0nKXmj6bmc/C7tFRwHk/z96JQVmnpO5kVMl4qB572vnpT5AQ==","_resolved":"C:\\DevDojo\\Buddhi\\buddhi-ai-harness\\dist\\npm\\buddhilive-dsh-util-time-0.1.2-alpha.3.tgz","_from":"file:C:/DevDojo/Buddhi/buddhi-ai-harness/dist/npm/buddhilive-dsh-util-time-0.1.2-alpha.3.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-bdauCvlDlTOBEXV7MtNd9s9KOBj0aeBisbPZyK0nKXmj6bmc/C7tFRwHk/z96JQVmnpO5kVMl4qB572vnpT5AQ==","shasum":"548ee85b78841d4810424807ad11f61d04cb1374","tarball":"https://registry.npmjs.org/@buddhilive/dsh-util-time/-/dsh-util-time-0.1.2-alpha.3.tgz","fileCount":9,"unpackedSize":11704,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE2BUugq9TO870VKxI92NWIAcfjyCc2cNGtKUYTDbWwxAiA7XjtyHSDj8PeqBhBtlwe+ZwtBTn7nLKOiHgC3aYQz5A=="}]},"_npmUser":{"name":"buddhilive","email":"visitbudkavin@gmail.com"},"directories":{},"maintainers":[{"name":"buddhilive","email":"visitbudkavin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-util-time_0.1.2-alpha.3_1788165438401_0.47663887161725293"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-31T08:37:18.080Z","0.1.2-alpha.3":"2026-08-31T08:37:18.543Z","modified":"2026-08-31T08:37:18.775Z"},"maintainers":[{"name":"buddhilive","email":"visitbudkavin@gmail.com"}],"description":"Zero-dependency time vocabulary shared by wire boundaries: canonicalClientTimeZone (IANA zone validation and canonicalization only, no formatting)","homepage":"https://github.com/Buddhilive/buddhi-ai-harness#readme","repository":{"type":"git","url":"git+https://github.com/Buddhilive/buddhi-ai-harness.git","directory":"packages/util/time"},"bugs":{"url":"https://github.com/Buddhilive/buddhi-ai-harness/issues"},"license":"MIT","readme":"---\ndescription: \"面向在协议边界接收调用方所报时区的维护者，说明 IANA 时区校验与规范化。\"\nkind: \"package-library\"\n---\n\n# dsh-util-time\n\n[English](README.md) | 中文\n\n## 概述\n\n零依赖的时区词汇，供接收调用方时区的协议边界使用。`canonicalClientTimeZone` 只接受 `UTC` 或 IANA `Area/Location` 名称，并回答该名称在当前平台上的规范拼写，因此别名不会进入持久记录：时区标识会存在消息上、并由另一个进程稍后重新推导，别名在那里比不相等。本库只做校验与规范化——不格式化任何时间，也不持有失败词汇，因为每个边界抛自己的域码。\n\n## 目录\n\n- [使用本包](#use-this-package)\n- [API](#api)\n- [Model Experience](#model-experience)\n- [Known Limitations and Deferred Work](#known-limitations-and-deferred-work)\n- [开发备注](#dev-note)\n\n-----\n\n<a id=\"use-this-package\"></a>\n## 使用本包\n\n它是**库，不是服务也不是插件**：无 `ctx`、不注册任何东西、不持有状态。\n\n在接收时区的那个边界上调用它，让值在进入任何持久物之前先过一遍。不可用的名称回答 `undefined`，由调用方抛出自己的拒绝——Session prompt 用 `session/invalid-time-zone`，subagent 续话用 `subagent/invalid-time-zone`。\n\n-----\n\n<a id=\"api\"></a>\n## API\n\n```ts\nimport { canonicalClientTimeZone } from '@buddhilive/dsh-util-time'\n```\n\n| 导出 | 职责 |\n|---|---|\n| `canonicalClientTimeZone(value)` | 对接受的时区回答规范的 `UTC` 或 IANA `Area/Location` 名称；空串、带空白、缩写、单段或平台不支持的名称回答 `undefined`。 |\n\n<a id=\"model-experience\"></a>\n## Model Experience\n\n间接影响，取决于把规范时区记到持久消息上的那个消费方——`dsh-time-context` 据此渲染该轮模型可见的时区指令与时间戳。\n\n#### KV Cache effect\n\n自身没有。把时区派生文本注入请求的那个消费方，对该请求的缓存行为负责。\n\n## Known Limitations and Deferred Work\n\n<a id=\"known-limitations-and-deferred-work\"></a>\n\n- **别名解析取决于运行时的 ICU 数据**——一个别名组规范化成哪个名称由平台回答，因此两个跑在不同 Node 构建上的进程可能给出不同答案。\n- **只做校验**——不格式化、不做偏移运算、不推导 DST、不做时刻换算；需要这些的消费方直接用 `Intl`。\n\n<a id=\"dev-note\"></a>\n### 开发备注\n\n<details>\n<summary>维护者工作上下文——点击展开</summary>\n\n无。\n\n</details>\n","readmeFilename":"README.zh.md","_rev":"1-828f90f565bc90895cc8cd186ca1cc86"}