@dsh-cc/memory 0.8.1-rc.1 → 0.8.2-rc.1
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.i18n.yaml +2 -2
- package/README.md +2 -2
- package/README.zh.md +3 -3
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/recall.js +1 -1
- package/lib/recall.js.map +1 -1
- package/lib/title-sidecar.d.ts +52 -0
- package/lib/title-sidecar.d.ts.map +1 -0
- package/lib/title-sidecar.js +107 -0
- package/lib/title-sidecar.js.map +1 -0
- package/package.json +14 -14
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm check:readme --write
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 76fec709fd73426c01eaea9be23933d5f7f92ef6
|
|
6
|
+
README.zh.md: bb944d63de2139b35a6f2d4f652db712e2af021f
|
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ providerless host mounts memory read-only).
|
|
|
51
51
|
`{ mode: 'workspace-write', workspaceRoot: <memory dir> }` — confinement is
|
|
52
52
|
kept, the writable root IS the memory directory. Validation (kebab-case
|
|
53
53
|
slugs, the four types, size caps) shares the `writeback` boundary with
|
|
54
|
-
|
|
54
|
+
`@dsh-cc/memory-consolidation`'s fork write-back. Registration is opportunistic:
|
|
55
55
|
hosts without a tools service skip it and stay read-only.
|
|
56
56
|
- **Dynamic recall** — an `agent/pre-step` listener asks a small-model side
|
|
57
57
|
query (a forked subagent via `ctx.subagents`) which topic files are relevant
|
|
@@ -128,7 +128,7 @@ entrypoint truncation caps and the five-file recall ceiling.
|
|
|
128
128
|
`MEMORY_SAVE_SCOPES` — the model-facing save channel.
|
|
129
129
|
- `validateMemoryWrites(input)` / `writeMemoryFiles(fs, dir, writes)` /
|
|
130
130
|
`memoryWritePolicy(dir)` / `MEMORY_WRITES_SCHEMA` — the host-side write-back
|
|
131
|
-
shared with
|
|
131
|
+
shared with `@dsh-cc/memory-consolidation`.
|
|
132
132
|
- `readPressure(fs, dir)` / `armPressure(fs, dir, now, policy?)` /
|
|
133
133
|
`markPressureForced(...)` / `clearPressure(...)` / `PRESSURE_FILE` — the
|
|
134
134
|
consolidation-pressure marker (`.consolidation-needed`) that queues a forced
|
package/README.zh.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
面向 DeepSeek Harness 的 Claude Code 风格文件记忆:可持久化的 memdir 格式、
|
|
6
6
|
`memory` 系统提示词 section、`memory_save` 写入通道,以及通过 fork 的
|
|
7
|
-
side-query
|
|
7
|
+
side-query 动态召回。所有文件访问都走可选的 `ctx.fs` 缝,因此远程或沙箱
|
|
8
8
|
后端可无改动使用(无 provider 的宿主将记忆挂载为只读)。
|
|
9
9
|
|
|
10
10
|
## 本包提供的能力
|
|
@@ -36,7 +36,7 @@ side-query 进行动态召回。所有文件访问都走可选的 `ctx.fs` 缝
|
|
|
36
36
|
目录,由 host 侧生成 frontmatter、upsert `MEMORY.md` 指针行,并经 `ctx.fs` 缝以
|
|
37
37
|
`{ mode: 'workspace-write', workspaceRoot: <记忆目录> }` 的 per-call 策略
|
|
38
38
|
落盘——围栏保留,可写根恰好是记忆目录。校验(kebab-case slug、四种类型、大小
|
|
39
|
-
上限)与
|
|
39
|
+
上限)与 `@dsh-cc/memory-consolidation` 的 fork 写回共用同一 `writeback` 边界。
|
|
40
40
|
注册是机会式的:宿主无 tools 服务时跳过并保持只读。
|
|
41
41
|
- **动态召回** —— `agent/pre-step` 监听器用小型模型 side-query(通过
|
|
42
42
|
`ctx.subagents` fork)判断哪些主题文件与当前轮相关,再通过 `agent.inject()`
|
|
@@ -101,7 +101,7 @@ await ctx.plugin(memory, { memoryHome: '/tmp/mem' })
|
|
|
101
101
|
`MEMORY_SAVE_SCOPES` —— 面向模型的保存通道。
|
|
102
102
|
- `validateMemoryWrites(input)` / `writeMemoryFiles(fs, dir, writes)` /
|
|
103
103
|
`memoryWritePolicy(dir)` / `MEMORY_WRITES_SCHEMA` —— 与
|
|
104
|
-
|
|
104
|
+
`@dsh-cc/memory-consolidation` 共用的 host 侧写回。
|
|
105
105
|
- `readPressure(fs, dir)` / `armPressure(fs, dir, now, policy?)` /
|
|
106
106
|
`markPressureForced(...)` / `clearPressure(...)` / `PRESSURE_FILE` ——
|
|
107
107
|
整合压力标记(`.consolidation-needed`):索引门产生压力时排队一次强制 dream。
|
package/lib/index.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export { scanMemoryDirectory } from './scan.ts';
|
|
|
21
21
|
export type { MemoryDirectoryState } from './scan.ts';
|
|
22
22
|
export { resolveMemoryHome, resolveProjectMemoryRoot, resolveWorkspaceMemoryDir, canonicalMemoryRoot, projectSlug, cwdOf, gitExecSync, PROJECT_MEMORY_DIR, PROJECTS_DIR, GIT_PROBE_TIMEOUT_MS, } from './paths.ts';
|
|
23
23
|
export type { MemoryGitExec, MemoryGitExecResult } from './paths.ts';
|
|
24
|
+
export { titleSidecarPath, writeTitleSidecar, readTitleSidecar, TITLE_SIDECAR_MAX_CODE_POINTS, } from './title-sidecar.ts';
|
|
25
|
+
export type { TitleSidecarOptions } from './title-sidecar.ts';
|
|
24
26
|
export { MemorySection, renderMemorySection, renderTeamMemorySection, renderLayers, saveGuidance, MEMORY_SECTION_NAME, MEMORY_SECTION_ORDER } from './section.ts';
|
|
25
27
|
export type { MemoryLayer } from './section.ts';
|
|
26
28
|
export { MemoryRecall, SubagentMemorySelector, MAX_RECALL_MEMORIES, RECALL_FILES_SCHEMA } from './recall.ts';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAQxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACtH,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC1D,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EACX,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,GACrB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACjK,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC5G,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAC/J,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3G,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAC5F,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,WAAW,CAAA;AAC5B,2EAA2E;AAC3E,eAAO,MAAM,MAAM,UAAmB,CAAA;AAEtC,mCAAmC;AACnC,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAQ3B,CAAA;AAkBF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CAiC7D"}
|
package/lib/index.js
CHANGED
|
@@ -20,6 +20,7 @@ export { truncateEntrypointContent, ENTRYPOINT_NAME, MAX_ENTRYPOINT_LINES, MAX_E
|
|
|
20
20
|
export { MEMORY_TYPES, parseMemoryType } from "./types.js";
|
|
21
21
|
export { scanMemoryDirectory } from "./scan.js";
|
|
22
22
|
export { resolveMemoryHome, resolveProjectMemoryRoot, resolveWorkspaceMemoryDir, canonicalMemoryRoot, projectSlug, cwdOf, gitExecSync, PROJECT_MEMORY_DIR, PROJECTS_DIR, GIT_PROBE_TIMEOUT_MS, } from "./paths.js";
|
|
23
|
+
export { titleSidecarPath, writeTitleSidecar, readTitleSidecar, TITLE_SIDECAR_MAX_CODE_POINTS, } from "./title-sidecar.js";
|
|
23
24
|
export { MemorySection, renderMemorySection, renderTeamMemorySection, renderLayers, saveGuidance, MEMORY_SECTION_NAME, MEMORY_SECTION_ORDER } from "./section.js";
|
|
24
25
|
export { MemoryRecall, SubagentMemorySelector, MAX_RECALL_MEMORIES, RECALL_FILES_SCHEMA } from "./recall.js";
|
|
25
26
|
export { TeamMemoryError, sanitizePathKey, resolveTeamMemoryRoot, validateTeamMemKey, readTeamMemFile, TEAM_MEMORY_DIR, TEAM_ENTRYPOINT_NAME } from "./team.js";
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEtH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EACX,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,GACrB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEjK,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAE5G,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAC/J,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,aAAa,GACd,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE3G,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAG5F,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAA;AAC5B,2EAA2E;AAC3E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,cAAc,CAAC,CAAA;AAmCtC,MAAM,CAAC,MAAM,MAAM,GAAc,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC9C,kBAAkB,EAAE,CAAC,CAAC,GAAG,EAAE;IAC3B,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACxC,CAAC,CAAA;AAEF;;;;;;;;GAQG;AACH,SAAS,yBAAyB,CAAC,CAAU,EAAE,MAAc;IAC3D,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,kBAAkB,CAAA;IAC7E,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IACxD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAA4B,CAAA;IAChE,OAAO,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAAiB,EAAE;IACrD,4EAA4E;IAC5E,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACjD,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE;YAC3C,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,IAAI;SACzC,CAAC,CAAA;QACF,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC1C,kEAAkE;QAClE,oEAAoE;QACpE,uEAAuE;QACvE,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC1C,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QACjC,IAAI,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE;YAC1B,YAAY,EAAE,MAAM,CAAC,kBAAkB,IAAI,MAAM;YACjD,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,sBAAsB,CACtD,CAAC,EACD,KAAK,EACL,MAAM,CAAC,kBAAkB,IAAI,MAAM,EACnC,yBAAyB,CAAC,CAAC,EAAE,MAAM,CAAC,CACrC;SACF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/recall.js
CHANGED
|
@@ -166,7 +166,7 @@ function isFilesPayload(value) {
|
|
|
166
166
|
* self-feeding phantom loop. KNOW YOUR INJECTOR: any new injected message
|
|
167
167
|
* source kind must be added here.
|
|
168
168
|
*/
|
|
169
|
-
const INJECTED_SOURCE_DENYLIST = ['memory', 'cc-subagent-children', 'cc-workflow-completion'];
|
|
169
|
+
const INJECTED_SOURCE_DENYLIST = ['memory', 'cc-subagent-children', 'cc-workflow-completion', 'advisor'];
|
|
170
170
|
/** The per-agent recall coordinator. Holds the shown-path set per agent. */
|
|
171
171
|
export class MemoryRecall {
|
|
172
172
|
ctx;
|
package/lib/recall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../src/recall.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../src/recall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session-title sidecar: a one-line UTF-8 `title.txt` colocated with each
|
|
3
|
+
* persisted session at `<dsh home>/sessions/--<project slug>--/<sessionId>/`.
|
|
4
|
+
* The TUI /resume listing reads it instead of paying a full zstd decode + JSONL
|
|
5
|
+
* scan per session through the host title snapshot path.
|
|
6
|
+
*
|
|
7
|
+
* All functions are best-effort: every I/O error is swallowed, so a sidecar
|
|
8
|
+
* failure never throws across a title generation, a rename, or the picker.
|
|
9
|
+
* @module @dsh-cc/memory
|
|
10
|
+
*/
|
|
11
|
+
/** Maximum sidecar title length in Unicode code points. */
|
|
12
|
+
export declare const TITLE_SIDECAR_MAX_CODE_POINTS = 200;
|
|
13
|
+
/** Injectable filesystem root for tests; defaults to the harness sessions dir. */
|
|
14
|
+
export interface TitleSidecarOptions {
|
|
15
|
+
/** Override for `<dsh home>/sessions` (test seam only). */
|
|
16
|
+
sessionsRoot?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Derive the sidecar path for one session. The harness groups persisted
|
|
20
|
+
* sessions under `--<slug>--` (session-persistence-jsonl `projectKey` wraps
|
|
21
|
+
* the same slug encoder in `--` on both sides); the match must be byte-exact
|
|
22
|
+
* or the sidecar is silently never found.
|
|
23
|
+
* @param sessionCwd - the session's working directory.
|
|
24
|
+
* @param sessionId - the session id.
|
|
25
|
+
* @param options - optional sessions-root override (tests).
|
|
26
|
+
* @returns the absolute `title.txt` path.
|
|
27
|
+
*/
|
|
28
|
+
export declare function titleSidecarPath(sessionCwd: string, sessionId: string, options?: TitleSidecarOptions): string;
|
|
29
|
+
/**
|
|
30
|
+
* Write the sidecar (truncated to ≤200 code points, never splitting a
|
|
31
|
+
* surrogate pair), via temp-file+rename in the same directory. Best-effort:
|
|
32
|
+
* all errors, including temp cleanup, are swallowed.
|
|
33
|
+
* @param sessionCwd - the session's working directory.
|
|
34
|
+
* @param sessionId - the session id.
|
|
35
|
+
* @param title - the title to persist.
|
|
36
|
+
* @param options - optional sessions-root override (tests).
|
|
37
|
+
*/
|
|
38
|
+
export declare function writeTitleSidecar(sessionCwd: string, sessionId: string, title: string, options?: TitleSidecarOptions): void;
|
|
39
|
+
/**
|
|
40
|
+
* Read the sidecar when it exists and is fresh: its mtime must not be older
|
|
41
|
+
* than the session log's (v4-first resolver: `session.v4.jsonl.zstd`,
|
|
42
|
+
* falling back to v3, then `session.jsonl.zstd`); a missing session log
|
|
43
|
+
* counts as fresh. Missing,
|
|
44
|
+
* empty, unreadable, or stale sidecars return `undefined` so the caller
|
|
45
|
+
* falls back to the host title snapshot path.
|
|
46
|
+
* @param sessionCwd - the session's working directory.
|
|
47
|
+
* @param sessionId - the session id.
|
|
48
|
+
* @param options - optional sessions-root override (tests).
|
|
49
|
+
* @returns the trimmed title, or `undefined`.
|
|
50
|
+
*/
|
|
51
|
+
export declare function readTitleSidecar(sessionCwd: string, sessionId: string, options?: TitleSidecarOptions): string | undefined;
|
|
52
|
+
//# sourceMappingURL=title-sidecar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title-sidecar.d.ts","sourceRoot":"","sources":["../src/title-sidecar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,2DAA2D;AAC3D,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAEhD,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAOD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAE7G;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAiB3H;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CA0BzH"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session-title sidecar: a one-line UTF-8 `title.txt` colocated with each
|
|
3
|
+
* persisted session at `<dsh home>/sessions/--<project slug>--/<sessionId>/`.
|
|
4
|
+
* The TUI /resume listing reads it instead of paying a full zstd decode + JSONL
|
|
5
|
+
* scan per session through the host title snapshot path.
|
|
6
|
+
*
|
|
7
|
+
* All functions are best-effort: every I/O error is swallowed, so a sidecar
|
|
8
|
+
* failure never throws across a title generation, a rename, or the picker.
|
|
9
|
+
* @module @dsh-cc/memory
|
|
10
|
+
*/
|
|
11
|
+
import { mkdirSync, readFileSync, renameSync, statSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
12
|
+
import { dirname, join } from 'node:path';
|
|
13
|
+
import { defaultDshHome } from '@deepseek-ai/dsh-home-paths';
|
|
14
|
+
import { projectSlug } from "./paths.js";
|
|
15
|
+
/** Maximum sidecar title length in Unicode code points. */
|
|
16
|
+
export const TITLE_SIDECAR_MAX_CODE_POINTS = 200;
|
|
17
|
+
function sessionsDir(sessionCwd, options) {
|
|
18
|
+
const sessionsRoot = options?.sessionsRoot ?? join(defaultDshHome(), 'sessions');
|
|
19
|
+
return join(sessionsRoot, `--${projectSlug(sessionCwd)}--`);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Derive the sidecar path for one session. The harness groups persisted
|
|
23
|
+
* sessions under `--<slug>--` (session-persistence-jsonl `projectKey` wraps
|
|
24
|
+
* the same slug encoder in `--` on both sides); the match must be byte-exact
|
|
25
|
+
* or the sidecar is silently never found.
|
|
26
|
+
* @param sessionCwd - the session's working directory.
|
|
27
|
+
* @param sessionId - the session id.
|
|
28
|
+
* @param options - optional sessions-root override (tests).
|
|
29
|
+
* @returns the absolute `title.txt` path.
|
|
30
|
+
*/
|
|
31
|
+
export function titleSidecarPath(sessionCwd, sessionId, options) {
|
|
32
|
+
return join(sessionsDir(sessionCwd, options), sessionId, 'title.txt');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Write the sidecar (truncated to ≤200 code points, never splitting a
|
|
36
|
+
* surrogate pair), via temp-file+rename in the same directory. Best-effort:
|
|
37
|
+
* all errors, including temp cleanup, are swallowed.
|
|
38
|
+
* @param sessionCwd - the session's working directory.
|
|
39
|
+
* @param sessionId - the session id.
|
|
40
|
+
* @param title - the title to persist.
|
|
41
|
+
* @param options - optional sessions-root override (tests).
|
|
42
|
+
*/
|
|
43
|
+
export function writeTitleSidecar(sessionCwd, sessionId, title, options) {
|
|
44
|
+
const target = titleSidecarPath(sessionCwd, sessionId, options);
|
|
45
|
+
const temp = target + `.${process.pid}.${Date.now()}.tmp`;
|
|
46
|
+
try {
|
|
47
|
+
// ponytail: Array.from walks code points (surrogate-safe); a grapheme-aware
|
|
48
|
+
// split would be overkill for a picker label.
|
|
49
|
+
const truncated = Array.from(title).slice(0, TITLE_SIDECAR_MAX_CODE_POINTS).join('');
|
|
50
|
+
mkdirSync(dirname(target), { recursive: true });
|
|
51
|
+
writeFileSync(temp, truncated, 'utf8');
|
|
52
|
+
renameSync(temp, target);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
try {
|
|
56
|
+
unlinkSync(temp);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// temp never landed or was already renamed — nothing to clean.
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Read the sidecar when it exists and is fresh: its mtime must not be older
|
|
65
|
+
* than the session log's (v4-first resolver: `session.v4.jsonl.zstd`,
|
|
66
|
+
* falling back to v3, then `session.jsonl.zstd`); a missing session log
|
|
67
|
+
* counts as fresh. Missing,
|
|
68
|
+
* empty, unreadable, or stale sidecars return `undefined` so the caller
|
|
69
|
+
* falls back to the host title snapshot path.
|
|
70
|
+
* @param sessionCwd - the session's working directory.
|
|
71
|
+
* @param sessionId - the session id.
|
|
72
|
+
* @param options - optional sessions-root override (tests).
|
|
73
|
+
* @returns the trimmed title, or `undefined`.
|
|
74
|
+
*/
|
|
75
|
+
export function readTitleSidecar(sessionCwd, sessionId, options) {
|
|
76
|
+
try {
|
|
77
|
+
const target = titleSidecarPath(sessionCwd, sessionId, options);
|
|
78
|
+
const stat = statSync(target);
|
|
79
|
+
if (stat.size === 0)
|
|
80
|
+
return undefined;
|
|
81
|
+
const dir = dirname(target);
|
|
82
|
+
// v4-first resolver: compare against the newest stream spelling present
|
|
83
|
+
// (v4, then v3, then legacy); none present ⇒ the sidecar counts as fresh.
|
|
84
|
+
const streamNames = ['session.v4.jsonl.zstd', 'session.v3.jsonl.zstd', 'session.jsonl.zstd'];
|
|
85
|
+
for (const streamName of streamNames) {
|
|
86
|
+
try {
|
|
87
|
+
const stream = statSync(join(dir, streamName)).mtimeMs;
|
|
88
|
+
if (stat.mtimeMs < stream)
|
|
89
|
+
return undefined;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Try the next-older spelling.
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const title = readFileSync(target, 'utf8').trim();
|
|
97
|
+
// Invalid UTF-8 decodes to U+FFFD; treat that as corruption so the caller
|
|
98
|
+
// falls back to the host snapshot path.
|
|
99
|
+
if (title.length === 0 || title.includes('\uFFFD'))
|
|
100
|
+
return undefined;
|
|
101
|
+
return title;
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=title-sidecar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title-sidecar.js","sourceRoot":"","sources":["../src/title-sidecar.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dsh-cc/memory",
|
|
3
3
|
"description": "Claude Code-style file-based memory: memdir format, system-prompt section, and dynamic recall",
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.2-rc.1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/dsh-cc/dsh-cc.git",
|
|
@@ -29,20 +29,20 @@
|
|
|
29
29
|
],
|
|
30
30
|
"license": "Apache-2.0",
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@deepseek-ai/dsh-agent": ">=0.1.
|
|
33
|
-
"@deepseek-ai/dsh-fs": ">=0.1.
|
|
34
|
-
"@deepseek-ai/dsh-home-paths": ">=0.1.
|
|
35
|
-
"@deepseek-ai/dsh-invariants": ">=0.1.
|
|
36
|
-
"@deepseek-ai/dsh-llm": ">=0.1.
|
|
37
|
-
"@deepseek-ai/dsh-session": ">=0.1.
|
|
38
|
-
"@deepseek-ai/dsh-subagent": ">=0.1.
|
|
39
|
-
"@deepseek-ai/dsh-system-prompt": ">=0.1.
|
|
40
|
-
"@deepseek-ai/cordis": ">=0.1.
|
|
32
|
+
"@deepseek-ai/dsh-agent": ">=0.1.7-rc.2",
|
|
33
|
+
"@deepseek-ai/dsh-fs": ">=0.1.7-rc.2",
|
|
34
|
+
"@deepseek-ai/dsh-home-paths": ">=0.1.7-rc.2",
|
|
35
|
+
"@deepseek-ai/dsh-invariants": ">=0.1.7-rc.2",
|
|
36
|
+
"@deepseek-ai/dsh-llm": ">=0.1.7-rc.2",
|
|
37
|
+
"@deepseek-ai/dsh-session": ">=0.1.7-rc.2",
|
|
38
|
+
"@deepseek-ai/dsh-subagent": ">=0.1.7-rc.2",
|
|
39
|
+
"@deepseek-ai/dsh-system-prompt": ">=0.1.7-rc.2",
|
|
40
|
+
"@deepseek-ai/cordis": ">=0.1.7-rc.2",
|
|
41
41
|
"@deepseek-ai/schemastery": "^3.18.1"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@dsh-cc/
|
|
45
|
-
"@dsh-cc/
|
|
44
|
+
"@dsh-cc/model-aliases": "^0.8.2-rc.1",
|
|
45
|
+
"@dsh-cc/tools": "^0.8.2-rc.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@deepseek-ai/cordis": "link:../../../../deepseek-harness/vendor/cordis",
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"@deepseek-ai/dsh-subagent-spawn-in-process": "link:../../../../deepseek-harness/packages/subagent/subagent-spawn-in-process",
|
|
64
64
|
"@deepseek-ai/dsh-subagent-fork-in-process": "link:../../../../deepseek-harness/packages/subagent/subagent-fork-in-process",
|
|
65
65
|
"@dsh-cc/agent-loop-mock": "^0.1.0",
|
|
66
|
-
"@dsh-cc/
|
|
67
|
-
"@dsh-cc/
|
|
66
|
+
"@dsh-cc/tools": "^0.8.2-rc.1",
|
|
67
|
+
"@dsh-cc/model-aliases": "^0.8.2-rc.1"
|
|
68
68
|
},
|
|
69
69
|
"publishConfig": {
|
|
70
70
|
"access": "public"
|