dsh-tdai-memory 0.2.8 → 0.2.10
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 +7 -2
- package/README.zh.md +4 -0
- package/client.js +59 -21
- package/cordis.patch.yml +8 -0
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
**GitHub**: [Scorp1o117/dsh-tdai-memory](https://github.com/Scorp1o117/dsh-tdai-memory) · **npm**: [dsh-tdai-memory](https://www.npmjs.com/package/dsh-tdai-memory)
|
|
6
6
|
|
|
7
|
+
[](https://github.com/Scorp1o117/dsh-enhancement-suite) [](https://www.npmjs.com/package/dsh-enhancement-suite)
|
|
8
|
+
|
|
9
|
+
Part of the [DeepSeek Harness Enhancement Suite](https://github.com/Scorp1o117/dsh-enhancement-suite) — Vision · Soul/Persona · Long-term Memory · Plugin Marketplace.
|
|
10
|
+
|
|
7
11
|
A port of **TencentDB Agent Memory** (Tencent Cloud's open-source four-layer
|
|
8
12
|
memory system, originally an OpenClaw plugin) into DeepSeek Harness.
|
|
9
13
|
|
|
@@ -99,8 +103,9 @@ settings page (记忆 / Memory) or directly in `settings.yaml` under
|
|
|
99
103
|
`tdai-memory:`.
|
|
100
104
|
|
|
101
105
|
> **Note for users**
|
|
102
|
-
> -
|
|
103
|
-
>
|
|
106
|
+
> - This plugin is a standard **profile bundle** (`dsh.bundle.patch`):
|
|
107
|
+
> `dsh plugin --profile web add dsh-tdai-memory` installs and mounts it in
|
|
108
|
+
> one step — no manual `cordis.patch.yml` edits needed.
|
|
104
109
|
> - The settings section needs the `dsh-host-apiproxy` namespace allowlist;
|
|
105
110
|
> the plugin patches it automatically on first start — **restart `dsh web`
|
|
106
111
|
> once more** and the section appears. A dsh update overwrites the patch;
|
package/README.zh.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
**GitHub**: [Scorp1o117/dsh-tdai-memory](https://github.com/Scorp1o117/dsh-tdai-memory) · **npm**: [dsh-tdai-memory](https://www.npmjs.com/package/dsh-tdai-memory) · [English](README.md)
|
|
4
4
|
|
|
5
|
+
[](https://github.com/Scorp1o117/dsh-enhancement-suite) [](https://www.npmjs.com/package/dsh-enhancement-suite)
|
|
6
|
+
|
|
7
|
+
属于 [DeepSeek Harness Enhancement Suite](https://github.com/Scorp1o117/dsh-enhancement-suite) —— Vision · Soul/Persona · 长期记忆 · 插件市场。
|
|
8
|
+
|
|
5
9
|
把 **TencentDB Agent Memory**(腾讯云开源的四层记忆系统,原为 OpenClaw 插件)移植进 DeepSeek Harness。
|
|
6
10
|
|
|
7
11
|
## 能力
|
package/client.js
CHANGED
|
@@ -58,6 +58,25 @@ window.__ModuleLoader__.load({
|
|
|
58
58
|
groupExtraction: "提取",
|
|
59
59
|
groupRecall: "召回",
|
|
60
60
|
groupTools: "工具",
|
|
61
|
+
fieldDataDir: "数据目录(空 = ~/.memory-tencentdb/memory-tdai)",
|
|
62
|
+
fieldLlmBaseUrl: "Base URL",
|
|
63
|
+
fieldLlmApiKey: "API Key",
|
|
64
|
+
fieldLlmModel: "模型",
|
|
65
|
+
fieldLlmMaxTokens: "最大输出 Tokens",
|
|
66
|
+
fieldLlmTimeoutMs: "超时(毫秒)",
|
|
67
|
+
fieldEmbeddingBaseUrl: "Base URL",
|
|
68
|
+
fieldEmbeddingApiKey: "API Key",
|
|
69
|
+
fieldEmbeddingModel: "模型",
|
|
70
|
+
fieldEmbeddingDimensions: "向量维度",
|
|
71
|
+
fieldEmbeddingSendDimensions: "请求带 dimensions 参数",
|
|
72
|
+
fieldCaptureEnabled: "捕获对话(L0)",
|
|
73
|
+
fieldExtractionEnabled: "结构化提取(L1)",
|
|
74
|
+
fieldExtractionEnableDedup: "冲突检测(额外 LLM 调用)",
|
|
75
|
+
fieldRecallEnabled: "召回注入",
|
|
76
|
+
fieldRecallMaxResults: "最大召回条数",
|
|
77
|
+
fieldRecallScoreThreshold: "相似度阈值",
|
|
78
|
+
fieldRecallTimeoutMs: "召回超时(毫秒)",
|
|
79
|
+
fieldToolsEnabled: "注册搜索工具(tdai_memory_search / tdai_conversation_search)",
|
|
61
80
|
secretHint: "留空保持当前密钥。",
|
|
62
81
|
save: "保存",
|
|
63
82
|
reset: "恢复默认",
|
|
@@ -78,6 +97,25 @@ window.__ModuleLoader__.load({
|
|
|
78
97
|
groupExtraction: "Extraction",
|
|
79
98
|
groupRecall: "Recall",
|
|
80
99
|
groupTools: "Tools",
|
|
100
|
+
fieldDataDir: "Data dir (empty = ~/.memory-tencentdb/memory-tdai)",
|
|
101
|
+
fieldLlmBaseUrl: "Base URL",
|
|
102
|
+
fieldLlmApiKey: "API Key",
|
|
103
|
+
fieldLlmModel: "Model",
|
|
104
|
+
fieldLlmMaxTokens: "Max output tokens",
|
|
105
|
+
fieldLlmTimeoutMs: "Timeout (ms)",
|
|
106
|
+
fieldEmbeddingBaseUrl: "Base URL",
|
|
107
|
+
fieldEmbeddingApiKey: "API Key",
|
|
108
|
+
fieldEmbeddingModel: "Model",
|
|
109
|
+
fieldEmbeddingDimensions: "Vector dimensions",
|
|
110
|
+
fieldEmbeddingSendDimensions: "Send dimensions with requests",
|
|
111
|
+
fieldCaptureEnabled: "Capture conversations (L0)",
|
|
112
|
+
fieldExtractionEnabled: "Structured extraction (L1)",
|
|
113
|
+
fieldExtractionEnableDedup: "Conflict detection (extra LLM call)",
|
|
114
|
+
fieldRecallEnabled: "Recall injection",
|
|
115
|
+
fieldRecallMaxResults: "Max recall results",
|
|
116
|
+
fieldRecallScoreThreshold: "Similarity threshold",
|
|
117
|
+
fieldRecallTimeoutMs: "Recall timeout (ms)",
|
|
118
|
+
fieldToolsEnabled: "Register search tools (tdai_memory_search / tdai_conversation_search)",
|
|
81
119
|
secretHint: "Leave blank to keep the current key.",
|
|
82
120
|
save: "Save",
|
|
83
121
|
reset: "Reset",
|
|
@@ -91,25 +129,25 @@ window.__ModuleLoader__.load({
|
|
|
91
129
|
|
|
92
130
|
// ── field spec: dotted path + type + group ─────────────────────────────
|
|
93
131
|
var FIELDS = [
|
|
94
|
-
{ path: ["dataDir"], label: "
|
|
95
|
-
{ path: ["llm", "baseUrl"], label: "
|
|
96
|
-
{ path: ["llm", "apiKey"], label: "
|
|
97
|
-
{ path: ["llm", "model"], label: "
|
|
98
|
-
{ path: ["llm", "maxTokens"], label: "
|
|
99
|
-
{ path: ["llm", "timeoutMs"], label: "
|
|
100
|
-
{ path: ["embedding", "baseUrl"], label: "
|
|
101
|
-
{ path: ["embedding", "apiKey"], label: "
|
|
102
|
-
{ path: ["embedding", "model"], label: "
|
|
103
|
-
{ path: ["embedding", "dimensions"], label: "
|
|
104
|
-
{ path: ["embedding", "sendDimensions"], label: "
|
|
105
|
-
{ path: ["captureEnabled"], label: "
|
|
106
|
-
{ path: ["extraction", "enabled"], label: "
|
|
107
|
-
{ path: ["extraction", "enableDedup"], label: "
|
|
108
|
-
{ path: ["recall", "enabled"], label: "
|
|
109
|
-
{ path: ["recall", "maxResults"], label: "
|
|
110
|
-
{ path: ["recall", "scoreThreshold"], label: "
|
|
111
|
-
{ path: ["recall", "timeoutMs"], label: "
|
|
112
|
-
{ path: ["toolsEnabled"], label: "
|
|
132
|
+
{ path: ["dataDir"], label: "fieldDataDir", type: "text", group: "groupData" },
|
|
133
|
+
{ path: ["llm", "baseUrl"], label: "fieldLlmBaseUrl", type: "text", group: "groupLlm" },
|
|
134
|
+
{ path: ["llm", "apiKey"], label: "fieldLlmApiKey", type: "password", secret: true, group: "groupLlm" },
|
|
135
|
+
{ path: ["llm", "model"], label: "fieldLlmModel", type: "text", group: "groupLlm" },
|
|
136
|
+
{ path: ["llm", "maxTokens"], label: "fieldLlmMaxTokens", type: "number", group: "groupLlm" },
|
|
137
|
+
{ path: ["llm", "timeoutMs"], label: "fieldLlmTimeoutMs", type: "number", group: "groupLlm" },
|
|
138
|
+
{ path: ["embedding", "baseUrl"], label: "fieldEmbeddingBaseUrl", type: "text", group: "groupEmbedding" },
|
|
139
|
+
{ path: ["embedding", "apiKey"], label: "fieldEmbeddingApiKey", type: "password", secret: true, group: "groupEmbedding" },
|
|
140
|
+
{ path: ["embedding", "model"], label: "fieldEmbeddingModel", type: "text", group: "groupEmbedding" },
|
|
141
|
+
{ path: ["embedding", "dimensions"], label: "fieldEmbeddingDimensions", type: "number", group: "groupEmbedding" },
|
|
142
|
+
{ path: ["embedding", "sendDimensions"], label: "fieldEmbeddingSendDimensions", type: "checkbox", group: "groupEmbedding" },
|
|
143
|
+
{ path: ["captureEnabled"], label: "fieldCaptureEnabled", type: "checkbox", group: "groupCapture" },
|
|
144
|
+
{ path: ["extraction", "enabled"], label: "fieldExtractionEnabled", type: "checkbox", group: "groupExtraction" },
|
|
145
|
+
{ path: ["extraction", "enableDedup"], label: "fieldExtractionEnableDedup", type: "checkbox", group: "groupExtraction" },
|
|
146
|
+
{ path: ["recall", "enabled"], label: "fieldRecallEnabled", type: "checkbox", group: "groupRecall" },
|
|
147
|
+
{ path: ["recall", "maxResults"], label: "fieldRecallMaxResults", type: "number", group: "groupRecall" },
|
|
148
|
+
{ path: ["recall", "scoreThreshold"], label: "fieldRecallScoreThreshold", type: "number", group: "groupRecall" },
|
|
149
|
+
{ path: ["recall", "timeoutMs"], label: "fieldRecallTimeoutMs", type: "number", group: "groupRecall" },
|
|
150
|
+
{ path: ["toolsEnabled"], label: "fieldToolsEnabled", type: "checkbox", group: "groupTools" }
|
|
113
151
|
];
|
|
114
152
|
FIELDS.forEach(function (f) { f.key = f.path.join("."); });
|
|
115
153
|
|
|
@@ -241,7 +279,7 @@ window.__ModuleLoader__.load({
|
|
|
241
279
|
nodes.push(h("label", { key: f.path.join("."), className: "__tm_field" },
|
|
242
280
|
h("span", { className: "__tm_row" },
|
|
243
281
|
h("input", { className: "__tm_check", type: "checkbox", checked: Boolean(fieldDraft(f)), onChange: function (e) { setField(f, e.target.checked); } }),
|
|
244
|
-
h("span", { className: "__tm_label" }, f.label),
|
|
282
|
+
h("span", { className: "__tm_label" }, t(f.label)),
|
|
245
283
|
overridden ? h("span", { className: "__tm_override" }, t("overridden")) : null
|
|
246
284
|
)
|
|
247
285
|
));
|
|
@@ -249,7 +287,7 @@ window.__ModuleLoader__.load({
|
|
|
249
287
|
}
|
|
250
288
|
nodes.push(h("label", { key: f.path.join("."), className: "__tm_field" },
|
|
251
289
|
h("span", { className: "__tm_label" },
|
|
252
|
-
f.label,
|
|
290
|
+
t(f.label),
|
|
253
291
|
overridden ? h("span", { className: "__tm_override" }, t("overridden")) : null
|
|
254
292
|
),
|
|
255
293
|
h("input", {
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# dsh-tdai-memory — bundle patch layer
|
|
2
|
+
#
|
|
3
|
+
# Declares the plugin as a Cordis loader entry, making the package a standard
|
|
4
|
+
# profile bundle: `dsh plugin --profile <p> add dsh-tdai-memory` installs and
|
|
5
|
+
# mounts it without manual cordis.patch.yml edits.
|
|
6
|
+
- insert:
|
|
7
|
+
- id: tdai-memory
|
|
8
|
+
name: 'dsh-tdai-memory'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-tdai-memory",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10",
|
|
4
4
|
"description": "DeepSeek Harness 的 TencentDB Agent Memory 移植:L0 对话捕获 → L1 结构化记忆提取 → L2 场景/L3 画像,自动召回注入 + 记忆/对话搜索工具;复用现有 ~/.memory-tencentdb/memory-tdai 数据;附 Web UI 设置栏。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
"./package.json": "./package.json"
|
|
11
11
|
},
|
|
12
12
|
"dsh": {
|
|
13
|
+
"bundle": {
|
|
14
|
+
"patch": "./cordis.patch.yml"
|
|
15
|
+
},
|
|
13
16
|
"client": {
|
|
14
17
|
"platform": "web"
|
|
15
18
|
}
|
|
@@ -19,6 +22,7 @@
|
|
|
19
22
|
"index.js",
|
|
20
23
|
"recall-inject.js",
|
|
21
24
|
"client.js",
|
|
25
|
+
"cordis.patch.yml",
|
|
22
26
|
"vendor",
|
|
23
27
|
"README.md",
|
|
24
28
|
"README.zh.md",
|
|
@@ -65,4 +69,4 @@
|
|
|
65
69
|
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
|
|
66
70
|
"@deepseek-ai/dsh-settings": "^0.1.0-rc.6"
|
|
67
71
|
}
|
|
68
|
-
}
|
|
72
|
+
}
|