sentinel-agentos 0.3.0 → 0.3.1

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.
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Evaluation Bridge — Evaluator 三阶段评估接入 OpenClaw
3
+ *
4
+ * 职责:在每个 tool call 的 preCheck/postCheck 中自动采集指标,
5
+ * 累积到 Profiler,定期生成质量报告注入 daily log。
6
+ *
7
+ * 数据流:
8
+ * Guard preCheck → PreExecEvaluator → 参数质量+上下文利用评分
9
+ * tool 执行 → RuntimeEvaluator → 重试/超时/自纠正评分
10
+ * Guard postCheck → PostExecEvaluator → 验证通过/用户接受评分
11
+ * ↓
12
+ * AgentProfiler → 综合评分(0-100) + 趋势 + 警告/亮点
13
+ * ↓
14
+ * ImplicitFeedback → 从 audit log 推断用户满意度
15
+ */
16
+ import { WorkingMemory } from '../memory/working';
17
+ import { AgentProfile } from '../evaluator/profiler';
18
+ export declare class EvaluationBridge {
19
+ private schemaGate;
20
+ private riskGate;
21
+ private working;
22
+ private preEvaluator;
23
+ private runtimeEvaluator;
24
+ private postEvaluator;
25
+ private feedback;
26
+ private profiler;
27
+ private sessionId;
28
+ private pending;
29
+ constructor(working: WorkingMemory, sessionId?: string);
30
+ /** tool 执行前:采集 PreExec 指标,返回操作 ID */
31
+ preExec(toolName: string, params: Record<string, unknown>): string;
32
+ /** tool 执行后:采集 Runtime + PostExec 指标,计入 Profiler */
33
+ postExec(opId: string, options?: {
34
+ hadTimeout?: boolean;
35
+ retryCount?: number;
36
+ wasSelfCorrected?: boolean;
37
+ verifyPassed?: boolean;
38
+ verifyChecks?: number;
39
+ verifyFailures?: number;
40
+ result?: unknown;
41
+ }): void;
42
+ /** 记录隐式反馈信号 */
43
+ recordFeedback(signal: string, confidence?: number): void;
44
+ /** 获取综合质量画像 */
45
+ getProfile(): AgentProfile;
46
+ /** 获取满意度分数 */
47
+ getSatisfaction(): number;
48
+ /** 获取反馈统计 */
49
+ getFeedbackStats(): {
50
+ totalSignals: number;
51
+ positiveSignals: number;
52
+ negativeSignals: number;
53
+ averageStrength: number;
54
+ mostCommonSignal: import("..").SignalType | null;
55
+ };
56
+ /** 获取工具准确率 */
57
+ getToolAccuracy(): Record<string, {
58
+ calls: number;
59
+ successRate: number;
60
+ }>;
61
+ /** 获取结果利用率 */
62
+ getUtilizationRate(): number;
63
+ /** 获取本次会话的操作数 */
64
+ getOperationCount(): number;
65
+ /** 生成人类可读的评估报告 */
66
+ generateReport(): string;
67
+ /** 生成精简版报告(注入 daily log) */
68
+ generateCompactReport(): string;
69
+ /** 追加报告到 daily log */
70
+ appendToDailyLog(workspaceRoot: string): void;
71
+ /** 导出可序列化的状态 */
72
+ exportState(): object;
73
+ /** 导入之前的状态(用于恢复) */
74
+ importState(state: any): void;
75
+ }
76
+ export declare function getEvaluationBridge(working?: WorkingMemory, sessionId?: string): EvaluationBridge;
77
+ export declare function resetEvaluationBridge(): void;
78
+ //# sourceMappingURL=evaluation-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluation-bridge.d.ts","sourceRoot":"","sources":["../../src/adapters/evaluation-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,OAAO,EAAiB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKpE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,OAAO,CAAmF;gBAEtF,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM;IActD,qCAAqC;IACrC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAalE,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;QAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;KACb,GAAG,IAAI;IAwCb,eAAe;IACf,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAkBzD,eAAe;IACf,UAAU,IAAI,YAAY;IAI1B,cAAc;IACd,eAAe,IAAI,MAAM;IAIzB,aAAa;IACb,gBAAgB;;;;;;;IAIhB,cAAc;IACd,eAAe;;;;IAIf,cAAc;IACd,kBAAkB,IAAI,MAAM;IAI5B,iBAAiB;IACjB,iBAAiB,IAAI,MAAM;IAM3B,kBAAkB;IAClB,cAAc,IAAI,MAAM;IA0CxB,4BAA4B;IAC5B,qBAAqB,IAAI,MAAM;IAc/B,sBAAsB;IACtB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAiB7C,gBAAgB;IAChB,WAAW,IAAI,MAAM;IAWrB,oBAAoB;IACpB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;CAI9B;AAKD,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAMjG;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,273 @@
1
+ "use strict";
2
+ /**
3
+ * Evaluation Bridge — Evaluator 三阶段评估接入 OpenClaw
4
+ *
5
+ * 职责:在每个 tool call 的 preCheck/postCheck 中自动采集指标,
6
+ * 累积到 Profiler,定期生成质量报告注入 daily log。
7
+ *
8
+ * 数据流:
9
+ * Guard preCheck → PreExecEvaluator → 参数质量+上下文利用评分
10
+ * tool 执行 → RuntimeEvaluator → 重试/超时/自纠正评分
11
+ * Guard postCheck → PostExecEvaluator → 验证通过/用户接受评分
12
+ * ↓
13
+ * AgentProfiler → 综合评分(0-100) + 趋势 + 警告/亮点
14
+ * ↓
15
+ * ImplicitFeedback → 从 audit log 推断用户满意度
16
+ */
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || (function () {
34
+ var ownKeys = function(o) {
35
+ ownKeys = Object.getOwnPropertyNames || function (o) {
36
+ var ar = [];
37
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
+ return ar;
39
+ };
40
+ return ownKeys(o);
41
+ };
42
+ return function (mod) {
43
+ if (mod && mod.__esModule) return mod;
44
+ var result = {};
45
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
+ __setModuleDefault(result, mod);
47
+ return result;
48
+ };
49
+ })();
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.EvaluationBridge = void 0;
52
+ exports.getEvaluationBridge = getEvaluationBridge;
53
+ exports.resetEvaluationBridge = resetEvaluationBridge;
54
+ const schema_gate_1 = require("../guard/schema-gate");
55
+ const risk_gate_1 = require("../guard/risk-gate");
56
+ const exec_evaluator_1 = require("../evaluator/exec-evaluator");
57
+ const exec_evaluator_2 = require("../evaluator/exec-evaluator");
58
+ const exec_evaluator_3 = require("../evaluator/exec-evaluator");
59
+ const profiler_1 = require("../evaluator/profiler");
60
+ const feedback_1 = require("../evaluator/feedback");
61
+ const fs = __importStar(require("fs"));
62
+ const path = __importStar(require("path"));
63
+ class EvaluationBridge {
64
+ schemaGate;
65
+ riskGate;
66
+ working;
67
+ preEvaluator;
68
+ runtimeEvaluator;
69
+ postEvaluator;
70
+ feedback;
71
+ profiler;
72
+ sessionId;
73
+ // 待完成的评估周期(pre 已记录,等待 post)
74
+ pending = new Map();
75
+ constructor(working, sessionId) {
76
+ this.schemaGate = new schema_gate_1.SchemaGate();
77
+ this.riskGate = new risk_gate_1.RiskGate();
78
+ this.working = working;
79
+ this.preEvaluator = new exec_evaluator_1.PreExecEvaluator(this.schemaGate, this.riskGate, this.working);
80
+ this.runtimeEvaluator = new exec_evaluator_2.RuntimeEvaluator();
81
+ this.postEvaluator = new exec_evaluator_3.PostExecEvaluator();
82
+ this.feedback = new feedback_1.ImplicitFeedbackEngine();
83
+ this.profiler = new profiler_1.AgentProfiler(this.feedback);
84
+ this.sessionId = sessionId || `eval_${Date.now()}`;
85
+ }
86
+ // ============== 生命周期 ==============
87
+ /** tool 执行前:采集 PreExec 指标,返回操作 ID */
88
+ preExec(toolName, params) {
89
+ const opId = `op_${Date.now()}_${Math.random().toString(36).slice(2, 6)}`;
90
+ const preMetric = this.preEvaluator.evaluate(toolName, params);
91
+ this.pending.set(opId, {
92
+ preMetric,
93
+ startTime: Date.now(),
94
+ toolName,
95
+ });
96
+ return opId;
97
+ }
98
+ /** tool 执行后:采集 Runtime + PostExec 指标,计入 Profiler */
99
+ postExec(opId, options = {}) {
100
+ const entry = this.pending.get(opId);
101
+ if (!entry)
102
+ return;
103
+ const endTime = Date.now();
104
+ const { preMetric, startTime, toolName } = entry;
105
+ this.pending.delete(opId);
106
+ // Runtime 评估
107
+ const runtime = this.runtimeEvaluator.evaluate({
108
+ toolName,
109
+ startTime,
110
+ endTime,
111
+ retryCount: options.retryCount ?? 0,
112
+ wasSelfCorrected: options.wasSelfCorrected ?? false,
113
+ hadTimeout: options.hadTimeout ?? false,
114
+ toolResult: options.result,
115
+ });
116
+ // Post 评估
117
+ const post = this.postEvaluator.evaluate({
118
+ verifyPassed: options.verifyPassed ?? true,
119
+ verifyChecks: options.verifyChecks ?? 1,
120
+ verifyFailures: options.verifyFailures ?? 0,
121
+ userAccepted: true, // 默认 true,feedback 会修正
122
+ userProvidedEdit: false,
123
+ resultWasUsed: false,
124
+ });
125
+ // 追踪结果(后续 detected usage)
126
+ if (options.result !== undefined) {
127
+ this.postEvaluator.trackResult(opId, options.result);
128
+ }
129
+ // 入 Profiler
130
+ this.profiler.recordCycle(this.sessionId, preMetric, runtime, post);
131
+ }
132
+ // ============== Feedback ==============
133
+ /** 记录隐式反馈信号 */
134
+ recordFeedback(signal, confidence) {
135
+ const validSignals = [
136
+ 'user_deleted_code', 'user_modified_output', 'user_repeated_instruction',
137
+ 'user_immediate_continue', 'user_used_result', 'user_silence_then_praise',
138
+ 'user_interrupted', 'agent_self_corrected', 'user_explicit_approval',
139
+ 'user_shared_output', 'user_provided_correction', 'user_ignored_result',
140
+ ];
141
+ if (!validSignals.includes(signal)) {
142
+ console.warn(`[Evaluator] Unknown signal: ${signal}`);
143
+ return;
144
+ }
145
+ this.feedback.record(signal, this.sessionId, undefined, confidence ?? 0.8);
146
+ }
147
+ // ============== 查询 ==============
148
+ /** 获取综合质量画像 */
149
+ getProfile() {
150
+ return this.profiler.getProfile(this.sessionId);
151
+ }
152
+ /** 获取满意度分数 */
153
+ getSatisfaction() {
154
+ return this.feedback.getSatisfactionScore(this.sessionId);
155
+ }
156
+ /** 获取反馈统计 */
157
+ getFeedbackStats() {
158
+ return this.feedback.stats();
159
+ }
160
+ /** 获取工具准确率 */
161
+ getToolAccuracy() {
162
+ return this.runtimeEvaluator.getToolAccuracy();
163
+ }
164
+ /** 获取结果利用率 */
165
+ getUtilizationRate() {
166
+ return this.postEvaluator.getUtilizationRate();
167
+ }
168
+ /** 获取本次会话的操作数 */
169
+ getOperationCount() {
170
+ return this.pending.size + (this.getProfile().totalOps || 0);
171
+ }
172
+ // ============== 报告生成 ==============
173
+ /** 生成人类可读的评估报告 */
174
+ generateReport() {
175
+ const profile = this.getProfile();
176
+ const feedbackStats = this.getFeedbackStats();
177
+ const toolAcc = this.getToolAccuracy();
178
+ const satisfaction = this.getSatisfaction();
179
+ const lines = [
180
+ '═══ 📊 AgentOS Evaluator 报告 ═══',
181
+ '',
182
+ `🎯 综合评分: ${profile.overallScore}/100`,
183
+ '',
184
+ '📈 分项评分:',
185
+ ` ├─ 参数质量: ${profile.breakdown.preExec}/100`,
186
+ ` ├─ 执行质量: ${profile.breakdown.runtime}/100`,
187
+ ` ├─ 结果验证: ${profile.breakdown.postExec}/100`,
188
+ ` └─ 用户满意度: ${profile.breakdown.userSatisfaction}/100`,
189
+ '',
190
+ `📊 趋势: ${profile.trends.improving ? '📈 上升' : '📉 下降'} (最近${profile.trends.recentOps}次: ${Math.round(profile.trends.recentScore)}/100)`,
191
+ '',
192
+ ];
193
+ if (profile.strengths.length > 0) {
194
+ lines.push('✅ 亮点:');
195
+ for (const s of profile.strengths)
196
+ lines.push(` · ${s}`);
197
+ lines.push('');
198
+ }
199
+ if (profile.warnings.length > 0) {
200
+ lines.push('⚠️ 需改进:');
201
+ for (const w of profile.warnings)
202
+ lines.push(` · ${w}`);
203
+ lines.push('');
204
+ }
205
+ lines.push(`💬 反馈: ${feedbackStats.totalSignals} 信号 (${feedbackStats.positiveSignals}正 / ${feedbackStats.negativeSignals}负)`);
206
+ lines.push(`🛠 工具准确率: ${Object.entries(toolAcc).map(([t, v]) => `${t}:${v.successRate}`).join(', ')}`);
207
+ lines.push(`📐 满意度: ${satisfaction}`);
208
+ lines.push('');
209
+ lines.push('══════════════════════════════');
210
+ return lines.join('\n');
211
+ }
212
+ /** 生成精简版报告(注入 daily log) */
213
+ generateCompactReport() {
214
+ const profile = this.getProfile();
215
+ return [
216
+ `## 📊 AgentOS Evaluator 今日评估`,
217
+ '',
218
+ `**综合评分**: ${profile.overallScore}/100 | Pre:${profile.breakdown.preExec}/100 | Run:${profile.breakdown.runtime}/100 | Post:${profile.breakdown.postExec}/100`,
219
+ `**趋势**: ${profile.trends.improving ? '📈 上升' : '📉 下降'} | **操作数**: ${profile.totalOps}`,
220
+ profile.warnings.length > 0 ? `**⚠️**: ${profile.warnings.join('; ')}` : '',
221
+ profile.strengths.length > 0 ? `**✅**: ${profile.strengths.join('; ')}` : '',
222
+ '',
223
+ ].filter(Boolean).join('\n');
224
+ }
225
+ /** 追加报告到 daily log */
226
+ appendToDailyLog(workspaceRoot) {
227
+ const dateKey = new Date().toISOString().split('T')[0];
228
+ const dailyFile = path.join(workspaceRoot, 'memory', `${dateKey}.md`);
229
+ const report = this.generateCompactReport();
230
+ try {
231
+ const existing = fs.existsSync(dailyFile) ? fs.readFileSync(dailyFile, 'utf-8') : '';
232
+ if (!existing.includes('AgentOS Evaluator')) {
233
+ fs.appendFileSync(dailyFile, `\n${report}\n`, 'utf-8');
234
+ }
235
+ }
236
+ catch (e) {
237
+ console.warn('[Evaluator] Failed to append report:', e);
238
+ }
239
+ }
240
+ // ============== 持久化 ==============
241
+ /** 导出可序列化的状态 */
242
+ exportState() {
243
+ return {
244
+ sessionId: this.sessionId,
245
+ profile: this.getProfile(),
246
+ feedback: this.getFeedbackStats(),
247
+ toolAccuracy: this.getToolAccuracy(),
248
+ utilizationRate: this.getUtilizationRate(),
249
+ exportedAt: new Date().toISOString(),
250
+ };
251
+ }
252
+ /** 导入之前的状态(用于恢复) */
253
+ importState(state) {
254
+ if (state.sessionId)
255
+ this.sessionId = state.sessionId;
256
+ // Profiler/Feedback 不支持完整恢复,只恢复 sessionId
257
+ }
258
+ }
259
+ exports.EvaluationBridge = EvaluationBridge;
260
+ // ============== Singleton ==============
261
+ let _evalBridge = null;
262
+ function getEvaluationBridge(working, sessionId) {
263
+ if (!_evalBridge) {
264
+ if (!working)
265
+ throw new Error('First call requires WorkingMemory instance');
266
+ _evalBridge = new EvaluationBridge(working, sessionId);
267
+ }
268
+ return _evalBridge;
269
+ }
270
+ function resetEvaluationBridge() {
271
+ _evalBridge = null;
272
+ }
273
+ //# sourceMappingURL=evaluation-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluation-bridge.js","sourceRoot":"","sources":["../../src/adapters/evaluation-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Memory Bridge — 将 AgentOS Memory 三层接入 OpenClaw 工作流
3
+ *
4
+ * ┌─────────────┐ ┌──────────────┐ ┌──────────────┐
5
+ * │ MEMORY.md │ → │ Semantic │ ← │ 会话中学习 │
6
+ * │ 旧文件系统 │ │ Memory │ │ 新规则/偏好 │
7
+ * └─────────────┘ └──────┬───────┘ └──────────────┘
8
+ * │
9
+ * ┌──────────────────────┼──────────────────────┐
10
+ * │ │ │
11
+ * ▼ ▼ ▼
12
+ * Session启动 Session运行 Session结束
13
+ * 注入上下文 工具结果缓存 事件→Episodic
14
+ * 消息→Working 偏好→Semantic
15
+ *
16
+ * 用法:
17
+ * 1. Session 启动: MemoryBridge.onSessionStart(workspaceRoot)
18
+ * → 返回要注入的上下文字符串
19
+ * 2. Session 中: MemoryBridge.getWorkingMemory()
20
+ * → 获取 Working Memory 实例
21
+ * 3. Session 结束: MemoryBridge.onSessionEnd()
22
+ * → 清空 Working、同步 Episodic
23
+ */
24
+ import { WorkingMemory } from '../memory/working';
25
+ import { EpisodicMemory } from '../memory/episodic';
26
+ import { SemanticMemoryStore } from '../memory/semantic';
27
+ import { EventType } from '../types';
28
+ export interface MemorySnapshot {
29
+ semantic: Record<string, unknown>;
30
+ episodic: Record<string, unknown>;
31
+ working: Record<string, unknown>;
32
+ }
33
+ export declare class MemoryBridge {
34
+ private working;
35
+ private episodic;
36
+ private semantic;
37
+ private started;
38
+ private startTime;
39
+ constructor(workspaceRoot: string);
40
+ /**
41
+ * Session 启动时调用
42
+ * 返回要注入到系统提示的上下文摘要
43
+ */
44
+ onSessionStart(): string;
45
+ /**
46
+ * Session 运行中:记录一条消息到 Working Memory
47
+ */
48
+ recordMessage(role: 'user' | 'agent' | 'tool', content: string): void;
49
+ /**
50
+ * Session 运行中:缓存工具调用结果
51
+ */
52
+ cacheToolResult(toolName: string, result: unknown): void;
53
+ /**
54
+ * Session 结束:清空 Working + 同步到 Episodic
55
+ *
56
+ * @param autoRecord 是否自动从 Working 提取事件到 Episodic
57
+ */
58
+ onSessionEnd(autoRecord?: boolean): void;
59
+ /**
60
+ * 记录自定义事件到 Episodic Memory
61
+ */
62
+ recordEvent(type: EventType, content: string, tags?: string[], relatedEntities?: string[], importanceBoost?: number): void;
63
+ /** 学习新规则 */
64
+ learnRule(rule: string, source: string): void;
65
+ /** 设置用户偏好 */
66
+ setPreference(key: string, value: unknown): void;
67
+ /** 添加用户事实 */
68
+ addFact(fact: string): void;
69
+ /** 更新项目上下文 */
70
+ setProjectContext(name: string, ctx: {
71
+ description?: string;
72
+ techStack?: string[];
73
+ conventions?: string[];
74
+ architecture?: string;
75
+ knownIssues?: string[];
76
+ }): void;
77
+ /** 获取项目上下文 */
78
+ getProjectContext(name: string): {
79
+ description: string;
80
+ techStack: string[];
81
+ conventions: string[];
82
+ architecture: string;
83
+ knownIssues: string[];
84
+ } | undefined;
85
+ /** 获取完整记忆状态快照 */
86
+ getSnapshot(): MemorySnapshot;
87
+ /** 获取 Working Memory 实例(供中间件使用) */
88
+ getWorkingMemory(): WorkingMemory;
89
+ /** 获取 Semantic Memory 实例 */
90
+ getSemanticMemory(): SemanticMemoryStore;
91
+ /** 获取 Episodic Memory 实例 */
92
+ getEpisodicMemory(): EpisodicMemory;
93
+ /** 获取 session 持续时间(ms) */
94
+ getElapsedMs(): number;
95
+ /**
96
+ * 从 Working Memory 自动提取关键事件到 Episodic
97
+ */
98
+ private autoRecordFromWorking;
99
+ /** 刷新所有持久化(确保写入磁盘) */
100
+ flush(): void;
101
+ /** 生成状态报告 */
102
+ statusReport(): string;
103
+ /**
104
+ * 从现有的 MEMORY.md 文件迁移数据到 Semantic Memory
105
+ * 只运行一次,迁移后旧文件可以保留或删除
106
+ */
107
+ migrateFromMemoryMd(memoryPath: string): {
108
+ imported: number;
109
+ skipped: number;
110
+ };
111
+ }
112
+ /** 获取全局 MemoryBridge 实例 */
113
+ export declare function getMemoryBridge(workspaceRoot?: string): MemoryBridge;
114
+ /** 重置全局实例(用于测试) */
115
+ export declare function resetMemoryBridge(): void;
116
+ //# sourceMappingURL=memory-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-bridge.d.ts","sourceRoot":"","sources":["../../src/adapters/memory-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,aAAa,EAAE,MAAM;IAWjC;;;OAGG;IACH,cAAc,IAAI,MAAM;IAqBxB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrE;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAIxD;;;;OAIG;IACH,YAAY,CAAC,UAAU,UAAO,GAAG,IAAI;IAYrC;;OAEG;IACH,WAAW,CACT,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,eAAe,GAAE,MAAM,EAAO,EAC9B,eAAe,SAAI,GAClB,IAAI;IAMP,YAAY;IACZ,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7C,aAAa;IACb,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIhD,aAAa;IACb,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,cAAc;IACd,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,GACA,IAAI;IAIP,cAAc;IACd,iBAAiB,CAAC,IAAI,EAAE,MAAM;;;;;;;IAM9B,iBAAiB;IACjB,WAAW,IAAI,cAAc;IAQ7B,mCAAmC;IACnC,gBAAgB,IAAI,aAAa;IAIjC,4BAA4B;IAC5B,iBAAiB,IAAI,mBAAmB;IAIxC,4BAA4B;IAC5B,iBAAiB,IAAI,cAAc;IAInC,0BAA0B;IAC1B,YAAY,IAAI,MAAM;IAMtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6B7B,sBAAsB;IACtB,KAAK,IAAI,IAAI;IAIb,aAAa;IACb,YAAY,IAAI,MAAM;IAgBtB;;;OAGG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAsF/E;AAKD,2BAA2B;AAC3B,wBAAgB,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,YAAY,CAQpE;AAED,mBAAmB;AACnB,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+ /**
3
+ * Memory Bridge — 将 AgentOS Memory 三层接入 OpenClaw 工作流
4
+ *
5
+ * ┌─────────────┐ ┌──────────────┐ ┌──────────────┐
6
+ * │ MEMORY.md │ → │ Semantic │ ← │ 会话中学习 │
7
+ * │ 旧文件系统 │ │ Memory │ │ 新规则/偏好 │
8
+ * └─────────────┘ └──────┬───────┘ └──────────────┘
9
+ * │
10
+ * ┌──────────────────────┼──────────────────────┐
11
+ * │ │ │
12
+ * ▼ ▼ ▼
13
+ * Session启动 Session运行 Session结束
14
+ * 注入上下文 工具结果缓存 事件→Episodic
15
+ * 消息→Working 偏好→Semantic
16
+ *
17
+ * 用法:
18
+ * 1. Session 启动: MemoryBridge.onSessionStart(workspaceRoot)
19
+ * → 返回要注入的上下文字符串
20
+ * 2. Session 中: MemoryBridge.getWorkingMemory()
21
+ * → 获取 Working Memory 实例
22
+ * 3. Session 结束: MemoryBridge.onSessionEnd()
23
+ * → 清空 Working、同步 Episodic
24
+ */
25
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ var desc = Object.getOwnPropertyDescriptor(m, k);
28
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
29
+ desc = { enumerable: true, get: function() { return m[k]; } };
30
+ }
31
+ Object.defineProperty(o, k2, desc);
32
+ }) : (function(o, m, k, k2) {
33
+ if (k2 === undefined) k2 = k;
34
+ o[k2] = m[k];
35
+ }));
36
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
37
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
38
+ }) : function(o, v) {
39
+ o["default"] = v;
40
+ });
41
+ var __importStar = (this && this.__importStar) || (function () {
42
+ var ownKeys = function(o) {
43
+ ownKeys = Object.getOwnPropertyNames || function (o) {
44
+ var ar = [];
45
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
46
+ return ar;
47
+ };
48
+ return ownKeys(o);
49
+ };
50
+ return function (mod) {
51
+ if (mod && mod.__esModule) return mod;
52
+ var result = {};
53
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
54
+ __setModuleDefault(result, mod);
55
+ return result;
56
+ };
57
+ })();
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.MemoryBridge = void 0;
60
+ exports.getMemoryBridge = getMemoryBridge;
61
+ exports.resetMemoryBridge = resetMemoryBridge;
62
+ const working_1 = require("../memory/working");
63
+ const episodic_1 = require("../memory/episodic");
64
+ const semantic_1 = require("../memory/semantic");
65
+ const fs = __importStar(require("fs"));
66
+ class MemoryBridge {
67
+ working;
68
+ episodic;
69
+ semantic;
70
+ started = false;
71
+ startTime;
72
+ constructor(workspaceRoot) {
73
+ this.working = new working_1.WorkingMemory(50000);
74
+ this.episodic = new episodic_1.EpisodicMemory(500);
75
+ this.semantic = new semantic_1.SemanticMemoryStore();
76
+ this.startTime = Date.now();
77
+ // 持久化到 .agentos/ 目录
78
+ this.episodic.enablePersistence(workspaceRoot);
79
+ this.semantic.enablePersistence(workspaceRoot);
80
+ }
81
+ /**
82
+ * Session 启动时调用
83
+ * 返回要注入到系统提示的上下文摘要
84
+ */
85
+ onSessionStart() {
86
+ this.started = true;
87
+ this.startTime = Date.now();
88
+ const parts = [];
89
+ // 1. Semantic Memory 上下文(替代 MEMORY.md)
90
+ const semanticCtx = this.semantic.generateContextSummary();
91
+ if (semanticCtx) {
92
+ parts.push(semanticCtx);
93
+ }
94
+ // 2. Episodic Memory 上下文(最近7天+高重要性事件)
95
+ const episodicCtx = this.episodic.generateContextSummary();
96
+ if (episodicCtx) {
97
+ parts.push(episodicCtx);
98
+ }
99
+ return parts.join('\n\n---\n\n');
100
+ }
101
+ /**
102
+ * Session 运行中:记录一条消息到 Working Memory
103
+ */
104
+ recordMessage(role, content) {
105
+ this.working.addMessage(role, content);
106
+ }
107
+ /**
108
+ * Session 运行中:缓存工具调用结果
109
+ */
110
+ cacheToolResult(toolName, result) {
111
+ this.working.cacheToolResult(toolName, result);
112
+ }
113
+ /**
114
+ * Session 结束:清空 Working + 同步到 Episodic
115
+ *
116
+ * @param autoRecord 是否自动从 Working 提取事件到 Episodic
117
+ */
118
+ onSessionEnd(autoRecord = true) {
119
+ if (!this.started)
120
+ return;
121
+ if (autoRecord) {
122
+ this.autoRecordFromWorking();
123
+ }
124
+ this.episodic.record('note', `Session ended`, ['session'], [], 0);
125
+ this.working.clear();
126
+ this.started = false;
127
+ }
128
+ /**
129
+ * 记录自定义事件到 Episodic Memory
130
+ */
131
+ recordEvent(type, content, tags = [], relatedEntities = [], importanceBoost = 0) {
132
+ this.episodic.record(type, content, tags, relatedEntities, importanceBoost);
133
+ }
134
+ // === Semantic Memory 快捷方法 ===
135
+ /** 学习新规则 */
136
+ learnRule(rule, source) {
137
+ this.semantic.learnRule(rule, source);
138
+ }
139
+ /** 设置用户偏好 */
140
+ setPreference(key, value) {
141
+ this.semantic.setPreference(key, value);
142
+ }
143
+ /** 添加用户事实 */
144
+ addFact(fact) {
145
+ this.semantic.addFact(fact);
146
+ }
147
+ /** 更新项目上下文 */
148
+ setProjectContext(name, ctx) {
149
+ this.semantic.setProjectContext(name, ctx);
150
+ }
151
+ /** 获取项目上下文 */
152
+ getProjectContext(name) {
153
+ return this.semantic.getProjectContext(name);
154
+ }
155
+ // === 查询方法 ===
156
+ /** 获取完整记忆状态快照 */
157
+ getSnapshot() {
158
+ return {
159
+ semantic: this.semantic.getMemory(),
160
+ episodic: { events: this.episodic.getAll(), count: this.episodic.count },
161
+ working: this.working.getState(),
162
+ };
163
+ }
164
+ /** 获取 Working Memory 实例(供中间件使用) */
165
+ getWorkingMemory() {
166
+ return this.working;
167
+ }
168
+ /** 获取 Semantic Memory 实例 */
169
+ getSemanticMemory() {
170
+ return this.semantic;
171
+ }
172
+ /** 获取 Episodic Memory 实例 */
173
+ getEpisodicMemory() {
174
+ return this.episodic;
175
+ }
176
+ /** 获取 session 持续时间(ms) */
177
+ getElapsedMs() {
178
+ return Date.now() - this.startTime;
179
+ }
180
+ // === 私有方法 ===
181
+ /**
182
+ * 从 Working Memory 自动提取关键事件到 Episodic
183
+ */
184
+ autoRecordFromWorking() {
185
+ const state = this.working.getState();
186
+ // 记录消息数
187
+ if (state.recentMessages.length > 0) {
188
+ const userMsgs = state.recentMessages.filter((m) => m.role === 'user').length;
189
+ const agentMsgs = state.recentMessages.filter((m) => m.role === 'agent').length;
190
+ this.episodic.record('note', `Session: ${userMsgs} user msgs, ${agentMsgs} agent responses`, ['session', 'messages'], [], 0);
191
+ }
192
+ // 记录工具调用
193
+ if (state.recentToolResults.size > 0) {
194
+ const toolNames = Array.from(state.recentToolResults.keys());
195
+ this.episodic.record('tool_call', `Tools used: ${toolNames.join(', ')}`, ['tools', ...toolNames], [], 0);
196
+ }
197
+ }
198
+ /** 刷新所有持久化(确保写入磁盘) */
199
+ flush() {
200
+ this.semantic.flush();
201
+ }
202
+ /** 生成状态报告 */
203
+ statusReport() {
204
+ const snapshot = this.getSnapshot();
205
+ const sessionMinutes = Math.round(this.getElapsedMs() / 60000);
206
+ return [
207
+ '═══ AgentOS Memory Bridge ═══',
208
+ `⏱ Session: ${sessionMinutes} min`,
209
+ `🧠 Working: ${snapshot.working.recentMessages ? snapshot.working.recentMessages?.toString().length : 0} messages`,
210
+ `📖 Episodic: ${this.episodic.count} events`,
211
+ `💎 Semantic: ${Object.keys(this.semantic.getMemory().userPreferences || {}).length} prefs, ${this.semantic.getMemory().userFacts.length} facts`,
212
+ '══════════════════════════════',
213
+ ].join('\n');
214
+ }
215
+ // === 迁移 ===
216
+ /**
217
+ * 从现有的 MEMORY.md 文件迁移数据到 Semantic Memory
218
+ * 只运行一次,迁移后旧文件可以保留或删除
219
+ */
220
+ migrateFromMemoryMd(memoryPath) {
221
+ const result = { imported: 0, skipped: 0 };
222
+ if (!fs.existsSync(memoryPath)) {
223
+ console.warn('MEMORY.md not found at', memoryPath);
224
+ return result;
225
+ }
226
+ // 简单解析 MEMORY.md 的 Markdown 结构
227
+ const content = fs.readFileSync(memoryPath, 'utf-8');
228
+ const lines = content.split('\n');
229
+ let currentSection = '';
230
+ const sections = {};
231
+ for (const line of lines) {
232
+ if (line.startsWith('## ')) {
233
+ currentSection = line.replace('## ', '').trim();
234
+ sections[currentSection] = [];
235
+ }
236
+ else if (currentSection && line.trim().startsWith('- ')) {
237
+ sections[currentSection]?.push(line.trim().replace(/^-\s*/, ''));
238
+ }
239
+ }
240
+ // 导入项目上下文
241
+ const coderevSection = sections['📦 核心项目:coderev'] || sections['📦 coderev'] || [];
242
+ if (coderevSection.length > 0) {
243
+ this.semantic.setProjectContext('coderev', {
244
+ description: 'AI 驱动的代码审查 CLI 工具',
245
+ techStack: ['TypeScript', 'Node.js', 'CLI'],
246
+ conventions: coderevSection.slice(0, 5),
247
+ });
248
+ result.imported++;
249
+ }
250
+ const agentosSection = sections['📦 Sentinel AgentOS'] || sections['AgentOS'] || [];
251
+ if (agentosSection.length > 0 || sections['Sentinel AgentOS(项目 #2)']) {
252
+ this.semantic.setProjectContext('agentos', {
253
+ description: 'AI Agent 操作系统 — 确定性 Guard + 分层记忆 + 自动评估',
254
+ techStack: ['TypeScript', 'Node.js', 'Jest'],
255
+ });
256
+ result.imported++;
257
+ }
258
+ // 导入用户事实
259
+ if (sections['👤 关于老板']) {
260
+ for (const fact of sections['👤 关于老板']) {
261
+ this.semantic.addFact(fact);
262
+ result.imported++;
263
+ }
264
+ }
265
+ if (sections['🆔 关于我']) {
266
+ for (const fact of sections['🆔 关于我']) {
267
+ this.semantic.addFact(fact);
268
+ result.imported++;
269
+ }
270
+ }
271
+ // 导入工作方式中的规则
272
+ const workwaySection = sections['🤖 我的工作方式'] || [];
273
+ for (const rule of workwaySection) {
274
+ this.semantic.learnRule(rule, 'MEMORY.md migration');
275
+ result.imported++;
276
+ }
277
+ // 导入环境记录
278
+ if (sections['💻 环境记录']) {
279
+ for (const env of sections['💻 环境记录']) {
280
+ this.semantic.addFact(env);
281
+ result.imported++;
282
+ }
283
+ }
284
+ // 导入关键决策
285
+ const decisionsSection = sections['💡 关键决策记录'] || [];
286
+ if (decisionsSection.length > 0) {
287
+ for (const decision of decisionsSection) {
288
+ this.episodic.record('decision', decision, ['memigration'], []);
289
+ result.imported++;
290
+ }
291
+ }
292
+ this.semantic.flush();
293
+ return result;
294
+ }
295
+ }
296
+ exports.MemoryBridge = MemoryBridge;
297
+ // ============= Singleton =============
298
+ let _bridge = null;
299
+ /** 获取全局 MemoryBridge 实例 */
300
+ function getMemoryBridge(workspaceRoot) {
301
+ if (!_bridge && workspaceRoot) {
302
+ _bridge = new MemoryBridge(workspaceRoot);
303
+ }
304
+ if (!_bridge) {
305
+ throw new Error('MemoryBridge not initialized. Call getMemoryBridge(workspaceRoot) first.');
306
+ }
307
+ return _bridge;
308
+ }
309
+ /** 重置全局实例(用于测试) */
310
+ function resetMemoryBridge() {
311
+ if (_bridge) {
312
+ _bridge.flush();
313
+ _bridge = null;
314
+ }
315
+ }
316
+ //# sourceMappingURL=memory-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-bridge.js","sourceRoot":"","sources":["../../src/adapters/memory-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/adapters/migrate.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ /**
37
+ * 迁移脚本:从现有 MEMORY.md → AgentOS Semantic Memory
38
+ *
39
+ * 运行: npx ts-node src/adapters/migrate.ts
40
+ * 迁移后旧 MEMORY.md 不会删除,只是作为额外备份
41
+ */
42
+ const memory_bridge_1 = require("./memory-bridge");
43
+ const path = __importStar(require("path"));
44
+ const WORKSPACE = path.resolve(__dirname, '..', '..', '..', '..');
45
+ const MEMORY_MD = path.join(WORKSPACE, 'MEMORY.md');
46
+ console.log('═══════════════════════════════');
47
+ console.log('🧠 MEMORY.md → AgentOS 迁移');
48
+ console.log('═══════════════════════════════');
49
+ console.log(`Workspace: ${WORKSPACE}`);
50
+ console.log(`MEMORY.md: ${MEMORY_MD}`);
51
+ console.log('');
52
+ const bridge = new memory_bridge_1.MemoryBridge(WORKSPACE);
53
+ const result = bridge.migrateFromMemoryMd(MEMORY_MD);
54
+ bridge.flush();
55
+ console.log(`✅ 迁移完成!`);
56
+ console.log(` 导入: ${result.imported} 条`);
57
+ console.log(` 跳过: ${result.skipped} 条`);
58
+ console.log('');
59
+ console.log('📊 迁移后状态:');
60
+ console.log(bridge.statusReport());
61
+ console.log('');
62
+ console.log('💡 MEMORY.md 文件未删除,可手动删除或保留作备份。');
63
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/adapters/migrate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,mDAA+C;AAC/C,2CAA6B;AAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAEpD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAC/C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AACzC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAC/C,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAEhB,MAAM,MAAM,GAAG,IAAI,4BAAY,CAAC,SAAS,CAAC,CAAC;AAE3C,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACrD,MAAM,CAAC,KAAK,EAAE,CAAC;AAEf,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;AAC3C,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACzB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;AACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC"}
package/dist/cli.js CHANGED
@@ -340,8 +340,11 @@ const guard = require('../sentinel-guard');
340
340
  fatal(`Unknown command: ${cmd}. Run 'sentinel-agentos help' for usage.`);
341
341
  }
342
342
  }
343
- main().catch((err) => {
344
- console.error('❌', err.message);
345
- process.exit(1);
346
- });
343
+ // Only auto-run when invoked directly, not via require/test
344
+ if (require.main === module) {
345
+ main().catch((err) => {
346
+ console.error('❌', err.message);
347
+ process.exit(1);
348
+ });
349
+ }
347
350
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iCAAiC;AAEjC,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAc;IACjC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS;QAE3B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE/B,0BAA0B;QAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,mBAAmB;QACnB,IAAI,GAAG,KAAK,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aAClC,IAAI,GAAG,KAAK,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACzC,IAAI,GAAG,KAAK,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACvC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACvD,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;;YAC1D,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,+CAA+C;YAC/C,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACnB,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,cAAO,EAAE,CAAC;IAE1B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,8DAA8D;YAC9D,0DAA0D;YAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,IAAY,CAAC;YACjB,IAAI,MAA+B,CAAC;YAEpC,wBAAwB;YACxB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE/F,IAAI,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACvB,KAAK,CAAC,2BAA2B,GAAG,wBAAwB,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,+BAA+B;gBAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,GAAG,QAAQ,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI;oBAAE,KAAK,CAAC,2BAA2B,GAAG,wBAAwB,CAAC,CAAC;gBACzE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;gBACxC,IAAI,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC;YAC5F,CAAC;YAED,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC;gBACjC,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,MAAM;aACnB,CAAC,CAAC;YAEH,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YAChC,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAE1B,IAAI,CAAC;gBACH,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC7D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAEpC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;oBAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBAClC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,yBAAyB,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,GAAG,wDAAa,IAAI,GAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,wDAAa,MAAM,GAAC,CAAC;YAElC,yDAAyD;YACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;YAChE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAEjG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,wBAAwB,YAAY,sDAAsD,CAAC,CAAC;YACpG,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAElD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;YAED,yBAAyB;YACzB,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9C,uCAAuC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;YAC5E,IAAI,YAAoB,CAAC;YACzB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;gBAClF,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,YAAY,CAAC,CAAC;YAEzE,iBAAiB;YACjB,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC;YACI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;YAE3D,mBAAmB;YACnB,MAAM,WAAW,GAAG;;;;;;;CAOzB,CAAC;YACI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC;YAEtE,8CAA8C;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACxD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC3C,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,qDAAqD,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAC7E,MAAM;QACR,CAAC;QAED;YACE,KAAK,CAAC,oBAAoB,GAAG,0CAA0C,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AACD,4DAA4D;AAC5D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sentinel-agentos",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Sentinel AgentOS — 确定性 Guard 层 + 分层记忆 + 自动评估,让任何 Agent 变得可靠、可审计、可改进",
5
5
  "keywords": [
6
6
  "agent",