dsh-instruction-memory 1.4.4 → 1.4.5
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 +31 -2
- package/README.md +10 -8
- package/install.mjs +5 -1
- package/lib/index.js +33 -8
- package/package.json +4 -7
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,35 @@
|
|
|
7
7
|
> 1.0.13 起由 CI 经 OIDC Trusted Publishing 发布(首个带 provenance 的版本)。
|
|
8
8
|
> 这些历史 tag **不应回填**——npm 上的版本号已被占用。
|
|
9
9
|
|
|
10
|
+
## [1.4.5] — 2026-10-29
|
|
11
|
+
|
|
12
|
+
对 1.4.4 发布物与最新桌面端 / 网页端复核(桌面 `0.2.1-rc.3`,网页 `0.2.1-rc.4` 与
|
|
13
|
+
`0.2.2-alpha.2`)后修复的缺陷。
|
|
14
|
+
|
|
15
|
+
### 修复
|
|
16
|
+
|
|
17
|
+
- **发布包自依赖**:1.4.4 的 `dependencies` 里混入了 `dsh-instruction-memory@^1.4.3`,
|
|
18
|
+
pnpm 安装时会多拉一份嵌套的 1.4.3(`pnpm-lock.yaml` 同时出现 1.4.3 与 1.4.4)。
|
|
19
|
+
已删除整个 `dependencies`(本插件没有运行时依赖),并新增发布前与 `verify.mjs` 断言,
|
|
20
|
+
禁止包依赖自身。
|
|
21
|
+
- **Windows 上折叠路径不可用**:快照把家目录折叠成 `~`,Windows 资源管理器 / CMD 不会展开它。
|
|
22
|
+
现在 Windows 折叠为 `%USERPROFILE%`(资源管理器、CMD、PowerShell 都会展开),macOS/Linux
|
|
23
|
+
仍为 `~`;新增 `expandDisplayPath()` 作为 `displayPath()` 的逆函数,README 与代码注释同步。
|
|
24
|
+
- **L3 验证脚本假阴性**:`compat-1016-live-check.mjs` 直接用折叠后的 `storage.path` 与绝对
|
|
25
|
+
`DSH_HOME` 比较,1.4.4 之后 `store-inside-home` / `store-on-disk` 必然 FAIL。现在先展开
|
|
26
|
+
平台占位符再判定;隔离宿主复验 **21/21 PASS**。
|
|
27
|
+
- **全新 profile 安装失败**:`install.mjs` 在 `profiles/web/node_modules` 不存在时
|
|
28
|
+
`symlinkSync` 报 `ENOENT`。现在先 `mkdirSync(dirname(link), { recursive: true })`,
|
|
29
|
+
并新增“没有 node_modules 的全新 profile”回归测试。
|
|
30
|
+
|
|
31
|
+
### 兼容区间
|
|
32
|
+
|
|
33
|
+
- 尾部收窄为 `>=0.2.0-0 <0.3.0-0`:1.4.4 写的 `<0.4.0-0` 仍会放行未发布的 `0.3.0`,
|
|
34
|
+
与“新 minor 必须显式加一行”的承诺不符。`0.3.0` 与 `0.3.0-rc.1` 现在在默认与
|
|
35
|
+
`includePrerelease` 两种语义下都被拒绝。
|
|
36
|
+
- 更正 1.4.4 说明中的版本错误:npm `alpha` 标签当时是 `0.2.2-alpha.2`,不是 `alpha.5`;
|
|
37
|
+
`0.2.2-alpha.2` 已在网页隔离宿主实机启动验证(路由 200、section 注册、设置页渲染)。
|
|
38
|
+
|
|
10
39
|
## [1.4.4] — 2026-10-29
|
|
11
40
|
|
|
12
41
|
最新版审计(桌面端 0.2.1-rc.3、网页端同一宿主,并对照 npm `next` 上的 0.2.1-rc.4)发现的缺陷修复。
|
|
@@ -21,8 +50,8 @@
|
|
|
21
50
|
|
|
22
51
|
### 兼容区间
|
|
23
52
|
|
|
24
|
-
- 尾部 `|| >=0.2.0-0` **没有上界**:`0.3.0`、`1.0.0`、`9.9.9` 都被判兼容。现收窄为 `>=0.2.0-0 <0.4.0-0
|
|
25
|
-
- 新增 `>=0.2.2-alpha.0 <0.3.0-0`:semver 只在同一 tuple 上匹配预发布号,`0.2.0` 那段够不到 `0.2.2-alpha.N`(npm `alpha`
|
|
53
|
+
- 尾部 `|| >=0.2.0-0` **没有上界**:`0.3.0`、`1.0.0`、`9.9.9` 都被判兼容。现收窄为 `>=0.2.0-0 <0.4.0-0`(仍会放行 `0.3.0`,1.4.5 进一步收窄为 `<0.3.0-0`)。
|
|
54
|
+
- 新增 `>=0.2.2-alpha.0 <0.3.0-0`:semver 只在同一 tuple 上匹配预发布号,`0.2.0` 那段够不到 `0.2.2-alpha.N`(npm `alpha` 标签当时为 `0.2.2-alpha.2`;原文误写为 `alpha.5`,1.4.5 更正)。该线在 1.4.4 时只做过契约比对;1.4.5 已实机启动验证。
|
|
26
55
|
- 三处声明(`peerDependencies` / `dsh.engines.dsh` / `dsh.compatibility.dsh`)仍由 `host-range-test.mjs` 生成并校验一致。
|
|
27
56
|
|
|
28
57
|
### 说明(未改动,但需要知道)
|
package/README.md
CHANGED
|
@@ -99,7 +99,7 @@ dsh plugin --profile web remove dsh-instruction-memory
|
|
|
99
99
|
|
|
100
100
|
## 存储
|
|
101
101
|
|
|
102
|
-
记忆保存在 **DSH
|
|
102
|
+
记忆保存在 **DSH 数据根目录**下(设置页显示折叠后的路径:Windows 为 `%USERPROFILE%`,macOS/Linux 为 `~`;真实绝对路径只用于读写):
|
|
103
103
|
|
|
104
104
|
```
|
|
105
105
|
<DSH_HOME>/instruction-memory/memory.json # DSH_HOME 默认为 ~/.dsh
|
|
@@ -215,7 +215,7 @@ DSH 就会得到第二份空记忆,看起来像"记忆消失"。相对的 `$DS
|
|
|
215
215
|
> "没活干还在动"的副作用。现在文件由**第一个真正需要它的动作**创建:一次保存、一次导入,
|
|
216
216
|
> 或设置页读取 `state`(面板打开时就会读)。
|
|
217
217
|
|
|
218
|
-
> **快照里的路径是折叠过的**(1.4.4 起):`storage.path` / `backupPath` / `historyDir` / `schemaFile`
|
|
218
|
+
> **快照里的路径是折叠过的**(1.4.4 起):`storage.path` / `backupPath` / `historyDir` / `schemaFile` 都把家目录折叠成**平台可用的占位符**——1.4.5 起 Windows 为 `%USERPROFILE%`(资源管理器、CMD、PowerShell 都会展开;1.4.4 曾用 `~`,但资源管理器不展开它),macOS/Linux 为 `~`——只用于显示;读写、备份、监听仍用绝对路径。
|
|
219
219
|
> `injection.available` 也不再恒为 `true`——提示词区块注册失败时它是 `false`。
|
|
220
220
|
> 设置页依赖宿主的 `slots` 服务:`@deepseek-ai/cordis` 没有"可选注入",所以这是硬依赖,
|
|
221
221
|
> 宿主不提供时插件不装载设置页(只打印一行说明)。
|
|
@@ -598,15 +598,15 @@ DNS 重绑定恰好推翻了它**:`evil.com` 解析到 `127.0.0.1` 之后,
|
|
|
598
598
|
同一串范围(三处逐字节一致,由测试锁定):
|
|
599
599
|
|
|
600
600
|
```
|
|
601
|
-
>=0.1.3-alpha.2 <0.1.4 || >=0.1.4-0 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.0 <0.1.7-0 || >=0.1.7-alpha.0 <0.2.0-0 || >=0.2.1-alpha.0 <0.3.0-0 || >=0.2.2-alpha.0 <0.3.0-0 || >=0.2.0-0 <0.
|
|
601
|
+
>=0.1.3-alpha.2 <0.1.4 || >=0.1.4-0 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.0 <0.1.7-0 || >=0.1.7-alpha.0 <0.2.0-0 || >=0.2.1-alpha.0 <0.3.0-0 || >=0.2.2-alpha.0 <0.3.0-0 || >=0.2.0-0 <0.3.0-0
|
|
602
602
|
```
|
|
603
603
|
|
|
604
604
|
**验证范围与证据等级**——三者不可混为一谈,下面每一行都标了它到底证明了什么:
|
|
605
605
|
|
|
606
606
|
| 等级 | 证明什么 | 覆盖 |
|
|
607
607
|
| --- | --- | --- |
|
|
608
|
-
| ① **真实启动** | 在该宿主版本上真的把 DSH 跑起来:插件装载、注入真的进入**组装后的提示**、插件 HTTP 路由可应答、客户端设置页模块被下发(Windows / Node 22) | `0.1.3-alpha.2` · `0.1.5-alpha.1` · `0.1.5-alpha.2` · `0.1.5-rc.1` · `0.1.5-rc.2` · `0.1.5-rc.3` · **`0.2.0-rc.1`** ⁽*⁾ · **`0.2.0-rc.2`** ⁽**⁾ · `0.2.1-alpha.2` ⁽***⁾ · **`0.2.1-alpha.3`** ⁽***⁾ · **`0.2.1-alpha.4`** ⁽***⁾ · **`0.2.1-rc.2`** · **`0.2.1-rc.3`** ⁽⁴⁾ |
|
|
609
|
-
| ② **契约核验** | 抓该版本**真实发布的源码**,逐个核验本插件实际用到的每个符号:`systemPrompt.section()`、`assemble()` 是否求值**函数型** `text`、`FILE_REFERENCE=900` / `TOOL_BASH=1000` 仍在(决定 order 950 是否空档)、重名注册是否抛错、`webServer.register()` / `get host()`、`ctx.inject()` / `ctx.effect()`、`dsh.client.inject` 两包在该版本是否存在且声明了 `dsh.client` |
|
|
608
|
+
| ① **真实启动** | 在该宿主版本上真的把 DSH 跑起来:插件装载、注入真的进入**组装后的提示**、插件 HTTP 路由可应答、客户端设置页模块被下发(Windows / Node 22) | `0.1.3-alpha.2` · `0.1.5-alpha.1` · `0.1.5-alpha.2` · `0.1.5-rc.1` · `0.1.5-rc.2` · `0.1.5-rc.3` · **`0.2.0-rc.1`** ⁽*⁾ · **`0.2.0-rc.2`** ⁽**⁾ · `0.2.1-alpha.2` ⁽***⁾ · **`0.2.1-alpha.3`** ⁽***⁾ · **`0.2.1-alpha.4`** ⁽***⁾ · **`0.2.1-rc.2`** · **`0.2.1-rc.3`** ⁽⁴⁾ · **`0.2.1-rc.4`** ⁽⁵⁾ · **`0.2.2-alpha.2`** ⁽⁵⁾ |
|
|
609
|
+
| ② **契约核验** | 抓该版本**真实发布的源码**,逐个核验本插件实际用到的每个符号:`systemPrompt.section()`、`assemble()` 是否求值**函数型** `text`、`FILE_REFERENCE=900` / `TOOL_BASH=1000` 仍在(决定 order 950 是否空档)、重名注册是否抛错、`webServer.register()` / `get host()`、`ctx.inject()` / `ctx.effect()`、`dsh.client.inject` 两包在该版本是否存在且声明了 `dsh.client` | 截至 2026-10-16 审计时,声明范围接住的 **18 个已发布版本**(`0.1.3-alpha.2` → `0.2.1-alpha.4`);后续新增版本按发布补充 |
|
|
610
610
|
| ③ **真实执行** | 把插件**真的挂载**进该版本的 `@deepseek-ai/cordis`,跑装载 / 路由注册 / 卸载共 9 项断言 | cordis `4.0.2` 与 `4.0.4`(各 9/9) |
|
|
611
611
|
|
|
612
612
|
⁽*⁾ **`0.2.0-rc.1` 的①档有一条要说明**:插件装载、注入进入组装后的提示、HTTP 路由可应答三项**均已实测**(路由 `HTTP 200`;`injection.registered=true`、`chars=437`、**`pulls=38`**——即 0.2.0-rc.1 的 agent loop 真的求值了 38 次函数型 `text`)。第四项"客户端模块被下发"**没有直接抓取**:首页需要鉴权(`/` 返回 `401`),我无法取到 `window.__DSH_BOOT__`。这一项的支撑是间接但强的两条:① `dsh-client-modules` 在合成阶段对 `dsh.client` 声明做硬校验,不合格会抛 `ClientPackageCompositionError` 直接导致启动失败——宿主正常启动即说明声明通过了 0.2.0-rc.1 的校验;② 本插件用到的三个客户端契约包(`-slots` / `-renderer` / `-settings`)相对升级前真正在跑的 `0.1.7-rc.2` **逐字节未变**。**未做人工视觉确认**(没有打开设置页看)。
|
|
@@ -617,11 +617,13 @@ DNS 重绑定恰好推翻了它**:`evil.com` 解析到 `127.0.0.1` 之后,
|
|
|
617
617
|
|
|
618
618
|
⁽⁴⁾ **`0.2.1-rc.2` / `0.2.1-rc.3` 的①档**(2026-10-24,插件 1.4.2):`rc.3` 上隔离 `DSH_HOME` + 真实 `dsh web` 宿主驱动 **21 项 HTTP 断言 21/21 PASS**,桌面端活体 `pulls=5052`、p50 0.72 ms;并且**首次直接抓到了客户端模块的下发证据**——boot HTML 的预加载清单含 `dsh-instruction-memory/client.js`,该合并 bundle 返回 `200 text/javascript`(2,204,270 字节),正文含 Client 半源码与「指令记忆」文案。因此上一条 ⁽*⁾ 里"无法直接抓到 `window.__DSH_BOOT__`"的限制**已对 rc.3 解除**。`rc.2` 未单独起宿主,靠它与 `rc.3` 的逐文件字节比对(仅 `package.json` 与一行构建号不同)承接结论。证据:`dsh-memory-verification/out/compat-1016-live-latest-rc3.json`、`…-rc3b.json`。仍**未做设置页人工视觉确认**。
|
|
619
619
|
|
|
620
|
-
|
|
620
|
+
⁽⁵⁾ **`0.2.1-rc.4` / `0.2.2-alpha.2` 的①档**(2026-10-29,插件 1.4.4 → 1.4.5):隔离 `DSH_HOME` + 真实 `dsh web` 宿主,两个版本各跑 21 项 HTTP 断言;两端均 **21/21 PASS**(1.4.4 首次跑出的 2 项 FAIL 是验证脚本未展开折叠路径造成的假阴性,1.4.5 修正脚本后复验通过)。客户端 bundle 实际下发:rc.4 `2,211,701` 字节、alpha.2 `2,370,024` 字节,正文均含 Client 半源码与「指令记忆」文案。**首次做了设置页人工视觉确认**——两个宿主上「指令记忆」栏目均完整渲染。桌面端 `0.2.1-rc.3` 活体 `pulls=653`、p50 0.95 ms、`problems=[]`。仍**未跑真实 Agent 回合**(隔离宿主无模型凭证,`pulls=0`)。
|
|
621
|
+
|
|
622
|
+
此外 `host-range-test.mjs` 的固定矩阵覆盖 `0.1.6-alpha.2`、`0.1.7-rc.2`、`0.2.0-rc.1`、`0.2.0-rc.2`、`0.2.1-alpha.1`~`0.2.1-alpha.4`、`0.2.1-rc.2`~`0.2.1-rc.4` 与 `0.2.2-alpha.2`(回归守卫把最新验证过的宿主逐名钉住),并会**读取本机实际安装的宿主版本**做实时断言。
|
|
621
623
|
|
|
622
624
|
**关于 1.0.10 新增的 `ctx.inject`。** 这是新版唯一的硬依赖增量:`inject` 去掉了 `webServer`,设置页路由改为非阻塞的 `ctx.inject(['webServer'], …)` 子 fiber(原因见上)。为此逐个核验了 **cordis 全部 8 个已发布版本**(`4.0.1-rc.1` → `4.0.5-alpha.2`)——**每一个都具备 `ctx.inject`**(其中 4.0.2 / 4.0.4 另做了真实挂载执行,4.0.5-alpha.1 与 4.0.5-alpha.2 为源码符号核验),因此声明范围内不存在因它而失效的宿主版本。
|
|
623
625
|
|
|
624
|
-
**关于声明范围是否"超范围承诺"。**
|
|
626
|
+
**关于声明范围是否"超范围承诺"。** 截至 2026-10-16 已对当时全部 **33 个**已发布宿主版本核验(2026-10-05 穷举 30 个;后续版本随发布补充——`0.2.1-alpha.2` 于 2026-10-10、`0.2.1-alpha.3` / `0.2.1-alpha.4` 于 2026-10-16,npm 官方 registry):当时范围内 **18 个**版本的 API 面**全部齐备,超范围承诺 0 项**,且默认与 `includePrerelease` 两种语义在这 18 个版本上零分歧。范围外的 15 个版本(`0.0.1-rc.1` → `0.1.2-rc.1`)API 面**同样齐备**,但它们**从未真实启动验证过**,所以下限维持不动、不向外放宽——不把没验证过的东西写进声明。
|
|
625
627
|
|
|
626
628
|
**关于 `0.2.1-alpha.1`(2026-10-03 发布,1.0.16 起覆盖)。** 它是前述"未来 minor 预发布版本在默认语义下接不住"的**第一个真实发生案例**:1.0.15 的范围在宿主门禁与市场判定(均用 `includePrerelease`)下放行它,但在 npm/pnpm 默认 peer 解析下拒绝(ERESOLVE);其耦合面(9 个契约点)经最近 10 版本矩阵核验全部齐备,cordis 为 `4.0.5-alpha.1`。1.0.16 新增 `>=0.2.1-alpha.0 <0.3.0-0` 枚举段后两种语义一致放行。**该版本仅有契约层证据,未做真机启动实测。**
|
|
627
629
|
|
|
@@ -643,7 +645,7 @@ major.minor.patch 且自身带预发布标签的比较符"。这条规则是**
|
|
|
643
645
|
`0.1.8-rc.1` 这类版本 tuple 与所有比较符都不同,在 **npm 默认语义**下**永远匹配不到**——与
|
|
644
646
|
`^0.1.0` 无法匹配 `0.1.8-rc.1` 是同一个限制。正式版(`0.1.8`、`0.2.0`、`1.0.0` 等)不受影响。
|
|
645
647
|
这个限制不再只是假设:**`0.2.1-alpha.1`(2026-10-03 发布)就是第一个真实撞上它的版本**,
|
|
646
|
-
1.0.16 已通过新增 `0.2.1` 枚举段闭合;下一个未声明 tuple(如 `0.2.
|
|
648
|
+
1.0.16 已通过新增 `0.2.1` 枚举段闭合;下一个未声明 tuple(如 `0.2.3-rc.1`、`0.3.0-rc.1`)
|
|
647
649
|
仍会重演同一现象,需要发一版加一行——host-range 的实时守卫会在本机升级到该宿主时
|
|
648
650
|
直接让测试失败并给出可直接套用的修复行。
|
|
649
651
|
|
package/install.mjs
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*
|
|
18
18
|
* The profile package.json is backed up before the first modification.
|
|
19
19
|
*/
|
|
20
|
-
import { existsSync, readFileSync, writeFileSync, symlinkSync, lstatSync, unlinkSync, copyFileSync } from 'node:fs'
|
|
20
|
+
import { existsSync, readFileSync, writeFileSync, symlinkSync, lstatSync, unlinkSync, copyFileSync, mkdirSync } from 'node:fs'
|
|
21
21
|
import { homedir } from 'node:os'
|
|
22
22
|
import { dirname, join, resolve } from 'node:path'
|
|
23
23
|
import { fileURLToPath } from 'node:url'
|
|
@@ -140,6 +140,10 @@ if (!existsSync(join(PROF, 'package.json'))) {
|
|
|
140
140
|
if (existsSync(link)) {
|
|
141
141
|
console.log('junction already present: ' + link)
|
|
142
142
|
} else {
|
|
143
|
+
// A freshly initialised profile has no node_modules directory yet; symlink()
|
|
144
|
+
// does not create the parent, so this used to fail with ENOENT on exactly
|
|
145
|
+
// the "new profile" case this script exists to support.
|
|
146
|
+
mkdirSync(dirname(link), { recursive: true })
|
|
143
147
|
symlinkSync(SRC, link, 'junction')
|
|
144
148
|
console.log('junction created: ' + link)
|
|
145
149
|
}
|
package/lib/index.js
CHANGED
|
@@ -195,18 +195,43 @@ export function resolveStorePath(env = process.env, home = homedir()) {
|
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
/**
|
|
198
|
-
* Fold the user's home directory
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
198
|
+
* Fold the user's home directory for every path published in the snapshot.
|
|
199
|
+
* The settings page only needs to show WHICH file is in use; the absolute path
|
|
200
|
+
* adds nothing there but does put the account name on screen (and into any
|
|
201
|
+
* screenshot or support paste). The real paths stay untouched everywhere else
|
|
202
|
+
* — writes, backups and the watcher all use the absolute form.
|
|
203
|
+
*
|
|
204
|
+
* The token is platform-usable on purpose: Windows Explorer, CMD and PowerShell
|
|
205
|
+
* all expand `%USERPROFILE%`, while they do NOT expand `~` in an arbitrary path
|
|
206
|
+
* (only PowerShell treats it specially in some contexts). POSIX keeps `~`.
|
|
203
207
|
*/
|
|
204
|
-
export function displayPath(value, home = homedir()) {
|
|
208
|
+
export function displayPath(value, home = homedir(), platform = process.platform) {
|
|
205
209
|
if (typeof value !== 'string' || value === '') return value
|
|
206
210
|
const base = home.endsWith(sep) ? home.slice(0, -sep.length) : home
|
|
207
211
|
if (base === '') return value
|
|
208
|
-
|
|
209
|
-
if (value
|
|
212
|
+
const token = platform === 'win32' ? '%USERPROFILE%' : '~'
|
|
213
|
+
if (value === base) return token
|
|
214
|
+
if (value.startsWith(base + sep)) return token + value.slice(base.length)
|
|
215
|
+
return value
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* The inverse of {@link displayPath}, for tooling that has to compare a
|
|
220
|
+
* published path with a real filesystem path. Both tokens are accepted so a
|
|
221
|
+
* snapshot from either platform can be expanded on either platform; a path
|
|
222
|
+
* that carries no token (or is already absolute) is returned unchanged.
|
|
223
|
+
*/
|
|
224
|
+
export function expandDisplayPath(value, home = homedir(), platform = process.platform) {
|
|
225
|
+
if (typeof value !== 'string' || value === '') return value
|
|
226
|
+
const base = home.endsWith(sep) ? home.slice(0, -sep.length) : home
|
|
227
|
+
if (base === '') return value
|
|
228
|
+
const tokens = platform === 'win32' ? ['%USERPROFILE%', '~'] : ['~', '%USERPROFILE%']
|
|
229
|
+
for (const token of tokens) {
|
|
230
|
+
if (value === token) return base
|
|
231
|
+
if (value.startsWith(token + '/') || value.startsWith(token + '\\')) {
|
|
232
|
+
return base + value.slice(token.length)
|
|
233
|
+
}
|
|
234
|
+
}
|
|
210
235
|
return value
|
|
211
236
|
}
|
|
212
237
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-instruction-memory",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
4
4
|
"description": "User-only instruction memory for DSH: long-term instructions maintained in the settings UI and auto-injected into every conversation — the model has no write access. 指令记忆:只由用户在设置页维护的长期指令,自动注入此后每轮对话;模型没有任何写入口。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"node": ">=20"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@deepseek-ai/dsh-system-prompt": ">=0.1.3-alpha.2 <0.1.4 || >=0.1.4-0 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.0 <0.1.7-0 || >=0.1.7-alpha.0 <0.2.0-0 || >=0.2.1-alpha.0 <0.3.0-0 || >=0.2.2-alpha.0 <0.3.0-0 || >=0.2.0-0 <0.
|
|
54
|
+
"@deepseek-ai/dsh-system-prompt": ">=0.1.3-alpha.2 <0.1.4 || >=0.1.4-0 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.0 <0.1.7-0 || >=0.1.7-alpha.0 <0.2.0-0 || >=0.2.1-alpha.0 <0.3.0-0 || >=0.2.2-alpha.0 <0.3.0-0 || >=0.2.0-0 <0.3.0-0"
|
|
55
55
|
},
|
|
56
56
|
"publishConfig": {
|
|
57
57
|
"access": "public"
|
|
@@ -75,13 +75,10 @@
|
|
|
75
75
|
"platform": "web"
|
|
76
76
|
},
|
|
77
77
|
"engines": {
|
|
78
|
-
"dsh": ">=0.1.3-alpha.2 <0.1.4 || >=0.1.4-0 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.0 <0.1.7-0 || >=0.1.7-alpha.0 <0.2.0-0 || >=0.2.1-alpha.0 <0.3.0-0 || >=0.2.2-alpha.0 <0.3.0-0 || >=0.2.0-0 <0.
|
|
78
|
+
"dsh": ">=0.1.3-alpha.2 <0.1.4 || >=0.1.4-0 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.0 <0.1.7-0 || >=0.1.7-alpha.0 <0.2.0-0 || >=0.2.1-alpha.0 <0.3.0-0 || >=0.2.2-alpha.0 <0.3.0-0 || >=0.2.0-0 <0.3.0-0"
|
|
79
79
|
},
|
|
80
80
|
"compatibility": {
|
|
81
|
-
"dsh": ">=0.1.3-alpha.2 <0.1.4 || >=0.1.4-0 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.0 <0.1.7-0 || >=0.1.7-alpha.0 <0.2.0-0 || >=0.2.1-alpha.0 <0.3.0-0 || >=0.2.2-alpha.0 <0.3.0-0 || >=0.2.0-0 <0.
|
|
81
|
+
"dsh": ">=0.1.3-alpha.2 <0.1.4 || >=0.1.4-0 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.0 <0.1.7-0 || >=0.1.7-alpha.0 <0.2.0-0 || >=0.2.1-alpha.0 <0.3.0-0 || >=0.2.2-alpha.0 <0.3.0-0 || >=0.2.0-0 <0.3.0-0"
|
|
82
82
|
}
|
|
83
|
-
},
|
|
84
|
-
"dependencies": {
|
|
85
|
-
"dsh-instruction-memory": "^1.4.3"
|
|
86
83
|
}
|
|
87
84
|
}
|