dsh-budget 0.4.1 → 0.4.3
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/CHANGELOG.md +12 -0
- package/README.es.md +4 -4
- package/README.hi.md +4 -4
- package/README.md +4 -4
- package/README.pt.md +4 -4
- package/README.zh.md +4 -4
- package/package.json +16 -16
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.4.3] - 2026-09-02
|
|
9
|
+
|
|
10
|
+
### Docs
|
|
11
|
+
|
|
12
|
+
- Sync the five-language READMEs to the 0.1.2-alpha.5 facts; no behavior change.
|
|
13
|
+
|
|
14
|
+
## [0.4.2] - 2026-09-02
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Align the devDependency pins to the published dsh 0.1.2-alpha.5 line and re-verify the adaptation claims; no behavior change.
|
|
19
|
+
|
|
8
20
|
## [0.4.1] - 2026-09-01
|
|
9
21
|
|
|
10
22
|
### Changed
|
package/README.es.md
CHANGED
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
|
|
26
26
|
| Superficie | Estado |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5` (adaptado el 2026-09-02): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia. |
|
|
29
29
|
|
|
30
|
-
| Eventos de auditoría | Se escriben en harness anteriores a `0.1.2-alpha.
|
|
30
|
+
| Eventos de auditoría | Se escriben en harness anteriores a `0.1.2-alpha.5`; se suprimen con una razón de degradación registrada en `0.1.2-alpha.5` y posteriores (vocabulario de eventos de sesión fail-closed, sin superficie de registro externa) || Node | `^22.19.0 \|\| >=24.0.0` |
|
|
31
31
|
| Superficies | Host + cliente Web (pestaña Budget en Settings); comando `/budget` |
|
|
32
32
|
|
|
33
33
|
## Qué obtienes
|
|
@@ -102,7 +102,7 @@ Todos los ajustes son campos `Config` de Schemastery (modificables desde cordis.
|
|
|
102
102
|
|
|
103
103
|
- **Permisos**: `network:outbound` (solo el webhook de alerta opcional), `session:append` (eventos de auditoría), `native-code:none`.
|
|
104
104
|
- **Datos**: todo lo mostrado proviene del flujo de eventos de sesión; la única llamada de red es el webhook configurado, validado al cargar y sin credenciales en los registros. Ningún prompt o payload sale del host.
|
|
105
|
-
- **Registro de sesión**: `budget/alert` y `budget/block` son eventos de auditoría solo-registro con nombres de ámbito e importes USD (diferidos por microtarea ante el guard de reentrada de append). En harness `0.1.2-alpha.
|
|
105
|
+
- **Registro de sesión**: `budget/alert` y `budget/block` son eventos de auditoría solo-registro con nombres de ámbito e importes USD (diferidos por microtarea ante el guard de reentrada de append). En harness `0.1.2-alpha.5` y posteriores no se escriben — el vocabulario de eventos fail-closed rechaza logs con tipos de evento no registrados y no ofrece superficie de registro externa — así que el rastro de auditoría se degrada al logger de presupuesto y al webhook únicamente.
|
|
106
106
|
|
|
107
107
|
## Límites de seguridad
|
|
108
108
|
|
|
@@ -122,7 +122,7 @@ Todos los ajustes son campos `Config` de Schemastery (modificables desde cordis.
|
|
|
122
122
|
```sh
|
|
123
123
|
pnpm install # node ^22.19 || >=24
|
|
124
124
|
pnpm run typecheck # tsc: src + tests contra el checkout local del harness
|
|
125
|
-
pnpm run typecheck:ci # tsc contra los tipos publicados 0.1.
|
|
125
|
+
pnpm run typecheck:ci # tsc contra los tipos publicados 0.1.2-alpha.5 (sin paths)
|
|
126
126
|
pnpm test # vitest
|
|
127
127
|
pnpm run build # declaraciones tsc + bundles tsdown (lib/)
|
|
128
128
|
pnpm run verify:self-contained # las especificaciones de dependencias resuelven desde el registry
|
package/README.hi.md
CHANGED
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
|
|
26
26
|
| सतह | स्थिति |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5` (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। |
|
|
29
29
|
|
|
30
|
-
| ऑडिट इवेंट | `0.1.2-alpha.
|
|
30
|
+
| ऑडिट इवेंट | `0.1.2-alpha.5` से पहले के harness पर लिखे जाते हैं; `0.1.2-alpha.5` और बाद में दबाए जाते हैं और डिग्रेडेशन कारण लॉग होता है (fail-closed सत्र इवेंट शब्दावली, कोई बाहरी पंजीकरण सतह नहीं) || Node | `^22.19.0 \|\| >=24.0.0` |
|
|
31
31
|
| सतहें | Host + वेब क्लाइंट (Settings में Budget टैब); `/budget` कमांड |
|
|
32
32
|
|
|
33
33
|
## आपको क्या मिलता है
|
|
@@ -102,7 +102,7 @@ dsh --profile web --dump-config | grep -A2 'id: budget'
|
|
|
102
102
|
|
|
103
103
|
- **अनुमतियाँ**: `network:outbound` (केवल वैकल्पिक अलर्ट वेबहुक), `session:append` (ऑडिट इवेंट), `native-code:none`।
|
|
104
104
|
- **डेटा**: दिखाई गई हर चीज़ सत्र इवेंट स्ट्रीम से आती है; होस्ट की एकमात्र नेटवर्क कॉल कॉन्फ़िगर किया वेबहुक है, जिसका URL लोड पर सत्यापित होता है और लॉग से पहले क्रेडेंशियल-रहित किया जाता है। कोई prompt या payload होस्ट से बाहर नहीं जाता।
|
|
105
|
-
- **सत्र लॉग**: `budget/alert` और `budget/block` केवल-लॉग ऑडिट इवेंट हैं जिनमें स्कोप नाम और USD राशियाँ होती हैं (session-append पुनर्प्रवेश गार्ड से बचने हेतु माइक्रोटास्क-विलंबित)। `0.1.2-alpha.
|
|
105
|
+
- **सत्र लॉग**: `budget/alert` और `budget/block` केवल-लॉग ऑडिट इवेंट हैं जिनमें स्कोप नाम और USD राशियाँ होती हैं (session-append पुनर्प्रवेश गार्ड से बचने हेतु माइक्रोटास्क-विलंबित)। `0.1.2-alpha.5` और बाद के harness पर ये नहीं लिखे जाते — fail-closed इवेंट शब्दावली अपंजीकृत इवेंट प्रकार वाले लॉग को अस्वीकार करती है और कोई बाहरी पंजीकरण सतह नहीं देती — इसलिए ऑडिट ट्रेल केवल बजट लॉगर और webhook तक सीमित रहता है।
|
|
106
106
|
|
|
107
107
|
## सुरक्षा सीमाएँ
|
|
108
108
|
|
|
@@ -122,7 +122,7 @@ dsh --profile web --dump-config | grep -A2 'id: budget'
|
|
|
122
122
|
```sh
|
|
123
123
|
pnpm install # node ^22.19 || >=24
|
|
124
124
|
pnpm run typecheck # tsc: src + tests स्थानीय हार्नेस चेकआउट के विरुद्ध
|
|
125
|
-
pnpm run typecheck:ci # tsc प्रकाशित 0.1.
|
|
125
|
+
pnpm run typecheck:ci # tsc प्रकाशित 0.1.2-alpha.5 प्रकारों के विरुद्ध (बिना paths)
|
|
126
126
|
pnpm test # vitest
|
|
127
127
|
pnpm run build # tsc घोषणाएँ + tsdown बंडल (lib/)
|
|
128
128
|
pnpm run verify:self-contained # निर्भरता स्पेक registry से हल होती हैं
|
package/README.md
CHANGED
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
|
|
29
29
|
| Surface | Status |
|
|
30
30
|
|---|---|
|
|
31
|
-
| Harness | DeepSeek Harness `0.1.
|
|
31
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5` (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. |
|
|
32
32
|
|
|
33
|
-
| Audit events | Written on harnesses before `0.1.2-alpha.
|
|
33
|
+
| Audit events | Written on harnesses before `0.1.2-alpha.5`; suppressed with a logged degradation reason on `0.1.2-alpha.5` and later (fail-closed session event vocabulary, no external registration surface) || Node | `^22.19.0 \|\| >=24.0.0` |
|
|
34
34
|
| Surfaces | Host + Web client (Settings budget tab); `/budget` command |
|
|
35
35
|
|
|
36
36
|
## What you get
|
|
@@ -105,7 +105,7 @@ All tunables are Schemastery `Config` fields (changeable from cordis.yml). `cord
|
|
|
105
105
|
|
|
106
106
|
- **Permissions**: `network:outbound` (the optional alert webhook only), `session:append` (audit events), `native-code:none`.
|
|
107
107
|
- **Data**: everything displayed comes from the session event stream; the only host-side network call is the configured webhook, whose URL is validated at load and credential-stripped before any log. No prompts or payloads ever leave the host.
|
|
108
|
-
- **Session log**: `budget/alert` and `budget/block` are log-only audit events carrying scope names and USD amounts (microtask-deferred past the session-append reentrancy guard). On harnesses `0.1.2-alpha.
|
|
108
|
+
- **Session log**: `budget/alert` and `budget/block` are log-only audit events carrying scope names and USD amounts (microtask-deferred past the session-append reentrancy guard). On harnesses `0.1.2-alpha.5` and later they are not written — the fail-closed event vocabulary rejects logs with unregistered event types and offers no external registration surface — so the audit trail degrades to the budget logger and webhook only.
|
|
109
109
|
|
|
110
110
|
## Security boundaries
|
|
111
111
|
|
|
@@ -125,7 +125,7 @@ All tunables are Schemastery `Config` fields (changeable from cordis.yml). `cord
|
|
|
125
125
|
```sh
|
|
126
126
|
pnpm install # node ^22.19 || >=24
|
|
127
127
|
pnpm run typecheck # tsc: src + tests against the local harness checkout
|
|
128
|
-
pnpm run typecheck:ci # tsc against the published 0.1.
|
|
128
|
+
pnpm run typecheck:ci # tsc against the published 0.1.2-alpha.5 types (no paths)
|
|
129
129
|
pnpm test # vitest
|
|
130
130
|
pnpm run build # tsc declarations + tsdown bundles (lib/)
|
|
131
131
|
pnpm run verify:self-contained # dependency specs resolve from the registry
|
package/README.pt.md
CHANGED
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
|
|
26
26
|
| Superfície | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5` (adaptado em 2026-09-02): o envelope de sessão mantém seu campo ignorable apenas para compatibilidade de leitura de logs armazenados - o Session.append ainda não consegue estampá-lo, então o comportamento da porta não muda. |
|
|
29
29
|
|
|
30
|
-
| Eventos de auditoria | Gravados em harness anteriores a `0.1.2-alpha.
|
|
30
|
+
| Eventos de auditoria | Gravados em harness anteriores a `0.1.2-alpha.5`; suprimidos com uma razão de degradação registrada em `0.1.2-alpha.5` e posteriores (vocabulário de eventos de sessão fail-closed, sem superfície de registro externa) || Node | `^22.19.0 \|\| >=24.0.0` |
|
|
31
31
|
| Superfícies | Host + cliente Web (aba Budget em Settings); comando `/budget` |
|
|
32
32
|
|
|
33
33
|
## O que você ganha
|
|
@@ -102,7 +102,7 @@ Todos os ajustes são campos `Config` do Schemastery (alteráveis pelo cordis.ym
|
|
|
102
102
|
|
|
103
103
|
- **Permissões**: `network:outbound` (apenas o webhook de alerta opcional), `session:append` (eventos de auditoria), `native-code:none`.
|
|
104
104
|
- **Dados**: tudo exibido vem do fluxo de eventos da sessão; a única chamada de rede é o webhook configurado, validado ao carregar e sem credenciais nos registros. Nenhum prompt ou payload sai do host.
|
|
105
|
-
- **Registro de sessão**: `budget/alert` e `budget/block` são eventos de auditoria somente-registro com nomes de escopo e valores USD (adiados por microtarefa ante o guard de reentrância do append). Em harness `0.1.2-alpha.
|
|
105
|
+
- **Registro de sessão**: `budget/alert` e `budget/block` são eventos de auditoria somente-registro com nomes de escopo e valores USD (adiados por microtarefa ante o guard de reentrância do append). Em harness `0.1.2-alpha.5` e posteriores eles não são gravados — o vocabulário de eventos fail-closed rejeita logs com tipos de evento não registrados e não oferece superfície de registro externa — então o rastro de auditoria degrada apenas para o logger de orçamento e o webhook.
|
|
106
106
|
|
|
107
107
|
## Limites de segurança
|
|
108
108
|
|
|
@@ -122,7 +122,7 @@ Todos os ajustes são campos `Config` do Schemastery (alteráveis pelo cordis.ym
|
|
|
122
122
|
```sh
|
|
123
123
|
pnpm install # node ^22.19 || >=24
|
|
124
124
|
pnpm run typecheck # tsc: src + tests contra o checkout local do harness
|
|
125
|
-
pnpm run typecheck:ci # tsc contra os tipos publicados 0.1.
|
|
125
|
+
pnpm run typecheck:ci # tsc contra os tipos publicados 0.1.2-alpha.5 (sem paths)
|
|
126
126
|
pnpm test # vitest
|
|
127
127
|
pnpm run build # declarações tsc + bundles tsdown (lib/)
|
|
128
128
|
pnpm run verify:self-contained # especificações de dependências resolvem pelo registry
|
package/README.zh.md
CHANGED
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
|
|
28
28
|
| 方面 | 状态 |
|
|
29
29
|
|---|---|
|
|
30
|
-
| Harness | DeepSeek Harness `0.1.
|
|
30
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5`(2026-09-02 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。 |
|
|
31
31
|
|
|
32
|
-
| 审计事件 | `0.1.2-alpha.
|
|
32
|
+
| 审计事件 | `0.1.2-alpha.5` 之前的宿主上写入;在 `0.1.2-alpha.5` 及以后抑制并记录降级原因(fail-closed 会话事件词表,无外部注册面) || Node | `^22.19.0 \|\| >=24.0.0` |
|
|
33
33
|
| 界面 | Host + Web 客户端(设置页预算页签);`/budget` 命令 |
|
|
34
34
|
|
|
35
35
|
## 你能得到什么
|
|
@@ -104,7 +104,7 @@ dsh --profile web --dump-config | grep -A2 'id: budget'
|
|
|
104
104
|
|
|
105
105
|
- **权限**:`network:outbound`(仅可选告警 webhook)、`session:append`(审计事件)、`native-code:none`。
|
|
106
106
|
- **数据**:展示内容全部来自会话事件流;主机侧唯一网络调用是配置的 webhook,URL 在加载时校验、入日志前剥离凭据。任何 prompt/载荷都不会离开主机。
|
|
107
|
-
- **会话日志**:`budget/alert` 与 `budget/block` 是仅日志审计事件,只携带作用域名与 USD 金额(微任务延后以绕过会话 append 重入保护)。在 `0.1.2-alpha.
|
|
107
|
+
- **会话日志**:`budget/alert` 与 `budget/block` 是仅日志审计事件,只携带作用域名与 USD 金额(微任务延后以绕过会话 append 重入保护)。在 `0.1.2-alpha.5` 及以后的宿主上不再写入——fail-closed 事件词表会拒绝含未注册事件类型的日志,且没有外部注册面——审计轨迹因此仅降级到预算日志与 webhook。
|
|
108
108
|
|
|
109
109
|
## 安全边界
|
|
110
110
|
|
|
@@ -124,7 +124,7 @@ dsh --profile web --dump-config | grep -A2 'id: budget'
|
|
|
124
124
|
```sh
|
|
125
125
|
pnpm install # node ^22.19 || >=24
|
|
126
126
|
pnpm run typecheck # tsc:src + tests,对照本地 harness checkout
|
|
127
|
-
pnpm run typecheck:ci # tsc:对照已发布的 0.1.
|
|
127
|
+
pnpm run typecheck:ci # tsc:对照已发布的 0.1.2-alpha.5 类型(无 paths)
|
|
128
128
|
pnpm test # vitest
|
|
129
129
|
pnpm run build # tsc 声明 + tsdown bundles(lib/)
|
|
130
130
|
pnpm run verify:self-contained # 依赖声明全部来自 registry
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-budget",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Cost governance for DeepSeek Harness: aggregated token/cost metering per model, session and day, session/daily/monthly budget caps with threshold alerts (desktop notification + webhook) and alert/block/degrade over-limit policies, built-in carbon footprint estimation and per-model latency benchmarks, a Settings budget tab, and the /budget command",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
],
|
|
81
81
|
"compatibility": {
|
|
82
82
|
"dshVersions": [
|
|
83
|
-
"0.1.2-alpha.
|
|
83
|
+
"0.1.2-alpha.5"
|
|
84
84
|
]
|
|
85
85
|
},
|
|
86
86
|
"capability": {
|
|
@@ -144,23 +144,23 @@
|
|
|
144
144
|
"zod": "^4.4.3"
|
|
145
145
|
},
|
|
146
146
|
"devDependencies": {
|
|
147
|
-
"@deepseek-ai/dsh-api-remotes": "0.1.2-alpha.
|
|
148
|
-
"@deepseek-ai/dsh-attachment": "0.1.2-alpha.
|
|
147
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.2-alpha.5",
|
|
148
|
+
"@deepseek-ai/dsh-attachment": "0.1.2-alpha.5",
|
|
149
149
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
150
150
|
"@deepseek-ai/cordis-plugin-include": "1.0.6",
|
|
151
151
|
"@deepseek-ai/cordis-plugin-loader": "1.0.2",
|
|
152
|
-
"@deepseek-ai/dsh-agent": "0.1.2-alpha.
|
|
153
|
-
"@deepseek-ai/dsh-client-connection": "0.1.2-alpha.
|
|
154
|
-
"@deepseek-ai/dsh-client-locale": "0.1.2-alpha.
|
|
155
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-alpha.
|
|
156
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-alpha.
|
|
157
|
-
"@deepseek-ai/dsh-commands": "0.1.2-alpha.
|
|
158
|
-
"@deepseek-ai/dsh-llm": "0.1.2-alpha.
|
|
159
|
-
"@deepseek-ai/dsh-session": "0.1.2-alpha.
|
|
160
|
-
"@deepseek-ai/dsh-storage-domain": "0.1.2-alpha.
|
|
161
|
-
"@deepseek-ai/dsh-token-meter": "0.1.2-alpha.
|
|
162
|
-
"@deepseek-ai/dsh-tools": "0.1.2-alpha.
|
|
163
|
-
"@deepseek-ai/dsh-typert-protocol": "0.1.2-alpha.
|
|
152
|
+
"@deepseek-ai/dsh-agent": "0.1.2-alpha.5",
|
|
153
|
+
"@deepseek-ai/dsh-client-connection": "0.1.2-alpha.5",
|
|
154
|
+
"@deepseek-ai/dsh-client-locale": "0.1.2-alpha.5",
|
|
155
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-alpha.5",
|
|
156
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-alpha.5",
|
|
157
|
+
"@deepseek-ai/dsh-commands": "0.1.2-alpha.5",
|
|
158
|
+
"@deepseek-ai/dsh-llm": "0.1.2-alpha.5",
|
|
159
|
+
"@deepseek-ai/dsh-session": "0.1.2-alpha.5",
|
|
160
|
+
"@deepseek-ai/dsh-storage-domain": "0.1.2-alpha.5",
|
|
161
|
+
"@deepseek-ai/dsh-token-meter": "0.1.2-alpha.5",
|
|
162
|
+
"@deepseek-ai/dsh-tools": "0.1.2-alpha.5",
|
|
163
|
+
"@deepseek-ai/dsh-typert-protocol": "0.1.2-alpha.5",
|
|
164
164
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
165
165
|
"@types/node": "^22.19.0",
|
|
166
166
|
"@types/react": "18.3.31",
|