@downcity/plugins 1.0.253 → 1.0.254
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/bin/memory/Action.d.ts +27 -36
- package/bin/memory/Action.d.ts.map +1 -1
- package/bin/memory/Action.js +71 -311
- package/bin/memory/Action.js.map +1 -1
- package/bin/memory/Index.d.ts +3 -1
- package/bin/memory/Index.d.ts.map +1 -1
- package/bin/memory/Index.js +3 -1
- package/bin/memory/Index.js.map +1 -1
- package/bin/memory/MemoryPlugin.d.ts +20 -37
- package/bin/memory/MemoryPlugin.d.ts.map +1 -1
- package/bin/memory/MemoryPlugin.js +231 -233
- package/bin/memory/MemoryPlugin.js.map +1 -1
- package/bin/memory/adapters/FileMemoryStorageAdapter.d.ts +43 -0
- package/bin/memory/adapters/FileMemoryStorageAdapter.d.ts.map +1 -0
- package/bin/memory/adapters/FileMemoryStorageAdapter.js +163 -0
- package/bin/memory/adapters/FileMemoryStorageAdapter.js.map +1 -0
- package/bin/memory/providers/BuiltinMemoryProvider.d.ts +63 -0
- package/bin/memory/providers/BuiltinMemoryProvider.d.ts.map +1 -0
- package/bin/memory/providers/BuiltinMemoryProvider.js +772 -0
- package/bin/memory/providers/BuiltinMemoryProvider.js.map +1 -0
- package/bin/memory/runtime/SystemProvider.d.ts +7 -12
- package/bin/memory/runtime/SystemProvider.d.ts.map +1 -1
- package/bin/memory/runtime/SystemProvider.js +30 -89
- package/bin/memory/runtime/SystemProvider.js.map +1 -1
- package/bin/memory/types/BuiltinMemoryProvider.d.ts +88 -0
- package/bin/memory/types/BuiltinMemoryProvider.d.ts.map +1 -0
- package/bin/memory/types/BuiltinMemoryProvider.js +9 -0
- package/bin/memory/types/BuiltinMemoryProvider.js.map +1 -0
- package/bin/memory/types/Memory.d.ts +249 -408
- package/bin/memory/types/Memory.d.ts.map +1 -1
- package/bin/memory/types/Memory.js +4 -4
- package/bin/memory/types/MemoryStorage.d.ts +35 -0
- package/bin/memory/types/MemoryStorage.d.ts.map +1 -0
- package/bin/memory/types/MemoryStorage.js +10 -0
- package/bin/memory/types/MemoryStorage.js.map +1 -0
- package/bin/memory.d.ts +6 -2
- package/bin/memory.d.ts.map +1 -1
- package/bin/memory.js +3 -1
- package/bin/memory.js.map +1 -1
- package/package.json +3 -2
- package/scripts/memory-plugin.test.mjs +227 -0
- package/scripts/plugin-subpaths.test.mjs +8 -0
- package/src/memory/Action.ts +106 -377
- package/src/memory/Index.ts +6 -1
- package/src/memory/MemoryPlugin.ts +254 -246
- package/src/memory/adapters/FileMemoryStorageAdapter.ts +197 -0
- package/src/memory/providers/BuiltinMemoryProvider.ts +905 -0
- package/src/memory/runtime/SystemProvider.ts +32 -95
- package/src/memory/types/BuiltinMemoryProvider.ts +121 -0
- package/src/memory/types/Memory.ts +322 -456
- package/src/memory/types/MemoryStorage.ts +44 -0
- package/src/memory.ts +48 -24
- package/bin/memory/runtime/Search.d.ts +0 -19
- package/bin/memory/runtime/Search.d.ts.map +0 -1
- package/bin/memory/runtime/Search.js +0 -262
- package/bin/memory/runtime/Search.js.map +0 -1
- package/bin/memory/runtime/Store.d.ts +0 -42
- package/bin/memory/runtime/Store.d.ts.map +0 -1
- package/bin/memory/runtime/Store.js +0 -94
- package/bin/memory/runtime/Store.js.map +0 -1
- package/bin/memory/runtime/Writer.d.ts +0 -61
- package/bin/memory/runtime/Writer.d.ts.map +0 -1
- package/bin/memory/runtime/Writer.js +0 -274
- package/bin/memory/runtime/Writer.js.map +0 -1
- package/src/memory/runtime/Search.ts +0 -327
- package/src/memory/runtime/Store.ts +0 -158
- package/src/memory/runtime/Writer.ts +0 -351
package/bin/memory/Action.d.ts
CHANGED
|
@@ -1,42 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Memory Plugin action
|
|
2
|
+
* Memory Plugin action 适配层。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
5
|
+
* - Action 只把 Agent/Session 上下文映射为 MemoryProvider 的领域输入。
|
|
6
|
+
* - 物理存储、检索实现和提炼策略全部属于 Provider。
|
|
7
|
+
* - 所有 Provider 异常都转换为稳定 PluginActionResult,不伪造成功。
|
|
8
8
|
*/
|
|
9
|
-
import type { PluginActionResult } from "@downcity/agent";
|
|
10
|
-
import type { PluginContext } from "@downcity/agent";
|
|
9
|
+
import type { PluginActionResult, PluginContext } from "@downcity/agent";
|
|
11
10
|
import type { JsonValue } from "@downcity/agent";
|
|
12
|
-
import type {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
|
|
32
|
-
*/
|
|
33
|
-
export declare function
|
|
34
|
-
/**
|
|
35
|
-
* revise action。
|
|
36
|
-
*/
|
|
37
|
-
export declare function reviseMemoryAction(context: PluginContext, options: MemoryPluginOptions, payload: MemoryRevisePayload): Promise<PluginActionResult<JsonValue>>;
|
|
38
|
-
/**
|
|
39
|
-
* 把任意 payload 归一化为 search payload。
|
|
40
|
-
*/
|
|
41
|
-
export declare function toSearchPayload(input: Record<string, unknown>): MemorySearchPayload;
|
|
11
|
+
import type { MemoryForgetInput, MemoryProvider, MemoryReadInput, MemoryRecallInput, MemoryRememberInput, MemoryReviseInput, MemoryScope } from "../memory/types/Memory.js";
|
|
12
|
+
/** 从 PluginContext 构造当前 Runtime 的默认 Memory scope。 */
|
|
13
|
+
export declare function create_memory_scope(context: PluginContext, session_id?: string): MemoryScope;
|
|
14
|
+
/** status action。 */
|
|
15
|
+
export declare function status_memory_action(provider: MemoryProvider): Promise<PluginActionResult<JsonValue>>;
|
|
16
|
+
/** search action,内部委托 Provider recall。 */
|
|
17
|
+
export declare function search_memory_action(context: PluginContext, provider: MemoryProvider, input: Omit<MemoryRecallInput, "scope">): Promise<PluginActionResult<JsonValue>>;
|
|
18
|
+
/** read action。 */
|
|
19
|
+
export declare function read_memory_action(context: PluginContext, provider: MemoryProvider, input: Omit<MemoryReadInput, "scope">): Promise<PluginActionResult<JsonValue>>;
|
|
20
|
+
/** remember action。 */
|
|
21
|
+
export declare function remember_memory_action(context: PluginContext, provider: MemoryProvider, input: Omit<MemoryRememberInput, "scope">): Promise<PluginActionResult<JsonValue>>;
|
|
22
|
+
/** digest action:Session 消息读取属于 Plugin 编排,长期记忆语义属于 Provider。 */
|
|
23
|
+
export declare function digest_memory_action(context: PluginContext, provider: MemoryProvider, input: {
|
|
24
|
+
/** 需要提炼的 Session 标识。 */
|
|
25
|
+
session_id: string;
|
|
26
|
+
/** 可选最大消息提取条数。 */
|
|
27
|
+
max_messages?: number;
|
|
28
|
+
}): Promise<PluginActionResult<JsonValue>>;
|
|
29
|
+
/** revise action。 */
|
|
30
|
+
export declare function revise_memory_action(context: PluginContext, provider: MemoryProvider, input: Omit<MemoryReviseInput, "scope">): Promise<PluginActionResult<JsonValue>>;
|
|
31
|
+
/** forget action。 */
|
|
32
|
+
export declare function forget_memory_action(context: PluginContext, provider: MemoryProvider, input: Omit<MemoryForgetInput, "scope">): Promise<PluginActionResult<JsonValue>>;
|
|
42
33
|
//# sourceMappingURL=Action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../src/memory/Action.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../src/memory/Action.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AACzF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAElC,qDAAqD;AACrD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,WAAW,CAMb;AA4BD,qBAAqB;AACrB,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAExC;AAED,0CAA0C;AAC1C,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GACtC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAKxC;AAED,mBAAmB;AACnB,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAKxC;AAED,uBAAuB;AACvB,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAKxC;AAED,gEAAgE;AAChE,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE;IACL,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAwBxC;AAED,qBAAqB;AACrB,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GACtC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAKxC;AAED,qBAAqB;AACrB,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GACtC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAKxC"}
|
package/bin/memory/Action.js
CHANGED
|
@@ -1,39 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Memory Plugin action
|
|
2
|
+
* Memory Plugin action 适配层。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
5
|
+
* - Action 只把 Agent/Session 上下文映射为 MemoryProvider 的领域输入。
|
|
6
|
+
* - 物理存储、检索实现和提炼策略全部属于 Provider。
|
|
7
|
+
* - 所有 Provider 异常都转换为稳定 PluginActionResult,不伪造成功。
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
? candidate.parts
|
|
17
|
-
: [];
|
|
18
|
-
}
|
|
19
|
-
function extractReadableLine(message) {
|
|
20
|
-
const candidate = message;
|
|
21
|
-
const raw_role = String(candidate?.role || "").toLowerCase();
|
|
22
|
-
if (raw_role !== "user" && raw_role !== "assistant")
|
|
23
|
-
return "";
|
|
24
|
-
const role = raw_role === "user" ? "User" : "Assistant";
|
|
25
|
-
const text = toUiParts(message)
|
|
26
|
-
.filter(isTextUIPart)
|
|
27
|
-
.map((part) => String(part.text || "").trim())
|
|
28
|
-
.filter(Boolean)
|
|
29
|
-
.join("\n")
|
|
30
|
-
.trim();
|
|
31
|
-
if (!text) {
|
|
32
|
-
return "";
|
|
33
|
-
}
|
|
34
|
-
return `${role}: ${text}`;
|
|
9
|
+
/** 从 PluginContext 构造当前 Runtime 的默认 Memory scope。 */
|
|
10
|
+
export function create_memory_scope(context, session_id) {
|
|
11
|
+
return {
|
|
12
|
+
agent_id: context.agent_id,
|
|
13
|
+
workspace_id: context.workspace_path,
|
|
14
|
+
...(session_id ? { session_id } : {}),
|
|
15
|
+
};
|
|
35
16
|
}
|
|
36
|
-
/** 从 canonical Session Message
|
|
17
|
+
/** 从 canonical Session Message 提取可供 Provider 提炼的文本。 */
|
|
37
18
|
function extract_session_message_line(message) {
|
|
38
19
|
if (message.type !== "user" && message.type !== "assistant")
|
|
39
20
|
return "";
|
|
@@ -45,303 +26,82 @@ function extract_session_message_line(message) {
|
|
|
45
26
|
.trim();
|
|
46
27
|
return text ? `${role}: ${text}` : "";
|
|
47
28
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return {
|
|
51
|
-
pages: [{ title: "Memory Digest", content: result, tags: ["memory", "digest"] }],
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
return {
|
|
55
|
-
pages: result.pages,
|
|
56
|
-
summary: result.summary,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function readReviseResult(result, fallbackPath) {
|
|
60
|
-
if (typeof result === "string") {
|
|
61
|
-
return {
|
|
62
|
-
path: fallbackPath,
|
|
63
|
-
content: result,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
path: result.path || fallbackPath,
|
|
68
|
-
content: result.content,
|
|
69
|
-
summary: result.summary,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
function slugify(value) {
|
|
73
|
-
const text = String(value || "")
|
|
74
|
-
.trim()
|
|
75
|
-
.toLowerCase()
|
|
76
|
-
.replace(/[^\p{L}\p{N}]+/gu, "-")
|
|
77
|
-
.replace(/^-+|-+$/g, "")
|
|
78
|
-
.slice(0, 80);
|
|
79
|
-
return text || "inbox";
|
|
80
|
-
}
|
|
81
|
-
function toWikiMemoryPath(value) {
|
|
82
|
-
const clean = String(value || "").replace(/\\/g, "/").replace(/^\/+/, "").trim();
|
|
83
|
-
if (!clean)
|
|
84
|
-
return ".downcity/memory/wiki/inbox.md";
|
|
85
|
-
if (clean.startsWith(".downcity/memory/wiki/")) {
|
|
86
|
-
return clean.toLowerCase().endsWith(".md") ? clean : `${clean}.md`;
|
|
87
|
-
}
|
|
88
|
-
const withoutPrefix = clean.replace(/^wiki\//, "");
|
|
89
|
-
const withExt = withoutPrefix.toLowerCase().endsWith(".md")
|
|
90
|
-
? withoutPrefix
|
|
91
|
-
: `${withoutPrefix}.md`;
|
|
92
|
-
return `.downcity/memory/wiki/${withExt}`;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* status action。
|
|
96
|
-
*/
|
|
97
|
-
export async function statusMemoryAction(context, state) {
|
|
29
|
+
/** 执行 Provider 调用并统一失败语义。 */
|
|
30
|
+
async function run_provider_action(action) {
|
|
98
31
|
try {
|
|
99
|
-
|
|
100
|
-
return {
|
|
101
|
-
success: true,
|
|
102
|
-
data: stats,
|
|
103
|
-
};
|
|
32
|
+
return { success: true, data: await action() };
|
|
104
33
|
}
|
|
105
34
|
catch (error) {
|
|
106
35
|
return {
|
|
107
36
|
success: false,
|
|
108
|
-
error: String(error),
|
|
37
|
+
error: error instanceof Error ? error.message : String(error),
|
|
109
38
|
};
|
|
110
39
|
}
|
|
111
40
|
}
|
|
112
|
-
/**
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
export async function searchMemoryAction(context, state, payload) {
|
|
116
|
-
try {
|
|
117
|
-
const response = await searchMemory(context, state, payload);
|
|
118
|
-
return {
|
|
119
|
-
success: true,
|
|
120
|
-
data: response,
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
return {
|
|
125
|
-
success: false,
|
|
126
|
-
error: String(error),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
41
|
+
/** status action。 */
|
|
42
|
+
export async function status_memory_action(provider) {
|
|
43
|
+
return await run_provider_action(async () => await provider.status());
|
|
129
44
|
}
|
|
130
|
-
/**
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
return { success: true, data: data };
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
return {
|
|
140
|
-
success: false,
|
|
141
|
-
error: String(error),
|
|
142
|
-
};
|
|
143
|
-
}
|
|
45
|
+
/** search action,内部委托 Provider recall。 */
|
|
46
|
+
export async function search_memory_action(context, provider, input) {
|
|
47
|
+
return await run_provider_action(async () => await provider.recall({
|
|
48
|
+
...input,
|
|
49
|
+
scope: create_memory_scope(context),
|
|
50
|
+
}));
|
|
144
51
|
}
|
|
145
|
-
/**
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (!content) {
|
|
152
|
-
throw new Error("content is required");
|
|
153
|
-
}
|
|
154
|
-
const source = await appendManualSource(context, content, payload.source);
|
|
155
|
-
const targetPath = toWikiMemoryPath(payload.path || slugify(payload.topic || "inbox"));
|
|
156
|
-
if (options.revise) {
|
|
157
|
-
const current = await readMemory(context, { path: targetPath }).catch(() => ({
|
|
158
|
-
path: targetPath,
|
|
159
|
-
text: "",
|
|
160
|
-
}));
|
|
161
|
-
const revised = readReviseResult(await options.revise({
|
|
162
|
-
rootPath: context.workspace_path,
|
|
163
|
-
path: targetPath,
|
|
164
|
-
currentContent: current.text,
|
|
165
|
-
instruction: "Integrate this new memory into the wiki page. Deduplicate and keep it concise.",
|
|
166
|
-
evidence: `${content}\n\nSource: ${source.path}`,
|
|
167
|
-
}), targetPath);
|
|
168
|
-
const written = await writeWikiPage(context, {
|
|
169
|
-
path: revised.path,
|
|
170
|
-
title: payload.topic,
|
|
171
|
-
content: revised.content,
|
|
172
|
-
tags: ["memory"],
|
|
173
|
-
});
|
|
174
|
-
const response = {
|
|
175
|
-
sourcePath: source.path,
|
|
176
|
-
wikiPath: written.path,
|
|
177
|
-
mode: "revised",
|
|
178
|
-
writtenChars: written.writtenChars,
|
|
179
|
-
summary: revised.summary,
|
|
180
|
-
};
|
|
181
|
-
return { success: true, data: response };
|
|
182
|
-
}
|
|
183
|
-
const written = await appendWikiPage(context, {
|
|
184
|
-
path: targetPath,
|
|
185
|
-
title: payload.topic || "Memory Inbox",
|
|
186
|
-
content,
|
|
187
|
-
sourcePath: source.path,
|
|
188
|
-
});
|
|
189
|
-
const response = {
|
|
190
|
-
sourcePath: source.path,
|
|
191
|
-
wikiPath: written.path,
|
|
192
|
-
mode: "appended",
|
|
193
|
-
writtenChars: written.writtenChars,
|
|
194
|
-
};
|
|
195
|
-
return { success: true, data: response };
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
return {
|
|
199
|
-
success: false,
|
|
200
|
-
error: String(error),
|
|
201
|
-
};
|
|
202
|
-
}
|
|
52
|
+
/** read action。 */
|
|
53
|
+
export async function read_memory_action(context, provider, input) {
|
|
54
|
+
return await run_provider_action(async () => await provider.read({
|
|
55
|
+
...input,
|
|
56
|
+
scope: create_memory_scope(context),
|
|
57
|
+
}));
|
|
203
58
|
}
|
|
204
|
-
/**
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
59
|
+
/** remember action。 */
|
|
60
|
+
export async function remember_memory_action(context, provider, input) {
|
|
61
|
+
return await run_provider_action(async () => await provider.remember({
|
|
62
|
+
...input,
|
|
63
|
+
scope: create_memory_scope(context),
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
/** digest action:Session 消息读取属于 Plugin 编排,长期记忆语义属于 Provider。 */
|
|
67
|
+
export async function digest_memory_action(context, provider, input) {
|
|
68
|
+
return await run_provider_action(async () => {
|
|
69
|
+
const session_id = String(input.session_id || "").trim();
|
|
70
|
+
if (!session_id)
|
|
211
71
|
throw new Error("session_id is required");
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
? Math.max(1, Math.floor(payload.maxMessages))
|
|
72
|
+
const max_messages = Number.isFinite(input.max_messages)
|
|
73
|
+
? Math.max(1, Math.floor(input.max_messages))
|
|
215
74
|
: 30;
|
|
216
75
|
const snapshot = await context.sessions.runtime(session_id).context();
|
|
217
|
-
const
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
.
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
? lines.join("\n\n")
|
|
225
|
-
: "本次 digest 未找到可写入的用户/助手文本内容。";
|
|
226
|
-
const sourceText = [
|
|
227
|
-
`Window: ${start}-${Math.max(start, total - 1)}`,
|
|
228
|
-
"",
|
|
229
|
-
transcript,
|
|
230
|
-
].join("\n");
|
|
231
|
-
const source = await writeSessionSource(context, session_id, sourceText);
|
|
232
|
-
if (options.digest) {
|
|
233
|
-
const wikiIndex = await readWikiIndex(context);
|
|
234
|
-
const digested = readDigestPages(await options.digest({
|
|
235
|
-
rootPath: context.workspace_path,
|
|
236
|
-
sourceText,
|
|
237
|
-
sourcePath: source.path,
|
|
238
|
-
session_id,
|
|
239
|
-
wikiIndex,
|
|
240
|
-
}));
|
|
241
|
-
const wikiPaths = [];
|
|
242
|
-
for (const page of digested.pages) {
|
|
243
|
-
const written = await writeWikiPage(context, page);
|
|
244
|
-
wikiPaths.push(written.path);
|
|
245
|
-
}
|
|
246
|
-
const response = {
|
|
247
|
-
sourcePath: source.path,
|
|
248
|
-
wikiPaths,
|
|
249
|
-
message_count: lines.length,
|
|
250
|
-
mode: "digested",
|
|
251
|
-
summary: digested.summary,
|
|
252
|
-
};
|
|
253
|
-
return { success: true, data: response };
|
|
76
|
+
const start_index = Math.max(0, snapshot.messages.length - max_messages);
|
|
77
|
+
const lines = snapshot.messages
|
|
78
|
+
.slice(start_index)
|
|
79
|
+
.map(extract_session_message_line)
|
|
80
|
+
.filter(Boolean);
|
|
81
|
+
if (lines.length === 0) {
|
|
82
|
+
throw new Error("Session has no user or assistant text to digest");
|
|
254
83
|
}
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
});
|
|
261
|
-
const response = {
|
|
262
|
-
sourcePath: source.path,
|
|
263
|
-
wikiPaths: [written.path],
|
|
84
|
+
const transcript = lines.join("\n\n");
|
|
85
|
+
return await provider.digest({
|
|
86
|
+
session_id,
|
|
87
|
+
scope: create_memory_scope(context, session_id),
|
|
88
|
+
transcript,
|
|
264
89
|
message_count: lines.length,
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
return { success: true, data: response };
|
|
268
|
-
}
|
|
269
|
-
catch (error) {
|
|
270
|
-
return {
|
|
271
|
-
success: false,
|
|
272
|
-
error: String(error),
|
|
273
|
-
};
|
|
274
|
-
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
275
92
|
}
|
|
276
|
-
/**
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
if (!targetPath) {
|
|
283
|
-
throw new Error("path is required");
|
|
284
|
-
}
|
|
285
|
-
const instruction = String(payload.instruction || "").trim();
|
|
286
|
-
if (!instruction) {
|
|
287
|
-
throw new Error("instruction is required");
|
|
288
|
-
}
|
|
289
|
-
if (options.revise) {
|
|
290
|
-
const current = await readMemory(context, { path: targetPath }).catch(() => ({
|
|
291
|
-
path: targetPath,
|
|
292
|
-
text: "",
|
|
293
|
-
}));
|
|
294
|
-
const revised = readReviseResult(await options.revise({
|
|
295
|
-
rootPath: context.workspace_path,
|
|
296
|
-
path: targetPath,
|
|
297
|
-
currentContent: current.text,
|
|
298
|
-
instruction,
|
|
299
|
-
evidence: String(payload.evidence || ""),
|
|
300
|
-
}), targetPath);
|
|
301
|
-
const written = await writeWikiPage(context, {
|
|
302
|
-
path: revised.path,
|
|
303
|
-
content: revised.content,
|
|
304
|
-
tags: ["memory"],
|
|
305
|
-
});
|
|
306
|
-
const response = {
|
|
307
|
-
path: written.path,
|
|
308
|
-
mode: "revised",
|
|
309
|
-
writtenChars: written.writtenChars,
|
|
310
|
-
summary: revised.summary,
|
|
311
|
-
};
|
|
312
|
-
return { success: true, data: response };
|
|
313
|
-
}
|
|
314
|
-
const response = await appendMemoryRevision(context, payload);
|
|
315
|
-
return { success: true, data: response };
|
|
316
|
-
}
|
|
317
|
-
catch (error) {
|
|
318
|
-
return {
|
|
319
|
-
success: false,
|
|
320
|
-
error: String(error),
|
|
321
|
-
};
|
|
322
|
-
}
|
|
93
|
+
/** revise action。 */
|
|
94
|
+
export async function revise_memory_action(context, provider, input) {
|
|
95
|
+
return await run_provider_action(async () => await provider.revise({
|
|
96
|
+
...input,
|
|
97
|
+
scope: create_memory_scope(context),
|
|
98
|
+
}));
|
|
323
99
|
}
|
|
324
|
-
/**
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
maxResults: typeof input.maxResults === "number"
|
|
331
|
-
? input.maxResults
|
|
332
|
-
: typeof input.maxResults === "string"
|
|
333
|
-
? Number(input.maxResults)
|
|
334
|
-
: MEMORY_DEFAULTS.maxResults,
|
|
335
|
-
minScore: typeof input.minScore === "number"
|
|
336
|
-
? input.minScore
|
|
337
|
-
: typeof input.minScore === "string"
|
|
338
|
-
? Number(input.minScore)
|
|
339
|
-
: MEMORY_DEFAULTS.minScore,
|
|
340
|
-
includeSources: typeof input.includeSources === "boolean"
|
|
341
|
-
? input.includeSources
|
|
342
|
-
: typeof input.includeSources === "string"
|
|
343
|
-
? input.includeSources === "true"
|
|
344
|
-
: undefined,
|
|
345
|
-
};
|
|
100
|
+
/** forget action。 */
|
|
101
|
+
export async function forget_memory_action(context, provider, input) {
|
|
102
|
+
return await run_provider_action(async () => await provider.forget({
|
|
103
|
+
...input,
|
|
104
|
+
scope: create_memory_scope(context),
|
|
105
|
+
}));
|
|
346
106
|
}
|
|
347
107
|
//# sourceMappingURL=Action.js.map
|
package/bin/memory/Action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/memory/Action.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/memory/Action.ts"],"names":[],"mappings":"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"}
|
package/bin/memory/Index.d.ts
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* Memory Plugin 导出入口。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - Index
|
|
5
|
+
* - Index 只负责导出 Memory Plugin 与默认实现。
|
|
6
6
|
* - 真正运行时的 per-agent 实例由宿主显式创建并传给 Agent。
|
|
7
7
|
*/
|
|
8
8
|
export { MemoryPlugin } from "./MemoryPlugin.js";
|
|
9
|
+
export { BuiltinMemoryProvider } from "./providers/BuiltinMemoryProvider.js";
|
|
10
|
+
export { FileMemoryStorageAdapter, get_default_file_memory_root_path, } from "./adapters/FileMemoryStorageAdapter.js";
|
|
9
11
|
//# sourceMappingURL=Index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../../src/memory/Index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../../src/memory/Index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,wCAAwC,CAAC"}
|
package/bin/memory/Index.js
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* Memory Plugin 导出入口。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - Index
|
|
5
|
+
* - Index 只负责导出 Memory Plugin 与默认实现。
|
|
6
6
|
* - 真正运行时的 per-agent 实例由宿主显式创建并传给 Agent。
|
|
7
7
|
*/
|
|
8
8
|
export { MemoryPlugin } from "./MemoryPlugin.js";
|
|
9
|
+
export { BuiltinMemoryProvider } from "./providers/BuiltinMemoryProvider.js";
|
|
10
|
+
export { FileMemoryStorageAdapter, get_default_file_memory_root_path, } from "./adapters/FileMemoryStorageAdapter.js";
|
|
9
11
|
//# sourceMappingURL=Index.js.map
|
package/bin/memory/Index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../../src/memory/Index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../../src/memory/Index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,wCAAwC,CAAC"}
|
|
@@ -1,51 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MemoryPlugin:
|
|
2
|
+
* MemoryPlugin:Agent 长期记忆的 provider-neutral facade。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
4
|
+
* 职责说明(中文)
|
|
5
|
+
* - 对 Agent 暴露稳定的 Memory actions 与 system 使用约束。
|
|
6
|
+
* - 把 Agent/Session 上下文映射为结构化 Memory scope。
|
|
7
|
+
* - 将记忆形成、存储、召回、修订和删除委托给唯一 MemoryProvider。
|
|
8
|
+
*
|
|
9
|
+
* 边界说明(中文)
|
|
10
|
+
* - 不读取或拼接任何物理存储路径。
|
|
11
|
+
* - 不依赖 Workspace FileSystem,也不规定 Markdown、SQLite 或远程服务。
|
|
12
|
+
* - Provider 生命周期跟随当前 Plugin 实例,由 Agent 统一启动和释放。
|
|
8
13
|
*/
|
|
9
|
-
import type { PluginContext } from "@downcity/agent";
|
|
10
|
-
import type { PluginActions } from "@downcity/agent";
|
|
11
14
|
import { BasePlugin } from "@downcity/agent";
|
|
12
|
-
import {
|
|
13
|
-
import type { MemoryPluginOptions } from "
|
|
14
|
-
/**
|
|
15
|
-
* Memory plugin 类实现。
|
|
16
|
-
*/
|
|
15
|
+
import type { PluginActions, PluginContext } from "@downcity/agent";
|
|
16
|
+
import type { MemoryPluginOptions, MemoryProvider } from "../memory/types/Memory.js";
|
|
17
|
+
/** Agent 长期记忆 Plugin。 */
|
|
17
18
|
export declare class MemoryPlugin extends BasePlugin {
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* plugin 名称。
|
|
21
|
-
*/
|
|
19
|
+
/** Plugin 稳定名称。 */
|
|
22
20
|
readonly name = "memory";
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* 创建 MemoryPlugin。
|
|
29
|
-
*/
|
|
30
|
-
constructor(options?: MemoryPluginOptions);
|
|
31
|
-
/**
|
|
32
|
-
* 当前 plugin 的 system 文本提供器。
|
|
33
|
-
*/
|
|
21
|
+
/** 当前 Plugin 唯一绑定的 Memory Provider。 */
|
|
22
|
+
readonly provider: MemoryProvider;
|
|
23
|
+
constructor(options: MemoryPluginOptions);
|
|
24
|
+
/** 构建 provider-neutral Memory system 内容。 */
|
|
34
25
|
system(context: PluginContext): Promise<string>;
|
|
35
|
-
/**
|
|
36
|
-
* 当前 plugin 生命周期。
|
|
37
|
-
*/
|
|
26
|
+
/** Provider 生命周期与当前 Agent Plugin 实例保持一致。 */
|
|
38
27
|
readonly lifecycle: {
|
|
39
28
|
start: (context: PluginContext) => Promise<void>;
|
|
40
29
|
stop: () => Promise<void>;
|
|
41
30
|
};
|
|
42
|
-
/**
|
|
43
|
-
* 当前 plugin action 定义表。
|
|
44
|
-
*/
|
|
31
|
+
/** Memory 对 Agent 暴露的稳定 Action 集合。 */
|
|
45
32
|
readonly actions: PluginActions;
|
|
46
|
-
/**
|
|
47
|
-
* 获取或创建当前实例绑定的 memory plugin state。
|
|
48
|
-
*/
|
|
49
|
-
private getOrCreateRuntimeState;
|
|
50
33
|
}
|
|
51
34
|
//# sourceMappingURL=MemoryPlugin.d.ts.map
|