@zooique/memora 0.3.0 → 2.0.0
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 +8 -8
- package/dist/agent/agent.d.ts +69 -92
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +267 -197
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +3 -0
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +14 -4
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/builtinToolHandlers.d.ts +1 -1
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +5 -4
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/guardrail.d.ts +47 -0
- package/dist/agent/guardrail.d.ts.map +1 -0
- package/dist/agent/guardrail.js +51 -0
- package/dist/agent/guardrail.js.map +1 -0
- package/dist/agent/loop.d.ts +79 -18
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +317 -231
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/chatLockManager.d.ts +116 -0
- package/dist/agent/managers/chatLockManager.d.ts.map +1 -0
- package/dist/agent/managers/chatLockManager.js +191 -0
- package/dist/agent/managers/chatLockManager.js.map +1 -0
- package/dist/agent/managers/insightExtractor.d.ts +34 -69
- package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
- package/dist/agent/managers/insightExtractor.js +133 -189
- package/dist/agent/managers/insightExtractor.js.map +1 -1
- package/dist/agent/managers/memoryAdvisor.d.ts +102 -2
- package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
- package/dist/agent/managers/memoryAdvisor.js +262 -4
- package/dist/agent/managers/memoryAdvisor.js.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.d.ts +85 -0
- package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.js +215 -0
- package/dist/agent/managers/memoryDecayScheduler.js.map +1 -1
- package/dist/agent/managers/memoryInspector.d.ts +230 -64
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +439 -81
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/relationBuilder.d.ts +131 -0
- package/dist/agent/managers/relationBuilder.d.ts.map +1 -0
- package/dist/agent/managers/relationBuilder.js +192 -0
- package/dist/agent/managers/relationBuilder.js.map +1 -0
- package/dist/agent/managers/sessionArchiver.d.ts +6 -0
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +68 -8
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +9 -17
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/managers/textPolishManager.d.ts +62 -0
- package/dist/agent/managers/textPolishManager.d.ts.map +1 -0
- package/dist/agent/managers/textPolishManager.js +99 -0
- package/dist/agent/managers/textPolishManager.js.map +1 -0
- package/dist/agent/personaMatcher.d.ts +29 -0
- package/dist/agent/personaMatcher.d.ts.map +1 -0
- package/dist/agent/personaMatcher.js +60 -0
- package/dist/agent/personaMatcher.js.map +1 -0
- package/dist/agent/toolExecutor.d.ts +2 -2
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +2 -1
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/tracer.d.ts +31 -0
- package/dist/agent/tracer.d.ts.map +1 -1
- package/dist/agent/tracer.js +31 -0
- package/dist/agent/tracer.js.map +1 -1
- package/dist/agent/types.d.ts +132 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +38 -0
- package/dist/agent/types.js.map +1 -1
- package/dist/config/loader.d.ts +52 -40
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +52 -32
- package/dist/config/loader.js.map +1 -1
- package/dist/eval/evalRunner.d.ts +94 -0
- package/dist/eval/evalRunner.d.ts.map +1 -0
- package/dist/eval/evalRunner.js +141 -0
- package/dist/eval/evalRunner.js.map +1 -0
- package/dist/eval/evalTypes.d.ts +33 -3
- package/dist/eval/evalTypes.d.ts.map +1 -1
- package/dist/eval/evalTypes.js +18 -2
- package/dist/eval/evalTypes.js.map +1 -1
- package/dist/eval/scenarios.d.ts +33 -0
- package/dist/eval/scenarios.d.ts.map +1 -0
- package/dist/eval/scenarios.js +109 -0
- package/dist/eval/scenarios.js.map +1 -0
- package/dist/index.d.ts +51 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -6
- package/dist/index.js.map +1 -1
- package/dist/llm/abortSignal.d.ts +27 -0
- package/dist/llm/abortSignal.d.ts.map +1 -0
- package/dist/llm/abortSignal.js +44 -0
- package/dist/llm/abortSignal.js.map +1 -0
- package/dist/llm/embedding.d.ts +7 -2
- package/dist/llm/embedding.d.ts.map +1 -1
- package/dist/llm/embedding.js +66 -46
- package/dist/llm/embedding.js.map +1 -1
- package/dist/llm/factory.js +1 -1
- package/dist/llm/factory.js.map +1 -1
- package/dist/llm/openaiCompatible.d.ts.map +1 -1
- package/dist/llm/openaiCompatible.js +26 -27
- package/dist/llm/openaiCompatible.js.map +1 -1
- package/dist/llm/provider.d.ts +0 -14
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js.map +1 -1
- package/dist/logging/logger.d.ts +1 -0
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +43 -37
- package/dist/logging/logger.js.map +1 -1
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +8 -7
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/lockManager.d.ts +48 -0
- package/dist/memory/lockManager.d.ts.map +1 -0
- package/dist/memory/lockManager.js +159 -0
- package/dist/memory/lockManager.js.map +1 -0
- package/dist/memory/projectManager.d.ts +23 -53
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +46 -227
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/projectRegistry.d.ts +62 -0
- package/dist/memory/projectRegistry.d.ts.map +1 -0
- package/dist/memory/projectRegistry.js +158 -0
- package/dist/memory/projectRegistry.js.map +1 -0
- package/dist/memory/recall.d.ts +3 -3
- package/dist/memory/recall.d.ts.map +1 -1
- package/dist/memory/recall.js +3 -3
- package/dist/memory/recall.js.map +1 -1
- package/dist/memory/sourceValidation.d.ts +49 -0
- package/dist/memory/sourceValidation.d.ts.map +1 -0
- package/dist/memory/sourceValidation.js +141 -0
- package/dist/memory/sourceValidation.js.map +1 -0
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +2 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.d.ts +0 -47
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +0 -138
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/vectorStore.d.ts +82 -7
- package/dist/memory/vectorStore.d.ts.map +1 -1
- package/dist/memory/vectorStore.js +12 -8
- package/dist/memory/vectorStore.js.map +1 -1
- package/dist/persona/personaManager.d.ts +30 -4
- package/dist/persona/personaManager.d.ts.map +1 -1
- package/dist/persona/personaManager.js +47 -14
- package/dist/persona/personaManager.js.map +1 -1
- package/dist/security/pathGuard.d.ts.map +1 -1
- package/dist/security/pathGuard.js +3 -1
- package/dist/security/pathGuard.js.map +1 -1
- package/dist/skill/skillManager.d.ts.map +1 -1
- package/dist/skill/skillManager.js +2 -1
- package/dist/skill/skillManager.js.map +1 -1
- package/dist/utils/array.d.ts +24 -0
- package/dist/utils/array.d.ts.map +1 -0
- package/dist/utils/array.js +24 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/errors.d.ts +10 -8
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +12 -9
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +7 -0
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/objects.d.ts +17 -0
- package/dist/utils/objects.d.ts.map +1 -0
- package/dist/utils/objects.js +19 -0
- package/dist/utils/objects.js.map +1 -0
- package/dist/utils/segmenter.d.ts +17 -0
- package/dist/utils/segmenter.d.ts.map +1 -1
- package/dist/utils/segmenter.js +26 -0
- package/dist/utils/segmenter.js.map +1 -1
- package/dist/utils/strings.d.ts +22 -1
- package/dist/utils/strings.d.ts.map +1 -1
- package/dist/utils/strings.js +29 -1
- package/dist/utils/strings.js.map +1 -1
- package/dist/utils/time.d.ts +18 -3
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +24 -8
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/toError.d.ts +8 -4
- package/dist/utils/toError.d.ts.map +1 -1
- package/dist/utils/toError.js +25 -5
- package/dist/utils/toError.js.map +1 -1
- package/package.json +11 -1
|
@@ -1,26 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding 调用选项(韧性补齐)
|
|
3
|
+
*
|
|
4
|
+
* 与 ChatOptions.signal/timeoutMs 同构,支持外部取消 + 超时中断。
|
|
5
|
+
* 宿主在用户取消对话时传入 AbortSignal,或设置 timeoutMs 覆盖默认超时。
|
|
6
|
+
*
|
|
7
|
+
* 类型归属:定义在 memory/(消费者),llm/embedding.ts(提供者)通过
|
|
8
|
+
* import type 引入,符合依赖倒置原则(消费者定义接口,提供者实现接口)。
|
|
9
|
+
*/
|
|
10
|
+
export interface EmbeddingOptions {
|
|
11
|
+
/** 外部取消信号(用户主动取消时传入) */
|
|
12
|
+
signal?: AbortSignal;
|
|
13
|
+
/** 超时毫秒数(超时自动 abort;默认 60s,可通过此字段覆盖) */
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
}
|
|
1
16
|
/**
|
|
2
17
|
* 嵌入服务接口
|
|
3
18
|
* 向量存储依赖此接口生成文本嵌入向量
|
|
4
19
|
*
|
|
5
20
|
* batchEmbed 返回向量数组,顺序与输入一致。
|
|
6
21
|
* EmbeddingProvider(llm/embedding.ts)满足此接口(结构子类型)。
|
|
22
|
+
*
|
|
23
|
+
* 韧性补齐:embed/batchEmbed 接受 EmbeddingOptions(signal + timeoutMs),
|
|
24
|
+
* 宿主在用户取消对话时可透传 AbortSignal 中断 embedding 请求。
|
|
7
25
|
*/
|
|
8
26
|
export interface EmbeddingService {
|
|
9
|
-
embed(text: string): Promise<number[]>;
|
|
10
|
-
batchEmbed(texts: string[]): Promise<Array<{
|
|
27
|
+
embed(text: string, options?: EmbeddingOptions): Promise<number[]>;
|
|
28
|
+
batchEmbed(texts: string[], options?: EmbeddingOptions): Promise<Array<{
|
|
11
29
|
text: string;
|
|
12
30
|
vector: number[];
|
|
13
31
|
}>>;
|
|
14
32
|
}
|
|
15
33
|
/**
|
|
16
|
-
*
|
|
34
|
+
* 向量存储接口(依赖倒置)
|
|
35
|
+
*
|
|
36
|
+
* 抽出接口让宿主可注入自定义实现(如 SqliteVectorStore / LanceDBVectorStore),
|
|
37
|
+
* 内核消费者(recall.ts / memoryInspector.ts / agent.ts)只依赖此接口,
|
|
38
|
+
* 不耦合具体持久化方式(JSON / SQLite / 外部向量库)。
|
|
39
|
+
*
|
|
40
|
+
* 与 IMemoryStorage / IMemoryRelationStore / ILogger / ITracer 同属
|
|
41
|
+
* 内核六大注入接口,遵循 ADR-002 存储层抽象原则。
|
|
42
|
+
*
|
|
43
|
+
* 内核内置实现:JsonVectorStore(JSON 文件持久化,单用户本地场景)。
|
|
44
|
+
*/
|
|
45
|
+
export interface IVectorStore {
|
|
46
|
+
/** 从持久化介质加载向量索引(冷启动) */
|
|
47
|
+
load(): Promise<void>;
|
|
48
|
+
/** 持久化向量索引到介质 */
|
|
49
|
+
save(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* 为文本生成向量并存储
|
|
52
|
+
* @param id 记忆 ID
|
|
53
|
+
* @param text 待嵌入的文本
|
|
54
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
55
|
+
*/
|
|
56
|
+
upsert(id: string, text: string, options?: EmbeddingOptions): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* 批量嵌入并存储
|
|
59
|
+
* @param items ID + 文本对
|
|
60
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
61
|
+
*/
|
|
62
|
+
batchUpsert(items: Array<{
|
|
63
|
+
id: string;
|
|
64
|
+
text: string;
|
|
65
|
+
}>, options?: EmbeddingOptions): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* 删除向量(实现决定是否立即持久化)
|
|
68
|
+
* @param id 待删除的记忆 ID
|
|
69
|
+
*/
|
|
70
|
+
delete(id: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* 语义搜索:基于查询文本的向量,返回 topK 最相似的 ID
|
|
73
|
+
* @param query 查询文本
|
|
74
|
+
* @param topK 返回数量上限
|
|
75
|
+
* @param minSimilarity 最低相似度阈值(0~1)
|
|
76
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
77
|
+
* @returns ID + 相似度 对的数组,按相似度降序排列
|
|
78
|
+
*/
|
|
79
|
+
search(query: string, topK?: number, minSimilarity?: number, options?: EmbeddingOptions): Promise<Array<{
|
|
80
|
+
id: string;
|
|
81
|
+
similarity: number;
|
|
82
|
+
}>>;
|
|
83
|
+
/** 获取存储的向量数量 */
|
|
84
|
+
readonly size: number;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* JSON 持久化向量存储(IVectorStore 内核内置实现)
|
|
17
88
|
*
|
|
18
89
|
* 纯 JS 实现,内存中维护向量索引,定期持久化到 JSON 文件
|
|
19
90
|
* 适用于单用户本地场景(5k 条记录以内)
|
|
20
91
|
*
|
|
21
92
|
* 依赖 EmbeddingService 接口(依赖倒置,与 llm/ 层解耦)
|
|
93
|
+
* 实现 IVectorStore 接口,宿主可替换为其他实现(如 SqliteVectorStore)
|
|
22
94
|
*/
|
|
23
|
-
export declare class
|
|
95
|
+
export declare class JsonVectorStore implements IVectorStore {
|
|
24
96
|
private readonly storePath;
|
|
25
97
|
private readonly embeddingProvider;
|
|
26
98
|
/** 内存中的向量索引 */
|
|
@@ -66,21 +138,23 @@ export declare class VectorStore {
|
|
|
66
138
|
*
|
|
67
139
|
* @param id 记忆 ID
|
|
68
140
|
* @param text 待嵌入的文本
|
|
141
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
69
142
|
* @throws {MemoraError} 当 embedding 返回的向量维度与已存维度不一致时抛出 configError
|
|
70
143
|
*/
|
|
71
|
-
upsert(id: string, text: string): Promise<void>;
|
|
144
|
+
upsert(id: string, text: string, options?: EmbeddingOptions): Promise<void>;
|
|
72
145
|
/**
|
|
73
146
|
* 批量嵌入并存储
|
|
74
147
|
*
|
|
75
148
|
* 加固:维度一致性校验,与 upsert 同契约
|
|
76
149
|
*
|
|
77
150
|
* @param items ID + 文本对
|
|
151
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
78
152
|
* @throws {MemoraError} 当 embedding 返回的向量维度与已存维度不一致时抛出 configError
|
|
79
153
|
*/
|
|
80
154
|
batchUpsert(items: Array<{
|
|
81
155
|
id: string;
|
|
82
156
|
text: string;
|
|
83
|
-
}
|
|
157
|
+
}>, options?: EmbeddingOptions): Promise<void>;
|
|
84
158
|
/**
|
|
85
159
|
* 删除向量
|
|
86
160
|
*
|
|
@@ -96,9 +170,10 @@ export declare class VectorStore {
|
|
|
96
170
|
* @param query 查询文本
|
|
97
171
|
* @param topK 返回数量上限
|
|
98
172
|
* @param minSimilarity 最低相似度阈值(0~1)
|
|
173
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
99
174
|
* @returns ID + 相似度 对的数组,按相似度降序排列
|
|
100
175
|
*/
|
|
101
|
-
search(query: string, topK?: number, minSimilarity?: number): Promise<Array<{
|
|
176
|
+
search(query: string, topK?: number, minSimilarity?: number, options?: EmbeddingOptions): Promise<Array<{
|
|
102
177
|
id: string;
|
|
103
178
|
similarity: number;
|
|
104
179
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vectorStore.d.ts","sourceRoot":"","sources":["../../src/memory/vectorStore.ts"],"names":[],"mappings":"AA4BA
|
|
1
|
+
{"version":3,"file":"vectorStore.d.ts","sourceRoot":"","sources":["../../src/memory/vectorStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,14 +66,15 @@ function isValidVectorStoreFile(data) {
|
|
|
66
66
|
return true;
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
69
|
+
* JSON 持久化向量存储(IVectorStore 内核内置实现)
|
|
70
70
|
*
|
|
71
71
|
* 纯 JS 实现,内存中维护向量索引,定期持久化到 JSON 文件
|
|
72
72
|
* 适用于单用户本地场景(5k 条记录以内)
|
|
73
73
|
*
|
|
74
74
|
* 依赖 EmbeddingService 接口(依赖倒置,与 llm/ 层解耦)
|
|
75
|
+
* 实现 IVectorStore 接口,宿主可替换为其他实现(如 SqliteVectorStore)
|
|
75
76
|
*/
|
|
76
|
-
export class
|
|
77
|
+
export class JsonVectorStore {
|
|
77
78
|
storePath;
|
|
78
79
|
embeddingProvider;
|
|
79
80
|
/** 内存中的向量索引 */
|
|
@@ -166,10 +167,11 @@ export class VectorStore {
|
|
|
166
167
|
*
|
|
167
168
|
* @param id 记忆 ID
|
|
168
169
|
* @param text 待嵌入的文本
|
|
170
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
169
171
|
* @throws {MemoraError} 当 embedding 返回的向量维度与已存维度不一致时抛出 configError
|
|
170
172
|
*/
|
|
171
|
-
async upsert(id, text) {
|
|
172
|
-
const vector = await this.embeddingProvider.embed(text);
|
|
173
|
+
async upsert(id, text, options) {
|
|
174
|
+
const vector = await this.embeddingProvider.embed(text, options);
|
|
173
175
|
if (this.dimension === 0) {
|
|
174
176
|
this.dimension = vector.length;
|
|
175
177
|
}
|
|
@@ -188,11 +190,12 @@ export class VectorStore {
|
|
|
188
190
|
* 加固:维度一致性校验,与 upsert 同契约
|
|
189
191
|
*
|
|
190
192
|
* @param items ID + 文本对
|
|
193
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
191
194
|
* @throws {MemoraError} 当 embedding 返回的向量维度与已存维度不一致时抛出 configError
|
|
192
195
|
*/
|
|
193
|
-
async batchUpsert(items) {
|
|
196
|
+
async batchUpsert(items, options) {
|
|
194
197
|
const texts = items.map((item) => item.text);
|
|
195
|
-
const results = await this.embeddingProvider.batchEmbed(texts);
|
|
198
|
+
const results = await this.embeddingProvider.batchEmbed(texts, options);
|
|
196
199
|
for (let i = 0; i < items.length; i++) {
|
|
197
200
|
const result = results[i];
|
|
198
201
|
const item = items[i];
|
|
@@ -228,10 +231,11 @@ export class VectorStore {
|
|
|
228
231
|
* @param query 查询文本
|
|
229
232
|
* @param topK 返回数量上限
|
|
230
233
|
* @param minSimilarity 最低相似度阈值(0~1)
|
|
234
|
+
* @param options embedding 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
231
235
|
* @returns ID + 相似度 对的数组,按相似度降序排列
|
|
232
236
|
*/
|
|
233
|
-
async search(query, topK = 5, minSimilarity = 0.3) {
|
|
234
|
-
const queryVector = await this.embeddingProvider.embed(query);
|
|
237
|
+
async search(query, topK = 5, minSimilarity = 0.3, options) {
|
|
238
|
+
const queryVector = await this.embeddingProvider.embed(query, options);
|
|
235
239
|
const scored = [];
|
|
236
240
|
for (const [id, vector] of this.entries) {
|
|
237
241
|
const similarity = cosineSimilarity(queryVector, vector);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vectorStore.js","sourceRoot":"","sources":["../../src/memory/vectorStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"vectorStore.js","sourceRoot":"","sources":["../../src/memory/vectorStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,18 +58,44 @@ export declare class PersonaManager {
|
|
|
58
58
|
*/
|
|
59
59
|
switchPersona(name: string): string;
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* 根据用户输入自动匹配最合适的角色(关键词高置信度匹配)
|
|
62
62
|
*
|
|
63
|
-
*
|
|
63
|
+
* 匹配策略:
|
|
64
|
+
* - 关键词匹配高置信度(≥ KEYWORD_HIGH_CONFIDENCE_THRESHOLD)→ 直接返回
|
|
65
|
+
* - 关键词低置信度/无匹配 → 返回 null(由 agent 层决定是否调用 LLM 辅助)
|
|
66
|
+
*
|
|
67
|
+
* LLM 辅助语义匹配已迁移到 agent 层(agent/personaMatcher.ts),
|
|
68
|
+
* 遵循 backend_layers_rules §分层职责:persona/ 不直接调 LLM。
|
|
69
|
+
*
|
|
70
|
+
* 匹配前置条件:
|
|
64
71
|
* - 当前模式为 'auto'(非手动锁定)
|
|
65
72
|
* - 缓冲区未锁定
|
|
66
|
-
* -
|
|
73
|
+
* - 角色列表非空
|
|
67
74
|
* - 匹配的角色与当前角色不同
|
|
68
75
|
*
|
|
69
76
|
* @param userInput 用户输入文本
|
|
70
77
|
* @returns 匹配的角色名,无匹配返回 null
|
|
71
78
|
*/
|
|
72
|
-
autoMatch(userInput: string): string | null
|
|
79
|
+
autoMatch(userInput: string): Promise<string | null>;
|
|
80
|
+
/**
|
|
81
|
+
* 检查是否满足自动匹配的前置条件
|
|
82
|
+
*
|
|
83
|
+
* 供 agent 层在调用 matchPersonaByLlm 前判断是否值得尝试 LLM 辅助匹配。
|
|
84
|
+
* 前置条件与 autoMatch 内部检查一致:
|
|
85
|
+
* - 当前模式为 'auto'(非手动锁定)
|
|
86
|
+
* - 缓冲区未锁定
|
|
87
|
+
* - 角色列表非空
|
|
88
|
+
*
|
|
89
|
+
* @returns 是否满足自动匹配前置条件
|
|
90
|
+
*/
|
|
91
|
+
canAutoMatch(): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* 关键词匹配:遍历角色列表,返回得分最高的角色
|
|
94
|
+
*
|
|
95
|
+
* @param userInput 用户输入文本
|
|
96
|
+
* @returns 得分最高的角色和得分,无命中返回 null
|
|
97
|
+
*/
|
|
98
|
+
private findBestKeywordMatch;
|
|
73
99
|
/**
|
|
74
100
|
* 设置激活模式
|
|
75
101
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personaManager.d.ts","sourceRoot":"","sources":["../../src/persona/personaManager.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"personaManager.d.ts","sourceRoot":"","sources":["../../src/persona/personaManager.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAMnE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgC/D;;GAEG;AACH,qBAAa,cAAc;IA0BvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IA1BzB,cAAc;IACd,OAAO,CAAC,aAAa,CAAwB;IAC7C,sBAAsB;IACtB,OAAO,CAAC,WAAW,CAAiB;IACpC,WAAW;IACX,OAAO,CAAC,IAAI,CAAuB;IACnC,0BAA0B;IAC1B,OAAO,CAAC,gBAAgB,CAAgB;IACxC,4BAA4B;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,cAAc;IACd,OAAO,CAAC,WAAW,CAA8C;IAEjE,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAClD,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IACnD,qBAAqB;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAW;IAEjD;;;OAGG;gBAEgB,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,KAAK,CAAC,EAAE,cAAc,YAAA;IAGzC;;;;;OAKG;IACG,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCnD;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;;OAIG;IACH,SAAS,IAAI,OAAO,GAAG,IAAI;IAI3B;;;;;;;;;OASG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAyBnC;;;;;;;;;;;;;;;;;;OAkBG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiB1D;;;;;;;;;;OAUG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAUhC,eAAe;IACf,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,EAAE,CAEpB;IAED;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAOb;;;;;;;;;;;OAWG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IA4B/B;;OAEG;IACH,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAUxC;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;YACW,YAAY;IAyB1B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAU7B"}
|
|
@@ -20,10 +20,13 @@
|
|
|
20
20
|
import { scoreByKeywords } from '../utils/segmenter.js';
|
|
21
21
|
import { SOURCE_LABELS } from '../memory/types.js';
|
|
22
22
|
import { logger } from '../logging/logger.js';
|
|
23
|
+
import { byScoreDesc } from '../utils/array.js';
|
|
23
24
|
import { configError } from '../utils/errors.js';
|
|
24
25
|
import { scanMarkdownDir, parseKeywords, resolveSubdir } from '../utils/scanner.js';
|
|
25
26
|
import { safeSetTimeout, clearSafeTimeout } from '../utils/safeTimer.js';
|
|
26
27
|
import { nowIso } from '../utils/time.js';
|
|
28
|
+
/** 关键词匹配高置信度阈值:≥ 此值直接返回(低置信度由 agent 层决定是否调 LLM) */
|
|
29
|
+
const KEYWORD_HIGH_CONFIDENCE_THRESHOLD = 0.5;
|
|
27
30
|
/**
|
|
28
31
|
* 从 frontmatter 解析 traits.* 键值对
|
|
29
32
|
*
|
|
@@ -164,24 +167,62 @@ export class PersonaManager {
|
|
|
164
167
|
return this.buildSystemPrompt();
|
|
165
168
|
}
|
|
166
169
|
/**
|
|
167
|
-
*
|
|
170
|
+
* 根据用户输入自动匹配最合适的角色(关键词高置信度匹配)
|
|
168
171
|
*
|
|
169
|
-
*
|
|
172
|
+
* 匹配策略:
|
|
173
|
+
* - 关键词匹配高置信度(≥ KEYWORD_HIGH_CONFIDENCE_THRESHOLD)→ 直接返回
|
|
174
|
+
* - 关键词低置信度/无匹配 → 返回 null(由 agent 层决定是否调用 LLM 辅助)
|
|
175
|
+
*
|
|
176
|
+
* LLM 辅助语义匹配已迁移到 agent 层(agent/personaMatcher.ts),
|
|
177
|
+
* 遵循 backend_layers_rules §分层职责:persona/ 不直接调 LLM。
|
|
178
|
+
*
|
|
179
|
+
* 匹配前置条件:
|
|
170
180
|
* - 当前模式为 'auto'(非手动锁定)
|
|
171
181
|
* - 缓冲区未锁定
|
|
172
|
-
* -
|
|
182
|
+
* - 角色列表非空
|
|
173
183
|
* - 匹配的角色与当前角色不同
|
|
174
184
|
*
|
|
175
185
|
* @param userInput 用户输入文本
|
|
176
186
|
* @returns 匹配的角色名,无匹配返回 null
|
|
177
187
|
*/
|
|
178
|
-
autoMatch(userInput) {
|
|
188
|
+
async autoMatch(userInput) {
|
|
179
189
|
if (this.mode !== 'auto')
|
|
180
190
|
return null;
|
|
181
191
|
if (this.switchLocked)
|
|
182
192
|
return null;
|
|
183
193
|
if (this.personaList.length === 0)
|
|
184
194
|
return null;
|
|
195
|
+
const keywordBest = this.findBestKeywordMatch(userInput);
|
|
196
|
+
// 高置信度(≥ 阈值):直接返回
|
|
197
|
+
if (keywordBest && keywordBest.score >= KEYWORD_HIGH_CONFIDENCE_THRESHOLD) {
|
|
198
|
+
if (this.activePersona?.name === keywordBest.name)
|
|
199
|
+
return null;
|
|
200
|
+
return keywordBest.name;
|
|
201
|
+
}
|
|
202
|
+
// 低置信度/无匹配:返回 null,由 agent 层决定是否调用 LLM 辅助
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* 检查是否满足自动匹配的前置条件
|
|
207
|
+
*
|
|
208
|
+
* 供 agent 层在调用 matchPersonaByLlm 前判断是否值得尝试 LLM 辅助匹配。
|
|
209
|
+
* 前置条件与 autoMatch 内部检查一致:
|
|
210
|
+
* - 当前模式为 'auto'(非手动锁定)
|
|
211
|
+
* - 缓冲区未锁定
|
|
212
|
+
* - 角色列表非空
|
|
213
|
+
*
|
|
214
|
+
* @returns 是否满足自动匹配前置条件
|
|
215
|
+
*/
|
|
216
|
+
canAutoMatch() {
|
|
217
|
+
return this.mode === 'auto' && !this.switchLocked && this.personaList.length > 0;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* 关键词匹配:遍历角色列表,返回得分最高的角色
|
|
221
|
+
*
|
|
222
|
+
* @param userInput 用户输入文本
|
|
223
|
+
* @returns 得分最高的角色和得分,无命中返回 null
|
|
224
|
+
*/
|
|
225
|
+
findBestKeywordMatch(userInput) {
|
|
185
226
|
const matches = [];
|
|
186
227
|
for (const persona of this.personaList) {
|
|
187
228
|
if (persona.keywords.length === 0)
|
|
@@ -193,16 +234,8 @@ export class PersonaManager {
|
|
|
193
234
|
}
|
|
194
235
|
if (matches.length === 0)
|
|
195
236
|
return null;
|
|
196
|
-
matches.sort(
|
|
197
|
-
|
|
198
|
-
const best = matches[0];
|
|
199
|
-
if (!best)
|
|
200
|
-
return null;
|
|
201
|
-
if (best.score < 0.5)
|
|
202
|
-
return null;
|
|
203
|
-
if (this.activePersona?.name === best.name)
|
|
204
|
-
return null;
|
|
205
|
-
return best.name;
|
|
237
|
+
matches.sort(byScoreDesc);
|
|
238
|
+
return matches[0] ?? null;
|
|
206
239
|
}
|
|
207
240
|
/**
|
|
208
241
|
* 设置激活模式
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personaManager.js","sourceRoot":"","sources":["../../src/persona/personaManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"personaManager.js","sourceRoot":"","sources":["../../src/persona/personaManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathGuard.d.ts","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pathGuard.d.ts","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 路径白名单 + 审计日志
|
|
3
3
|
*
|
|
4
|
-
* 4 类允许根 +
|
|
4
|
+
* 4 类允许根 + 28 类禁止规则
|
|
5
5
|
* 详见 ADR-006 · 安全模型
|
|
6
6
|
*
|
|
7
7
|
* 写入二次确认 + 审计日志:未注入 confirmationHandler 时 fail-closed 拒绝写入。
|
|
@@ -75,6 +75,8 @@ const BLOCKED_PATTERNS = [
|
|
|
75
75
|
/(^|[\\/])\.config[\\/]gcloud([\\/]|$)/i, // gcloud 配置(加 .config 前缀边界,避免误拦用户 gcloud-tools 目录)
|
|
76
76
|
// ─── 环境变量文件(.env / .env.local / .env.production.local 等多段后缀)───
|
|
77
77
|
/(^|[\\/])\.env(\.[^\\/]+)?$/i,
|
|
78
|
+
// .envrc(direnv 配置,可含环境变量和密钥,独立于 .env.* 后缀模式)
|
|
79
|
+
/(^|[\\/])\.envrc$/i,
|
|
78
80
|
// ─── Windows 系统目录 ───
|
|
79
81
|
/[\\/]Windows([\\/]|$)/i, // C:\Windows(含 System、System32 等子目录)
|
|
80
82
|
/[\\/]Program Files([\\/]|$)/i, // C:\Program Files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathGuard.js","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pathGuard.js","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillManager.d.ts","sourceRoot":"","sources":["../../src/skill/skillManager.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"skillManager.d.ts","sourceRoot":"","sources":["../../src/skill/skillManager.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAMnE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI/D;;GAEG;AACH,qBAAa,YAAY;IASrB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IATzB,sBAAsB;IACtB,OAAO,CAAC,MAAM,CAAoB;IAElC;;;OAGG;gBAEgB,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,KAAK,CAAC,EAAE,cAAc,YAAA;IAGzC;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAa7B;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAgC3C;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAIpC;;OAEG;IACH,IAAI,IAAI,IAAI,UAAU,EAAE,CAEvB;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAYjC;;;;;;;;;;;OAWG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAW/B;;;;;;;;OAQG;IACH,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAUxC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;OAKG;YACW,UAAU;CAuBzB"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { scoreByKeywords } from '../utils/segmenter.js';
|
|
20
20
|
import { SOURCE_LABELS } from '../memory/types.js';
|
|
21
21
|
import { logger } from '../logging/logger.js';
|
|
22
|
+
import { byScoreDesc } from '../utils/array.js';
|
|
22
23
|
import { configError } from '../utils/errors.js';
|
|
23
24
|
import { nowIso } from '../utils/time.js';
|
|
24
25
|
import { scanMarkdownDir, parseKeywords, parseTrigger, resolveSubdir } from '../utils/scanner.js';
|
|
@@ -84,7 +85,7 @@ export class SkillManager {
|
|
|
84
85
|
if (matches.length === 0)
|
|
85
86
|
return null;
|
|
86
87
|
// 得分从高到低排序,取第一个
|
|
87
|
-
matches.sort(
|
|
88
|
+
matches.sort(byScoreDesc);
|
|
88
89
|
const best = matches[0];
|
|
89
90
|
if (!best)
|
|
90
91
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillManager.js","sourceRoot":"","sources":["../../src/skill/skillManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEjG;;GAEG;AACH,MAAM,OAAO,YAAY;IASJ;IACA;IATnB,sBAAsB;IACd,MAAM,GAAiB,EAAE,CAAC;IAElC;;;OAGG;IACH,YACmB,SAAkB,EAClB,KAAsB;QADtB,cAAS,GAAT,SAAS,CAAS;QAClB,UAAK,GAAL,KAAK,CAAiB;IACtC,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CACT,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EACpE,QAAQ,CACT,CAAC;QAEF,+CAA+C;QAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAiB;QACrB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1C,yBAAyB;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC9E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAE1C,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,gBAAgB;QAChB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"skillManager.js","sourceRoot":"","sources":["../../src/skill/skillManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 数组工具函数模块
|
|
3
|
+
*
|
|
4
|
+
* 职责:
|
|
5
|
+
* - 提供通用的数组排序、去重、拷贝等纯函数工具
|
|
6
|
+
*
|
|
7
|
+
* 设计原则(ADR-017 枝叶层 2 次提取):
|
|
8
|
+
* - 同一模式在 2+ 文件出现时提取到此处
|
|
9
|
+
* - 纯函数,零依赖,可被任何内核模块安全导入
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* 按 score 字段降序排序的比较函数
|
|
13
|
+
*
|
|
14
|
+
* 用于记忆/角色/技能等带 score 字段的排序场景。
|
|
15
|
+
* 9 处 `.sort((a, b) => b.score - a.score)` 的统一提取(ADR-017 枝叶层 2 次提取)。
|
|
16
|
+
*
|
|
17
|
+
* @param a 前一个元素
|
|
18
|
+
* @param b 后一个元素
|
|
19
|
+
* @returns 负数表示 a 排前,正数表示 b 排前
|
|
20
|
+
*/
|
|
21
|
+
export declare function byScoreDesc<T extends {
|
|
22
|
+
score: number;
|
|
23
|
+
}>(a: T, b: T): number;
|
|
24
|
+
//# sourceMappingURL=array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAE3E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 数组工具函数模块
|
|
3
|
+
*
|
|
4
|
+
* 职责:
|
|
5
|
+
* - 提供通用的数组排序、去重、拷贝等纯函数工具
|
|
6
|
+
*
|
|
7
|
+
* 设计原则(ADR-017 枝叶层 2 次提取):
|
|
8
|
+
* - 同一模式在 2+ 文件出现时提取到此处
|
|
9
|
+
* - 纯函数,零依赖,可被任何内核模块安全导入
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* 按 score 字段降序排序的比较函数
|
|
13
|
+
*
|
|
14
|
+
* 用于记忆/角色/技能等带 score 字段的排序场景。
|
|
15
|
+
* 9 处 `.sort((a, b) => b.score - a.score)` 的统一提取(ADR-017 枝叶层 2 次提取)。
|
|
16
|
+
*
|
|
17
|
+
* @param a 前一个元素
|
|
18
|
+
* @param b 后一个元素
|
|
19
|
+
* @returns 负数表示 a 排前,正数表示 b 排前
|
|
20
|
+
*/
|
|
21
|
+
export function byScoreDesc(a, b) {
|
|
22
|
+
return b.score - a.score;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAA8B,CAAI,EAAE,CAAI;IACjE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAC3B,CAAC"}
|