@lmzhen/dsh-tool-memory 0.32.4 → 0.32.6
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 +12 -11
- package/lib/index.js +2 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# @lmzhen/dsh-tool-memory
|
|
2
2
|
|
|
3
|
-
Model-facing memory tool
|
|
4
|
-
guidance section and the runtime snapshot of the current memory entries. It owns no store —
|
|
5
|
-
the memory files and their provider do.
|
|
3
|
+
Model-facing `memory` tool plus durable-memory guidance and snapshot sections for the system prompt.
|
|
6
4
|
|
|
7
|
-
##
|
|
5
|
+
## Tool contract
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
- **Prompt prefix / KV cache:** guidance text is prefix-stable; the runtime snapshot is replaced after successful memory writes and is otherwise unchanged between requests; family rules: `packages/README.md` §"Model-visible prompt prefix and the KV cache".
|
|
11
|
-
- **Mount it?** yes — the `tool-memory` row, carried by the `evolution-all` and one-click `evolution-preset` bundles and by the Evolution agent preset delta.
|
|
7
|
+
`target` selects `memory` for agent notes or `user` for stable user-profile facts. Actions are `add`, `replace`, and `remove`. `facts` and `content` are aliases; supplying different non-blank values for both is rejected.
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
Use one `operations` array for a batch. The batch is evaluated against the final result so removal/replacement can free budget before additions. Add requires content; replace requires matching old text and new content; remove requires matching old text. Empty batches and malformed operations are rejected before approval.
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
- The pre-approval required-field pre-check and the store's own rejection text are hand-copied twins: the check runs on BOTH paths (every `operations[]` element and the normalized single operation) BEFORE the approval gate, so an approval-enabled deployment never stages a write the approved replay must then fail. Keeping the two texts in step is still manual; unifying them is deferred.
|
|
11
|
+
## Defaults and boundaries
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
- `memoryEnabled`: default `true`; disabling removes the model tool and prompt sections while retaining an explicit refusal runner for previously staged writes.
|
|
14
|
+
- `entryPreviewChars`: default 200 characters per entry in the tool response; this does not truncate stored content.
|
|
15
|
+
- `memoryChars` and `userChars`: enforced by the selected provider, not by this tool; see [memory-files](../memory-files/README.md).
|
|
16
|
+
|
|
17
|
+
When ordinary approval is enabled, a write can return `pending_id` instead of executing immediately. An effective platform session policy of `never` bypasses staging as designed.
|
|
18
|
+
|
|
19
|
+
Guidance and snapshot injection require the optional `systemPrompt` service. Without it, the write tool still works but memory context is not injected. Successful writes through the memory registry refresh the snapshot, including graph and background-review writes.
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { effectiveSessionPolicy } from "@lmzhen/dsh-evolution-approval";
|
|
2
2
|
import z from "@deepseek-ai/schemastery";
|
|
3
3
|
import { defineTool } from "@deepseek-ai/dsh-tools";
|
|
4
|
-
import { MEMORY_GUIDANCE_SECTION_ORDER, clampedNumber, payloadText, resolveExecOrigins, unwrapLive } from "@lmzhen/dsh-evolution-core";
|
|
4
|
+
import { MEMORY_GUIDANCE_SECTION_ORDER, clampedNumber, payloadText, registerOwnerSettings, resolveExecOrigins, unwrapLive } from "@lmzhen/dsh-evolution-core";
|
|
5
5
|
//#region lib/types/index.js
|
|
6
6
|
/**
|
|
7
7
|
* Model-facing memory tool and runtime-context memory snapshot.
|
|
@@ -32,6 +32,7 @@ const Config = z.object({
|
|
|
32
32
|
entryPreviewChars: z.number().min(1).default(DEFAULT_ENTRY_PREVIEW_CHARS).volatile()
|
|
33
33
|
});
|
|
34
34
|
async function apply(ctx, rawConfig = {}) {
|
|
35
|
+
registerOwnerSettings(ctx, "tool-memory", Config);
|
|
35
36
|
ctx.inject(["settings"], (injected) => {
|
|
36
37
|
const settings = injected.settings;
|
|
37
38
|
if (typeof settings?.configure !== "function") return;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmzhen/dsh-tool-memory",
|
|
3
3
|
"description": "Model-facing memory tool and prompt context (community build)",
|
|
4
|
-
"version": "0.32.
|
|
4
|
+
"version": "0.32.6",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -27,22 +27,22 @@
|
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@deepseek-ai/schemastery": "^3.18.5",
|
|
30
|
-
"@lmzhen/dsh-evolution-approval": "^0.32.
|
|
31
|
-
"@lmzhen/dsh-evolution-core": "^0.32.
|
|
30
|
+
"@lmzhen/dsh-evolution-approval": "^0.32.6",
|
|
31
|
+
"@lmzhen/dsh-evolution-core": "^0.32.6"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@deepseek-ai/cordis": "^4.0.5",
|
|
35
35
|
"@deepseek-ai/dsh-tools": "^0.2.1-rc.2",
|
|
36
36
|
"@deepseek-ai/dsh-system-prompt": "^0.2.1-rc.2",
|
|
37
|
-
"@lmzhen/dsh-memory": "^0.32.
|
|
37
|
+
"@lmzhen/dsh-memory": "^0.32.6"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@deepseek-ai/dsh-tools": "^0.2.1-rc.2",
|
|
41
41
|
"@deepseek-ai/dsh-system-prompt": "^0.2.1-rc.2",
|
|
42
42
|
"@deepseek-ai/dsh-agent-loop-testkit": "^0.2.1-rc.2",
|
|
43
|
-
"@lmzhen/dsh-evolution-approval": "^0.32.
|
|
44
|
-
"@lmzhen/dsh-memory": "^0.32.
|
|
45
|
-
"@lmzhen/dsh-memory-files": "^0.32.
|
|
43
|
+
"@lmzhen/dsh-evolution-approval": "^0.32.6",
|
|
44
|
+
"@lmzhen/dsh-memory": "^0.32.6",
|
|
45
|
+
"@lmzhen/dsh-memory-files": "^0.32.6"
|
|
46
46
|
},
|
|
47
47
|
"engines": {
|
|
48
48
|
"dsh": ">=0.2.1-rc.2 <0.2.2-0"
|