@mengyuly/dsh-ponytail 0.3.4 → 0.4.0
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 +45 -0
- package/README.md +51 -8
- package/README_EN.md +70 -15
- package/dist-provenance.json +26 -11
- package/lib/client.js +305 -0
- package/lib/index.js +1926 -1882
- package/package.json +15 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,51 @@ All notable changes to `@mengyuly/dsh-ponytail` are documented here.
|
|
|
4
4
|
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
|
+
|
|
8
|
+
## [0.4.0] - 2026-10-08
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Native Web settings card: default-mode selection, five optional-skill toggles,
|
|
13
|
+
atomic revision-fenced saves, panel-only reset, retained drafts on failure,
|
|
14
|
+
read-only guards, and Chinese/English help.
|
|
15
|
+
- Optional native `/ponytail` mode picker; status/reset/help run through the
|
|
16
|
+
existing command boundary without requesting a model turn.
|
|
17
|
+
- `/ponytail help` and detailed default-source status. DSH Settings persistence
|
|
18
|
+
is optional; legacy/headless deployments keep their config-file path.
|
|
19
|
+
- Browser interaction tests and downstream build/source hash provenance.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- Normalize repository text line endings to LF so downstream SHA-256 build
|
|
24
|
+
provenance is reproducible across Windows and Linux checkouts.
|
|
25
|
+
- Mark bundled DSH host-contract peers as optional for package resolution,
|
|
26
|
+
retaining their version contracts and required host services. Plain npm/pnpm
|
|
27
|
+
installs now resolve only the two runtime externals instead of following the
|
|
28
|
+
host's transitive unpublished `dsh-type-meta` peer. Add clean pnpm 11 default
|
|
29
|
+
installation and runtime-load regression coverage.
|
|
30
|
+
- Restore the complete seven-rung ladder in every active prompt, mandatory
|
|
31
|
+
Lite alternatives, unnecessary-dependency and fewest-file guards, full-scope
|
|
32
|
+
acceptance without re-arguing, and upstream minimal-test limits. Full/Ultra
|
|
33
|
+
enforce the ladder; Lite leaves the scope choice to the user.
|
|
34
|
+
- Downstream builds now compile the instruction fragment from source, avoiding
|
|
35
|
+
stale rules in the installed bundle.
|
|
36
|
+
- Older DSH Web settings scopes now save through the host's atomic settings RPC,
|
|
37
|
+
preserving revision conflicts and surfacing write failures instead of calling
|
|
38
|
+
an unavailable `scope.mutate` method.
|
|
39
|
+
- Restore explicit upstream rules in every active level: all-caller root-cause
|
|
40
|
+
checks, same-size algorithm edge cases, shortcut ceiling/upgrade annotations,
|
|
41
|
+
hardware calibration, requested explanations, and coding-only scope.
|
|
42
|
+
- Debt scans now recognize block comments, keep source files under `lib`, and
|
|
43
|
+
exclude nested dependency/build output in both ripgrep and Git fallbacks.
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
- Review prompt budgets around required semantics instead of enforcing the old
|
|
48
|
+
compressed sizes. Update bilingual measurements without claiming model savings.
|
|
49
|
+
- Execute debt scan commands against controlled source/vendor/build fixtures;
|
|
50
|
+
verify exact installed/source prompt and skill parity in the pack smoke test.
|
|
51
|
+
These checks do not establish model compliance or performance.
|
|
7
52
|
|
|
8
53
|
## [0.3.4] - 2026-10-07
|
|
9
54
|
|
package/README.md
CHANGED
|
@@ -67,7 +67,8 @@ dsh plugin --profile web add @mengyuly/dsh-ponytail
|
|
|
67
67
|
- `/ponytail status`:只查询、永不修改,并显示当前模式来自会话覆盖还是配置默认值。
|
|
68
68
|
- `/ponytail reset`:清除当前会话覆盖,重新跟随有效配置默认值。
|
|
69
69
|
- `/ponytail lite|full|ultra|off`:显式切换。
|
|
70
|
-
- `/ponytail
|
|
70
|
+
- `/ponytail help`:直接显示操作帮助,不调用模型。
|
|
71
|
+
- `/ponytail default <mode>`:有 DSH Settings 时保存到宿主设置;没有时回退到用户级配置文件(env/Profile 仍优先,命令分别提示 saved 与 effective)。
|
|
71
72
|
- 状态操作立即生效,但不唤醒空闲 Agent;模型通知在下一次真实请求时接收,避免切档位额外触发模型调用。
|
|
72
73
|
- **一次性技能**(用哪个载哪个,不进常驻 prompt):
|
|
73
74
|
- `/ponytail-review` — 针对最近改动找过度工程;每条包含位置、替代方案和实际调用证据,不猜测精确收益。
|
|
@@ -78,7 +79,7 @@ dsh plugin --profile web add @mengyuly/dsh-ponytail
|
|
|
78
79
|
- **停用**:说 `stop ponytail`、`normal mode`、`停止 ponytail`、`关闭 ponytail`、`普通模式` 或 `正常模式`(兼容中英文句末标点);随时 `/ponytail` 恢复。
|
|
79
80
|
- **默认值优先级**(代码/测试/文档一致):
|
|
80
81
|
```
|
|
81
|
-
会话 override > PONYTAIL_DEFAULT_MODE > Profile config.defaultMode > 用户 config.json > full
|
|
82
|
+
会话 override > PONYTAIL_DEFAULT_MODE > Profile config.defaultMode > DSH Settings > 用户 config.json > full
|
|
82
83
|
```
|
|
83
84
|
- **Profile 级配置**(Cordis 官方插件配置 API,各 profile 可不同):
|
|
84
85
|
```yaml
|
|
@@ -94,6 +95,36 @@ dsh plugin --profile web add @mengyuly/dsh-ponytail
|
|
|
94
95
|
- **子代理(如实边界)**:DSH 内置 `subagent` 工具是**隔离派生**,但全局 system-prompt section 默认也会参与子代理的独立组装;这不是父代理 Prompt 或会话状态继承。`PONYTAIL_SUBAGENT_MATCHER`(匹配子代理 `agentPreset` 的正则)只用于筛选能进入本 Prompt 管线的子代理,不是继承开关;无 preset 时不会被 matcher 排除。DSH 当前没有公开的父子 Prompt 继承 API,因此**不宣称父子 Prompt 继承**(有官方 API 后再考虑只读模式快照传播)。非法正则告警一次并 fail-open。
|
|
95
96
|
- **配置错误**:非法 JSON / 非法 `defaultMode` / 读取失败 / 非法正则只告警一次(不刷屏);配置文件不存在属正常、不告警。
|
|
96
97
|
|
|
98
|
+
## 图形操作
|
|
99
|
+
|
|
100
|
+
支持原生 `settingsScope`/`settings.plugin.item` 接口的 DSH Web 中,打开
|
|
101
|
+
**设置 → 插件 → Ponytail**:选择默认模式、分别开关五个附加技能、保存设置,
|
|
102
|
+
或一键恢复面板默认。选择「跟随现有配置」会沿用旧配置,不替用户覆盖环境变量或 Profile。
|
|
103
|
+
面板默认值不是当前会话模式;已有会话覆盖不变,实际模式与来源用 `/ponytail status` 查询。
|
|
104
|
+
附加技能开关不会移除常驻核心规则,只有 `off` 模式关闭规则注入。
|
|
105
|
+
|
|
106
|
+
原生命令菜单支持时,裸 `/ponytail` 打开模式选择器,并提供状态、会话重置和帮助入口。
|
|
107
|
+
有参数的命令、TUI/CLI 用法保持原样。没有这些界面服务的旧宿主保留命令与文件配置路径。
|
|
108
|
+
保存失败不显示成功,面板保留修改;只读连接禁用写入。面板重置仅清除自身设置,
|
|
109
|
+
不删除旧配置、不清除已有会话覆盖,也不请求模型工作。
|
|
110
|
+
|
|
111
|
+
已在 WSL Debian 的真实 DSH checkout `b150a551` 上用隔离 profile 联调界面与文件设置。
|
|
112
|
+
旧版仅有 `set/unset` 的 Settings scope 通过宿主原子 RPC 保存,仍保留版本冲突检查。
|
|
113
|
+
DSH 宿主契约 peer 保留版本声明,但标记为包管理器可选,由实际宿主提供;
|
|
114
|
+
`cordis` 与 `schemastery` 仍是必需的运行时 peer。正常安装不需要关闭自动 peer 安装,
|
|
115
|
+
也不会为了安装本插件拉取整套 DSH 和尚未发布的 `dsh-type-meta`。
|
|
116
|
+
「可选」仅指依赖解析:实际运行仍需要 DSH 的 systemPrompt、skills 等宿主服务,不能脱离 DSH 独立运行。
|
|
117
|
+
|
|
118
|
+
开发者界面验证(工具安装在仓库外,不进入 npm 包):
|
|
119
|
+
```powershell
|
|
120
|
+
$env:PONYTAIL_TOOL_ROOT = Join-Path $env:TEMP 'ponytail-ui-tools'
|
|
121
|
+
npm install --prefix $env:PONYTAIL_TOOL_ROOT --ignore-scripts typescript@6.0.3 esbuild@0.28.2 react@18.3.1 react-dom@18.3.1 jsdom@26.1.0
|
|
122
|
+
node scripts/build-ui.mjs
|
|
123
|
+
node scripts/test-ui.mjs
|
|
124
|
+
```
|
|
125
|
+
`build-ui` 保留已有内联宿主依赖,编译下游规则片段、插件入口和浏览器界面,**不是权威 monorepo 完整重建**。
|
|
126
|
+
`dist-provenance.json` 中旧 `sourceCommit` 表示基线,`downstreamBuild` 记录当前修改的源码和产物 SHA-256。
|
|
127
|
+
|
|
97
128
|
## 效率(条件性收益,非保证)
|
|
98
129
|
|
|
99
130
|
Ponytail 会给每次模型请求增加一小段固定规则。它的收益是**有条件的**:
|
|
@@ -107,14 +138,25 @@ prompt 与推理开销变得更贵。
|
|
|
107
138
|
|
|
108
139
|
| 档位 | 字符数 | UTF-8 字节 | 说明 |
|
|
109
140
|
|------|--------|-----------|------|
|
|
110
|
-
| lite |
|
|
111
|
-
| full |
|
|
112
|
-
| ultra |
|
|
141
|
+
| lite | 3911 | 3913 | 实测生成 |
|
|
142
|
+
| full | 4818 | 4834 | 实测生成 |
|
|
143
|
+
| ultra | 5034 | 5050 | 实测生成 |
|
|
113
144
|
| off | 0 | 0 | 不注入 |
|
|
114
145
|
|
|
115
146
|
这些是 **Prompt 体积测量,不是账单金额,也不是对所有模型成立的节省
|
|
116
147
|
比例**(无统一 tokenizer,`measure:prompt` 输出中 `estimated_tokens` 为
|
|
117
|
-
null;字符数/4
|
|
148
|
+
null;字符数/4 只是粗略估算)。同模式字节级稳定,有利于 Prompt 缓存,但不保证宿主或模型缓存命中。
|
|
149
|
+
|
|
150
|
+
所有启用档位均保留上游边界:修复前检查所有调用方、同等大小方案优先边界正确性、
|
|
151
|
+
有已知局限的捷径留下 `ponytail: <ceiling>, <upgrade path>` 注释、保留硬件校准,
|
|
152
|
+
以及完整回答用户明确要求的解释。规则仅用于编码任务,不改写一般问答或翻译。
|
|
153
|
+
所有启用档位包含完整七阶梯。Lite 必须用一句话指出更简单的替代方案,但由用户选定范围;
|
|
154
|
+
Full 执行阶梯;Ultra 执行阶梯并更积极质疑不必要的复杂度。几行代码足够时不得新增依赖,
|
|
155
|
+
在正确完整的前提下触及最少文件;用户坚持完整版本后直接实现,不反复争辩。
|
|
156
|
+
非平凡逻辑保留一个最小可运行检查,不擅自增加逐函数测试套件;简单一行代码不要求额外测试。
|
|
157
|
+
`ponytail-debt` 支持块注释和 `lib` 源码,两条扫描路径均跳过嵌套依赖与构建目录。
|
|
158
|
+
验证覆盖规则内容、真实搜索命令及安装产物与源码的 Prompt/Skill 一致性;
|
|
159
|
+
这些检查不代表模型遵循率或实际性能已经通过对照评测。
|
|
118
160
|
|
|
119
161
|
**上游数据不是本 DSH 适配版的保证**:上游 Ponytail 的 single-shot
|
|
120
162
|
(代码 −80~94%、成本 −42~75%、延迟 3.1–5.8×)与 agentic(LOC −54% 等)
|
|
@@ -147,7 +189,7 @@ Smoke Benchmark 只提供方向性证据(见 `docs/dsh-smoke-summary.md`)。
|
|
|
147
189
|
## 测试环境与权威关系
|
|
148
190
|
|
|
149
191
|
- 本机(Linux,Node.js **v24.16.0**,deepseek-harness checkout 构建)与 CI 矩阵(**ubuntu-latest + windows-latest × Node 22/24**)上验证通过。与之精确匹配的已发布 DSH/Cordis 版本**待确认**——checkout 是预发布工作树,非发布 tag。
|
|
150
|
-
-
|
|
192
|
+
- 历史宿主构建基线来自 deepseek-harness monorepo 的 `packages/community/ponytail`;当前 `@mengyuly/dsh-ponytail` 的下游适配修改以本仓库 `src/` 为准,随包附构建产物。
|
|
151
193
|
|
|
152
194
|
## 发行维护
|
|
153
195
|
|
|
@@ -157,7 +199,7 @@ Smoke Benchmark 只提供方向性证据(见 `docs/dsh-smoke-summary.md`)。
|
|
|
157
199
|
> `scripts/` 命令(无维护脚本入口、无安装生命周期钩子),由
|
|
158
200
|
> `node scripts/verify-pack.mjs` 回归检查强制。
|
|
159
201
|
|
|
160
|
-
-
|
|
202
|
+
- **构建来源**:monorepo 提供历史内联依赖基线;当前下游适配源码在本仓库。`build-ui` 与完整 `sync:dist` 的证据范围不同,不能混称。
|
|
161
203
|
- **维护者命令**(源码仓库内直接运行 `node scripts/<script>.mjs`;快捷清单见
|
|
162
204
|
`package.dev.json`):
|
|
163
205
|
```bash
|
|
@@ -167,6 +209,7 @@ Smoke Benchmark 只提供方向性证据(见 `docs/dsh-smoke-summary.md`)。
|
|
|
167
209
|
node scripts/test-consumer.mjs # NodeNext + skipLibCheck:false 声明消费测试(对打包产物)
|
|
168
210
|
node scripts/test-regressions.mjs # 验证工具自身的回归测试
|
|
169
211
|
node scripts/test-core.mjs # 核心 Prompt 字节、安全边界、模式与 Skill 表面
|
|
212
|
+
node scripts/test-install.mjs # pnpm 11 默认 peer 安装,无宿主源码树或规避配置
|
|
170
213
|
node scripts/measure-prompt.mjs # 各模式 Prompt 段体积(依赖未发布的 src/)
|
|
171
214
|
node scripts/check-release-links.mjs # README/CHANGELOG/docs 无版本化 latest 资产链接
|
|
172
215
|
node scripts/check-release-consistency.mjs --version <v> # 四方发布一致性(git tag/npm/GitHub/provenance)
|
package/README_EN.md
CHANGED
|
@@ -119,8 +119,9 @@ effect. Once loaded, the session skill catalog shows 6 `ponytail*` skills; send
|
|
|
119
119
|
- `/ponytail reset`: clears the current session override and follows the
|
|
120
120
|
effective configured default again.
|
|
121
121
|
- `/ponytail lite|full|ultra|off`: explicit switch.
|
|
122
|
-
- `/ponytail
|
|
123
|
-
|
|
122
|
+
- `/ponytail help`: displays command help without calling the model.
|
|
123
|
+
- `/ponytail default <mode>`: persists through DSH Settings when available,
|
|
124
|
+
otherwise the user-level config file (env/profile still take priority; the command reports both
|
|
124
125
|
`saved` and `effective`).
|
|
125
126
|
- Status changes take effect immediately without waking an idle agent.
|
|
126
127
|
Notices reach the model on its next real step, avoiding an extra model
|
|
@@ -142,7 +143,7 @@ effect. Once loaded, the session skill catalog shows 6 `ponytail*` skills; send
|
|
|
142
143
|
punctuation tolerated); `/ponytail` re-enables at any time.
|
|
143
144
|
- **Default priority** (consistent across code/tests/docs):
|
|
144
145
|
```
|
|
145
|
-
session override > PONYTAIL_DEFAULT_MODE > Profile config.defaultMode > user config.json > full
|
|
146
|
+
session override > PONYTAIL_DEFAULT_MODE > Profile config.defaultMode > DSH Settings > user config.json > full
|
|
146
147
|
```
|
|
147
148
|
- **Profile-level config** (official Cordis plugin config API; each profile
|
|
148
149
|
can differ):
|
|
@@ -176,6 +177,43 @@ effect. Once loaded, the session skill catalog shows 6 `ponytail*` skills; send
|
|
|
176
177
|
invalid regex warn exactly once (no log spam); a missing config file is
|
|
177
178
|
normal and never warns.
|
|
178
179
|
|
|
180
|
+
## Graphical controls
|
|
181
|
+
|
|
182
|
+
On DSH Web hosts with the native `settingsScope`/`settings.plugin.item` APIs,
|
|
183
|
+
open **Settings → Plugins → Ponytail** to select a default mode, toggle five
|
|
184
|
+
optional skills, save, or reset panel defaults. “Follow existing configuration”
|
|
185
|
+
preserves legacy configuration. Environment/profile values still take priority;
|
|
186
|
+
existing session overrides stay intact. Use `/ponytail status` for the actual
|
|
187
|
+
session mode and source. Optional-skill toggles never remove the core rules.
|
|
188
|
+
|
|
189
|
+
When supported, bare `/ponytail` opens a native picker with mode/status/reset/help
|
|
190
|
+
actions. Argued commands and TUI/CLI behavior remain unchanged. Older hosts
|
|
191
|
+
without these services keep the command/config-file paths. Failed saves retain
|
|
192
|
+
drafts; read-only connections cannot write. Panel reset clears only its own
|
|
193
|
+
overrides, not legacy files or session state, and requests no model work.
|
|
194
|
+
|
|
195
|
+
The native UI and file-backed settings were integration-tested in an isolated
|
|
196
|
+
profile on the real WSL Debian DSH checkout `b150a551`. Older Settings scopes
|
|
197
|
+
with only `set/unset` save through the host's atomic RPC with revision checks.
|
|
198
|
+
DSH contract peers retain their version ranges but are optional for package
|
|
199
|
+
resolution and supplied by the host. Cordis and schemastery remain required
|
|
200
|
+
runtime peers. Normal installation needs no auto-peer workaround and does not
|
|
201
|
+
fetch a second DSH or the unpublished `dsh-type-meta` peer. Optional metadata
|
|
202
|
+
does not make host services optional: runtime still requires DSH systemPrompt,
|
|
203
|
+
skills, and the other services used by the plugin.
|
|
204
|
+
|
|
205
|
+
Developer UI checks use isolated tools, excluded from the npm tarball:
|
|
206
|
+
```powershell
|
|
207
|
+
$env:PONYTAIL_TOOL_ROOT = Join-Path $env:TEMP 'ponytail-ui-tools'
|
|
208
|
+
npm install --prefix $env:PONYTAIL_TOOL_ROOT --ignore-scripts typescript@6.0.3 esbuild@0.28.2 react@18.3.1 react-dom@18.3.1 jsdom@26.1.0
|
|
209
|
+
node scripts/build-ui.mjs
|
|
210
|
+
node scripts/test-ui.mjs
|
|
211
|
+
```
|
|
212
|
+
`build-ui` retains baseline inlined host dependencies and compiles downstream
|
|
213
|
+
rule fragments and entry/UI code; it is **not an authoritative monorepo rebuild**. Provenance's
|
|
214
|
+
`sourceCommit` identifies the baseline; `downstreamBuild` records current source
|
|
215
|
+
and artifact hashes.
|
|
216
|
+
|
|
179
217
|
## Efficiency (conditional gains, not guarantees)
|
|
180
218
|
|
|
181
219
|
Ponytail adds a small fixed ruleset to every model request. Its benefit is
|
|
@@ -192,15 +230,33 @@ scripts/measure-prompt.mjs`, generated from the real
|
|
|
192
230
|
|
|
193
231
|
| Level | Characters | UTF-8 bytes | Notes |
|
|
194
232
|
|------|--------|-----------|------|
|
|
195
|
-
| lite |
|
|
196
|
-
| full |
|
|
197
|
-
| ultra |
|
|
233
|
+
| lite | 3911 | 3913 | measured output |
|
|
234
|
+
| full | 4818 | 4834 | measured output |
|
|
235
|
+
| ultra | 5034 | 5050 | measured output |
|
|
198
236
|
| off | 0 | 0 | not injected |
|
|
199
237
|
|
|
200
238
|
These are **prompt-size measurements, not billing amounts, and not a savings
|
|
201
239
|
ratio that holds for every model** (there is no universal tokenizer;
|
|
202
240
|
`estimated_tokens` in `measure:prompt` output is null; characters/4 is only a
|
|
203
|
-
rough estimate). Same-mode output is byte-stable,
|
|
241
|
+
rough estimate). Same-mode output is byte-stable, which helps prompt caching,
|
|
242
|
+
but does not guarantee a host or model cache hit.
|
|
243
|
+
|
|
244
|
+
Every active level preserves upstream boundaries: check all callers before a
|
|
245
|
+
bug fix, prefer edge-case correctness between same-size options, annotate real
|
|
246
|
+
shortcuts with `ponytail: <ceiling>, <upgrade path>`, retain hardware calibration,
|
|
247
|
+
and give explicitly requested explanations in full. Rules apply to coding only,
|
|
248
|
+
not unrelated prose or translation. Debt scans support block comments and `lib`
|
|
249
|
+
sources; both scan paths exclude nested dependency and build directories.
|
|
250
|
+
Checks cover prompt contracts, actual scan commands, and exact installed/source
|
|
251
|
+
prompt and skill parity, not model compliance rates or measured performance.
|
|
252
|
+
|
|
253
|
+
Every active prompt contains the complete seven-rung ladder. Lite must name a
|
|
254
|
+
simpler alternative in one line while leaving scope to the user; Full enforces
|
|
255
|
+
the ladder; Ultra enforces it and challenges unnecessary complexity more actively.
|
|
256
|
+
Do not add dependencies for work a few lines can do; touch the fewest files that
|
|
257
|
+
deliver a correct complete fix. If the user insists on full scope, build it
|
|
258
|
+
without re-arguing. Non-trivial logic keeps one minimal runnable check, not an
|
|
259
|
+
unrequested per-function suite; trivial one-liners need no extra test.
|
|
204
260
|
|
|
205
261
|
**Upstream numbers are not a guarantee for this DSH port**: the upstream
|
|
206
262
|
Ponytail single-shot results (code −80–94%, cost −42–75%, latency 3.1–5.8×)
|
|
@@ -245,11 +301,9 @@ benchmark provides directional evidence only (see
|
|
|
245
301
|
build) and in the CI matrix (**ubuntu-latest + windows-latest × Node
|
|
246
302
|
22/24**). The exact published DSH/Cordis release they correspond to is
|
|
247
303
|
**TBD** — the checkout is a prerelease working tree, not a release tag.
|
|
248
|
-
- The
|
|
249
|
-
|
|
250
|
-
repository
|
|
251
|
-
ships build artifacts with the package and is not an independent source of
|
|
252
|
-
truth.
|
|
304
|
+
- The historical host build baseline is `packages/community/ponytail` in the
|
|
305
|
+
deepseek-harness monorepo. Current `@mengyuly/dsh-ponytail` downstream changes
|
|
306
|
+
are maintained in this repository's `src/`, alongside shipped artifacts.
|
|
253
307
|
|
|
254
308
|
## Release maintenance
|
|
255
309
|
|
|
@@ -261,9 +315,9 @@ benchmark provides directional evidence only (see
|
|
|
261
315
|
> commands (no maintenance entry points, no install lifecycle hooks),
|
|
262
316
|
> enforced by a regression check in `node scripts/verify-pack.mjs`.
|
|
263
317
|
|
|
264
|
-
- **
|
|
265
|
-
|
|
266
|
-
|
|
318
|
+
- **Build sources**: the monorepo supplies the historical inlined dependency
|
|
319
|
+
baseline; this repository owns current downstream source. `build-ui` and a
|
|
320
|
+
full `sync:dist` provide different evidence and must not be conflated.
|
|
267
321
|
- **Maintainer commands** (run `node scripts/<script>.mjs` inside the source
|
|
268
322
|
repository; see `package.dev.json` for the shortcut list):
|
|
269
323
|
```bash
|
|
@@ -273,6 +327,7 @@ benchmark provides directional evidence only (see
|
|
|
273
327
|
node scripts/test-consumer.mjs # NodeNext + skipLibCheck:false declaration consumer test (against the packed artifact)
|
|
274
328
|
node scripts/test-regressions.mjs # regression tests for the verification tooling itself
|
|
275
329
|
node scripts/test-core.mjs # core prompt bytes, safety boundaries, modes and skill surface
|
|
330
|
+
node scripts/test-install.mjs # pnpm 11 default peer installation, no host tree/workaround
|
|
276
331
|
node scripts/measure-prompt.mjs # prompt-section size per mode (depends on the unpublished src/)
|
|
277
332
|
node scripts/check-release-links.mjs # README/CHANGELOG/docs contain no versioned latest asset links
|
|
278
333
|
node scripts/check-release-consistency.mjs --version <v> # four-way release consistency (git tag/npm/GitHub/provenance)
|
package/dist-provenance.json
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
|
-
{
|
|
2
|
-
"sourceRepository": "https://github.com/deepseek-ai/deepseek-harness.git",
|
|
3
|
-
"sourceCommit": "b150a551b8d465e31e418e1b2eaf5e79bbb7d28e",
|
|
4
|
-
"sourcePackage": "packages/community/ponytail",
|
|
5
|
-
"generatedBy": {
|
|
6
|
-
"node": "v24.16.0",
|
|
7
|
-
"typescript": "6.0.3",
|
|
8
|
-
"tsdown": "0.22.2",
|
|
9
|
-
"cordis": "4.0.1"
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
{
|
|
2
|
+
"sourceRepository": "https://github.com/deepseek-ai/deepseek-harness.git",
|
|
3
|
+
"sourceCommit": "b150a551b8d465e31e418e1b2eaf5e79bbb7d28e",
|
|
4
|
+
"sourcePackage": "packages/community/ponytail",
|
|
5
|
+
"generatedBy": {
|
|
6
|
+
"node": "v24.16.0",
|
|
7
|
+
"typescript": "6.0.3",
|
|
8
|
+
"tsdown": "0.22.2",
|
|
9
|
+
"cordis": "4.0.1"
|
|
10
|
+
},
|
|
11
|
+
"downstreamBuild": {
|
|
12
|
+
"method": "scripts/build-ui.mjs; retains baseline inlined host dependencies",
|
|
13
|
+
"node": "v24.15.0",
|
|
14
|
+
"typescript": "6.0.3",
|
|
15
|
+
"esbuild": "0.28.2",
|
|
16
|
+
"sha256": {
|
|
17
|
+
"src/index.ts": "8421733adf8c801c1578b070cf789b5bd77588acbe90403dd69ee5467375c955",
|
|
18
|
+
"src/client.ts": "7a2c941b8a85096d863da16982ba9c6b82c709cb0561057f1b221239bbb6688a",
|
|
19
|
+
"src/content.ts": "9dc57919da6cbfcf06ae26a19e81bb0299e44d2b9c016d3477572758d9ade375",
|
|
20
|
+
"src/instructions.ts": "d96deb078f6f633fffb0e3da2750eb9d3afb37bce4cea11145db045c8cceb935",
|
|
21
|
+
"src/modes.ts": "74b8b885d145759ce17007a054ab6adc295f726f47518f56a3d37de67bd14231",
|
|
22
|
+
"lib/index.js": "b5856ca9147b78111edcd9d43be3edec4c15295ddb7539f4bf48244fef7f6ffb",
|
|
23
|
+
"lib/client.js": "84ea84dc9a6148e822f9830999cca0229a27b3696ab000394a53cc2fef3454b4"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|