@dsh-cc/memory 0.8.0-rc.3 → 0.8.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 CHANGED
@@ -3,4 +3,4 @@
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm check:readme --write
5
5
  README.md: 5e85c29e8a230de04be8abbb456126b6e5a440a5
6
- README.zh.md: 1b99b6b4a9b97a61433d389430a4af8c08b2ee68
6
+ README.zh.md: 22375756117160c2a5a3ecee58d0612f5bf6a173
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 进行动态召回。所有文件访问都走可选的 `ctx.fs` 缝,因此远程或沙箱
7
+ side-query 动态召回。所有文件访问都走可选的 `ctx.fs` 缝,因此远程或沙箱
8
8
  后端可无改动使用(无 provider 的宿主将记忆挂载为只读)。
9
9
 
10
10
  ## 本包提供的能力
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';
@@ -32,6 +34,8 @@ export { MEMORY_WRITES_SCHEMA, WRITEBACK_MAX_FILE_BYTES, WRITEBACK_MAX_FILES, WR
32
34
  export type { MemoryWrite, MemoryWritePolicy } from './writeback.ts';
33
35
  export { PRESSURE_FILE, readPressure, armPressure, markPressureForced, clearPressure } from './pressure.ts';
34
36
  export type { PressureState } from './pressure.ts';
37
+ export { startWithFilterResilience, resetRestrictWarnState } from './restrict-resilience.ts';
38
+ export type { ResilienceLogger } from './restrict-resilience.ts';
35
39
  export declare const name = "memory";
36
40
  /** Core services required for section registration and event listeners. */
37
41
  export declare const inject: string[];
@@ -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":"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"}
package/lib/index.js CHANGED
@@ -20,12 +20,14 @@ 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";
26
27
  export { MEMORY_SAVE_TOOL, MEMORY_SAVE_SCOPES, MemorySaveError, pointerLine, registerMemorySaveTool, renderTopicFile, upsertPointer, } from "./save.js";
27
28
  export { MEMORY_WRITES_SCHEMA, WRITEBACK_MAX_FILE_BYTES, WRITEBACK_MAX_FILES, WRITEBACK_MAX_TOTAL_BYTES, memoryWritePolicy, validateMemoryWrites, writeMemoryFiles, } from "./writeback.js";
28
29
  export { PRESSURE_FILE, readPressure, armPressure, markPressureForced, clearPressure } from "./pressure.js";
30
+ export { startWithFilterResilience, resetRestrictWarnState } from "./restrict-resilience.js";
29
31
  export const name = 'memory';
30
32
  /** Core services required for section registration and event listeners. */
31
33
  export const inject = ['systemPrompt'];
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../src/recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAmB,MAAM,wBAAwB,CAAA;AAMpE,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,gBAAgB;QACxB,MAAM,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAA;SAAE,CAAA;KAC3B;CACF;AAMD,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE;IAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAwB,CAAA;AAEnF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAOvD,CAAA;AAeD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACrB;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IASzD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAXhC;;;;;;OAMG;gBAEgB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,KAAK,EACb,YAAY,SAAS,EACrB,YAAY,CAAC,EAAE,OAAO,YAAA;IAGnC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,eAAe,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAkE5I;AAiCD,4EAA4E;AAC5E,qBAAa,YAAY;IAiBrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjBvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqF;IAC3G,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgD;IAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAElD;;;;;;;;OAQG;gBAEgB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EAC7B,OAAO,GAAE;QACP,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,cAAc,CAAA;KAC3D;IAsBR,2DAA2D;IAC3D,OAAO,IAAI,IAAI;YAKD,SAAS;YA4BT,WAAW;CAoF1B"}
1
+ {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../src/recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAmB,MAAM,wBAAwB,CAAA;AAOpE,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,gBAAgB;QACxB,MAAM,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAA;SAAE,CAAA;KAC3B;CACF;AAMD,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE;IAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAwB,CAAA;AAEnF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAOvD,CAAA;AAeD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACrB;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IASzD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAXhC;;;;;;OAMG;gBAEgB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,KAAK,EACb,YAAY,SAAS,EACrB,YAAY,CAAC,EAAE,OAAO,YAAA;IAGnC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,eAAe,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA8E5I;AAiCD,4EAA4E;AAC5E,qBAAa,YAAY;IAiBrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjBvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqF;IAC3G,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgD;IAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAElD;;;;;;;;OAQG;gBAEgB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EAC7B,OAAO,GAAE;QACP,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,cAAc,CAAA;KAC3D;IAsBR,2DAA2D;IAC3D,OAAO,IAAI,IAAI;YAKD,SAAS;YA4BT,WAAW;CAoF1B"}
package/lib/recall.js CHANGED
@@ -9,6 +9,7 @@
9
9
  * @module @dsh-cc/memory/recall
10
10
  */
11
11
  import { createUserMessage } from '@deepseek-ai/dsh-llm';
12
+ import { startWithFilterResilience } from "./restrict-resilience.js";
12
13
  import { scanMemoryDirectory } from "./scan.js";
13
14
  import { cwdOf, resolveWorkspaceMemoryDir } from "./paths.js";
14
15
  // The canonical `tools/post-execute` waterfall signature comes from
@@ -92,7 +93,7 @@ export class SubagentMemorySelector {
92
93
  : '';
93
94
  let run;
94
95
  try {
95
- run = await subagents.start(this.providerName, {
96
+ run = await startWithFilterResilience(subagents, this.providerName, {
96
97
  label: 'memory-recall',
97
98
  signal,
98
99
  prompt: [{ type: 'text', text: `${system}\n\n<user_query>\n${query}\n</user_query>\n\nAvailable memories:\n${manifest}${toolsSection}` }],
@@ -103,6 +104,16 @@ export class SubagentMemorySelector {
103
104
  // recall to depth-zero agents, so this child never needs to delegate.
104
105
  maxDepth: 1,
105
106
  ...(this.agentOptions !== undefined ? { agentOptions: this.agentOptions } : {}),
107
+ },
108
+ // Same logger fallback shape as warnOnce above.
109
+ {
110
+ warn: (message) => {
111
+ const logger = this.ctx.logger;
112
+ if (typeof logger?.warn === 'function')
113
+ logger.warn(message);
114
+ else
115
+ console.warn(message);
116
+ },
106
117
  });
107
118
  }
108
119
  catch {
@@ -155,7 +166,7 @@ function isFilesPayload(value) {
155
166
  * self-feeding phantom loop. KNOW YOUR INJECTOR: any new injected message
156
167
  * source kind must be added here.
157
168
  */
158
- const INJECTED_SOURCE_DENYLIST = ['memory', 'cc-subagent-children', 'cc-workflow-completion'];
169
+ const INJECTED_SOURCE_DENYLIST = ['memory', 'cc-subagent-children', 'cc-workflow-completion', 'advisor'];
159
170
  /** The per-agent recall coordinator. Holds the shown-path set per agent. */
160
171
  export class MemoryRecall {
161
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,40 @@
1
+ /**
2
+ * Fail-soft resilience for `subagents.start` toolFilter drift: the host's
3
+ * `tools.restrict()` throws on any allow-listed name that is not a global
4
+ * (inherited) tool. Some names — notably the driver-injected child-scoped
5
+ * `structured_output` — are visible to the child but NOT restrictable, so a
6
+ * stale filter naming them dies at dispatch. This helper degrades such a
7
+ * throw to a warn-once plus a single retry with the rejected names removed
8
+ * (§4.2 of docs/plans/2026-09-23-auto-dream-dispatch-fix.md). Any other
9
+ * error, or a failing retry, propagates unchanged.
10
+ * @module @dsh-cc/memory/restrict-resilience
11
+ */
12
+ /** Minimal logger shape both lanes already rely on. */
13
+ export interface ResilienceLogger {
14
+ warn(message: string): void;
15
+ }
16
+ /** Clear the warn-once state (test hook). */
17
+ export declare function resetRestrictWarnState(): void;
18
+ /**
19
+ * Harvest every quoted name between the throw's prefix and the following `;`.
20
+ */
21
+ export declare function harvestUnknownToolNames(message: string): string[];
22
+ /** The filter shape the helper reads/reduces; extra request fields pass through untouched. */
23
+ interface FilterShape {
24
+ allow?: readonly string[];
25
+ deny?: readonly string[];
26
+ }
27
+ /**
28
+ * `subagents.start(provider, request)` with one-shot filter-drop resilience:
29
+ * on a restrict unknown-tool throw, warn once per dropped name (per process)
30
+ * and retry exactly once with those names removed from `toolFilter.allow`.
31
+ * The request type stays structural/generic so both the dream lane
32
+ * (memory-job.ts) and the recall selector (recall.ts) can pass their shapes.
33
+ */
34
+ export declare function startWithFilterResilience<R extends {
35
+ toolFilter?: FilterShape;
36
+ }>(subagents: {
37
+ start(name: string, request: R): Promise<unknown>;
38
+ }, provider: string, request: R, logger: ResilienceLogger): Promise<unknown>;
39
+ export {};
40
+ //# sourceMappingURL=restrict-resilience.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restrict-resilience.d.ts","sourceRoot":"","sources":["../src/restrict-resilience.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAQD,6CAA6C;AAC7C,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CASjE;AAED,8FAA8F;AAC9F,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACzB;AAcD;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,CAAC,SAAS;IAAE,UAAU,CAAC,EAAE,WAAW,CAAA;CAAE,EACpF,SAAS,EAAE;IAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,EAChE,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,OAAO,CAAC,CAkBlB"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Fail-soft resilience for `subagents.start` toolFilter drift: the host's
3
+ * `tools.restrict()` throws on any allow-listed name that is not a global
4
+ * (inherited) tool. Some names — notably the driver-injected child-scoped
5
+ * `structured_output` — are visible to the child but NOT restrictable, so a
6
+ * stale filter naming them dies at dispatch. This helper degrades such a
7
+ * throw to a warn-once plus a single retry with the rejected names removed
8
+ * (§4.2 of docs/plans/2026-09-23-auto-dream-dispatch-fix.md). Any other
9
+ * error, or a failing retry, propagates unchanged.
10
+ * @module @dsh-cc/memory/restrict-resilience
11
+ */
12
+ /** The host throw's unknown-name prefix; names are comma-separated, quoted, up to `;`. */
13
+ const UNKNOWN_TOOL_PREFIX = /restrict\(\) names unknown global tools? /;
14
+ /** Names already warned about this process (keyed by tool name). */
15
+ const warnedNames = new Set();
16
+ /** Clear the warn-once state (test hook). */
17
+ export function resetRestrictWarnState() {
18
+ warnedNames.clear();
19
+ }
20
+ /**
21
+ * Harvest every quoted name between the throw's prefix and the following `;`.
22
+ */
23
+ export function harvestUnknownToolNames(message) {
24
+ const match = UNKNOWN_TOOL_PREFIX.exec(message);
25
+ if (match === null)
26
+ return [];
27
+ const rest = message.slice(match.index + match[0].length);
28
+ const end = rest.indexOf(';');
29
+ if (end === -1)
30
+ return [];
31
+ return [...rest.slice(0, end).matchAll(/"([^"]+)"/g)]
32
+ .map(m => m[1])
33
+ .filter((name) => name !== undefined);
34
+ }
35
+ /**
36
+ * Drop `dropped` from the filter's allow list (preserving deny and any other
37
+ * fields); an absent filter stays absent.
38
+ */
39
+ function reduceFilter(filter, dropped) {
40
+ if (filter === undefined)
41
+ return undefined;
42
+ return {
43
+ ...filter,
44
+ allow: (filter.allow ?? []).filter(name => !dropped.includes(name)),
45
+ };
46
+ }
47
+ /**
48
+ * `subagents.start(provider, request)` with one-shot filter-drop resilience:
49
+ * on a restrict unknown-tool throw, warn once per dropped name (per process)
50
+ * and retry exactly once with those names removed from `toolFilter.allow`.
51
+ * The request type stays structural/generic so both the dream lane
52
+ * (memory-job.ts) and the recall selector (recall.ts) can pass their shapes.
53
+ */
54
+ export async function startWithFilterResilience(subagents, provider, request, logger) {
55
+ try {
56
+ return await subagents.start(provider, request);
57
+ }
58
+ catch (err) {
59
+ const dropped = harvestUnknownToolNames(String(err instanceof Error ? err.message : err));
60
+ if (dropped.length === 0)
61
+ throw err;
62
+ for (const name of dropped) {
63
+ if (!warnedNames.has(name)) {
64
+ warnedNames.add(name);
65
+ logger.warn(`toolFilter dropped "${name}": tools.restrict() cannot allow-list it (not a global tool); it stays child-visible when injected by the driver`);
66
+ }
67
+ }
68
+ // exactOptionalPropertyTypes: omit toolFilter entirely when it was absent.
69
+ const retryRequest = request.toolFilter === undefined
70
+ ? request
71
+ : { ...request, toolFilter: reduceFilter(request.toolFilter, dropped) };
72
+ return await subagents.start(provider, retryRequest);
73
+ }
74
+ }
75
+ //# sourceMappingURL=restrict-resilience.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restrict-resilience.js","sourceRoot":"","sources":["../src/restrict-resilience.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,0FAA0F;AAC1F,MAAM,mBAAmB,GAAG,2CAA2C,CAAA;AAEvE,oEAAoE;AACpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;AAErC,6CAA6C;AAC7C,MAAM,UAAU,sBAAsB;IACpC,WAAW,CAAC,KAAK,EAAE,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IACzB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACd,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;AACzD,CAAC;AAQD;;;GAGG;AACH,SAAS,YAAY,CAAC,MAA+B,EAAE,OAA0B;IAC/E,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,OAAO;QACL,GAAG,MAAM;QACT,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACpE,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,SAAgE,EAChE,QAAgB,EAChB,OAAU,EACV,MAAwB;IAExB,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACzF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,GAAG,CAAA;QACnC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,kHAAkH,CAAC,CAAA;YAC5J,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,MAAM,YAAY,GAAM,OAAO,CAAC,UAAU,KAAK,SAAS;YACtD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAoB,EAAE,CAAA;QAC5F,OAAO,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACtD,CAAC;AACH,CAAC"}
@@ -0,0 +1,51 @@
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 (`session.v3.jsonl.zstd`, falling back to
42
+ * `session.jsonl.zstd`); a missing session log counts as fresh. Missing,
43
+ * empty, unreadable, or stale sidecars return `undefined` so the caller
44
+ * falls back to the host title snapshot path.
45
+ * @param sessionCwd - the session's working directory.
46
+ * @param sessionId - the session id.
47
+ * @param options - optional sessions-root override (tests).
48
+ * @returns the trimmed title, or `undefined`.
49
+ */
50
+ export declare function readTitleSidecar(sessionCwd: string, sessionId: string, options?: TitleSidecarOptions): string | undefined;
51
+ //# 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;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CA0BzH"}
@@ -0,0 +1,108 @@
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 (`session.v3.jsonl.zstd`, falling back to
66
+ * `session.jsonl.zstd`); a missing session log counts as fresh. Missing,
67
+ * empty, unreadable, or stale sidecars return `undefined` so the caller
68
+ * falls back to the host title snapshot path.
69
+ * @param sessionCwd - the session's working directory.
70
+ * @param sessionId - the session id.
71
+ * @param options - optional sessions-root override (tests).
72
+ * @returns the trimmed title, or `undefined`.
73
+ */
74
+ export function readTitleSidecar(sessionCwd, sessionId, options) {
75
+ try {
76
+ const target = titleSidecarPath(sessionCwd, sessionId, options);
77
+ const stat = statSync(target);
78
+ if (stat.size === 0)
79
+ return undefined;
80
+ const dir = dirname(target);
81
+ try {
82
+ // Missing session log ⇒ the sidecar counts as fresh.
83
+ const v3 = statSync(join(dir, 'session.v3.jsonl.zstd')).mtimeMs;
84
+ if (stat.mtimeMs < v3)
85
+ return undefined;
86
+ }
87
+ catch {
88
+ try {
89
+ const v1 = statSync(join(dir, 'session.jsonl.zstd')).mtimeMs;
90
+ if (stat.mtimeMs < v1)
91
+ return undefined;
92
+ }
93
+ catch {
94
+ // No session log at all — fresh.
95
+ }
96
+ }
97
+ const title = readFileSync(target, 'utf8').trim();
98
+ // Invalid UTF-8 decodes to U+FFFD; treat that as corruption so the caller
99
+ // falls back to the host snapshot path.
100
+ if (title.length === 0 || title.includes('\uFFFD'))
101
+ return undefined;
102
+ return title;
103
+ }
104
+ catch {
105
+ return undefined;
106
+ }
107
+ }
108
+ //# sourceMappingURL=title-sidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title-sidecar.js","sourceRoot":"","sources":["../src/title-sidecar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAClG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAA;AAQhD,SAAS,WAAW,CAAC,UAAkB,EAAE,OAA6B;IACpE,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,CAAC,CAAA;IAChF,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,SAAiB,EAAE,OAA6B;IACnG,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA6B;IACnH,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/D,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA;IACzD,IAAI,CAAC;QACH,4EAA4E;QAC5E,8CAA8C;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpF,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QACtC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,SAAiB,EAAE,OAA6B;IACnG,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAA;YAC/D,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE;gBAAE,OAAO,SAAS,CAAA;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAA;gBAC5D,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE;oBAAE,OAAO,SAAS,CAAA;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QACjD,0EAA0E;QAC1E,wCAAwC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAA;QACpE,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
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.0-rc.3",
4
+ "version": "0.8.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/dsh-cc/dsh-cc.git",
@@ -41,8 +41,8 @@
41
41
  "@deepseek-ai/schemastery": "^3.18.1"
42
42
  },
43
43
  "dependencies": {
44
- "@dsh-cc/model-aliases": "^0.8.0-rc.3",
45
- "@dsh-cc/tools": "^0.8.0-rc.3"
44
+ "@dsh-cc/model-aliases": "^0.8.1",
45
+ "@dsh-cc/tools": "^0.8.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/tools": "^0.8.0-rc.3",
67
- "@dsh-cc/model-aliases": "^0.8.0-rc.3"
66
+ "@dsh-cc/tools": "^0.8.1",
67
+ "@dsh-cc/model-aliases": "^0.8.1"
68
68
  },
69
69
  "publishConfig": {
70
70
  "access": "public"