@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
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 通用 Agent 内核 — 本地、私有、领域无关,万物皆记忆
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/memora)
|
|
5
|
+
[](https://www.npmjs.com/package/@zooique/memora)
|
|
6
6
|
[](https://nodejs.org)
|
|
7
7
|
[](https://www.typescriptlang.org)
|
|
8
8
|
[](LICENSE)
|
|
@@ -28,13 +28,13 @@ Memora 是一个**无法独立运行**的智能大脑内核——它只有接口
|
|
|
28
28
|
### 安装
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
npm install memora
|
|
31
|
+
npm install @zooique/memora
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
### 创建 Agent
|
|
35
35
|
|
|
36
36
|
```typescript
|
|
37
|
-
import { Agent, createLlmProvider } from 'memora';
|
|
37
|
+
import { Agent, createLlmProvider } from '@zooique/memora';
|
|
38
38
|
|
|
39
39
|
// 宿主职责:创建 LLM Provider
|
|
40
40
|
const provider = createLlmProvider({
|
|
@@ -101,16 +101,16 @@ await agent.close();
|
|
|
101
101
|
```
|
|
102
102
|
src/
|
|
103
103
|
├── index.ts # 库导出入口(纯类型 + 接口导出,无 CLI)
|
|
104
|
-
├── agent/ # Agent
|
|
105
|
-
├── memory/ # 记忆引擎(IMemoryStorage
|
|
104
|
+
├── agent/ # Agent 门面 + AgentLoop + 工具执行 + managers/(13 个专职 Manager)
|
|
105
|
+
├── memory/ # 记忆引擎(IMemoryStorage + IMemoryRelationStore + 召回 + 向量存储)
|
|
106
106
|
├── persona/ # 角色管理
|
|
107
107
|
├── skill/ # 技能管理
|
|
108
108
|
├── llm/ # LLM 适配层
|
|
109
109
|
├── security/ # 安全策略
|
|
110
110
|
├── config/ # 配置加载
|
|
111
|
-
├── logging/ #
|
|
112
|
-
├── eval/ # 评估框架(
|
|
113
|
-
└── utils/ #
|
|
111
|
+
├── logging/ # 日志(ILogger 接口 + console fallback)
|
|
112
|
+
├── eval/ # 评估框架(EvalScenario + EvalRunner,CI 回归测试用)
|
|
113
|
+
└── utils/ # 工具函数(含 eventEmitter.ts 事件系统)
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
## 技术栈
|
package/dist/agent/agent.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentLoop } from '../agent/loop.js';
|
|
2
|
-
import type { AgentChunk,
|
|
2
|
+
import type { AgentChunk, ArchiveMode, AgentOptions, AgentContext } from '../agent/types.js';
|
|
3
3
|
import type { ToolExecutor } from '../agent/toolExecutor.js';
|
|
4
4
|
import type { MessageHistory } from '../agent/messageHistory.js';
|
|
5
5
|
import { ProjectManager, type ProjectContext } from '../memory/projectManager.js';
|
|
@@ -9,75 +9,18 @@ import type { UserProfile, UserProfileEntry } from '../memory/userProfile.js';
|
|
|
9
9
|
import type { SkillManager } from '../skill/skillManager.js';
|
|
10
10
|
import type { InsightExtractor } from '../agent/managers/insightExtractor.js';
|
|
11
11
|
import type { SessionArchiveResult } from '../agent/managers/sessionArchiver.js';
|
|
12
|
+
import type { TextPolishManager } from '../agent/managers/textPolishManager.js';
|
|
12
13
|
import type { ConfigManager } from '../agent/managers/configManager.js';
|
|
13
14
|
import type { WorkProjectionManager } from '../agent/managers/workProjection.js';
|
|
14
15
|
import type { MemoryInspector } from '../agent/managers/memoryInspector.js';
|
|
16
|
+
import type { DedupReport } from '../agent/managers/memoryInspector.js';
|
|
17
|
+
import type { TimelinessReport } from '../agent/managers/memoryDecayScheduler.js';
|
|
18
|
+
import type { ConflictReport } from '../agent/managers/memoryAdvisor.js';
|
|
15
19
|
import { SessionManager, type AgentForkResult } from '../agent/managers/sessionManager.js';
|
|
16
20
|
import { TypedEventEmitter, type AgentEventMap } from '../utils/eventEmitter.js';
|
|
17
21
|
import type { LlmProvider } from '../llm/provider.js';
|
|
18
22
|
import type { Memory } from '../memory/types.js';
|
|
19
|
-
import type {
|
|
20
|
-
import type { IMemoryRelationStore } from '../memory/relationStore.js';
|
|
21
|
-
import type { ISessionStore } from '../memory/sessionStore.js';
|
|
22
|
-
import type { VectorStore } from '../memory/vectorStore.js';
|
|
23
|
-
import type { ITracer, AgentMetrics } from '../agent/tracer.js';
|
|
24
|
-
/** Agent 构造选项 */
|
|
25
|
-
export interface AgentOptions {
|
|
26
|
-
/** 项目路径(必须) */
|
|
27
|
-
projectPath: string;
|
|
28
|
-
/** 前台 LLM Provider(必须,宿主负责创建) */
|
|
29
|
-
provider: LlmProvider;
|
|
30
|
-
/** 后台 LLM Provider(可选,用于投影等后台操作,不配时复用前台) */
|
|
31
|
-
backgroundProvider?: LlmProvider;
|
|
32
|
-
/** 配置目录(personas/rules/skills) */
|
|
33
|
-
configDir?: string;
|
|
34
|
-
/** 记忆数据目录(默认 ~/.memora) */
|
|
35
|
-
dataDir?: string;
|
|
36
|
-
/** 项目注册表目录(默认与 dataDir 相同)。设为用户级路径可避免每项目重复存储 */
|
|
37
|
-
registryDir?: string;
|
|
38
|
-
/** 最大上下文 token 数(默认 120000) */
|
|
39
|
-
maxContextTokens?: number;
|
|
40
|
-
/** 默认角色名 */
|
|
41
|
-
persona?: string;
|
|
42
|
-
/** 安全权限 */
|
|
43
|
-
permission?: 'owner' | 'guest';
|
|
44
|
-
/** 允许的路径白名单 */
|
|
45
|
-
allowedPaths?: string[];
|
|
46
|
-
/** 写入确认 */
|
|
47
|
-
confirmWrites?: boolean;
|
|
48
|
-
/** 向量存储(可选,提供时启用语义搜索召回) */
|
|
49
|
-
vectorStore?: VectorStore;
|
|
50
|
-
/** 召回时排除的 source 标签(默认 ['persona', 'rule', 'skill'],这些已由 bootstrap 注入) */
|
|
51
|
-
recallExcludeSources?: string[];
|
|
52
|
-
/** 外部注入的存储实例(可选,不传则内部创建 InMemoryStorage) */
|
|
53
|
-
storage?: IMemoryStorage;
|
|
54
|
-
/** 外部注入的记忆关系存储(可选,ADR-014 侧车模型,不传则跳过关系构建) */
|
|
55
|
-
relationStore?: IMemoryRelationStore;
|
|
56
|
-
/** 外部注入的会话存储(可选,不传则仅在内存中保存) */
|
|
57
|
-
sessionStore?: ISessionStore;
|
|
58
|
-
/** 可观测性 Tracer(可选,不传则使用 NoopTracer 静默丢弃所有 span) */
|
|
59
|
-
tracer?: ITracer;
|
|
60
|
-
/** 宿主可覆盖的 UI 消息文本(默认英文,宿主覆盖为中文等) */
|
|
61
|
-
messages?: UIMessages;
|
|
62
|
-
/** 上下文超限时是否自动生成摘要(默认 true,开启后首次截断时增加 ~1-2s 延迟) */
|
|
63
|
-
enableContextSummary?: boolean;
|
|
64
|
-
/**
|
|
65
|
-
* 归档模式(ADR-015,默认 'full')
|
|
66
|
-
*
|
|
67
|
-
* - 'full':profile facts + insight 自动归档(对话原始内容待会话归档实现后自动)
|
|
68
|
-
* - 'insights-only':profile facts + insight 自动归档,对话原始内容需手动
|
|
69
|
-
* - 'manual':所有归档都需手动触发
|
|
70
|
-
*/
|
|
71
|
-
archiveMode?: ArchiveMode;
|
|
72
|
-
}
|
|
73
|
-
/** Agent 初始化后暴露的运行时上下文 */
|
|
74
|
-
export type AgentContext = ProjectContext;
|
|
75
|
-
/** Agent 项目条目(来自 ProjectManager 注册表) */
|
|
76
|
-
export interface AgentProjectEntry {
|
|
77
|
-
name: string;
|
|
78
|
-
path: string;
|
|
79
|
-
lastOpened: string;
|
|
80
|
-
}
|
|
23
|
+
import type { AgentMetrics } from '../agent/tracer.js';
|
|
81
24
|
/**
|
|
82
25
|
* Memora Agent 门面类
|
|
83
26
|
*
|
|
@@ -124,35 +67,21 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
|
|
|
124
67
|
private autoConfigRefiner;
|
|
125
68
|
/** SessionArchiver(会话内容归档器,content 类记忆) */
|
|
126
69
|
private sessionArchiver;
|
|
70
|
+
/** TextPolishManager(文本润色管理器,LLM 语法修正 + 表达优化) */
|
|
71
|
+
private textPolisher;
|
|
127
72
|
/** 会话管理器(从 Agent 拆分出的会话管理职责) */
|
|
128
73
|
private _sessionManager;
|
|
129
74
|
/** 当前激活的技能名(上一轮匹配,本轮注入) */
|
|
130
75
|
private activeSkill;
|
|
131
76
|
private _initialized;
|
|
132
77
|
private pctx;
|
|
133
|
-
/** chat() 并发锁 */
|
|
134
|
-
private _chatBusy;
|
|
135
78
|
/**
|
|
136
|
-
* chat()
|
|
137
|
-
*
|
|
138
|
-
* 设计目的:
|
|
139
|
-
* 原锁是简单布尔值 `_chatBusy`,无 owner 校验。超时回调与 finally 块无差别清理,
|
|
140
|
-
* 导致 race condition:T=0 A 获取锁 → T=180s 超时释放 → T=181s B 获取锁
|
|
141
|
-
* → T=182s A 的 finally 误清 B 的锁/计时器/controller。
|
|
142
|
-
*
|
|
143
|
-
* 防护方案:
|
|
144
|
-
* - 获取锁时 token 递增:`const myToken = ++this._chatLockToken`
|
|
145
|
-
* - 超时回调校验 `this._chatLockToken === myToken` 后才释放
|
|
146
|
-
* - finally 块校验 `this._chatLockToken === myToken` 后才清理
|
|
147
|
-
* - 不匹配时跳过清理,避免误清新调用者的资源
|
|
79
|
+
* chat() 并发锁管理器(init 时创建,close 时销毁)
|
|
148
80
|
*
|
|
149
|
-
*
|
|
81
|
+
* 职责:chat() 并发锁 + token 校验(race condition 防护)+ 超时保护 + 外部 signal 合并。
|
|
82
|
+
* 详见 ChatLockManager 类注释。
|
|
150
83
|
*/
|
|
151
|
-
private
|
|
152
|
-
/** 聊天锁超时计时器(防止 LLM 卡死时锁永久持有) */
|
|
153
|
-
private chatLockTimer;
|
|
154
|
-
/** chat() 内部 AbortController(超时时中断 generator,防止并发) */
|
|
155
|
-
private chatAbortController;
|
|
84
|
+
private chatLockManager;
|
|
156
85
|
/** 记忆衰减定时器(已迁移至 MemoryDecayScheduler,此字段保留用于 close 时引用判断) */
|
|
157
86
|
private decayTimer;
|
|
158
87
|
/** 最近一次 chat() 调用的时间戳 */
|
|
@@ -181,7 +110,7 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
|
|
|
181
110
|
*
|
|
182
111
|
* 本方法让宿主在确认 generator 挂起后强制释放锁,让用户能立即发起新对话。
|
|
183
112
|
*
|
|
184
|
-
*
|
|
113
|
+
* 安全机制(委托至 ChatLockManager.forceRelease):
|
|
185
114
|
* - 递增 _chatLockToken,让原 chat() 的 finally 块检测到 token 不匹配后
|
|
186
115
|
* 跳过资源清理(避免误清新调用者的 _chatBusy/chatAbortController)
|
|
187
116
|
* - abort chatAbortController,让响应 signal 的 await 点(如 fetch)退出
|
|
@@ -225,6 +154,12 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
|
|
|
225
154
|
* (会话归档实现后,`insights-only` 将跳过对话原始内容自动归档)
|
|
226
155
|
*/
|
|
227
156
|
private postProcess;
|
|
157
|
+
/**
|
|
158
|
+
* postProcess 内部实现(为 span 埋点提供 try/finally 包裹边界)
|
|
159
|
+
*
|
|
160
|
+
* 原 postProcess 逻辑完整保留于此,由外层 postProcess 负责 span 生命周期管理。
|
|
161
|
+
*/
|
|
162
|
+
private postProcessInner;
|
|
228
163
|
/**
|
|
229
164
|
* 发送用户消息,非流式返回完整回复
|
|
230
165
|
*/
|
|
@@ -351,18 +286,17 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
|
|
|
351
286
|
* @param requires 需要检查的组件列表
|
|
352
287
|
*/
|
|
353
288
|
private assertInitialized;
|
|
354
|
-
/**
|
|
355
|
-
* 非空断言守卫——对 null/undefined 值抛出清晰错误的运行时检查
|
|
356
|
-
*
|
|
357
|
-
* @param value 可能为 null/undefined 的值
|
|
358
|
-
* @param name 组件名称(用于错误消息)
|
|
359
|
-
* @throws MemoraError 如果 value 为 null/undefined
|
|
360
|
-
*/
|
|
361
|
-
private requireNonNull;
|
|
362
289
|
/**
|
|
363
290
|
* 关闭 Agent,释放 SQLite 连接等资源
|
|
364
291
|
*/
|
|
365
292
|
close(): Promise<void>;
|
|
293
|
+
/**
|
|
294
|
+
* 统一 null 化所有组件字段(新增 Manager 时在此处追加一行)
|
|
295
|
+
*
|
|
296
|
+
* 仅处理"纯 null 化"字段,带副作用的清理(dispose/stop/close/shutdown)
|
|
297
|
+
* 仍由 close() 显式调用,顺序敏感不可合并。
|
|
298
|
+
*/
|
|
299
|
+
private nullifyAllComponents;
|
|
366
300
|
get initialized(): boolean;
|
|
367
301
|
get context(): AgentContext | null;
|
|
368
302
|
get agentLoop(): AgentLoop | null;
|
|
@@ -433,6 +367,47 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
|
|
|
433
367
|
* 宿主项目常用模式:`const mem = agent.memory; if (!mem) return [];`
|
|
434
368
|
*/
|
|
435
369
|
get memory(): MemoryInspector | null;
|
|
370
|
+
/**
|
|
371
|
+
* L1 语义去重(委托 MemoryInspector.deduplicateMemories)
|
|
372
|
+
*
|
|
373
|
+
* 扫描名称相似的记忆对,调用 LLM 判断语义等价,降级低分记忆(score→0.1,不物理删除)。
|
|
374
|
+
* backgroundProvider 未注入或 Agent 未初始化时返回 skippedReason 报告,不抛错。
|
|
375
|
+
*
|
|
376
|
+
* @param signal 可选的 AbortSignal(取消进行中的 LLM 判断)
|
|
377
|
+
* @returns 去重报告(扫描数 / 降级 ID 列表 / 跳过原因)
|
|
378
|
+
*/
|
|
379
|
+
deduplicateMemories(signal?: AbortSignal): Promise<DedupReport>;
|
|
380
|
+
/**
|
|
381
|
+
* L2 时效性评估(委托 MemoryDecayScheduler.evaluateTimeliness)
|
|
382
|
+
*
|
|
383
|
+
* 扫描低分记忆(score<0.3),调用 LLM 判断是否过时,降级过时记忆(score→0.05)。
|
|
384
|
+
* backgroundProvider 未注入或 Agent 未初始化时返回 skippedReason 报告,不抛错。
|
|
385
|
+
*
|
|
386
|
+
* 使用场景:
|
|
387
|
+
* - G2 自动触发:onDecayCompleted 钩子内 fire-and-forget 调用
|
|
388
|
+
* - 手动触发:宿主 UI 健康度面板"时效性评估"按钮
|
|
389
|
+
*
|
|
390
|
+
* @param signal 可选的 AbortSignal
|
|
391
|
+
* @returns 评估报告(扫描数 / 过时数 / 降级 ID 列表 / 跳过原因)
|
|
392
|
+
*/
|
|
393
|
+
evaluateTimeliness(signal?: AbortSignal): Promise<TimelinessReport>;
|
|
394
|
+
/**
|
|
395
|
+
* 手动触发一次 L0 记忆衰减(委托 MemoryDecayScheduler.runOnce)
|
|
396
|
+
*
|
|
397
|
+
* 执行纯 score 递减(无 LLM 调用),衰减完成后触发 decayCompleted 事件。
|
|
398
|
+
* 供宿主 UI 手动触发(如仪表盘"立即衰减"按钮),与定时器自动触发路径一致。
|
|
399
|
+
*/
|
|
400
|
+
runMemoryDecayOnce(): void;
|
|
401
|
+
/**
|
|
402
|
+
* L3 冲突检测(委托 MemoryAdvisor.detectConflicts)
|
|
403
|
+
*
|
|
404
|
+
* 同 source 内配对,调用 LLM 判断语义冲突,仅检测不修复(需用户决策)。
|
|
405
|
+
* backgroundProvider 未注入或 Agent 未初始化时返回 skippedReason 报告,不抛错。
|
|
406
|
+
*
|
|
407
|
+
* @param signal 可选的 AbortSignal
|
|
408
|
+
* @returns 冲突报告(扫描数 / 冲突数 / 冲突详情列表 / 跳过原因)
|
|
409
|
+
*/
|
|
410
|
+
detectConflicts(signal?: AbortSignal): Promise<ConflictReport>;
|
|
436
411
|
/**
|
|
437
412
|
* 项目管理器(可能为 null)
|
|
438
413
|
*
|
|
@@ -471,5 +446,7 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
|
|
|
471
446
|
get works(): WorkProjectionManager | null;
|
|
472
447
|
/** 会话管理器(宿主可通过此 getter 访问会话恢复/切换/分叉功能) */
|
|
473
448
|
get sessionManager(): SessionManager | null;
|
|
449
|
+
/** 文本润色管理器(宿主可通过此 getter 调用 polish 方法) */
|
|
450
|
+
get polish(): TextPolishManager | null;
|
|
474
451
|
}
|
|
475
452
|
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
|