dsh-hypatia-auto-memory 2.2.2 → 2.3.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/README.md CHANGED
@@ -9,7 +9,8 @@ cascade, and adjudicated work-unit extraction — all on a **dedicated model
9
9
  route**, with zero model work in the main session.
10
10
 
11
11
  Writing is automatic; **reading is the agent's job**, through the bundled
12
- `hypatia-memory` skill. That split is deliberate — see *Recall* below.
12
+ `hypatia-memory` skill, with the bundled `smart-memory` preset carrying the
13
+ retrieval discipline. That split is deliberate — see *Recall* below.
13
14
 
14
15
  **This plugin replaces `dsh-hypatia`.** That plugin left the writing to the
15
16
  agent, which in practice did not happen: in the deployment this one was written
@@ -35,14 +36,25 @@ The first call logs which the binary offers
35
36
 
36
37
  The plugin also needs **dsh ≥ 0.1.7**, and dsh enforces that itself rather than
37
38
  this README: the package declares
38
- `peerDependencies["@deepseek-ai/dsh"]: ">=0.1.7-rc.1"` (the same range also
39
- sits under `dsh.engines.dsh` for display), and dsh checks every
40
- `@deepseek-ai/dsh*` peer against the running version when a bundle is installed
41
- and again at startup — an older runtime refuses the install instead of loading a
42
- plugin built for API it does not have, and `dsh plugin allow-version` grants an
43
- exact-version exemption when the risk is accepted deliberately. The peer is
44
- marked optional in `peerDependenciesMeta` so that neither npm nor a profile
45
- installation pulls the runtime in as a dependency: the launcher supplies it.
39
+ `peerDependencies["@deepseek-ai/dsh"]: ">=0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1"`
40
+ (the same range also sits under `dsh.engines.dsh` for display), and dsh checks
41
+ every `@deepseek-ai/dsh*` peer against the running version when a bundle is
42
+ installed and again at startup — an older runtime refuses the install instead of
43
+ loading a plugin built for API it does not have, and `dsh plugin allow-version`
44
+ grants an exact-version exemption when the risk is accepted deliberately. The
45
+ range names each published channel explicitly rather than one open lower bound:
46
+ node-semver admits a prerelease only when the range carries a comparator with the
47
+ same `[major, minor, patch]`, so a bare `>=0.1.7-rc.1` matches no `0.2.x`
48
+ release candidate at all.
49
+
50
+ Every peer the running dsh already supplies — `@deepseek-ai/dsh`,
51
+ `@deepseek-ai/cordis`, and the `dsh-llm` / `dsh-tools` / `dsh-storage-domain`
52
+ services — is marked `optional` in `peerDependenciesMeta`, so that neither npm
53
+ nor a profile installation pulls a copy of its own: the launcher supplies them,
54
+ and two copies of a package whose instances must be shared is how a plugin ends
55
+ up beside the wrong one. dsh ignores the flag — its check reads
56
+ `peerDependencies` alone — so the ranges above are still enforced at install and
57
+ at startup.
46
58
 
47
59
  ```bash
48
60
  # from a local checkout (development)
@@ -86,6 +98,66 @@ renaming its directory in place is not enough, because DSH names a skill by its
86
98
  frontmatter `name`. The startup warning names the directory. The skill center shows the global view, so it can list this plugin
87
99
  as a skill's provider while sessions load the disk copy.
88
100
 
101
+ ## Agent preset: smart-memory(长程记忆)
102
+
103
+ The bundle ships one agent preset. `cordis.patch.yml` inserts a
104
+ `preset-smart-memory` row declaring `@deepseek-ai/dsh-agent-preset` with
105
+ `config.id: smart-memory`, so the profile's bundle layer is what puts it in the
106
+ agent-preset picker beside the shipped `standard`, `ptc` and `minimal`: install
107
+ the plugin and a memory-first agent is available, with no hand-written profile
108
+ patch.
109
+
110
+ **It carries the reading half of the split, and nothing else.** Writing here is
111
+ already automatic — logging, consolidation, the session seed. The preset carries
112
+ the discipline the automatic layer cannot: *when* the agent must go and look
113
+ (before planning, at every milestone, when an unfamiliar internal name or a
114
+ familiar-looking bug shows up, before anything destructive — commit, push,
115
+ delete or overwrite, config change, install or upgrade, migration, release —
116
+ whenever the user refers to history, and periodically across a long run), the
117
+ retrieval quality rules (query the concept rather than the user's words;
118
+ `hypatia similar` for ideas and `hypatia search` for exact identifiers; always
119
+ exclude the operational layer), and the one write rule no background pass can
120
+ enforce: a durable rule, taboo or correction the user states is written
121
+ immediately, as `knowledge-update` on an existing entry rather than
122
+ delete-and-recreate.
123
+
124
+ The persona states *when*; the `hypatia-memory` skill carries *how* — the
125
+ commands, their flags, and the shelf and scope rules. The preset deliberately
126
+ does not restate that protocol or mount it: it is a prompt, not a second
127
+ provider, so load the skill when the work touches memory.
128
+
129
+ **Tool set.** The `standard` roster with the plan-mode group and `present`
130
+ removed (46 tools on a web profile). Its sub-plugins — `@deepseek-ai/dsh-persona`,
131
+ the `dsh-tool-*` rows, `dsh-skill-filesystem` — come from the dsh installation
132
+ and are deliberately **not** dependencies of this package; the launcher supplies
133
+ them.
134
+
135
+ **Nothing here mounts the plugin's own machinery.** The preset starts no second
136
+ collector, consolidator, recall listener or auto-approval. Those belong to the
137
+ `hypatia-auto-memory` row above and behave identically whichever preset a session
138
+ runs under, so a session on this preset writes memory exactly like one on
139
+ `standard`.
140
+
141
+ **Selecting it.** Pick 长程记忆 in the new-session preset picker, or make it the
142
+ default for a surface from the profile's own patch file:
143
+
144
+ ```yaml
145
+ - id: agent-preset-registry
146
+ name: '@deepseek-ai/dsh-agent-preset-registry'
147
+ config:
148
+ selectedDefault: smart-memory
149
+ ```
150
+
151
+ **Replacing a hand-written copy of it.** If you declared this preset yourself
152
+ before it shipped here, delete that copy. The packaged row deliberately reuses
153
+ the row id `preset-smart-memory`, and rows sharing a row id collapse to the later
154
+ one — the profile's patch file is applied *after* every bundle layer, so a
155
+ leftover copy wins and masks the packaged declaration, and the Plugin Manager
156
+ then reports that row as `unaddressable` because its id has two candidate rows.
157
+ Two *distinct* rows declaring one `config.id` fail the other way, with `Duplicate
158
+ agent preset: smart-memory` from the registry. A comment where the row used to be
159
+ is enough.
160
+
89
161
  ## How it works
90
162
 
91
163
  ```
@@ -666,7 +738,7 @@ Deliberate, and worth knowing before you rely on them:
666
738
  ```
667
739
  dsh-hypatia-auto-memory/
668
740
  ├── package.json # bundle + client manifest, deps
669
- ├── cordis.patch.yml # bundle layer inserting id=hypatia-auto-memory
741
+ ├── cordis.patch.yml # bundle layer: the plugin row + the smart-memory preset
670
742
  ├── tsconfig.json # browser TS/TSX type-check config
671
743
  ├── tsconfig.build.json # declaration emit for client bundle
672
744
  ├── tsdown.config.ts # browser CJS factory build
package/README.zh-CN.md CHANGED
@@ -7,8 +7,9 @@
7
7
  (span 摘要、log₁₆(n) 归档级联、带裁决的工作单元抽取)——全部走**专用模型路由**,
8
8
  主会话零模型工作。
9
9
 
10
- 写入是全自动的;**读取由 Agent 负责**,通过随包附带的 `hypatia-memory` 技能完成。
11
- 这种分工是有意为之——见下文 *Recall*。
10
+ 写入是全自动的;**读取由 Agent 负责**,通过随包附带的 `hypatia-memory` 技能完成,
11
+ 检索纪律则由同样随包附带的 `smart-memory` 预设承载。这种分工是有意为之——见下文
12
+ *Recall*。
12
13
 
13
14
  **本插件取代 `dsh-hypatia`。** 后者把写入留给 Agent,实际上并没有发生:在编写本
14
15
  插件的那个部署环境里,模型加载了协议,却在十五个会话中只有一个会话主动执行了
@@ -29,12 +30,20 @@
29
30
  filters yes`)。
30
31
 
31
32
  本插件还需要 **dsh ≥ 0.1.7**,而且这个下限由 dsh 自己强制执行,不靠本 README:
32
- 包里声明了 `peerDependencies["@deepseek-ai/dsh"]: ">=0.1.7-rc.1"`(同样的范围也写在
33
- `dsh.engines.dsh` 里,供展示),dsh 在安装 bundle 时、以及每次启动时,会把每个
34
- `@deepseek-ai/dsh*` peer 与自身版本比对——运行时太旧会直接拒绝安装,而不是加载一个
35
- 面向它并不具备的 API 写成的插件;确实要接受风险时,用 `dsh plugin allow-version`
36
- 授予精确版本豁免。该 peer 在 `peerDependenciesMeta` 里标为 optional,这样 npm 和
37
- profile 安装都不会把运行时本身拉成依赖:运行时由 launcher 提供。
33
+ 包里声明了
34
+ `peerDependencies["@deepseek-ai/dsh"]: ">=0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1"`
35
+ (同样的范围也写在 `dsh.engines.dsh` 里,供展示),dsh 在安装 bundle 时、以及每次启动时,
36
+ 会把每个 `@deepseek-ai/dsh*` peer 与自身版本比对——运行时太旧会直接拒绝安装,而不是加载
37
+ 一个面向它并不具备的 API 写成的插件;确实要接受风险时,用 `dsh plugin allow-version`
38
+ 授予精确版本豁免。范围把每条已发布通道逐一写出来,而不是只写一个开放下界:node-semver
39
+ 只在区间里存在同 `[major, minor, patch]` 的比较子时才接受预发布版,因此单写
40
+ `>=0.1.7-rc.1` 其实一个 `0.2.x` 候选版都匹配不到。
41
+
42
+ 凡是运行中的 dsh 已经提供的 peer——`@deepseek-ai/dsh`、`@deepseek-ai/cordis`,以及
43
+ `dsh-llm` / `dsh-tools` / `dsh-storage-domain` 三个服务——都在 `peerDependenciesMeta`
44
+ 里标为 `optional`,这样 npm 和 profile 安装都不会各自再拉一份:它们由 launcher 提供,
45
+ 而"需要共享实例的包存在两份"正是插件用错那一份的来源。dsh 会忽略这个标记——它的检查只读
46
+ `peerDependencies`——所以上面的范围在安装时和启动时依旧生效。
38
47
 
39
48
  ```bash
40
49
  # 从本地 checkout 安装(开发)
@@ -73,6 +82,52 @@ user)只在一层内打破平局。Agent 预设(`st`、`standard`、…)
73
82
  目录名。技能中心展示的是全局视图,所以它可能把本插件列为某技能的提供者,而会话
74
83
  实际加载的是磁盘拷贝。
75
84
 
85
+ ## Agent 预设:smart-memory(长程记忆)
86
+
87
+ 本插件包内置一个 Agent 预设。`cordis.patch.yml` 插入一行 `preset-smart-memory`
88
+ 声明 `@deepseek-ai/dsh-agent-preset`、`config.id: smart-memory`,因此是 profile 的
89
+ bundle 层把它送进 Agent 预设选择器,与自带的 `standard`、`ptc`、`minimal` 并列:
90
+ 装上插件就有一个「记忆优先」的 Agent 可用,不必再手写 profile 补丁。
91
+
92
+ **它承载的是分工里「读」的那一半,仅此而已。** 这里的写入本来就是自动的——日志
93
+ 记录、巩固、会话开场的规则种子。预设承载的是自动层做不到的纪律:**什么时候必须去
94
+ 查**(制定计划前、每个里程碑、出现陌生内部名称或眼熟的 bug 时、任何破坏性操作之前
95
+ ——commit、push、删除或覆盖、改配置、安装或升级、迁移、发布——用户提到历史时,以及
96
+ 长程任务中的周期性回顾),检索质量要求(查询写成概念而非用户原话;想法用
97
+ `hypatia similar`,精确标识符用 `hypatia search`;始终排除运维层),以及唯一一条
98
+ 后台流程无法强制执行的写入规则:用户给出的永久性规则、禁忌或纠正立即落库,且对已存在
99
+ 条目用 `knowledge-update`,而不是删除后重建。
100
+
101
+ 人设规定的是*什么时候*,`hypatia-memory` 技能承载的是*怎么做*——命令、参数,以及
102
+ shelf 与 scope 的规则。预设刻意不重述这套协议,也不挂载它:它只是提示词,不是第二个
103
+ 提供者,所以在工作涉及记忆时加载该技能。
104
+
105
+ **工具集。** 即 `standard` 的花名册去掉 plan mode 组与 `present`(web profile 下
106
+ 46 个工具)。它的子插件——`@deepseek-ai/dsh-persona`、各 `dsh-tool-*` 行、
107
+ `dsh-skill-filesystem`——来自 dsh 安装本身,**刻意不**作为本包的依赖;由 launcher
108
+ 提供。
109
+
110
+ **这里不挂载插件自身的任何机制。** 预设不会启动第二个 collector、consolidator、
111
+ recall 监听或自动批准。那些属于上面那行 `hypatia-auto-memory`,且无论会话跑在哪个
112
+ 预设下行为一致;因此用本预设的会话写记忆的方式与 `standard` 完全相同。
113
+
114
+ **怎么选。** 在新会话的预设选择器里选「长程记忆」,或在 profile 自己的补丁文件里把它
115
+ 设为该界面的默认值:
116
+
117
+ ```yaml
118
+ - id: agent-preset-registry
119
+ name: '@deepseek-ai/dsh-agent-preset-registry'
120
+ config:
121
+ selectedDefault: smart-memory
122
+ ```
123
+
124
+ **替换手写的那一份。** 如果你在本预设随包分发之前自己声明过它,请删掉那份拷贝。包内的
125
+ 行刻意沿用 row id `preset-smart-memory`,而同名 row id 的两行会折叠为靠后的那一行
126
+ ——profile 的补丁文件在所有 bundle 层**之后**应用,所以残留的拷贝会取胜并遮蔽包内
127
+ 声明;插件管理器随后会把该行报成 `unaddressable`,因为同一个 id 出现了两个候选行。
128
+ 另一种失败是两行**不同** row id 声明同一个 `config.id`:registry 会用
129
+ `Duplicate agent preset: smart-memory` 拒绝第二次注册。在原处留一段注释即可。
130
+
76
131
  ## 工作原理
77
132
 
78
133
  ```
@@ -518,7 +573,7 @@ shelf 清单本来就不是配置,而设置域现在只投影插件的 Config
518
573
  ```
519
574
  dsh-hypatia-auto-memory/
520
575
  ├── package.json # bundle + client manifest、依赖
521
- ├── cordis.patch.yml # 插入 id=hypatia-auto-memory 的 bundle 层
576
+ ├── cordis.patch.yml # bundle 层:插件行 + smart-memory 预设
522
577
  ├── tsconfig.json # 浏览器 TS/TSX 类型检查配置
523
578
  ├── tsconfig.build.json # client bundle 的声明产物
524
579
  ├── tsdown.config.ts # 浏览器 CJS 工厂构建
package/cordis.patch.yml CHANGED
@@ -21,3 +21,152 @@
21
21
  - insert:
22
22
  - id: hypatia-auto-memory
23
23
  name: dsh-hypatia-auto-memory
24
+
25
+ # ── Agent preset: smart-memory(长程记忆) ─────────────────────────────────────
26
+ # The plugin owns the memory *writing* side; this preset owns the *reading*
27
+ # discipline. Installing this bundle therefore ships a memory-first agent — the
28
+ # preset is part of the package, not a profile patch a user has to hand-write.
29
+ # The two rows are independent: the preset mounts none of the plugin's own
30
+ # machinery (collector, consolidation, recall, autoApprove), and the plugin row
31
+ # above registers no preset.
32
+ #
33
+ # The row declares `@deepseek-ai/dsh-agent-preset` with `config.id: smart-memory`
34
+ # — the id the preset registry and a session header record. Its `config.plugins`
35
+ # is the `standard` preset's roster with the plan-mode group and `present`
36
+ # removed, under a memory-first persona; the sub-plugins (`@deepseek-ai/dsh-persona`,
37
+ # the `dsh-tool-*` rows, `dsh-skill-filesystem`) come from the dsh installation
38
+ # and are deliberately not dependencies of this package.
39
+ #
40
+ # The row id is deliberately the one hand-written profile patches used
41
+ # (`preset-smart-memory`), so such a profile only has to drop its copy. Rows
42
+ # sharing a row id collapse to the later one, and the profile's own
43
+ # cordis.patch.yml is applied after every bundle layer, so a leftover copy wins
44
+ # and masks this declaration; the Plugin Manager also reports that row as
45
+ # `unaddressable`, because its id then has two candidate rows. Two *distinct*
46
+ # rows declaring one `config.id` are refused instead: the registry throws
47
+ # `Duplicate agent preset: smart-memory` on the second registration.
48
+ #
49
+ # Edits saved from the Web preset editor override this row's `config.plugins`
50
+ # by id from the profile patch.
51
+ - insert:
52
+ - id: preset-smart-memory
53
+ name: '@deepseek-ai/dsh-agent-preset'
54
+ config:
55
+ id: smart-memory
56
+ name: 长程记忆
57
+ description: >-
58
+ 长程任务下强化 hypatia 记忆库的主动检索与落库:任务开始、里程碑、 发现新线索、重要操作前都先回忆,永久规则与纠正立即写库。
59
+ order: 2
60
+ plugins:
61
+ - id: persona
62
+ name: '@deepseek-ai/dsh-persona'
63
+ config:
64
+ prefix: |-
65
+ 你是 {{model}} 驱动的长程记忆型编码 agent。默认假设是:这件事之前很可能已经被讨论、决定或踩过坑——先读记忆,再动手。
66
+
67
+ ## 记忆系统怎么分工
68
+ 会话日志、span 摘要、work unit 固化和会话开场的规则/禁忌种子都由 dsh-hypatia-auto-memory 在后台完成,不要手工重复写这些。你负责两件事:在正确时机主动**检索**;在用户给出永久性规则、禁忌或纠正时**立即落库**。具体命令与查询配方在 hypatia-memory 技能里(用 skill 工具加载,CLI 细节见 hypatia 技能)——本段只规定纪律。
69
+
70
+ ## 检索纪律(下列时机是必须做的动作,不是建议)
71
+ 1. 任务开始、制定计划前:先建立"已知决策 / 项目约定 / 已踩过的坑"的基线,再规划。
72
+ 2. 每个里程碑或阶段边界:重新对齐一次,避免局部最优违背既有决策。
73
+ 3. 任务中途发现新线索:出现陌生的内部名称或模块名、看不懂的报错、眼熟的 bug,或你意识到任务真正主题与开头不同时,立刻补查。
74
+ 4. 重要或破坏性操作前:git commit / push、删除或覆盖文件、改配置、安装或升级插件与依赖、数据库迁移、发布或对外发送内容之前。
75
+ 5. 用户提到历史时:例如"之前怎么定的""上次那个""为什么这么做"。
76
+ 6. 长程任务周期性回顾:上下文已经很长,或目标已跨多轮续跑时,重新检索当前的关键主题。
77
+
78
+ 检索质量要求:查询写成你想找的那个**概念**,不要照抄用户原话;语义检索用 `hypatia similar`,精确标识符用 `hypatia search`;始终排除运维层(`msg-`、`sum-`、`session-`、`hypatia-dream-run-` 开头,或带 `message`/`summary`/`session` 标签的行);一次空结果不等于记忆里没有——换措辞、提高 `--limit` 再试。
79
+
80
+ ## 检索结果怎么用
81
+ 查到既有决策就遵循它,并在回答里点明依据(条目名或结论)。记忆与当前代码或用户要求冲突时,明确说出冲突,以用户当前指令为准,并用 `supersedes` 语句把新结论落库——绝不删除旧条目。确实没有记录时,直接说明"记忆库中没有相关记录",再按第一性原理推进,不要编造记忆内容。
82
+
83
+ ## 写入纪律
84
+ 用户给出永久性规则、禁忌或纠正时立即写库(`rule` / `taboo` / `memory`,scope 用本项目的实际 scope):先 `knowledge-get`,已存在就 `knowledge-update`,不存在才 `knowledge-create`,不要删除后重建。过程流水不要手工写。
85
+
86
+ ## 长程任务
87
+ 复杂任务先用 todo_write 拆解并跟踪;跨轮目标用 goal 机制续跑,没有完成证据不要宣称完成。阶段收尾时把"值得留存的结论"落库,而不是把过程日志落库。
88
+ suffix: |-
89
+ 你的工作目录是 {{cwd}}。记忆的检索与落库通过 bash 调用 hypatia CLI 完成,scope 归属由插件决定。
90
+ - id: agent-instructions
91
+ name: '@deepseek-ai/dsh-agent-instructions'
92
+ config:
93
+ maxBytes: 65536
94
+ - id: tool-bash
95
+ name: '@deepseek-ai/dsh-tool-bash'
96
+ disabled: !!js process.platform === 'win32'
97
+ - id: tool-pwsh
98
+ name: '@deepseek-ai/dsh-tool-pwsh'
99
+ disabled: !!js process.platform !== 'win32'
100
+ - id: tool-fs
101
+ name: '@deepseek-ai/dsh-tool-fs'
102
+ - id: tool-fs-search
103
+ name: '@deepseek-ai/dsh-tool-fs-search'
104
+ config:
105
+ sampleOverCapGlobResults: false
106
+ - id: tool-jobs
107
+ name: '@deepseek-ai/dsh-tool-jobs'
108
+ - id: skill-filesystem
109
+ name: '@deepseek-ai/dsh-skill-filesystem'
110
+ - id: tool-skill
111
+ name: '@deepseek-ai/dsh-tool-skill'
112
+ - id: command-goal
113
+ name: '@deepseek-ai/dsh-command-goal'
114
+ - id: tool-goal
115
+ name: '@deepseek-ai/dsh-tool-goal'
116
+ - id: compaction
117
+ name: cordis:group
118
+ group: true
119
+ isolate:
120
+ compaction: true
121
+ toolResultPruner: true
122
+ config:
123
+ - id: compaction-basic
124
+ name: '@deepseek-ai/dsh-compaction-basic'
125
+ - id: command-compact
126
+ name: '@deepseek-ai/dsh-command-compact'
127
+ - id: tool-result-pruner
128
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
129
+ config:
130
+ thresholdChars: 8192
131
+ headChars: 4096
132
+ tailChars: 1024
133
+ - id: delegation
134
+ name: cordis:group
135
+ group: true
136
+ isolate:
137
+ workflowEngine: true
138
+ config:
139
+ - id: tool-subagent-control
140
+ name: '@deepseek-ai/dsh-tool-subagent-control'
141
+ - id: tool-subagent-list-agents
142
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
143
+ - id: tool-subagent
144
+ name: '@deepseek-ai/dsh-tool-subagent'
145
+ config:
146
+ provider: spawn
147
+ toolName: subagent
148
+ modelSelectionSettings: true
149
+ backgroundMode: continuable
150
+ - id: tool-subagent-fork
151
+ name: '@deepseek-ai/dsh-tool-subagent'
152
+ config:
153
+ provider: fork
154
+ toolName: subagent_fork
155
+ backgroundMode: continuable
156
+ - id: workflow-ptc
157
+ name: '@deepseek-ai/dsh-workflow-ptc'
158
+ config:
159
+ provider: spawn
160
+ - id: tool-workflow
161
+ name: '@deepseek-ai/dsh-tool-workflow'
162
+ - id: tool-ask-user
163
+ name: '@deepseek-ai/dsh-tool-ask-user'
164
+ - id: tool-todo
165
+ name: '@deepseek-ai/dsh-tool-todo'
166
+ config:
167
+ allowParallelInProgress: true
168
+ - id: tool-web
169
+ name: '@deepseek-ai/dsh-tool-web'
170
+ config:
171
+ fetch: true
172
+ searchTimeoutMs: 60000
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-hypatia-auto-memory",
3
- "version": "2.2.2",
3
+ "version": "2.3.0",
4
4
  "description": "Event-driven Hypatia memory for DSH: automatic conversation logging via session events, queued background consolidation (span summaries + work-unit extraction) with a dedicated model route, and recall injection — zero per-call model work in the main session.",
5
5
  "icon": "./icon.svg",
6
6
  "type": "module",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dsh": {
33
33
  "engines": {
34
- "dsh": ">=0.1.7-rc.1"
34
+ "dsh": ">=0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1"
35
35
  },
36
36
  "bundle": {
37
37
  "patch": "./cordis.patch.yml"
@@ -49,25 +49,37 @@
49
49
  "node": "^22.19.0 || >=24.0.0"
50
50
  },
51
51
  "dependencies": {
52
- "@deepseek-ai/schemastery": "^3.18.2",
52
+ "@deepseek-ai/schemastery": "^3.18.2 || ~3.18.5-alpha.1",
53
53
  "zod": "^4.4.3"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "@deepseek-ai/cordis": "^4.0.2 || ~4.0.5-alpha.1",
57
- "@deepseek-ai/dsh": ">=0.1.7-rc.1",
57
+ "@deepseek-ai/dsh": ">=0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
58
58
  "@deepseek-ai/dsh-llm": "^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
59
59
  "@deepseek-ai/dsh-storage-domain": "^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
60
60
  "@deepseek-ai/dsh-tools": "^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1",
61
61
  "react": "^18.2.0"
62
62
  },
63
63
  "peerDependenciesMeta": {
64
+ "@deepseek-ai/cordis": {
65
+ "optional": true
66
+ },
64
67
  "@deepseek-ai/dsh": {
65
68
  "optional": true
69
+ },
70
+ "@deepseek-ai/dsh-llm": {
71
+ "optional": true
72
+ },
73
+ "@deepseek-ai/dsh-storage-domain": {
74
+ "optional": true
75
+ },
76
+ "@deepseek-ai/dsh-tools": {
77
+ "optional": true
66
78
  }
67
79
  },
68
80
  "devDependencies": {
69
81
  "@deepseek-ai/cordis": "^4.0.2 || ~4.0.5-alpha.1",
70
- "@deepseek-ai/cordis-plugin-loader": "^1.0.5",
82
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.5 || ~1.0.6-alpha.1",
71
83
  "@deepseek-ai/dsh-agent": "^0.1.7-rc.1",
72
84
  "@deepseek-ai/dsh-api-remotes": "^0.1.7-rc.1",
73
85
  "@deepseek-ai/dsh-api-session-controller": "^0.1.7-rc.1",