@cicctencent/agent-server 0.2.12 → 0.2.14

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.
Files changed (77) hide show
  1. package/dist/cjs/agent/agent-server.d.ts.map +1 -1
  2. package/dist/cjs/agent/agent-server.js +34 -3
  3. package/dist/cjs/agent/agent-server.js.map +1 -1
  4. package/dist/cjs/index.d.ts +4 -2
  5. package/dist/cjs/index.d.ts.map +1 -1
  6. package/dist/cjs/index.js +14 -3
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/prompt/prompt-builder.d.ts +6 -1
  9. package/dist/cjs/prompt/prompt-builder.d.ts.map +1 -1
  10. package/dist/cjs/prompt/prompt-builder.js +59 -2
  11. package/dist/cjs/prompt/prompt-builder.js.map +1 -1
  12. package/dist/cjs/service/chat.service.d.ts +7 -0
  13. package/dist/cjs/service/chat.service.d.ts.map +1 -1
  14. package/dist/cjs/service/chat.service.js +55 -3
  15. package/dist/cjs/service/chat.service.js.map +1 -1
  16. package/dist/cjs/service/env-collector.d.ts +57 -0
  17. package/dist/cjs/service/env-collector.d.ts.map +1 -0
  18. package/dist/cjs/service/env-collector.js +230 -0
  19. package/dist/cjs/service/env-collector.js.map +1 -0
  20. package/dist/cjs/service/memory.service.d.ts +8 -0
  21. package/dist/cjs/service/memory.service.d.ts.map +1 -1
  22. package/dist/cjs/service/memory.service.js +23 -4
  23. package/dist/cjs/service/memory.service.js.map +1 -1
  24. package/dist/cjs/service/model-config-resolver.d.ts +108 -0
  25. package/dist/cjs/service/model-config-resolver.d.ts.map +1 -0
  26. package/dist/cjs/service/model-config-resolver.js +231 -0
  27. package/dist/cjs/service/model-config-resolver.js.map +1 -0
  28. package/dist/cjs/tool/tools/automation.d.ts.map +1 -1
  29. package/dist/cjs/tool/tools/automation.js +16 -19
  30. package/dist/cjs/tool/tools/automation.js.map +1 -1
  31. package/dist/cjs/tool/tools/communication.d.ts.map +1 -1
  32. package/dist/cjs/tool/tools/communication.js +50 -50
  33. package/dist/cjs/tool/tools/communication.js.map +1 -1
  34. package/dist/cjs/tool/tools/sandbox.d.ts.map +1 -1
  35. package/dist/cjs/tool/tools/sandbox.js +2 -3
  36. package/dist/cjs/tool/tools/sandbox.js.map +1 -1
  37. package/dist/cjs/types.d.ts +51 -1
  38. package/dist/cjs/types.d.ts.map +1 -1
  39. package/dist/esm/agent/agent-server.d.ts.map +1 -1
  40. package/dist/esm/agent/agent-server.js +34 -3
  41. package/dist/esm/agent/agent-server.js.map +1 -1
  42. package/dist/esm/index.d.ts +4 -2
  43. package/dist/esm/index.d.ts.map +1 -1
  44. package/dist/esm/index.js +4 -1
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/prompt/prompt-builder.d.ts +6 -1
  47. package/dist/esm/prompt/prompt-builder.d.ts.map +1 -1
  48. package/dist/esm/prompt/prompt-builder.js +58 -1
  49. package/dist/esm/prompt/prompt-builder.js.map +1 -1
  50. package/dist/esm/service/chat.service.d.ts +7 -0
  51. package/dist/esm/service/chat.service.d.ts.map +1 -1
  52. package/dist/esm/service/chat.service.js +55 -3
  53. package/dist/esm/service/chat.service.js.map +1 -1
  54. package/dist/esm/service/env-collector.d.ts +57 -0
  55. package/dist/esm/service/env-collector.d.ts.map +1 -0
  56. package/dist/esm/service/env-collector.js +189 -0
  57. package/dist/esm/service/env-collector.js.map +1 -0
  58. package/dist/esm/service/memory.service.d.ts +8 -0
  59. package/dist/esm/service/memory.service.d.ts.map +1 -1
  60. package/dist/esm/service/memory.service.js +24 -5
  61. package/dist/esm/service/memory.service.js.map +1 -1
  62. package/dist/esm/service/model-config-resolver.d.ts +108 -0
  63. package/dist/esm/service/model-config-resolver.d.ts.map +1 -0
  64. package/dist/esm/service/model-config-resolver.js +227 -0
  65. package/dist/esm/service/model-config-resolver.js.map +1 -0
  66. package/dist/esm/tool/tools/automation.d.ts.map +1 -1
  67. package/dist/esm/tool/tools/automation.js +13 -16
  68. package/dist/esm/tool/tools/automation.js.map +1 -1
  69. package/dist/esm/tool/tools/communication.d.ts.map +1 -1
  70. package/dist/esm/tool/tools/communication.js +50 -50
  71. package/dist/esm/tool/tools/communication.js.map +1 -1
  72. package/dist/esm/tool/tools/sandbox.d.ts.map +1 -1
  73. package/dist/esm/tool/tools/sandbox.js +1 -2
  74. package/dist/esm/tool/tools/sandbox.js.map +1 -1
  75. package/dist/esm/types.d.ts +51 -1
  76. package/dist/esm/types.d.ts.map +1 -1
  77. package/package.json +2 -2
@@ -0,0 +1,57 @@
1
+ import type { EnvInfo, EnvCollector } from '@cicctencent/agent-core';
2
+ /**
3
+ * Node.js 运行时环境采集器
4
+ *
5
+ * 在 agent-core 的 LocalEnvCollector 基础上,增加:
6
+ * - Python 版本探测
7
+ * - Node.js 版本(详细)
8
+ * - 包管理器版本(pnpm/yarn/npm)
9
+ *
10
+ * 使用场景:Agent 需要知道运行环境中有哪些工具可用,
11
+ * 以便正确选择脚本执行方式(Node.js vs Python)和包管理器。
12
+ */
13
+ export declare class NodeEnvCollector implements EnvCollector {
14
+ private cachedInfo;
15
+ private cacheReady;
16
+ private pending;
17
+ /**
18
+ * 异步预加载环境信息(不阻塞事件循环)
19
+ *
20
+ * 使用 child_process.exec 异步探测 Python / pnpm / yarn / npm 版本,
21
+ * 完成后写入 cachedInfo。应在应用启动时调用。
22
+ */
23
+ preload(): void;
24
+ collect(): Promise<EnvInfo>;
25
+ /**
26
+ * 同步获取环境信息(供需要立即返回的场景使用)
27
+ */
28
+ collectSync(): EnvInfo;
29
+ /**
30
+ * 异步采集(不阻塞事件循环)
31
+ * 并行执行所有版本探测命令,完成后组装 EnvInfo
32
+ */
33
+ private doCollectAsync;
34
+ /**
35
+ * 同步采集(阻塞,仅在预加载未完成时首次调用兜底)
36
+ */
37
+ private doCollectSync;
38
+ private buildEnvInfo;
39
+ private execAsync;
40
+ private execSyncSafe;
41
+ format(info: EnvInfo): string;
42
+ private formatBytes;
43
+ }
44
+ export declare function getEnvCollector(): NodeEnvCollector;
45
+ /**
46
+ * 预加载环境信息(应用启动时调用)
47
+ */
48
+ export declare function preloadEnvInfo(): void;
49
+ /**
50
+ * 采集环境信息(同步,返回缓存或立即采集)
51
+ */
52
+ export declare function collectEnvInfo(): EnvInfo;
53
+ /**
54
+ * 重置单例(测试用)
55
+ */
56
+ export declare function resetEnvCollector(): void;
57
+ //# sourceMappingURL=env-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-collector.d.ts","sourceRoot":"","sources":["../../../src/service/env-collector.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAErE;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAiC;IAEhD;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAcT,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IASjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAMtB;;;OAGG;YACW,cAAc;IAoB5B;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,YAAY;IAQpB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;IAmB7B,OAAO,CAAC,WAAW;CAMpB;AAMD,wBAAgB,eAAe,IAAI,gBAAgB,CAKlD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -0,0 +1,189 @@
1
+ // ============================================================
2
+ // NodeEnvCollector — Node.js 运行时环境采集器
3
+ // ============================================================
4
+ import { exec, execSync } from 'child_process';
5
+ import * as os from 'os';
6
+ /**
7
+ * Node.js 运行时环境采集器
8
+ *
9
+ * 在 agent-core 的 LocalEnvCollector 基础上,增加:
10
+ * - Python 版本探测
11
+ * - Node.js 版本(详细)
12
+ * - 包管理器版本(pnpm/yarn/npm)
13
+ *
14
+ * 使用场景:Agent 需要知道运行环境中有哪些工具可用,
15
+ * 以便正确选择脚本执行方式(Node.js vs Python)和包管理器。
16
+ */
17
+ export class NodeEnvCollector {
18
+ cachedInfo = null;
19
+ cacheReady = false;
20
+ pending = null;
21
+ /**
22
+ * 异步预加载环境信息(不阻塞事件循环)
23
+ *
24
+ * 使用 child_process.exec 异步探测 Python / pnpm / yarn / npm 版本,
25
+ * 完成后写入 cachedInfo。应在应用启动时调用。
26
+ */
27
+ preload() {
28
+ if (this.cacheReady)
29
+ return;
30
+ this.cacheReady = true;
31
+ this.pending = this.doCollectAsync();
32
+ this.pending.then(info => {
33
+ this.cachedInfo = info;
34
+ this.pending = null;
35
+ }).catch(() => {
36
+ // 预加载失败时,后续同步调用会兜底
37
+ this.pending = null;
38
+ });
39
+ }
40
+ async collect() {
41
+ if (this.cachedInfo)
42
+ return this.cachedInfo;
43
+ if (this.pending)
44
+ return this.pending;
45
+ // 预加载尚未完成,同步采集
46
+ this.cachedInfo = this.doCollectSync();
47
+ return this.cachedInfo;
48
+ }
49
+ /**
50
+ * 同步获取环境信息(供需要立即返回的场景使用)
51
+ */
52
+ collectSync() {
53
+ if (this.cachedInfo)
54
+ return this.cachedInfo;
55
+ this.cachedInfo = this.doCollectSync();
56
+ return this.cachedInfo;
57
+ }
58
+ /**
59
+ * 异步采集(不阻塞事件循环)
60
+ * 并行执行所有版本探测命令,完成后组装 EnvInfo
61
+ */
62
+ async doCollectAsync() {
63
+ const tasks = [
64
+ { key: 'Python', cmd: 'python3 --version 2>&1 || python --version 2>&1' },
65
+ { key: 'pnpm', cmd: 'pnpm --version' },
66
+ { key: 'yarn', cmd: 'yarn --version' },
67
+ { key: 'npm', cmd: 'npm --version' },
68
+ ];
69
+ const results = await Promise.all(tasks.map(task => this.execAsync(task.cmd).then(ver => ({ key: task.key, ver }))));
70
+ const map = {};
71
+ for (const { key, ver } of results) {
72
+ if (ver)
73
+ map[key] = ver;
74
+ }
75
+ return this.buildEnvInfo(map);
76
+ }
77
+ /**
78
+ * 同步采集(阻塞,仅在预加载未完成时首次调用兜底)
79
+ */
80
+ doCollectSync() {
81
+ const map = {};
82
+ map['Python'] = this.execSyncSafe('python3 --version 2>&1 || python --version 2>&1');
83
+ map['pnpm'] = this.execSyncSafe('pnpm --version');
84
+ map['yarn'] = this.execSyncSafe('yarn --version');
85
+ map['npm'] = this.execSyncSafe('npm --version');
86
+ return this.buildEnvInfo(map);
87
+ }
88
+ buildEnvInfo(map) {
89
+ // 组装包管理器信息
90
+ const pmParts = [];
91
+ if (map['pnpm'])
92
+ pmParts.push(`pnpm ${map['pnpm']}`);
93
+ if (map['yarn'])
94
+ pmParts.push(`yarn ${map['yarn']}`);
95
+ if (map['npm'])
96
+ pmParts.push(`npm ${map['npm']}`);
97
+ const packageManager = pmParts.length > 0
98
+ ? (() => {
99
+ const preferred = pmParts.find(f => f.startsWith('pnpm')) || pmParts.find(f => f.startsWith('yarn')) || pmParts[0];
100
+ const others = pmParts.filter(f => f !== preferred);
101
+ return others.length > 0 ? `${preferred} (preferred), ${others.join(', ')}` : preferred;
102
+ })()
103
+ : 'npm (built-in)';
104
+ return {
105
+ os: `${os.type()} ${os.release()} ${os.arch()}`,
106
+ platform: process.platform,
107
+ cpuCores: os.cpus().length,
108
+ memory: `${this.formatBytes(os.totalmem())} total, ${this.formatBytes(os.freemem())} available`,
109
+ disk: 'N/A',
110
+ shell: process.env.SHELL || process.env.COMSPEC || 'unknown',
111
+ hostname: os.hostname(),
112
+ user: os.userInfo().username,
113
+ custom: {
114
+ 'Node.js': process.version,
115
+ 'Python': map['Python'] || 'not available',
116
+ 'Package Manager': packageManager,
117
+ },
118
+ };
119
+ }
120
+ execAsync(cmd) {
121
+ return new Promise(resolve => {
122
+ exec(cmd, { encoding: 'utf-8', timeout: 5000 }, (err, stdout) => {
123
+ resolve(stdout?.trim() || '');
124
+ });
125
+ });
126
+ }
127
+ execSyncSafe(cmd) {
128
+ try {
129
+ return execSync(cmd, { encoding: 'utf-8', timeout: 3000 }).trim();
130
+ }
131
+ catch {
132
+ return '';
133
+ }
134
+ }
135
+ format(info) {
136
+ const lines = [
137
+ `- OS: ${info.os}`,
138
+ `- Platform: ${info.platform}`,
139
+ `- CPU Cores: ${info.cpuCores}`,
140
+ `- Memory: ${info.memory}`,
141
+ `- Disk: ${info.disk}`,
142
+ `- Shell: ${info.shell}`,
143
+ ];
144
+ if (info.hostname)
145
+ lines.push(`- Hostname: ${info.hostname}`);
146
+ if (info.user)
147
+ lines.push(`- User: ${info.user}`);
148
+ if (info.custom) {
149
+ for (const [key, value] of Object.entries(info.custom)) {
150
+ lines.push(`- ${key}: ${value}`);
151
+ }
152
+ }
153
+ return lines.join('\n');
154
+ }
155
+ formatBytes(bytes) {
156
+ const gb = bytes / (1024 * 1024 * 1024);
157
+ if (gb >= 1)
158
+ return `${gb.toFixed(1)}G`;
159
+ const mb = bytes / (1024 * 1024);
160
+ return `${mb.toFixed(0)}M`;
161
+ }
162
+ }
163
+ // ===== 单例 =====
164
+ let instance = null;
165
+ export function getEnvCollector() {
166
+ if (!instance) {
167
+ instance = new NodeEnvCollector();
168
+ }
169
+ return instance;
170
+ }
171
+ /**
172
+ * 预加载环境信息(应用启动时调用)
173
+ */
174
+ export function preloadEnvInfo() {
175
+ getEnvCollector().preload();
176
+ }
177
+ /**
178
+ * 采集环境信息(同步,返回缓存或立即采集)
179
+ */
180
+ export function collectEnvInfo() {
181
+ return getEnvCollector().collectSync();
182
+ }
183
+ /**
184
+ * 重置单例(测试用)
185
+ */
186
+ export function resetEnvCollector() {
187
+ instance = null;
188
+ }
189
+ //# sourceMappingURL=env-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-collector.js","sourceRoot":"","sources":["../../../src/service/env-collector.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,14 @@ export declare class MemoryService {
28
28
  save(key: string, content: string, category?: string, importance?: number, extras?: Partial<Pick<MemoryEntry, 'memoryLayer' | 'sourceSessionId' | 'sourceTimestamp' | 'sceneId' | 'sourceLayer' | 'sourceIds'>>): MemoryEntry;
29
29
  delete(key: string): boolean;
30
30
  recall(query?: string, category?: string, limit?: number): MemoryEntry[];
31
+ /**
32
+ * 获取用于注入 system prompt 的记忆文本。
33
+ *
34
+ * 安全限制:
35
+ * - 单条记忆 content 截断到 MAX_ENTRY_CHARS(默认 2000 字符),防止超大记忆
36
+ * (如误存的工具结果/工作流快照)撑爆 system prompt 导致 TPM 429
37
+ * - 总长度限制 MAX_TOTAL_CHARS(默认 8000 字符),确保 prompt 不会过大
38
+ */
31
39
  getAllForPrompt(maxEntries?: number): string;
32
40
  getStats(): {
33
41
  total: number;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.service.d.ts","sourceRoot":"","sources":["../../../src/service/memory.service.ts"],"names":[],"mappings":"AAQA,WAAW;AACX,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,WAAW;AACX,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AASD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAc;gBAEf,OAAO,CAAC,EAAE,MAAM;IAO5B,IAAI,CACF,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAiB,EAC3B,UAAU,GAAE,MAAU,EACtB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC,CAAC,GACnI,WAAW;IAqCd,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IAkB5E,eAAe,CAAC,UAAU,GAAE,MAAW,GAAG,MAAM;IAOhD,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAQjE,OAAO,IAAI,MAAM,EAAE;IAInB,aAAa,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE;IAOjD,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,UAAU;CAGnB;AAKD,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAKhE;AAED,gBAAgB;AAChB,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"memory.service.d.ts","sourceRoot":"","sources":["../../../src/service/memory.service.ts"],"names":[],"mappings":"AAQA,WAAW;AACX,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,WAAW;AACX,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AASD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAc;gBAEf,OAAO,CAAC,EAAE,MAAM;IAO5B,IAAI,CACF,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAiB,EAC3B,UAAU,GAAE,MAAU,EACtB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC,CAAC,GACnI,WAAW;IAwCd,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,WAAW,EAAE;IAkB5E;;;;;;;OAOG;IACH,eAAe,CAAC,UAAU,GAAE,MAAW,GAAG,MAAM;IAehD,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAQjE,OAAO,IAAI,MAAM,EAAE;IAInB,aAAa,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE;IAOjD,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,UAAU;CAGnB;AAKD,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAKhE;AAED,gBAAgB;AAChB,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -3,7 +3,7 @@
3
3
  // ============================================================
4
4
  import * as fs from 'fs';
5
5
  import * as path from 'path';
6
- import { getProjectDataPath, formatLocalDateTime } from '@cicctencent/agent-core';
6
+ import { getProjectDataPath, formatLocalDateTime, MAX_SAVE_CHARS, MAX_ENTRY_CHARS, MAX_TOTAL_CHARS, truncateStr } from '@cicctencent/agent-core';
7
7
  const DEFAULT_STORE = { entries: [], version: 1 };
8
8
  /**
9
9
  * 长期记忆服务
@@ -19,9 +19,11 @@ export class MemoryService {
19
19
  this.store = this.load();
20
20
  }
21
21
  save(key, content, category = 'custom', importance = 3, extras) {
22
+ // 防止超大内容写入记忆(如误存的工具结果/工作流快照),使用公共截断常量
23
+ const safeContent = truncateStr(content, MAX_SAVE_CHARS);
22
24
  const existing = this.store.entries.find(e => e.key === key);
23
25
  if (existing) {
24
- existing.content = content;
26
+ existing.content = safeContent;
25
27
  existing.category = category;
26
28
  existing.importance = importance;
27
29
  existing.updatedAt = formatLocalDateTime();
@@ -43,7 +45,7 @@ export class MemoryService {
43
45
  const entry = {
44
46
  id: this.generateId(),
45
47
  key,
46
- content,
48
+ content: safeContent,
47
49
  category,
48
50
  importance,
49
51
  createdAt: formatLocalDateTime(),
@@ -84,12 +86,29 @@ export class MemoryService {
84
86
  });
85
87
  return results.slice(0, limit);
86
88
  }
89
+ /**
90
+ * 获取用于注入 system prompt 的记忆文本。
91
+ *
92
+ * 安全限制:
93
+ * - 单条记忆 content 截断到 MAX_ENTRY_CHARS(默认 2000 字符),防止超大记忆
94
+ * (如误存的工具结果/工作流快照)撑爆 system prompt 导致 TPM 429
95
+ * - 总长度限制 MAX_TOTAL_CHARS(默认 8000 字符),确保 prompt 不会过大
96
+ */
87
97
  getAllForPrompt(maxEntries = 10) {
88
98
  const entries = this.recall(undefined, undefined, maxEntries);
89
99
  if (entries.length === 0)
90
100
  return '';
91
- const lines = entries.map(e => `- [${e.category}] ${e.key}: ${e.content}`);
92
- return `## Long-term Memory\n${lines.join('\n')}`;
101
+ const parts = [];
102
+ let totalLen = 0;
103
+ for (const e of entries) {
104
+ const content = truncateStr(e.content || '', MAX_ENTRY_CHARS);
105
+ const line = `- [${e.category}] ${e.key}: ${content}`;
106
+ if (totalLen + line.length > MAX_TOTAL_CHARS)
107
+ break;
108
+ parts.push(line);
109
+ totalLen += line.length;
110
+ }
111
+ return `## Long-term Memory\n${parts.join('\n')}`;
93
112
  }
94
113
  getStats() {
95
114
  const byCategory = {};
@@ -1 +1 @@
1
- {"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../../src/service/memory.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../../src/service/memory.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * @file DefaultModelConfigResolver — 模型配置解析器默认实现
3
+ * @description 将 resolveModelConfig/createProviderFromModelConfig 模式下沉到 agent-server,
4
+ * 供 work_agent 和 omniinsight-bi 等上层应用复用。
5
+ */
6
+ import type { LLMProvider } from '@cicctencent/agent-core';
7
+ import type { SettingsProvider, ModelProviderConfig, TenantContext } from '../types.js';
8
+ /**
9
+ * 模型配置解析器默认实现
10
+ *
11
+ * 提供统一的模型配置解析和 LLMProvider 创建逻辑:
12
+ * - resolve(): 根据 modelConfigId 查找对应的 ModelProviderConfig
13
+ * - createProvider(): 根据 modelConfigId 创建 LLMProvider 实例
14
+ * - resolveForRole(): 角色分层调度(role_based 策略)
15
+ * - resolveForScene(): 场景分层调度(如 memory_extraction)
16
+ * - createFallbackProvider(): 创建降级 Provider
17
+ *
18
+ * 上层应用可直接使用此实现,或实现自定义 ModelConfigResolver SPI。
19
+ */
20
+ export declare class DefaultModelConfigResolver {
21
+ private settingsProvider;
22
+ private defaultTenant?;
23
+ constructor(settingsProvider: SettingsProvider, defaultTenant?: TenantContext);
24
+ /**
25
+ * 获取设置(带默认租户)
26
+ */
27
+ private getSettings;
28
+ /**
29
+ * 解析模型配置
30
+ *
31
+ * 解析顺序:
32
+ * 1. 指定了 modelConfigId → 精确查找
33
+ * 2. 使用 defaultModelId → 查找默认配置
34
+ * 3. 从 modelProviders 中找第一个可用的
35
+ * 4. 回退到全局 apiKeys 设置
36
+ *
37
+ * @param modelConfigId 模型配置 ID(可选)
38
+ * @param tenant 租户上下文(可选)
39
+ * @returns ModelProviderConfig
40
+ */
41
+ resolve(modelConfigId?: string, tenant?: TenantContext): ModelProviderConfig;
42
+ /**
43
+ * 根据 modelConfigId 创建 LLMProvider 实例
44
+ *
45
+ * 封装 resolve + createLLMProvider 的重复调用模式,
46
+ * 同时处理代理配置和模型覆盖。
47
+ *
48
+ * @param modelConfigId 模型配置 ID(可选)
49
+ * @param modelOverride 模型名称覆盖(可选,用于 profile.model 覆盖)
50
+ * @param tenant 租户上下文(可选)
51
+ * @returns LLMProvider 实例
52
+ */
53
+ createProvider(modelConfigId?: string, modelOverride?: string, tenant?: TenantContext): LLMProvider;
54
+ /**
55
+ * 根据工作流角色解析对应的 modelConfigId(模型分层调度)
56
+ *
57
+ * 当 modelTierStrategy === 'role_based' 时,按角色查找对应的 modelConfigId;
58
+ * 否则返回 undefined(走默认主流程)。
59
+ *
60
+ * @param role WorkflowRole 或场景 key
61
+ * @param tenant 租户上下文(可选)
62
+ * @returns modelConfigId,未配置则返回 undefined
63
+ */
64
+ resolveForRole(role?: string, tenant?: TenantContext): string | undefined;
65
+ /**
66
+ * 根据场景 key 解析对应的 modelConfigId(场景模型分层调度)
67
+ *
68
+ * 与 resolveForRole 不同,本方法不依赖 modelTierStrategy === 'role_based',
69
+ * 只要 modelTiers 中配置了对应场景 key 即生效。
70
+ *
71
+ * 用于记忆提取管道等非主对话场景的独立模型配置。
72
+ *
73
+ * @param scene 场景 key(如 'memory_extraction', 'scene_aggregation')
74
+ * @param tenant 租户上下文(可选)
75
+ * @returns modelConfigId,未配置则返回 undefined(走默认主流程)
76
+ */
77
+ resolveForScene(scene: string, tenant?: TenantContext): string | undefined;
78
+ /**
79
+ * 根据 modelConfigId 创建降级 LLM Provider
80
+ *
81
+ * @param modelConfigId 模型配置 ID
82
+ * @param tenant 租户上下文(可选)
83
+ * @returns LLMProvider 实例,无有效配置时返回 undefined
84
+ */
85
+ createFallbackProvider(modelConfigId: string, tenant?: TenantContext): LLMProvider | undefined;
86
+ /**
87
+ * 获取降级模型配置 ID(从 agentConfig.fallbackProvider)
88
+ *
89
+ * @param tenant 租户上下文(可选)
90
+ * @returns fallbackProvider modelConfigId,未配置则返回 undefined
91
+ */
92
+ getFallbackModelConfigId(tenant?: TenantContext): string | undefined;
93
+ /**
94
+ * 检查 Agent 系统是否可用(API Key 已配置)
95
+ *
96
+ * @param tenant 租户上下文(可选)
97
+ * @returns 是否可用
98
+ */
99
+ isAvailable(tenant?: TenantContext): boolean;
100
+ /**
101
+ * 获取 Agent 不可用的具体原因
102
+ *
103
+ * @param tenant 租户上下文(可选)
104
+ * @returns 不可用原因描述
105
+ */
106
+ getUnavailableReason(tenant?: TenantContext): string;
107
+ }
108
+ //# sourceMappingURL=model-config-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-config-resolver.d.ts","sourceRoot":"","sources":["../../../src/service/model-config-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAkB,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAExG;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,aAAa;IAK7E;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,mBAAmB;IAmC5E;;;;;;;;;;OAUG;IACH,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,WAAW;IAoBnG;;;;;;;;;OASG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;IAmBzE;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;IAO1E;;;;;;OAMG;IACH,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,WAAW,GAAG,SAAS;IAM9F;;;;;OAKG;IACH,wBAAwB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;IAKpE;;;;;OAKG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO;IAkB5C;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM;CA0BrD"}