@rayadesu/dsh-billing 0.3.14 → 0.3.15
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/AGENTS.md +15 -14
- package/README.i18n.yaml +2 -2
- package/README.md +14 -13
- package/README.zh.md +10 -11
- package/package.json +6 -6
package/AGENTS.md
CHANGED
|
@@ -41,23 +41,24 @@ cordis.patch.yml DSH profile bundle 补丁层:挂载 llm-billing + ui-
|
|
|
41
41
|
- **发布前校验**:`pnpm run verify`(每个包 `prepublishOnly` 自动运行)检查
|
|
42
42
|
`lib/typert.host.js` 的 `TYPERT.package` 必须等于导出它的包名,且 lib 中不得残留
|
|
43
43
|
其他包名的清单;失败即禁止发布。
|
|
44
|
-
- **依赖以发布形态声明**:`@deepseek-ai/dsh-*` 依赖写 `^0.1.
|
|
44
|
+
- **依赖以发布形态声明**:`@deepseek-ai/dsh-*` 依赖写 `^0.1.7-alpha.2`(对应官方 monorepo 当前发布基线,monorepo 内为
|
|
45
45
|
`workspace:^`);本插件的三个包发布到 npm 的
|
|
46
46
|
`@rayadesu` scope,直接 `dsh plugin add @rayadesu/...` 安装。
|
|
47
47
|
- **补客户端包漏声明的运行时依赖**:`dsh-client-store`(`zustand`/`immer`)与
|
|
48
48
|
`dsh-client-ui-primitives`(markdown 视图栈:`mdast-util-*`、`micromark-*`、`shiki`、
|
|
49
|
-
`katex`、`diff`、`anser`、`clsx
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
49
|
+
`katex`、`diff`、`anser`、`clsx`、`simple-icons`)、`dsh-client-web`
|
|
50
|
+
(`dsh-client-ui-dockkit`)把它们只声明为上游 devDependencies(或干脆不声明),产物却直接
|
|
51
|
+
import;发布 bundle 运行时由 dsh 安装提供,独立 workspace 的测试要自己解析,故在
|
|
52
|
+
`ui-billing` 的 devDependencies 里按上游同版本范围补齐。dsh 依赖线升级后若测试报
|
|
53
|
+
`Cannot find package`,照此补即可。
|
|
54
|
+
- **typert codec 的 create 工厂(`scripts/typert-compat.mjs`)**:DSH 的 `dsh-typert-loader`
|
|
55
|
+
要求每个 strict codec 带 `create` 工厂,见不到就拒绝注册
|
|
56
|
+
(`... parameter codec has no create() factory`),宿主行随之启动失败、Web 启动页报
|
|
57
|
+
`1 entry did not activate`。自 0.1.7-alpha.2 起 generator 原生产出 `create: schema`,
|
|
58
|
+
构建产物直接可用;`scripts/typert-compat.mjs` 降级为安全网(幂等,遇无 create 的 codec
|
|
59
|
+
或未知形状即非零退出,防 generator 回退)。该步骤挂在 `build:host` 末尾(tsdown 之后);
|
|
60
|
+
`verify` 按 codec 块检查每个块都带 `create`(逐行计数会误伤清单里 `TYPERT.schemas`
|
|
61
|
+
的 `create` 条目)。
|
|
61
62
|
**改完与 typert 产物相关的代码务必走 `pnpm run build:host`,不要只跑 tsdown。**
|
|
62
63
|
- **workspace 关掉 pnpm 发布龄门槛**:`pnpm-workspace.yaml` 显式 `minimumReleaseAge: 0`。
|
|
63
64
|
pnpm ≥11 默认 1 天门槛会把刚发布的 alpha 包挡在 lockfile 校验外,而校验阶段不认
|
|
@@ -65,7 +66,7 @@ cordis.patch.yml DSH profile bundle 补丁层:挂载 llm-billing + ui-
|
|
|
65
66
|
- **密钥不进仓库**:`DEEPSEEK_API_KEY` 等一律由用户环境或凭据 seam 提供,仓库不含真实值。
|
|
66
67
|
- **README 双语**:每个 README 遵循 DSH 结构 `README.md`(EN) + `README.zh.md`(ZH) +
|
|
67
68
|
`README.i18n.yaml`(记录两文件 git blob hash,改动后需更新)。
|
|
68
|
-
- **版本对齐**:根 bundle 与两个包统一版本号(当前 0.3.
|
|
69
|
+
- **版本对齐**:根 bundle 与两个包统一版本号(当前 0.3.15),`pnpm-lock.yaml` 随依赖变更更新。
|
|
69
70
|
- **提交与发布流程**:见 `.agents/skills/dsh-release/SKILL.md` —— 阶段 A(改代码 → 按档位校验/打包 →
|
|
70
71
|
本地 pack 安装 → 交用户验证)**不提交**,改动留在工作区;用户说「发布」进入阶段 B 才 bump 版本、
|
|
71
72
|
**按类型分别提交**、推送、发 npm 与 GitHub Release。
|
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# last confirmed-consistent state. Both languages carry equal authority; after
|
|
3
3
|
# editing either side, bring the other along and re-record both hashes with:
|
|
4
4
|
# git hash-object README.md README.zh.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 2ccd0964f45caa63e76356b579ecfb9a53cf8865
|
|
6
|
+
README.zh.md: 77b895e2c2f089959e27641c58a51594f63a2d5a
|
package/README.md
CHANGED
|
@@ -130,7 +130,7 @@ commands.
|
|
|
130
130
|
|
|
131
131
|
The two plugin packages declare the DeepSeek Harness packages they build on
|
|
132
132
|
(`@deepseek-ai/cordis`, `@deepseek-ai/dsh-credentials`, `@deepseek-ai/dsh-session`,
|
|
133
|
-
and the client runtime packages) as `peerDependencies` at `^0.1.
|
|
133
|
+
and the client runtime packages) as `peerDependencies` at `^0.1.7-alpha.2`. A dsh
|
|
134
134
|
profile does not auto-install peers, so these are provided by the dsh
|
|
135
135
|
installation itself through the `profiles/node_modules` fallback rather than
|
|
136
136
|
fetched from the registry — no extra packages to install, and no registry token
|
|
@@ -139,12 +139,14 @@ needed on the installing machine.
|
|
|
139
139
|
Two of those published client packages import runtime modules their manifests
|
|
140
140
|
list only under `devDependencies` (`dsh-client-store` → `zustand`/`immer`;
|
|
141
141
|
`dsh-client-ui-primitives` → the markdown view stack: `mdast-util-*`,
|
|
142
|
-
`micromark-*`, `shiki`, `katex`, `diff`, `anser`, `clsx`
|
|
142
|
+
`micromark-*`, `shiki`, `katex`, `diff`, `anser`, `clsx`, `simple-icons`;
|
|
143
|
+
`dsh-client-web` → `dsh-client-ui-dockkit`, which its manifest does not declare
|
|
144
|
+
at all). The shipped bundles
|
|
143
145
|
are external and load them from the dsh installation at runtime, but this
|
|
144
146
|
standalone workspace resolves them itself, so `ui-billing` declares them as its
|
|
145
147
|
own `devDependencies` for the browser-half specs.
|
|
146
148
|
|
|
147
|
-
The plugin builds against the 0.1.
|
|
149
|
+
The plugin builds against the 0.1.7-alpha.2 published line and keeps both DSH
|
|
148
150
|
runtime families readable: the live `Session` log surface
|
|
149
151
|
(`Session.events` + `header.seedLength` at/before 0.1.1-rc.2,
|
|
150
152
|
`snapshotEvents()` + `inheritedEventCount` since 0.1.2-alpha.4), and the
|
|
@@ -201,18 +203,17 @@ it. If a typert manifest ever names a package other than its own
|
|
|
201
203
|
|
|
202
204
|
The typert generator recognizes `Remote`/`TypertRemoteService` only from a
|
|
203
205
|
workspace-registered protocol package, so `packages/typert-protocol` vendors
|
|
204
|
-
the published `@deepseek-ai/dsh-typert-protocol@0.1.
|
|
206
|
+
the published `@deepseek-ai/dsh-typert-protocol@0.1.7-alpha.2` declarations; when
|
|
205
207
|
the dsh dependency line moves, refresh it from the installed package.
|
|
206
208
|
|
|
207
|
-
The generated codecs
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
—
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
regenerates these artifacts.
|
|
209
|
+
The generated codecs must carry a `create` factory: the `dsh-typert-loader`
|
|
210
|
+
refuses any strict codec without one (`... parameter codec has no create()
|
|
211
|
+
factory`), which fails the host line's activation. Generator 0.1.7+ emits
|
|
212
|
+
`create` natively, so a current build passes through unchanged;
|
|
213
|
+
`scripts/typert-compat.mjs` — run at the end of `build:host`, enforced by
|
|
214
|
+
`verify` — stays as a safety net that exits non-zero if a codec ever ships
|
|
215
|
+
without its factory. Run `pnpm run build:host` (not bare `tsdown`) after
|
|
216
|
+
touching anything that regenerates these artifacts.
|
|
216
217
|
|
|
217
218
|
Publishing (the bundle and both plugins share one version; `prepublishOnly`
|
|
218
219
|
runs the `verify` gate automatically). Use `npm publish` from **inside each
|
package/README.zh.md
CHANGED
|
@@ -121,17 +121,18 @@ dsh plugin --profile web update --latest # 忽略声明的版本区间,把所
|
|
|
121
121
|
|
|
122
122
|
两个插件包把它们依赖的 DeepSeek Harness 包(`@deepseek-ai/cordis`、
|
|
123
123
|
`@deepseek-ai/dsh-credentials`、`@deepseek-ai/dsh-session` 以及客户端运行时包)
|
|
124
|
-
声明为 `peerDependencies`(`^0.1.
|
|
124
|
+
声明为 `peerDependencies`(`^0.1.7-alpha.2`)。dsh profile 默认不自动安装 peer,所以
|
|
125
125
|
这些由 dsh 安装本身通过 `profiles/node_modules` 回退提供,而不是从 registry 拉取——
|
|
126
126
|
无需额外安装,安装机也不需要 registry token。
|
|
127
127
|
|
|
128
128
|
这些已发布的客户端包里有两个会把只写在 `devDependencies` 里的运行时模块直接 import 进
|
|
129
129
|
产物(`dsh-client-store` → `zustand`/`immer`;`dsh-client-ui-primitives` → markdown 视图栈
|
|
130
|
-
`mdast-util-*`、`micromark-*`、`shiki`、`katex`、`diff`、`anser`、`clsx
|
|
130
|
+
`mdast-util-*`、`micromark-*`、`shiki`、`katex`、`diff`、`anser`、`clsx`、`simple-icons`;
|
|
131
|
+
`dsh-client-web` → 清单里完全没声明的 `dsh-client-ui-dockkit`)。发布的 bundle
|
|
131
132
|
把这些留作外部依赖、运行时由 dsh 安装提供,但本仓库是独立 workspace、要自己解析,所以
|
|
132
133
|
`ui-billing` 把它们声明为自己的 `devDependencies` 供浏览器半测使用。
|
|
133
134
|
|
|
134
|
-
插件按 0.1.
|
|
135
|
+
插件按 0.1.7-alpha.2 发布线构建,同时兼容读取两代 DSH 运行时:live `Session` 日志面
|
|
135
136
|
(0.1.1-rc.2 及以前为 `Session.events` + `header.seedLength`,0.1.2-alpha.4 起为
|
|
136
137
|
`snapshotEvents()` + `inheritedEventCount`),以及持久化服务面(0.1.1-rc.2 及以前为
|
|
137
138
|
`inspect`/`listSnapshots`,0.1.2-alpha.5 的 handle 化改造后为
|
|
@@ -180,16 +181,14 @@ host 面会从源码重新生成 `lib/typert.host.js` 与 `lib/typert.remote-cli
|
|
|
180
181
|
的 name 不一致,`verify` 会在发布前直接失败。
|
|
181
182
|
|
|
182
183
|
typert 生成器只认工作区内已注册协议包里的 `Remote`/`TypertRemoteService` 声明,所以
|
|
183
|
-
`packages/typert-protocol` 内嵌了 npm 上 `@deepseek-ai/dsh-typert-protocol@0.1.
|
|
184
|
+
`packages/typert-protocol` 内嵌了 npm 上 `@deepseek-ai/dsh-typert-protocol@0.1.7-alpha.2` 的
|
|
184
185
|
声明文件;dsh 依赖线升级时,从安装包重新刷新它。
|
|
185
186
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
`
|
|
190
|
-
|
|
191
|
-
让同一份产物在两条线上都能加载。**动到会重新生成这些产物的代码后,请跑
|
|
192
|
-
`pnpm run build:host`,不要只跑 tsdown。**
|
|
187
|
+
生成的每个 strict codec 必须带 `create` 工厂:`dsh-typert-loader` 对没有 `create` 的
|
|
188
|
+
codec 直接拒绝注册(`... parameter codec has no create() factory`),宿主行随之启动
|
|
189
|
+
失败。0.1.7 起生成器原生产出 `create`,当前构建直接可用;`scripts/typert-compat.mjs`
|
|
190
|
+
挂在 `build:host` 末尾、并由 `verify` 把关,降级为安全网——一旦再有 codec 缺工厂就非零
|
|
191
|
+
退出。**动到会重新生成这些产物的代码后,请跑 `pnpm run build:host`,不要只跑 tsdown。**
|
|
193
192
|
|
|
194
193
|
发布(bundle 与两个插件包统一版本号;`prepublishOnly` 会自动跑 `verify` 门禁)。
|
|
195
194
|
要用 `npm publish` 且**必须在各包目录内执行**——`pnpm publish` 会失败(token 读取方式问题),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rayadesu/dsh-billing",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.15",
|
|
4
4
|
"description": "DeepSeek Harness billing plugin: account balance and this session's billed spend with a session-header badge.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"@rayadesu/dsh-client-ui-billing": "^0.3.
|
|
44
|
-
"@rayadesu/dsh-llm-billing": "^0.3.
|
|
43
|
+
"@rayadesu/dsh-client-ui-billing": "^0.3.15",
|
|
44
|
+
"@rayadesu/dsh-llm-billing": "^0.3.15"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
48
|
-
"@deepseek-ai/dsh-invariants": "^0.1.
|
|
49
|
-
"@deepseek-ai/dsh-typert-generator": "^0.1.
|
|
47
|
+
"@deepseek-ai/cordis": "^4.0.4",
|
|
48
|
+
"@deepseek-ai/dsh-invariants": "^0.1.7-alpha.2",
|
|
49
|
+
"@deepseek-ai/dsh-typert-generator": "^0.1.7-alpha.2",
|
|
50
50
|
"@eslint/js": "^10.0.1",
|
|
51
51
|
"@types/node": "^22.20.0",
|
|
52
52
|
"eslint": "^10.9.1",
|