opc-agent 4.1.24 → 4.2.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/CHANGELOG.md +59 -119
- package/COMPETITIVE-GAP.md +92 -92
- package/CONTRIBUTING.md +36 -36
- package/README.md +290 -290
- package/README.zh-CN.md +269 -269
- package/dist/channels/telegram.d.ts +0 -5
- package/dist/channels/telegram.d.ts.map +1 -1
- package/dist/channels/telegram.js +0 -108
- package/dist/channels/telegram.js.map +1 -1
- package/dist/channels/voice.d.ts +97 -71
- package/dist/channels/voice.d.ts.map +1 -1
- package/dist/channels/voice.js +347 -369
- package/dist/channels/voice.js.map +1 -1
- package/dist/channels/web.d.ts.map +1 -1
- package/dist/channels/web.js +2 -8
- package/dist/channels/web.js.map +1 -1
- package/dist/channels/wechat.js +6 -6
- package/dist/cli/chat.d.ts +1 -4
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +73 -680
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/setup.js +1 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli.js +280 -373
- package/dist/cli.js.map +1 -1
- package/dist/core/agent.d.ts +0 -1
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +0 -3
- package/dist/core/agent.js.map +1 -1
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +22 -192
- package/dist/core/runtime.js.map +1 -1
- package/dist/deploy/index.js +56 -56
- package/dist/doctor.d.ts +0 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +10 -155
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/memory/deepbrain.d.ts +1 -1
- package/dist/memory/deepbrain.d.ts.map +1 -1
- package/dist/memory/deepbrain.js +4 -95
- package/dist/memory/deepbrain.js.map +1 -1
- package/dist/memory/index.d.ts +0 -2
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -3
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/user-profiler.d.ts +0 -8
- package/dist/memory/user-profiler.d.ts.map +1 -1
- package/dist/memory/user-profiler.js +0 -89
- package/dist/memory/user-profiler.js.map +1 -1
- package/dist/scheduler/cron-engine.d.ts.map +1 -1
- package/dist/scheduler/cron-engine.js +36 -3
- package/dist/scheduler/cron-engine.js.map +1 -1
- package/dist/skills/auto-learn.d.ts.map +1 -1
- package/dist/skills/auto-learn.js +11 -65
- package/dist/skills/auto-learn.js.map +1 -1
- package/dist/skills/builtin/index.d.ts.map +1 -1
- package/dist/skills/builtin/index.js +30 -163
- package/dist/skills/builtin/index.js.map +1 -1
- package/dist/skills/types.d.ts +1 -1
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/skills/types.js +0 -1
- package/dist/skills/types.js.map +1 -1
- package/dist/studio/server.d.ts +0 -1
- package/dist/studio/server.d.ts.map +1 -1
- package/dist/studio/server.js +12 -142
- package/dist/studio/server.js.map +1 -1
- package/dist/studio-ui/index.html +40 -359
- package/dist/ui/components.js +105 -105
- package/examples/README.md +22 -22
- package/examples/basic-agent.ts +90 -90
- package/examples/brain-integration.ts +71 -71
- package/examples/multi-channel.ts +74 -74
- package/install.ps1 +127 -127
- package/install.sh +154 -154
- package/models.json +164 -164
- package/package.json +63 -66
- package/scripts/install.ps1 +31 -31
- package/scripts/install.sh +40 -40
- package/templates/ecommerce-assistant/README.md +45 -45
- package/templates/ecommerce-assistant/oad.yaml +47 -47
- package/templates/tech-support/README.md +43 -43
- package/templates/tech-support/oad.yaml +45 -45
- package/.opc/memory.db +0 -0
- package/dist/core/model-recommender.d.ts +0 -40
- package/dist/core/model-recommender.d.ts.map +0 -1
- package/dist/core/model-recommender.js +0 -186
- package/dist/core/model-recommender.js.map +0 -1
- package/dist/memory/evolve-engine.d.ts +0 -113
- package/dist/memory/evolve-engine.d.ts.map +0 -1
- package/dist/memory/evolve-engine.js +0 -549
- package/dist/memory/evolve-engine.js.map +0 -1
- package/dist/memory/sqlite-store.d.ts +0 -40
- package/dist/memory/sqlite-store.d.ts.map +0 -1
- package/dist/memory/sqlite-store.js +0 -269
- package/dist/memory/sqlite-store.js.map +0 -1
- package/dist/scheduler/proactive.d.ts +0 -62
- package/dist/scheduler/proactive.d.ts.map +0 -1
- package/dist/scheduler/proactive.js +0 -185
- package/dist/scheduler/proactive.js.map +0 -1
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
export interface ModelRec {
|
|
2
|
-
name: string;
|
|
3
|
-
size: string;
|
|
4
|
-
minRAM: number;
|
|
5
|
-
desc: string;
|
|
6
|
-
descEn?: string;
|
|
7
|
-
tier: number;
|
|
8
|
-
lang?: string[];
|
|
9
|
-
useCase?: string[];
|
|
10
|
-
speed?: string;
|
|
11
|
-
recommended?: boolean;
|
|
12
|
-
}
|
|
13
|
-
interface SystemInfo {
|
|
14
|
-
totalRAM: number;
|
|
15
|
-
freeRAM: number;
|
|
16
|
-
cpuCount: number;
|
|
17
|
-
platform: string;
|
|
18
|
-
arch: string;
|
|
19
|
-
}
|
|
20
|
-
export declare function fetchModelList(): Promise<ModelRec[]>;
|
|
21
|
-
export declare function detectSystem(): SystemInfo;
|
|
22
|
-
export declare function recommendModels(models: ModelRec[], sys: SystemInfo, installedModels?: string[], opts?: {
|
|
23
|
-
useCase?: string;
|
|
24
|
-
lang?: string;
|
|
25
|
-
}): {
|
|
26
|
-
suitable: ModelRec[];
|
|
27
|
-
best: ModelRec;
|
|
28
|
-
installed: ModelRec[];
|
|
29
|
-
toDownload: ModelRec[];
|
|
30
|
-
};
|
|
31
|
-
/** Invalidate cache so next fetchModelList() re-downloads */
|
|
32
|
-
export declare function clearModelCache(): boolean;
|
|
33
|
-
/** Get cache info */
|
|
34
|
-
export declare function cacheInfo(): {
|
|
35
|
-
exists: boolean;
|
|
36
|
-
age?: string;
|
|
37
|
-
version?: string;
|
|
38
|
-
};
|
|
39
|
-
export {};
|
|
40
|
-
//# sourceMappingURL=model-recommender.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-recommender.d.ts","sourceRoot":"","sources":["../../src/core/model-recommender.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AA8CD,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAsB1D;AAED,wBAAgB,YAAY,IAAI,UAAU,CAQzC;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAAE,EAClB,GAAG,EAAE,UAAU,EACf,eAAe,GAAE,MAAM,EAAO,EAC9B,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C;IACD,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB,CA+BA;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED,qBAAqB;AACrB,wBAAgB,SAAS,IAAI;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAU/E"}
|
|
@@ -1,186 +0,0 @@
|
|
|
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
|
-
exports.fetchModelList = fetchModelList;
|
|
37
|
-
exports.detectSystem = detectSystem;
|
|
38
|
-
exports.recommendModels = recommendModels;
|
|
39
|
-
exports.clearModelCache = clearModelCache;
|
|
40
|
-
exports.cacheInfo = cacheInfo;
|
|
41
|
-
/**
|
|
42
|
-
* 智能模型推荐引擎
|
|
43
|
-
* - 远程模型列表 (GitHub) + 本地缓存 (24h) + 硬编码 fallback
|
|
44
|
-
* - 根据系统硬件自动推荐最适合的模型
|
|
45
|
-
*/
|
|
46
|
-
const os = __importStar(require("os"));
|
|
47
|
-
const fs = __importStar(require("fs"));
|
|
48
|
-
const path = __importStar(require("path"));
|
|
49
|
-
const REMOTE_URL = 'https://raw.githubusercontent.com/Deepleaper/opc-agent/main/models.json';
|
|
50
|
-
const CACHE_FILE = '.opc-models-cache.json';
|
|
51
|
-
const CACHE_TTL = 24 * 60 * 60 * 1000; // 24 hours
|
|
52
|
-
// Hardcoded fallback (same as models.json, kept in sync)
|
|
53
|
-
const FALLBACK_MODELS = [
|
|
54
|
-
{ name: 'qwen2.5:0.5b', size: '0.4GB', minRAM: 2, desc: '超轻量,适合低配机器', tier: 1 },
|
|
55
|
-
{ name: 'qwen2.5:1.5b', size: '1.0GB', minRAM: 4, desc: '轻量但更智能', tier: 1 },
|
|
56
|
-
{ name: 'qwen2.5:3b', size: '2.0GB', minRAM: 6, desc: '性价比最优', tier: 2 },
|
|
57
|
-
{ name: 'llama3.2:3b', size: '2.0GB', minRAM: 6, desc: 'Meta 最新轻量模型', tier: 2 },
|
|
58
|
-
{ name: 'phi3:mini', size: '2.3GB', minRAM: 6, desc: '微软高效小模型', tier: 2 },
|
|
59
|
-
{ name: 'qwen2.5:7b', size: '4.7GB', minRAM: 8, desc: '推荐:中文最强 7B', tier: 3, recommended: true },
|
|
60
|
-
{ name: 'llama3.1:8b', size: '4.7GB', minRAM: 8, desc: 'Meta 通用 8B', tier: 3 },
|
|
61
|
-
{ name: 'mistral:7b', size: '4.1GB', minRAM: 8, desc: 'Mistral 经典 7B', tier: 3 },
|
|
62
|
-
{ name: 'gemma2:9b', size: '5.4GB', minRAM: 10, desc: 'Google 高效 9B', tier: 3 },
|
|
63
|
-
{ name: 'qwen2.5-coder:7b', size: '4.7GB', minRAM: 8, desc: '编程专用 7B', tier: 3 },
|
|
64
|
-
{ name: 'qwen2.5:14b', size: '9.0GB', minRAM: 16, desc: '中文强力 14B', tier: 4 },
|
|
65
|
-
{ name: 'deepseek-coder-v2:16b', size: '9.0GB', minRAM: 16, desc: '编程专用 16B', tier: 4 },
|
|
66
|
-
{ name: 'qwen2.5:32b', size: '20GB', minRAM: 32, desc: '接近 GPT-4 水平', tier: 5, recommended: true },
|
|
67
|
-
{ name: 'llama3.1:70b', size: '40GB', minRAM: 64, desc: '开源最强', tier: 6 },
|
|
68
|
-
];
|
|
69
|
-
function getCachePath() {
|
|
70
|
-
return path.join(os.homedir(), CACHE_FILE);
|
|
71
|
-
}
|
|
72
|
-
function readCache() {
|
|
73
|
-
try {
|
|
74
|
-
const cachePath = getCachePath();
|
|
75
|
-
if (!fs.existsSync(cachePath))
|
|
76
|
-
return null;
|
|
77
|
-
const stat = fs.statSync(cachePath);
|
|
78
|
-
if (Date.now() - stat.mtimeMs > CACHE_TTL)
|
|
79
|
-
return null; // expired
|
|
80
|
-
const data = JSON.parse(fs.readFileSync(cachePath, 'utf-8'));
|
|
81
|
-
if (!data.models || !Array.isArray(data.models))
|
|
82
|
-
return null;
|
|
83
|
-
return data;
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
function writeCache(data) {
|
|
90
|
-
try {
|
|
91
|
-
fs.writeFileSync(getCachePath(), JSON.stringify(data, null, 2));
|
|
92
|
-
}
|
|
93
|
-
catch { /* best effort */ }
|
|
94
|
-
}
|
|
95
|
-
async function fetchModelList() {
|
|
96
|
-
// 1. Try cache
|
|
97
|
-
const cached = readCache();
|
|
98
|
-
if (cached)
|
|
99
|
-
return cached.models;
|
|
100
|
-
// 2. Try remote
|
|
101
|
-
try {
|
|
102
|
-
const controller = new AbortController();
|
|
103
|
-
const timeout = setTimeout(() => controller.abort(), 5000);
|
|
104
|
-
const res = await fetch(REMOTE_URL, { signal: controller.signal });
|
|
105
|
-
clearTimeout(timeout);
|
|
106
|
-
if (res.ok) {
|
|
107
|
-
const data = await res.json();
|
|
108
|
-
if (data.models && Array.isArray(data.models) && data.models.length > 0) {
|
|
109
|
-
writeCache(data);
|
|
110
|
-
return data.models;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
catch { /* fallback */ }
|
|
115
|
-
// 3. Fallback
|
|
116
|
-
return FALLBACK_MODELS;
|
|
117
|
-
}
|
|
118
|
-
function detectSystem() {
|
|
119
|
-
return {
|
|
120
|
-
totalRAM: Math.round(os.totalmem() / (1024 ** 3)),
|
|
121
|
-
freeRAM: Math.round(os.freemem() / (1024 ** 3)),
|
|
122
|
-
cpuCount: os.cpus().length,
|
|
123
|
-
platform: os.platform(),
|
|
124
|
-
arch: os.arch(),
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
function recommendModels(models, sys, installedModels = [], opts = {}) {
|
|
128
|
-
const availableRAM = sys.freeRAM + 2; // +2GB tolerance
|
|
129
|
-
// Filter by hardware
|
|
130
|
-
let suitable = models.filter(m => m.minRAM <= availableRAM);
|
|
131
|
-
if (suitable.length === 0)
|
|
132
|
-
suitable = [models[0]]; // always have at least one
|
|
133
|
-
// Optional: filter by use case
|
|
134
|
-
if (opts.useCase) {
|
|
135
|
-
const filtered = suitable.filter(m => m.useCase?.includes(opts.useCase));
|
|
136
|
-
if (filtered.length > 0)
|
|
137
|
-
suitable = filtered;
|
|
138
|
-
}
|
|
139
|
-
// Optional: filter by language
|
|
140
|
-
if (opts.lang) {
|
|
141
|
-
const filtered = suitable.filter(m => m.lang?.includes(opts.lang));
|
|
142
|
-
if (filtered.length > 0)
|
|
143
|
-
suitable = filtered;
|
|
144
|
-
}
|
|
145
|
-
// Best = highest tier that fits, prefer 'recommended' flag
|
|
146
|
-
const recommended = suitable.filter(m => m.recommended);
|
|
147
|
-
const best = recommended.length > 0
|
|
148
|
-
? recommended[recommended.length - 1]
|
|
149
|
-
: suitable[suitable.length - 1];
|
|
150
|
-
// Split installed vs to-download
|
|
151
|
-
const installedSet = new Set(installedModels);
|
|
152
|
-
const installed = suitable.filter(m => installedSet.has(m.name));
|
|
153
|
-
const toDownload = suitable.filter(m => !installedSet.has(m.name)).slice(-3); // top 3 recommendations
|
|
154
|
-
return { suitable, best, installed, toDownload };
|
|
155
|
-
}
|
|
156
|
-
/** Invalidate cache so next fetchModelList() re-downloads */
|
|
157
|
-
function clearModelCache() {
|
|
158
|
-
try {
|
|
159
|
-
const p = getCachePath();
|
|
160
|
-
if (fs.existsSync(p)) {
|
|
161
|
-
fs.unlinkSync(p);
|
|
162
|
-
return true;
|
|
163
|
-
}
|
|
164
|
-
return false;
|
|
165
|
-
}
|
|
166
|
-
catch {
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/** Get cache info */
|
|
171
|
-
function cacheInfo() {
|
|
172
|
-
try {
|
|
173
|
-
const p = getCachePath();
|
|
174
|
-
if (!fs.existsSync(p))
|
|
175
|
-
return { exists: false };
|
|
176
|
-
const stat = fs.statSync(p);
|
|
177
|
-
const ageMs = Date.now() - stat.mtimeMs;
|
|
178
|
-
const hours = Math.round(ageMs / (60 * 60 * 1000));
|
|
179
|
-
const data = JSON.parse(fs.readFileSync(p, 'utf-8'));
|
|
180
|
-
return { exists: true, age: `${hours}h ago`, version: data.version };
|
|
181
|
-
}
|
|
182
|
-
catch {
|
|
183
|
-
return { exists: false };
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
//# sourceMappingURL=model-recommender.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-recommender.js","sourceRoot":"","sources":["../../src/core/model-recommender.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* KnowledgeEvolveEngine — Two-layer knowledge distillation
|
|
3
|
-
*
|
|
4
|
-
* Layer 1: Agent private refinement (local Ollama, zero cost)
|
|
5
|
-
* Conversations → extract insights → distill → write back to agent memory
|
|
6
|
-
* Key: memory never grows, only gets more refined
|
|
7
|
-
*
|
|
8
|
-
* Layer 2: Workstation shared refinement (AgentKits cloud model, paid)
|
|
9
|
-
* Multiple agents' refined knowledge → cross-agent fusion → shared workstation layer
|
|
10
|
-
* Key: one agent learns, all agents benefit
|
|
11
|
-
*
|
|
12
|
-
* Core principle:
|
|
13
|
-
* - Layer 1 ALWAYS uses local Ollama (zero cost)
|
|
14
|
-
* - Layer 2 uses AgentKits/cloud model (paid, higher quality)
|
|
15
|
-
* - Agent memory = distilled experience, NOT raw conversation history
|
|
16
|
-
*/
|
|
17
|
-
export interface EvolveConfig {
|
|
18
|
-
enabled: boolean;
|
|
19
|
-
/** Ollama model for evolve (default: auto-detect best local model) */
|
|
20
|
-
localModel?: string;
|
|
21
|
-
/** Ollama base URL (default: http://localhost:11434/v1) */
|
|
22
|
-
ollamaUrl?: string;
|
|
23
|
-
/** Evolve after N conversations (default: 10) */
|
|
24
|
-
conversationThreshold?: number;
|
|
25
|
-
/** Periodic evolve interval in ms (default: 6h) */
|
|
26
|
-
intervalMs?: number;
|
|
27
|
-
/** Max knowledge pages per tier (default: 100) */
|
|
28
|
-
maxPagesPerTier?: number;
|
|
29
|
-
}
|
|
30
|
-
export interface KnowledgePage {
|
|
31
|
-
slug: string;
|
|
32
|
-
content: string;
|
|
33
|
-
tier: 'workstation' | 'job' | 'industry';
|
|
34
|
-
source: string;
|
|
35
|
-
confidence: number;
|
|
36
|
-
createdAt: string;
|
|
37
|
-
updatedAt: string;
|
|
38
|
-
usageCount: number;
|
|
39
|
-
tags: string[];
|
|
40
|
-
}
|
|
41
|
-
export interface EvolveResult {
|
|
42
|
-
extracted: number;
|
|
43
|
-
deduplicated: number;
|
|
44
|
-
promoted: number;
|
|
45
|
-
compacted: boolean;
|
|
46
|
-
errors: string[];
|
|
47
|
-
}
|
|
48
|
-
export declare class KnowledgeEvolveEngine {
|
|
49
|
-
private config;
|
|
50
|
-
private ollamaUrl;
|
|
51
|
-
private model;
|
|
52
|
-
private knowledgeDir;
|
|
53
|
-
private conversationCount;
|
|
54
|
-
private timer;
|
|
55
|
-
constructor(agentDir: string, config?: Partial<EvolveConfig>);
|
|
56
|
-
/** Auto-detect best local Ollama model for evolve tasks */
|
|
57
|
-
detectLocalModel(): Promise<string>;
|
|
58
|
-
/** Call local Ollama model */
|
|
59
|
-
private callLocal;
|
|
60
|
-
/** Extract knowledge from conversation messages */
|
|
61
|
-
extractFromConversation(messages: Array<{
|
|
62
|
-
role: string;
|
|
63
|
-
content: string;
|
|
64
|
-
}>): Promise<KnowledgePage[]>;
|
|
65
|
-
/** Deduplicate knowledge pages within a tier */
|
|
66
|
-
deduplicateInTier(tier: 'workstation' | 'job' | 'industry'): Promise<number>;
|
|
67
|
-
/** Promote knowledge upward: workstation → job → industry */
|
|
68
|
-
promoteKnowledge(): Promise<number>;
|
|
69
|
-
/** Full evolve cycle: extract → dedup → compact memory → promote */
|
|
70
|
-
evolve(recentMessages?: Array<{
|
|
71
|
-
role: string;
|
|
72
|
-
content: string;
|
|
73
|
-
}>): Promise<EvolveResult>;
|
|
74
|
-
/**
|
|
75
|
-
* Layer 1: Compact agent memory
|
|
76
|
-
* Read MEMORY.md → distill with local model → write back refined version
|
|
77
|
-
* Result: memory never grows, only gets more concentrated
|
|
78
|
-
*/
|
|
79
|
-
compactAgentMemory(): Promise<boolean>;
|
|
80
|
-
/** Called after each conversation turn */
|
|
81
|
-
onConversationTurn(messages: Array<{
|
|
82
|
-
role: string;
|
|
83
|
-
content: string;
|
|
84
|
-
}>): void;
|
|
85
|
-
/** Start periodic evolve timer */
|
|
86
|
-
startPeriodicEvolve(): void;
|
|
87
|
-
/** Stop periodic evolve */
|
|
88
|
-
stopPeriodicEvolve(): void;
|
|
89
|
-
/** Get stats for all tiers */
|
|
90
|
-
getStats(): {
|
|
91
|
-
workstation: number;
|
|
92
|
-
job: number;
|
|
93
|
-
industry: number;
|
|
94
|
-
lastEvolve?: string;
|
|
95
|
-
};
|
|
96
|
-
private savePage;
|
|
97
|
-
private loadPages;
|
|
98
|
-
private deletePage;
|
|
99
|
-
private saveEvolveLog;
|
|
100
|
-
private getLastEvolveTime;
|
|
101
|
-
private slugify;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* AutoEvolveScheduler — integrates with runtime
|
|
105
|
-
*/
|
|
106
|
-
export declare class AutoEvolveScheduler {
|
|
107
|
-
private engine;
|
|
108
|
-
constructor(agentDir: string, config?: Partial<EvolveConfig>);
|
|
109
|
-
start(): Promise<void>;
|
|
110
|
-
stop(): void;
|
|
111
|
-
getEngine(): KnowledgeEvolveEngine;
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=evolve-engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evolve-engine.d.ts","sourceRoot":"","sources":["../../src/memory/evolve-engine.ts"],"names":[],"mappings":"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"}
|