@alanzhao/dsh-memory-lite 0.1.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.
Files changed (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -0
  3. package/cordis.patch.yml +9 -0
  4. package/lib/catalog.d.ts +35 -0
  5. package/lib/catalog.js +145 -0
  6. package/lib/catalog.js.map +1 -0
  7. package/lib/client.js +631 -0
  8. package/lib/config.d.ts +133 -0
  9. package/lib/config.js +173 -0
  10. package/lib/config.js.map +1 -0
  11. package/lib/extract/checkpoint.d.ts +60 -0
  12. package/lib/extract/checkpoint.js +42 -0
  13. package/lib/extract/checkpoint.js.map +1 -0
  14. package/lib/extract/decision.d.ts +36 -0
  15. package/lib/extract/decision.js +118 -0
  16. package/lib/extract/decision.js.map +1 -0
  17. package/lib/extract/digest.d.ts +12 -0
  18. package/lib/extract/digest.js +25 -0
  19. package/lib/extract/digest.js.map +1 -0
  20. package/lib/extract/index.d.ts +52 -0
  21. package/lib/extract/index.js +489 -0
  22. package/lib/extract/index.js.map +1 -0
  23. package/lib/extract/prompt.d.ts +20 -0
  24. package/lib/extract/prompt.js +63 -0
  25. package/lib/extract/prompt.js.map +1 -0
  26. package/lib/extract/triggers.d.ts +15 -0
  27. package/lib/extract/triggers.js +26 -0
  28. package/lib/extract/triggers.js.map +1 -0
  29. package/lib/extract/window.d.ts +48 -0
  30. package/lib/extract/window.js +110 -0
  31. package/lib/extract/window.js.map +1 -0
  32. package/lib/index.d.ts +29 -0
  33. package/lib/index.js +92 -0
  34. package/lib/index.js.map +1 -0
  35. package/lib/inject.d.ts +45 -0
  36. package/lib/inject.js +102 -0
  37. package/lib/inject.js.map +1 -0
  38. package/lib/memory-store.d.ts +147 -0
  39. package/lib/memory-store.js +494 -0
  40. package/lib/memory-store.js.map +1 -0
  41. package/lib/path.d.ts +24 -0
  42. package/lib/path.js +54 -0
  43. package/lib/path.js.map +1 -0
  44. package/lib/peer.d.ts +16 -0
  45. package/lib/peer.js +38 -0
  46. package/lib/peer.js.map +1 -0
  47. package/lib/status.d.ts +44 -0
  48. package/lib/status.js +42 -0
  49. package/lib/status.js.map +1 -0
  50. package/lib/tool-utils.d.ts +25 -0
  51. package/lib/tool-utils.js +16 -0
  52. package/lib/tool-utils.js.map +1 -0
  53. package/lib/tools/forget-memory.d.ts +9 -0
  54. package/lib/tools/forget-memory.js +39 -0
  55. package/lib/tools/forget-memory.js.map +1 -0
  56. package/lib/tools/read-memory.d.ts +8 -0
  57. package/lib/tools/read-memory.js +41 -0
  58. package/lib/tools/read-memory.js.map +1 -0
  59. package/lib/tools/remember.d.ts +9 -0
  60. package/lib/tools/remember.js +65 -0
  61. package/lib/tools/remember.js.map +1 -0
  62. package/lib/tools/search-memory.d.ts +8 -0
  63. package/lib/tools/search-memory.js +49 -0
  64. package/lib/tools/search-memory.js.map +1 -0
  65. package/lib/tools/update-memory.d.ts +9 -0
  66. package/lib/tools/update-memory.js +46 -0
  67. package/lib/tools/update-memory.js.map +1 -0
  68. package/lib/types.d.ts +35 -0
  69. package/lib/types.js +7 -0
  70. package/lib/types.js.map +1 -0
  71. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
package/lib/path.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Path canonicalization and containment — the plugin's single path-safety
3
+ * boundary. Every file access resolves through `containWithin`.
4
+ * @module dsh-memory-lite/src/path
5
+ */
6
+ /** A memory path that is malformed or escapes its root; the model-facing rejection reason. */
7
+ export declare class MemoryPathError extends Error {
8
+ readonly name = "MemoryPathError";
9
+ }
10
+ /** Resolve symlinks through the deepest existing ancestor, appending the rest lexically. */
11
+ export declare function realpathSafe(path: string): Promise<string>;
12
+ /** Create a directory and its parents; existing directories pass through. */
13
+ export declare function ensureDir(dir: string): Promise<void>;
14
+ /**
15
+ * Contain a relative candidate inside `root`: normalize, resolve symlinks in
16
+ * the deepest existing ancestor, and require the result to stay inside the
17
+ * canonical root. Absolute paths, `..` escapes, and symlink escapes all throw
18
+ * {@link MemoryPathError}. This is the enforcement point — tool descriptions
19
+ * alone never gate file access.
20
+ * @param root - canonical containment root (must exist or be creatable).
21
+ * @param candidate - relative path, as supplied by the model.
22
+ * @returns the canonical absolute path inside `root`.
23
+ */
24
+ export declare function containWithin(root: string, candidate: string): Promise<string>;
package/lib/path.js ADDED
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Path canonicalization and containment — the plugin's single path-safety
3
+ * boundary. Every file access resolves through `containWithin`.
4
+ * @module dsh-memory-lite/src/path
5
+ */
6
+ import { realpath, mkdir } from 'node:fs/promises';
7
+ import { basename, dirname, isAbsolute, join, relative, resolve } from 'node:path';
8
+ /** A memory path that is malformed or escapes its root; the model-facing rejection reason. */
9
+ export class MemoryPathError extends Error {
10
+ name = 'MemoryPathError';
11
+ }
12
+ /** Resolve symlinks through the deepest existing ancestor, appending the rest lexically. */
13
+ export async function realpathSafe(path) {
14
+ try {
15
+ return await realpath(path);
16
+ }
17
+ catch {
18
+ const parent = dirname(path);
19
+ if (parent === path)
20
+ throw new MemoryPathError(`cannot resolve path ${JSON.stringify(path)}`);
21
+ return join(await realpathSafe(parent), basename(path));
22
+ }
23
+ }
24
+ /** Create a directory and its parents; existing directories pass through. */
25
+ export async function ensureDir(dir) {
26
+ await mkdir(dir, { recursive: true });
27
+ }
28
+ /**
29
+ * Contain a relative candidate inside `root`: normalize, resolve symlinks in
30
+ * the deepest existing ancestor, and require the result to stay inside the
31
+ * canonical root. Absolute paths, `..` escapes, and symlink escapes all throw
32
+ * {@link MemoryPathError}. This is the enforcement point — tool descriptions
33
+ * alone never gate file access.
34
+ * @param root - canonical containment root (must exist or be creatable).
35
+ * @param candidate - relative path, as supplied by the model.
36
+ * @returns the canonical absolute path inside `root`.
37
+ */
38
+ export async function containWithin(root, candidate) {
39
+ if (isAbsolute(candidate)) {
40
+ throw new MemoryPathError(`memory path must be relative, got absolute ${JSON.stringify(candidate)}`);
41
+ }
42
+ if (candidate === '')
43
+ throw new MemoryPathError('memory path must not be empty');
44
+ if (candidate.endsWith('/'))
45
+ throw new MemoryPathError('memory path must name a file, not a directory');
46
+ const rootReal = await realpathSafe(root);
47
+ const targetReal = await realpathSafe(resolve(rootReal, candidate));
48
+ const rel = relative(rootReal, targetReal);
49
+ if (rel === '' || rel.startsWith('..') || isAbsolute(rel)) {
50
+ throw new MemoryPathError(`memory path escapes the memory root: ${JSON.stringify(candidate)}`);
51
+ }
52
+ return targetReal;
53
+ }
54
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAElF,8FAA8F;AAC9F,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtB,IAAI,GAAG,iBAAiB,CAAA;CAC3C;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,MAAM,KAAK,IAAI;YAAE,MAAM,IAAI,eAAe,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7F,OAAO,IAAI,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,SAAiB;IACjE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,eAAe,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACtG,CAAC;IACD,IAAI,SAAS,KAAK,EAAE;QAAE,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC,CAAA;IAChF,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,+CAA+C,CAAC,CAAA;IACvG,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;IACnE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC1C,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,eAAe,CAAC,wCAAwC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC"}
package/lib/peer.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Peer derivation: which memory root a session reads and writes.
3
+ * @module dsh-memory-lite/src/peer
4
+ */
5
+ import type { SessionHeader } from '@deepseek-ai/dsh-session';
6
+ import type { ResolvedConfig } from './config.js';
7
+ /** The peer a session belongs to, derived from its cwd when enabled. */
8
+ export declare function peerForHeader(header: SessionHeader | undefined, config: ResolvedConfig): string;
9
+ /**
10
+ * Deterministic peer name from a working directory: sanitized basename plus a
11
+ * short hash of the full path, so distinct directories sharing a basename do
12
+ * not silently share a memory root.
13
+ */
14
+ export declare function peerFromCwd(cwd: string): string;
15
+ /** Sanitize a configured peer name for use as one directory segment. */
16
+ export declare function sanitizePeerName(name: string): string;
package/lib/peer.js ADDED
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Peer derivation: which memory root a session reads and writes.
3
+ * @module dsh-memory-lite/src/peer
4
+ */
5
+ import { createHash } from 'node:crypto';
6
+ import { basename } from 'node:path';
7
+ /** The peer a session belongs to, derived from its cwd when enabled. */
8
+ export function peerForHeader(header, config) {
9
+ if (!config.workspacePeers.enabled)
10
+ return config.defaultPeer;
11
+ const cwd = header?.cwd;
12
+ if (cwd === undefined || cwd === '') {
13
+ const fallback = config.workspacePeers.cwdFallback;
14
+ return fallback === '' || fallback === 'default_peer' ? config.defaultPeer : fallback;
15
+ }
16
+ return peerFromCwd(cwd);
17
+ }
18
+ /**
19
+ * Deterministic peer name from a working directory: sanitized basename plus a
20
+ * short hash of the full path, so distinct directories sharing a basename do
21
+ * not silently share a memory root.
22
+ */
23
+ export function peerFromCwd(cwd) {
24
+ const base = basename(cwd) || 'workspace';
25
+ const slug = base.toLowerCase().replace(/[^a-z0-9._-]+/g, '-').replace(/^-+|-+$/g, '');
26
+ const name = slug === '' ? 'workspace' : slug;
27
+ const hash = createHash('sha1').update(cwd).digest('hex').slice(0, 8);
28
+ return `${name}-${hash}`;
29
+ }
30
+ /** Sanitize a configured peer name for use as one directory segment. */
31
+ export function sanitizePeerName(name) {
32
+ const slug = name.replace(/[^a-zA-Z0-9._-]+/g, '-').replace(/^-+|-+$/g, '');
33
+ if (slug === '' || slug === '.' || slug === '..') {
34
+ throw new Error(`dsh-memory-lite: invalid peer name ${JSON.stringify(name)}`);
35
+ }
36
+ return slug;
37
+ }
38
+ //# sourceMappingURL=peer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAIpC,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,MAAiC,EAAE,MAAsB;IACrF,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,WAAW,CAAA;IAC7D,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,CAAA;IACvB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAA;QAClD,OAAO,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAA;IACvF,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAA;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACtF,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACrE,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAC3E,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Memory health tracker for the sidebar indicator (Phase: indicator v1).
3
+ *
4
+ * A single "last event" decides the light: the most recent extraction run
5
+ * outcome (fed by recordRun) or an unexpected pipeline exception (fed by the
6
+ * runExtraction catch). No state machine, no file reads — "no data yet" is
7
+ * simply green (not an error, not disabled).
8
+ * @module dsh-memory-lite/src/status
9
+ */
10
+ /** One recorded event: a run outcome or an unexpected exception. */
11
+ export interface StatusEvent {
12
+ /** Wall-clock ms when the event happened. */
13
+ at: number;
14
+ /** Whether this event is healthy. */
15
+ ok: boolean;
16
+ /** Run decision kind or 'error' for exceptions. */
17
+ outcome: string | null;
18
+ /** Error detail (llm-error reason, exception text, …). */
19
+ note: string | null;
20
+ }
21
+ /** The indicator's three-state view. */
22
+ export type StatusKind = 'ok' | 'error' | 'disabled';
23
+ /** Snapshot served to the browser via the /memory-status RPC channel. */
24
+ export interface MemoryStatusSnapshot {
25
+ /** Extraction mode from the resolved config. */
26
+ mode: 'incremental' | 'explicit_only' | 'off';
27
+ /** Most recent event, or null when nothing has run yet this process. */
28
+ last: StatusEvent | null;
29
+ /**
30
+ * disabled = mode off/explicit_only (gray); error = last event failed
31
+ * (red); ok = incremental and no failing event (green, including no data).
32
+ */
33
+ status: StatusKind;
34
+ }
35
+ export interface StatusTracker {
36
+ /** Record one extraction run outcome (decision/parse/apply/route result). */
37
+ reportRun(outcome: string, note: string | null, decision: string | null): void;
38
+ /** Record an unexpected pipeline exception (outside the recorded-run path). */
39
+ reportError(note: string): void;
40
+ /** Derive the three-state snapshot for the current mode. */
41
+ snapshot(mode: 'incremental' | 'explicit_only' | 'off'): MemoryStatusSnapshot;
42
+ }
43
+ /** Create the tracker; one instance per plugin apply (process lifetime). */
44
+ export declare function createStatusTracker(): StatusTracker;
package/lib/status.js ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Memory health tracker for the sidebar indicator (Phase: indicator v1).
3
+ *
4
+ * A single "last event" decides the light: the most recent extraction run
5
+ * outcome (fed by recordRun) or an unexpected pipeline exception (fed by the
6
+ * runExtraction catch). No state machine, no file reads — "no data yet" is
7
+ * simply green (not an error, not disabled).
8
+ * @module dsh-memory-lite/src/status
9
+ */
10
+ /** Run outcomes that count as healthy (green). Everything else is an error. */
11
+ const OK_OUTCOMES = new Set([
12
+ 'create',
13
+ 'merge',
14
+ 'update',
15
+ 'skip',
16
+ 'parse-error-recovered',
17
+ ]);
18
+ /** Create the tracker; one instance per plugin apply (process lifetime). */
19
+ export function createStatusTracker() {
20
+ let last = null;
21
+ return {
22
+ reportRun(outcome, note, decision) {
23
+ last = {
24
+ at: Date.now(),
25
+ ok: OK_OUTCOMES.has(outcome),
26
+ outcome: decision ?? outcome,
27
+ note,
28
+ };
29
+ },
30
+ reportError(note) {
31
+ last = { at: Date.now(), ok: false, outcome: 'error', note };
32
+ },
33
+ snapshot(mode) {
34
+ return {
35
+ mode,
36
+ last,
37
+ status: mode === 'incremental' ? (last === null || last.ok ? 'ok' : 'error') : 'disabled',
38
+ };
39
+ },
40
+ };
41
+ }
42
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,uBAAuB;CACxB,CAAC,CAAA;AAuCF,4EAA4E;AAC5E,MAAM,UAAU,mBAAmB;IACjC,IAAI,IAAI,GAAuB,IAAI,CAAA;IACnC,OAAO;QACL,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ;YAC/B,IAAI,GAAG;gBACL,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC5B,OAAO,EAAE,QAAQ,IAAI,OAAO;gBAC5B,IAAI;aACL,CAAA;QACH,CAAC;QACD,WAAW,CAAC,IAAI;YACd,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC9D,CAAC;QACD,QAAQ,CAAC,IAAI;YACX,OAAO;gBACL,IAAI;gBACJ,IAAI;gBACJ,MAAM,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU;aAC1F,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Shared helpers for the memory tools.
3
+ * @module dsh-memory-lite/src/tool-utils
4
+ */
5
+ import type { ToolExecution } from '@deepseek-ai/dsh-tools';
6
+ import type { ResolvedConfig } from './config.js';
7
+ import type { MemoryStore } from './memory-store.js';
8
+ /** What the tools and the injector need: the store plus a config source.
9
+ * The config is a getter so settings changes apply live without restarting
10
+ * the plugin (root/sharing stay fixed at the store snapshot; see §16). */
11
+ export interface MemoryDeps {
12
+ readonly config: () => ResolvedConfig;
13
+ readonly store: MemoryStore;
14
+ /** Live global default model selection (agent-default-model), read when
15
+ * extraction.llm.route is unset. Absent = fall back to session header. */
16
+ readonly defaultModel?: () => {
17
+ readonly provider: string;
18
+ readonly model: string;
19
+ readonly reasoningEffort?: string;
20
+ };
21
+ }
22
+ /** Reject calls from subagent sessions (locked decision; see IMPLEMENTATION.md §7). */
23
+ export declare function assertNotSubagent(exec: ToolExecution): void;
24
+ /** The peer a tool call reads from and writes to. */
25
+ export declare function peerForExec(exec: ToolExecution, config: ResolvedConfig): string;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared helpers for the memory tools.
3
+ * @module dsh-memory-lite/src/tool-utils
4
+ */
5
+ import { peerForHeader } from './peer.js';
6
+ /** Reject calls from subagent sessions (locked decision; see IMPLEMENTATION.md §7). */
7
+ export function assertNotSubagent(exec) {
8
+ if (exec.agent?.session.header.origin === 'subagent') {
9
+ throw new Error('memory tools are not available to subagent sessions');
10
+ }
11
+ }
12
+ /** The peer a tool call reads from and writes to. */
13
+ export function peerForExec(exec, config) {
14
+ return peerForHeader(exec.agent?.session.header, config);
15
+ }
16
+ //# sourceMappingURL=tool-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-utils.js","sourceRoot":"","sources":["../src/tool-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAazC,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,IAAmB;IACnD,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,WAAW,CAAC,IAAmB,EAAE,MAAsB;IACrE,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The `forget_memory` tool: soft-deletes a memory into the trash directory
3
+ * (never overwrites; approval wiring lands in Phase 3).
4
+ * @module dsh-memory-lite/src/tools/forget-memory
5
+ */
6
+ import type { Context } from '@deepseek-ai/cordis';
7
+ import type { MemoryDeps } from '../tool-utils.js';
8
+ /** Register forget_memory. */
9
+ export declare function applyForgetMemoryTool(ctx: Context, deps: MemoryDeps): void;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The `forget_memory` tool: soft-deletes a memory into the trash directory
3
+ * (never overwrites; approval wiring lands in Phase 3).
4
+ * @module dsh-memory-lite/src/tools/forget-memory
5
+ */
6
+ import { defineTool } from '@deepseek-ai/dsh-tools';
7
+ import { assertNotSubagent, peerForExec } from '../tool-utils.js';
8
+ /** Register forget_memory. */
9
+ export function applyForgetMemoryTool(ctx, deps) {
10
+ ctx.tools.register(defineTool({
11
+ name: 'forget_memory',
12
+ description: 'Delete one memory. The file moves to the memory trash and its index entry is removed; this cannot be undone by the model.',
13
+ parameters: {
14
+ path: { type: 'string', required: true, description: 'Memory file path relative to the memory root, e.g. preferences/coding.md.' },
15
+ },
16
+ output: {
17
+ schema: {
18
+ type: 'object',
19
+ additionalProperties: false,
20
+ properties: {
21
+ path: { type: 'string', required: true },
22
+ },
23
+ },
24
+ render: (_args, value) => [{ type: 'text', text: `Moved ${value.path} to the memory trash.` }],
25
+ },
26
+ async execute(args, exec) {
27
+ assertNotSubagent(exec);
28
+ const peer = peerForExec(exec, deps.config());
29
+ const { rel } = await deps.store.resolve(peer, args.path);
30
+ await deps.store.softDelete(peer, args.path);
31
+ await deps.store.removeIndexEntry(peer, args.path);
32
+ return { path: rel };
33
+ },
34
+ presentCall(args) {
35
+ return { card: 'generic', title: `Forget memory ${args.path}`, kind: 'delete', locations: [{ path: args.path }] };
36
+ },
37
+ }));
38
+ }
39
+ //# sourceMappingURL=forget-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forget-memory.js","sourceRoot":"","sources":["../../src/tools/forget-memory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGnD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEjE,8BAA8B;AAC9B,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,IAAgB;IAClE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,2HAA2H;QACxI,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,2EAA2E,EAAE;SACnI;QACD,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACzC;aACF;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,uBAAuB,EAAE,CAAC;SAC/F;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI;YACtB,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YACzD,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAClD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,WAAW,CAAC,IAAI;YACd,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAA;QACnH,CAAC;KACF,CAAC,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The `read_memory` tool: loads the full text of one memory file.
3
+ * @module dsh-memory-lite/src/tools/read-memory
4
+ */
5
+ import type { Context } from '@deepseek-ai/cordis';
6
+ import type { MemoryDeps } from '../tool-utils.js';
7
+ /** Register read_memory and return its definition (the injector's visibility anchor). */
8
+ export declare function applyReadMemoryTool(ctx: Context, deps: MemoryDeps): import("@deepseek-ai/dsh-tools").ToolDefinition;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The `read_memory` tool: loads the full text of one memory file.
3
+ * @module dsh-memory-lite/src/tools/read-memory
4
+ */
5
+ import { defineTool } from '@deepseek-ai/dsh-tools';
6
+ import { assertNotSubagent, peerForExec } from '../tool-utils.js';
7
+ /** Register read_memory and return its definition (the injector's visibility anchor). */
8
+ export function applyReadMemoryTool(ctx, deps) {
9
+ const tool = defineTool({
10
+ name: 'read_memory',
11
+ description: 'Read the full text of one memory file. Use the exact path from the memory catalog or search_memory results.',
12
+ parameters: {
13
+ path: { type: 'string', required: true, description: 'Memory file path relative to the memory root, e.g. preferences/coding.md.' },
14
+ },
15
+ output: {
16
+ schema: {
17
+ type: 'object',
18
+ additionalProperties: false,
19
+ properties: {
20
+ path: { type: 'string', required: true },
21
+ content: { type: 'string', required: true },
22
+ },
23
+ },
24
+ render: (_args, value) => [
25
+ { type: 'text', text: `<path>${value.path}</path>\n<content>\n${value.content}\n</content>` },
26
+ ],
27
+ },
28
+ async execute(args, exec) {
29
+ assertNotSubagent(exec);
30
+ const peer = peerForExec(exec, deps.config());
31
+ const { content, rel } = await deps.store.readFile(peer, args.path);
32
+ return { path: rel, content };
33
+ },
34
+ presentCall(args) {
35
+ return { card: 'generic', title: `Read memory ${args.path}`, kind: 'read', locations: [{ path: args.path }] };
36
+ },
37
+ });
38
+ ctx.tools.register(tool);
39
+ return tool;
40
+ }
41
+ //# sourceMappingURL=read-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-memory.js","sourceRoot":"","sources":["../../src/tools/read-memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGnD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEjE,yFAAyF;AACzF,MAAM,UAAU,mBAAmB,CAAC,GAAY,EAAE,IAAgB;IAChE,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,6GAA6G;QAC1H,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,2EAA2E,EAAE;SACnI;QACD,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACxC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC5C;aACF;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,uBAAuB,KAAK,CAAC,OAAO,cAAc,EAAE;aAC9F;SACF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI;YACtB,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YACnE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;QAC/B,CAAC;QACD,WAAW,CAAC,IAAI;YACd,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAA;QAC/G,CAAC;KACF,CAAC,CAAA;IACF,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxB,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The `remember` tool: explicit memory capture — creates a new memory file
3
+ * or appends to an existing one with the same slug.
4
+ * @module dsh-memory-lite/src/tools/remember
5
+ */
6
+ import type { Context } from '@deepseek-ai/cordis';
7
+ import type { MemoryDeps } from '../tool-utils.js';
8
+ /** Register remember. */
9
+ export declare function applyRememberTool(ctx: Context, deps: MemoryDeps): void;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * The `remember` tool: explicit memory capture — creates a new memory file
3
+ * or appends to an existing one with the same slug.
4
+ * @module dsh-memory-lite/src/tools/remember
5
+ */
6
+ import { defineTool } from '@deepseek-ai/dsh-tools';
7
+ import { assertNotSubagent, peerForExec } from '../tool-utils.js';
8
+ import { normalizeContent, slugify, summaryOf } from '../memory-store.js';
9
+ import { MEMORY_CATEGORIES } from '../types.js';
10
+ /** Register remember. */
11
+ export function applyRememberTool(ctx, deps) {
12
+ ctx.tools.register(defineTool({
13
+ name: 'remember',
14
+ description: 'Remember something the user explicitly asked you to remember. Call this ONLY when the user asks to remember something; never decide on your own.',
15
+ parameters: {
16
+ category: {
17
+ type: 'string',
18
+ required: true,
19
+ enum: [...MEMORY_CATEGORIES],
20
+ description: 'Which memory category the entry belongs to: preferences (always relevant), entities (mentioned knowledge), events (time-related), experiences (task lessons).',
21
+ },
22
+ title: { type: 'string', required: true, description: 'Short title; becomes the memory file name.' },
23
+ content: { type: 'string', required: true, description: 'The fact or preference to remember.' },
24
+ },
25
+ output: {
26
+ schema: {
27
+ type: 'object',
28
+ additionalProperties: false,
29
+ properties: {
30
+ path: { type: 'string', required: true },
31
+ appended: { type: 'boolean', required: true },
32
+ },
33
+ },
34
+ render: (_args, value) => [{ type: 'text', text: value.appended ? `Appended to ${value.path}` : `Remembered ${value.path}` }],
35
+ },
36
+ async execute(args, exec) {
37
+ assertNotSubagent(exec);
38
+ const peer = peerForExec(exec, deps.config());
39
+ const category = args.category;
40
+ if (!MEMORY_CATEGORIES.includes(category)) {
41
+ throw new Error(`category must be one of ${MEMORY_CATEGORIES.join(', ')}`);
42
+ }
43
+ const title = args.title.trim();
44
+ if (title === '')
45
+ throw new Error('title must be a non-empty string');
46
+ const content = normalizeContent(args.content);
47
+ if (content === '')
48
+ throw new Error('content must be a non-empty string');
49
+ const relPath = `${category}/${slugify(title)}.md`;
50
+ const existed = await deps.store.fileExists(peer, relPath);
51
+ if (existed) {
52
+ await deps.store.appendCurrent(peer, relPath, content);
53
+ }
54
+ else {
55
+ await deps.store.writeNewMemory(peer, relPath, title, content);
56
+ }
57
+ await deps.store.refreshIndexEntry(peer, relPath, summaryOf(content));
58
+ return { path: relPath, appended: existed };
59
+ },
60
+ presentCall(args) {
61
+ return { card: 'generic', title: `Remember ${args.category}/${args.title}`, kind: 'edit' };
62
+ },
63
+ }));
64
+ }
65
+ //# sourceMappingURL=remember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember.js","sourceRoot":"","sources":["../../src/tools/remember.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The `search_memory` tool: line search across a peer's memory files.
3
+ * @module dsh-memory-lite/src/tools/search-memory
4
+ */
5
+ import type { Context } from '@deepseek-ai/cordis';
6
+ import type { MemoryDeps } from '../tool-utils.js';
7
+ /** Register search_memory. */
8
+ export declare function applySearchMemoryTool(ctx: Context, deps: MemoryDeps): void;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The `search_memory` tool: line search across a peer's memory files.
3
+ * @module dsh-memory-lite/src/tools/search-memory
4
+ */
5
+ import { defineTool } from '@deepseek-ai/dsh-tools';
6
+ import { assertNotSubagent, peerForExec } from '../tool-utils.js';
7
+ /** Register search_memory. */
8
+ export function applySearchMemoryTool(ctx, deps) {
9
+ ctx.tools.register(defineTool({
10
+ name: 'search_memory',
11
+ description: 'Search memory files by keyword and return the matching lines with their paths. Use when you are unsure of the exact path in the memory catalog.',
12
+ parameters: {
13
+ query: { type: 'string', required: true, description: 'Search keyword or phrase, e.g. pnpm.' },
14
+ },
15
+ output: {
16
+ schema: {
17
+ type: 'object',
18
+ additionalProperties: false,
19
+ properties: {
20
+ matches: {
21
+ type: 'array',
22
+ required: true,
23
+ items: {
24
+ type: 'object',
25
+ additionalProperties: false,
26
+ properties: {
27
+ path: { type: 'string', required: true },
28
+ line: { type: 'string', required: true },
29
+ },
30
+ },
31
+ },
32
+ },
33
+ },
34
+ render: (_args, value) => [
35
+ { type: 'text', text: value.matches.length === 0 ? '(no matches)' : value.matches.map(match => `<path>${match.path}</path>: ${match.line}`).join('\n') },
36
+ ],
37
+ },
38
+ async execute(args, exec) {
39
+ assertNotSubagent(exec);
40
+ const peer = peerForExec(exec, deps.config());
41
+ const matches = await deps.store.search(peer, args.query);
42
+ return { matches };
43
+ },
44
+ presentCall(args) {
45
+ return { card: 'generic', title: `Search memory ${args.query}`, kind: 'search' };
46
+ },
47
+ }));
48
+ }
49
+ //# sourceMappingURL=search-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-memory.js","sourceRoot":"","sources":["../../src/tools/search-memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGnD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEjE,8BAA8B;AAC9B,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,IAAgB;IAClE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,iJAAiJ;QAC9J,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sCAAsC,EAAE;SAC/F;QACD,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,oBAAoB,EAAE,KAAK;4BAC3B,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACxC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;6BACzC;yBACF;qBACF;iBACF;aACF;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACzJ;SACF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI;YACtB,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACzD,OAAO,EAAE,OAAO,EAAE,CAAA;QACpB,CAAC;QACD,WAAW,CAAC,IAAI;YACd,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QAClF,CAAC;KACF,CAAC,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The `update_memory` tool: replaces a memory's current content, archiving
3
+ * the previous current into its History section (ADD-only).
4
+ * @module dsh-memory-lite/src/tools/update-memory
5
+ */
6
+ import type { Context } from '@deepseek-ai/cordis';
7
+ import type { MemoryDeps } from '../tool-utils.js';
8
+ /** Register update_memory. */
9
+ export declare function applyUpdateMemoryTool(ctx: Context, deps: MemoryDeps): void;