@cicctencent/agent-server 0.1.2 → 0.2.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.
Files changed (82) hide show
  1. package/README.md +93 -16
  2. package/dist/cjs/agent/agent-server.d.ts.map +1 -1
  3. package/dist/cjs/agent/agent-server.js +95 -43
  4. package/dist/cjs/agent/agent-server.js.map +1 -1
  5. package/dist/cjs/index.d.ts +2 -1
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +7 -3
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/service/agent-profile.service.d.ts +25 -2
  10. package/dist/cjs/service/agent-profile.service.d.ts.map +1 -1
  11. package/dist/cjs/service/agent-profile.service.js +18 -7
  12. package/dist/cjs/service/agent-profile.service.js.map +1 -1
  13. package/dist/cjs/service/cache.service.d.ts +70 -0
  14. package/dist/cjs/service/cache.service.d.ts.map +1 -0
  15. package/dist/cjs/service/cache.service.js +270 -0
  16. package/dist/cjs/service/cache.service.js.map +1 -0
  17. package/dist/cjs/service/engine-pool.d.ts +15 -2
  18. package/dist/cjs/service/engine-pool.d.ts.map +1 -1
  19. package/dist/cjs/service/engine-pool.js +15 -4
  20. package/dist/cjs/service/engine-pool.js.map +1 -1
  21. package/dist/cjs/service/settings.service.d.ts +7 -3
  22. package/dist/cjs/service/settings.service.d.ts.map +1 -1
  23. package/dist/cjs/service/settings.service.js +19 -14
  24. package/dist/cjs/service/settings.service.js.map +1 -1
  25. package/dist/cjs/spi/adapters.d.ts +55 -3
  26. package/dist/cjs/spi/adapters.d.ts.map +1 -1
  27. package/dist/cjs/spi/adapters.js +75 -23
  28. package/dist/cjs/spi/adapters.js.map +1 -1
  29. package/dist/cjs/spi/index.d.ts +85 -1
  30. package/dist/cjs/spi/index.d.ts.map +1 -1
  31. package/dist/cjs/spi/index.js +90 -6
  32. package/dist/cjs/spi/index.js.map +1 -1
  33. package/dist/cjs/spi/types.d.ts +47 -42
  34. package/dist/cjs/spi/types.d.ts.map +1 -1
  35. package/dist/cjs/store/app-stores.js +1 -1
  36. package/dist/cjs/store/app-stores.js.map +1 -1
  37. package/dist/cjs/types.d.ts +125 -24
  38. package/dist/cjs/types.d.ts.map +1 -1
  39. package/dist/cjs/utils/data-dir.d.ts.map +1 -1
  40. package/dist/cjs/utils/data-dir.js +8 -11
  41. package/dist/cjs/utils/data-dir.js.map +1 -1
  42. package/dist/esm/agent/agent-server.d.ts.map +1 -1
  43. package/dist/esm/agent/agent-server.js +98 -46
  44. package/dist/esm/agent/agent-server.js.map +1 -1
  45. package/dist/esm/index.d.ts +2 -1
  46. package/dist/esm/index.d.ts.map +1 -1
  47. package/dist/esm/index.js +1 -0
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/service/agent-profile.service.d.ts +25 -2
  50. package/dist/esm/service/agent-profile.service.d.ts.map +1 -1
  51. package/dist/esm/service/agent-profile.service.js +18 -7
  52. package/dist/esm/service/agent-profile.service.js.map +1 -1
  53. package/dist/esm/service/cache.service.d.ts +70 -0
  54. package/dist/esm/service/cache.service.d.ts.map +1 -0
  55. package/dist/esm/service/cache.service.js +264 -0
  56. package/dist/esm/service/cache.service.js.map +1 -0
  57. package/dist/esm/service/engine-pool.d.ts +15 -2
  58. package/dist/esm/service/engine-pool.d.ts.map +1 -1
  59. package/dist/esm/service/engine-pool.js +15 -4
  60. package/dist/esm/service/engine-pool.js.map +1 -1
  61. package/dist/esm/service/settings.service.d.ts +7 -3
  62. package/dist/esm/service/settings.service.d.ts.map +1 -1
  63. package/dist/esm/service/settings.service.js +19 -14
  64. package/dist/esm/service/settings.service.js.map +1 -1
  65. package/dist/esm/spi/adapters.d.ts +55 -3
  66. package/dist/esm/spi/adapters.d.ts.map +1 -1
  67. package/dist/esm/spi/adapters.js +75 -23
  68. package/dist/esm/spi/adapters.js.map +1 -1
  69. package/dist/esm/spi/index.d.ts +85 -1
  70. package/dist/esm/spi/index.d.ts.map +1 -1
  71. package/dist/esm/spi/index.js +90 -6
  72. package/dist/esm/spi/index.js.map +1 -1
  73. package/dist/esm/spi/types.d.ts +47 -42
  74. package/dist/esm/spi/types.d.ts.map +1 -1
  75. package/dist/esm/store/app-stores.js +1 -1
  76. package/dist/esm/store/app-stores.js.map +1 -1
  77. package/dist/esm/types.d.ts +125 -24
  78. package/dist/esm/types.d.ts.map +1 -1
  79. package/dist/esm/utils/data-dir.d.ts.map +1 -1
  80. package/dist/esm/utils/data-dir.js +0 -3
  81. package/dist/esm/utils/data-dir.js.map +1 -1
  82. package/package.json +1 -1
package/dist/cjs/index.js CHANGED
@@ -3,9 +3,9 @@
3
3
  // agent-server — 统一导出
4
4
  // ============================================================
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getAutomationStore = exports.AutomationStore = exports.getWorkspaceStore = exports.WorkspaceStore = exports.FileNoteStore = exports.getToolResultStore = exports.McpServerStore = exports.JsonListStore = exports.JsonStore = exports.resetAdapters = exports.listAdapters = exports.listAdapterTypes = exports.getAdapter = exports.registerAdapter = exports.setLogTransport = exports.logEvent = exports.redactAuditEntry = exports.listAuditLogs = exports.appendAuditLog = exports.initPermissionService = exports.decidePermissionRequest = exports.findApprovedPermission = exports.listPermissionRequests = exports.createPermissionRequest = exports.clearRiskCache = exports.isLowRiskTool = exports.assessToolRisk = exports.updateSecurityPolicy = exports.getSecurityPolicy = exports.createSafetyAuditMiddleware = exports.createBuiltinTools = exports.LocalFileSystemExecutor = exports.LocalShellExecutor = exports.collectEngineOutput = exports.runAgentSSEStream = exports.initSSEResponse = exports.writeSSE = exports.resetRunRegistry = exports.getRunRegistry = exports.resetEnginePool = exports.getEnginePool = exports.resetMemoryService = exports.getMemoryService = exports.MemoryService = exports.RESULT_SYNTHESIS_PROMPT = exports.DefaultPromptBuilder = exports.DefaultAgentProfileProvider = exports.DefaultChatStoreProvider = exports.DefaultSettingsProvider = exports.createAgentServer = void 0;
7
- exports.getDefaultProfile = exports.getProfile = exports.listProfiles = exports.getChatStoreProvider = exports.buildThreadHistory = exports.updateMessage = exports.addMessage = exports.getMessages = exports.createThread = exports.getThread = exports.getThreads = exports.getSettingsProvider = exports.resetSettings = exports.updateSettings = exports.getSettings = exports.ensureDefaultData = exports.getAppName = exports.setAppName = exports.expandEnvVars = exports.ensureProjectDataDir = exports.ensureDataDir = exports.getProjectDataPath = exports.getDataPath = exports.refreshAutomationCount = exports.refreshThreadCount = exports.deleteWorkspace = exports.updateWorkspace = exports.createWorkspace = exports.ensureDefaultWorkspace = exports.getWorkspace = exports.getWorkspaces = exports.isImageMime = exports.getMimeType = exports.resolveArtifactPath = exports.saveArtifact = exports.FileKnowledgeBase = exports.EmbeddingVectorIndex = exports.parseDocument = exports.importFromOpenAPI = exports.buildFromTemplate = exports.resolveBodyTemplate = exports.ApiBridgeClient = exports.ProcessCodeSandbox = exports.getSandboxManager = exports.LocalSandboxManager = exports.SandboxShellExecutor = exports.SandboxFileSystemExecutor = exports.LocalSandbox = exports.getAutomationRunStore = exports.AutomationRunStore = void 0;
8
- exports.CustomSSEAdapter = exports.adaptRequest = exports.KoaRequestAdapter = exports.ExpressRequestAdapter = exports.adaptSSE = exports.NativeHttpSSEAdapter = exports.FastifySSEAdapter = exports.KoaSSEAdapter = exports.ExpressSSEAdapter = exports.createInMemoryStorage = exports.createJsonFileStorage = exports.DatabaseListStorage = exports.InMemoryListStorage = exports.InMemoryKVStorage = exports.JsonFileListStorage = exports.JsonFileKVStorage = exports.getIdCounter = exports.setIdCounter = exports.nextId = exports.getAgentProfileProvider = exports.deleteProfile = exports.updateProfile = exports.createProfile = void 0;
6
+ exports.WorkspaceStore = exports.FileNoteStore = exports.getToolResultStore = exports.McpServerStore = exports.JsonListStore = exports.JsonStore = exports.resetAdapters = exports.listAdapters = exports.listAdapterTypes = exports.getAdapter = exports.registerAdapter = exports.setLogTransport = exports.logEvent = exports.redactAuditEntry = exports.listAuditLogs = exports.appendAuditLog = exports.initPermissionService = exports.decidePermissionRequest = exports.findApprovedPermission = exports.listPermissionRequests = exports.createPermissionRequest = exports.clearRiskCache = exports.isLowRiskTool = exports.assessToolRisk = exports.updateSecurityPolicy = exports.getSecurityPolicy = exports.createSafetyAuditMiddleware = exports.createBuiltinTools = exports.LocalFileSystemExecutor = exports.LocalShellExecutor = exports.collectEngineOutput = exports.runAgentSSEStream = exports.initSSEResponse = exports.writeSSE = exports.CachedAgentProfileProvider = exports.CachedSettingsProvider = exports.TTLCache = exports.resetRunRegistry = exports.getRunRegistry = exports.resetEnginePool = exports.getEnginePool = exports.resetMemoryService = exports.getMemoryService = exports.MemoryService = exports.RESULT_SYNTHESIS_PROMPT = exports.DefaultPromptBuilder = exports.DefaultAgentProfileProvider = exports.DefaultChatStoreProvider = exports.DefaultSettingsProvider = exports.createAgentServer = void 0;
7
+ exports.getChatStoreProvider = exports.buildThreadHistory = exports.updateMessage = exports.addMessage = exports.getMessages = exports.createThread = exports.getThread = exports.getThreads = exports.getSettingsProvider = exports.resetSettings = exports.updateSettings = exports.getSettings = exports.ensureDefaultData = exports.getAppName = exports.setAppName = exports.expandEnvVars = exports.ensureProjectDataDir = exports.ensureDataDir = exports.getProjectDataPath = exports.getDataPath = exports.refreshAutomationCount = exports.refreshThreadCount = exports.deleteWorkspace = exports.updateWorkspace = exports.createWorkspace = exports.ensureDefaultWorkspace = exports.getWorkspace = exports.getWorkspaces = exports.isImageMime = exports.getMimeType = exports.resolveArtifactPath = exports.saveArtifact = exports.FileKnowledgeBase = exports.EmbeddingVectorIndex = exports.parseDocument = exports.importFromOpenAPI = exports.buildFromTemplate = exports.resolveBodyTemplate = exports.ApiBridgeClient = exports.ProcessCodeSandbox = exports.getSandboxManager = exports.LocalSandboxManager = exports.SandboxShellExecutor = exports.SandboxFileSystemExecutor = exports.LocalSandbox = exports.getAutomationRunStore = exports.AutomationRunStore = exports.getAutomationStore = exports.AutomationStore = exports.getWorkspaceStore = void 0;
8
+ exports.CustomSSEAdapter = exports.adaptRequest = exports.KoaRequestAdapter = exports.ExpressRequestAdapter = exports.adaptSSE = exports.NativeHttpSSEAdapter = exports.FastifySSEAdapter = exports.KoaSSEAdapter = exports.ExpressSSEAdapter = exports.createInMemoryStorage = exports.createJsonFileStorage = exports.DatabaseListStorage = exports.InMemoryListStorage = exports.InMemoryKVStorage = exports.JsonFileListStorage = exports.JsonFileKVStorage = exports.getIdCounter = exports.setIdCounter = exports.nextId = exports.getAgentProfileProvider = exports.deleteProfile = exports.updateProfile = exports.createProfile = exports.getDefaultProfile = exports.getProfile = exports.listProfiles = void 0;
9
9
  // ---- 工厂函数 ----
10
10
  var agent_server_ts_1 = require("./agent/agent-server.js");
11
11
  Object.defineProperty(exports, "createAgentServer", { enumerable: true, get: function () { return agent_server_ts_1.createAgentServer; } });
@@ -30,6 +30,10 @@ Object.defineProperty(exports, "resetEnginePool", { enumerable: true, get: funct
30
30
  var run_registry_ts_1 = require("./service/run-registry.js");
31
31
  Object.defineProperty(exports, "getRunRegistry", { enumerable: true, get: function () { return run_registry_ts_1.getRunRegistry; } });
32
32
  Object.defineProperty(exports, "resetRunRegistry", { enumerable: true, get: function () { return run_registry_ts_1.resetRunRegistry; } });
33
+ var cache_service_ts_1 = require("./service/cache.service.js");
34
+ Object.defineProperty(exports, "TTLCache", { enumerable: true, get: function () { return cache_service_ts_1.TTLCache; } });
35
+ Object.defineProperty(exports, "CachedSettingsProvider", { enumerable: true, get: function () { return cache_service_ts_1.CachedSettingsProvider; } });
36
+ Object.defineProperty(exports, "CachedAgentProfileProvider", { enumerable: true, get: function () { return cache_service_ts_1.CachedAgentProfileProvider; } });
33
37
  // ---- SSE ----
34
38
  var sse_handler_ts_1 = require("./sse/sse-handler.js");
35
39
  Object.defineProperty(exports, "writeSSE", { enumerable: true, get: function () { return sse_handler_ts_1.writeSSE; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,30 @@
1
1
  import type { AgentProfileEntity, AgentProfileProvider } from '../types.js';
2
+ /** 默认 Agent Profile 配置(应用层可通过构造函数覆盖) */
3
+ export interface DefaultProfileConfig {
4
+ name: string;
5
+ description: string;
6
+ icon: string;
7
+ color: string;
8
+ }
2
9
  declare function nextId(namespace: string): number;
3
10
  declare function setIdCounter(namespace: string, val: number): void;
4
11
  declare function getIdCounter(namespace: string): number;
5
12
  /**
6
13
  * 默认 AgentProfileProvider 实现 — JSON 文件存储
14
+ *
15
+ * @param _dataDir - 数据目录(保留用于未来扩展,当前由 JsonListStore 通过 getProjectDataPath 管理)
16
+ * @param profileConfig - 应用层覆盖默认 Agent 的显示配置(名称、图标、颜色等)
7
17
  */
8
18
  export declare class DefaultAgentProfileProvider implements AgentProfileProvider {
9
19
  private store;
10
- constructor(dataDir?: string);
20
+ private profileConfig;
21
+ constructor(_dataDir?: string, profileConfig?: {
22
+ name?: string;
23
+ description?: string;
24
+ icon?: string;
25
+ color?: string;
26
+ basePrompt?: string;
27
+ });
11
28
  private ensureDefaultProfile;
12
29
  listProfiles(): AgentProfileEntity[];
13
30
  getProfile(id: number): AgentProfileEntity | undefined;
@@ -16,7 +33,13 @@ export declare class DefaultAgentProfileProvider implements AgentProfileProvider
16
33
  updateProfile(id: number, data: Partial<AgentProfileEntity>): AgentProfileEntity | undefined;
17
34
  deleteProfile(id: number): boolean;
18
35
  }
19
- export declare function getAgentProfileProvider(dataDir?: string): DefaultAgentProfileProvider;
36
+ export declare function getAgentProfileProvider(dataDir?: string, profileConfig?: {
37
+ name?: string;
38
+ description?: string;
39
+ icon?: string;
40
+ color?: string;
41
+ basePrompt?: string;
42
+ }): DefaultAgentProfileProvider;
20
43
  export declare function listProfiles(): AgentProfileEntity[];
21
44
  export declare function getProfile(id: number): AgentProfileEntity | undefined;
22
45
  export declare function getDefaultProfile(): AgentProfileEntity | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-profile.service.d.ts","sourceRoot":"","sources":["../../../src/service/agent-profile.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQ5E,iBAAS,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGzC;AAED,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAE1D;AAED,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,oBAAoB;IACtE,OAAO,CAAC,KAAK,CAAoC;gBAErC,OAAO,CAAC,EAAE,MAAM;IAK5B,OAAO,CAAC,oBAAoB;IAuB5B,YAAY,IAAI,kBAAkB,EAAE;IAIpC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAItD,iBAAiB,IAAI,kBAAkB,GAAG,SAAS;IAKnD,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAgCpE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,GAAG,SAAS;IAI5F,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAKnC;AAMD,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,2BAA2B,CAGrF;AAGD,wBAAgB,YAAY,IAAI,kBAAkB,EAAE,CAEnD;AACD,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAErE;AACD,wBAAgB,iBAAiB,IAAI,kBAAkB,GAAG,SAAS,CAElE;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAEnF;AACD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,GAAG,SAAS,CAE3G;AACD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"agent-profile.service.d.ts","sourceRoot":"","sources":["../../../src/service/agent-profile.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAK5E,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAYD,iBAAS,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGzC;AAED,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAE1D;AAED,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,qBAAa,2BAA4B,YAAW,oBAAoB;IACtE,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,aAAa,CAAuB;gBAEhC,QAAQ,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAM1I,OAAO,CAAC,oBAAoB;IAuB5B,YAAY,IAAI,kBAAkB,EAAE;IAIpC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAItD,iBAAiB,IAAI,kBAAkB,GAAG,SAAS;IAKnD,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAgCpE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,GAAG,SAAS;IAI5F,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAKnC;AAMD,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,2BAA2B,CAGlM;AAGD,wBAAgB,YAAY,IAAI,kBAAkB,EAAE,CAEnD;AACD,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAErE;AACD,wBAAgB,iBAAiB,IAAI,kBAAkB,GAAG,SAAS,CAElE;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAEnF;AACD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,GAAG,SAAS,CAE3G;AACD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -17,6 +17,12 @@ exports.getIdCounter = getIdCounter;
17
17
  const index_ts_1 = require("../store/index.js");
18
18
  const agent_core_1 = require("@cicctencent/agent-core");
19
19
  const DEFAULT_BASE_PROMPT = 'You are a helpful AI assistant with access to tools. Use tools when needed to accomplish tasks. Always explain your actions clearly. Respond in the same language as the user.';
20
+ const DEFAULT_PROFILE_CONFIG = {
21
+ name: 'Default Agent',
22
+ description: 'Built-in default agent with tool-calling and task delegation support',
23
+ icon: '🤖',
24
+ color: '#6B5CE7',
25
+ };
20
26
  // 自增 ID 辅助
21
27
  let _idCounters = {};
22
28
  function nextId(namespace) {
@@ -32,11 +38,16 @@ function getIdCounter(namespace) {
32
38
  }
33
39
  /**
34
40
  * 默认 AgentProfileProvider 实现 — JSON 文件存储
41
+ *
42
+ * @param _dataDir - 数据目录(保留用于未来扩展,当前由 JsonListStore 通过 getProjectDataPath 管理)
43
+ * @param profileConfig - 应用层覆盖默认 Agent 的显示配置(名称、图标、颜色等)
35
44
  */
36
45
  class DefaultAgentProfileProvider {
37
46
  store;
38
- constructor(dataDir) {
47
+ profileConfig;
48
+ constructor(_dataDir, profileConfig) {
39
49
  this.store = new index_ts_1.JsonListStore('agent-profiles.json', { projectLocal: true, ttl: 5 * 60 * 1000 });
50
+ this.profileConfig = { ...DEFAULT_PROFILE_CONFIG, ...profileConfig };
40
51
  this.ensureDefaultProfile();
41
52
  }
42
53
  ensureDefaultProfile() {
@@ -44,10 +55,10 @@ class DefaultAgentProfileProvider {
44
55
  return;
45
56
  this.store.add({
46
57
  id: nextId('agent-profile'),
47
- name: '默认 Agent',
48
- description: '内置默认 Agent,支持工具调用和任务委派',
49
- icon: '🤖',
50
- color: '#6B5CE7',
58
+ name: this.profileConfig.name,
59
+ description: this.profileConfig.description,
60
+ icon: this.profileConfig.icon,
61
+ color: this.profileConfig.color,
51
62
  basePrompt: DEFAULT_BASE_PROMPT,
52
63
  maxIterations: 15,
53
64
  maxMessages: 50,
@@ -116,9 +127,9 @@ class DefaultAgentProfileProvider {
116
127
  exports.DefaultAgentProfileProvider = DefaultAgentProfileProvider;
117
128
  // ---- 全局单例 ----
118
129
  let globalProvider = null;
119
- function getAgentProfileProvider(dataDir) {
130
+ function getAgentProfileProvider(dataDir, profileConfig) {
120
131
  if (!globalProvider)
121
- globalProvider = new DefaultAgentProfileProvider(dataDir);
132
+ globalProvider = new DefaultAgentProfileProvider(dataDir, profileConfig);
122
133
  return globalProvider;
123
134
  }
124
135
  // 向后兼容的导出
@@ -1 +1 @@
1
- {"version":3,"file":"agent-profile.service.js","sourceRoot":"","sources":["../../../src/service/agent-profile.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-profile.service.js","sourceRoot":"","sources":["../../../src/service/agent-profile.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { AgentProfileProvider, SettingsProvider, AgentProfileEntity, SettingsEntity, TenantContext } from '../types.js';
2
+ /**
3
+ * 通用 TTL 缓存。
4
+ *
5
+ * - `ttl > 0`:启用缓存,过期后自动失效
6
+ * - `ttl === 0`:禁用缓存,get() 永远返回 null(每次直接查 Provider)
7
+ */
8
+ export declare class TTLCache<T> {
9
+ private cache;
10
+ private ttl;
11
+ constructor(ttlMs?: number);
12
+ /** 是否启用缓存 */
13
+ get enabled(): boolean;
14
+ /** 更新 TTL(不影响已缓存条目的过期时间) */
15
+ setTTL(ttlMs: number): void;
16
+ /** 获取缓存值(未命中或过期返回 null) */
17
+ get(key: string): T | null;
18
+ /** 设置缓存值 */
19
+ set(key: string, value: T): void;
20
+ /** 清除指定 key 的缓存 */
21
+ invalidate(key?: string): void;
22
+ /** 清除所有缓存 */
23
+ clear(): void;
24
+ /** 清除已过期的条目 */
25
+ purgeExpired(): void;
26
+ /** 缓存条目数量 */
27
+ get size(): number;
28
+ }
29
+ /**
30
+ * 包装 SettingsProvider,增加 TTL 缓存。
31
+ *
32
+ * 多进程部署时,每个进程独立缓存 Settings,TTL 到期后重新从底层 Provider 加载。
33
+ * 主动失效通过 `invalidate()` 清除缓存,上层可通过 `CacheInvalidationNotifier` 跨进程通知。
34
+ */
35
+ export declare class CachedSettingsProvider implements SettingsProvider {
36
+ private cache;
37
+ private delegate;
38
+ constructor(delegate: SettingsProvider, ttlMs?: number);
39
+ getSettings(tenant?: TenantContext): SettingsEntity;
40
+ updateSettings(updates: Partial<SettingsEntity>, tenant?: TenantContext): SettingsEntity;
41
+ resetSettings?(tenant?: TenantContext): SettingsEntity;
42
+ /** 清除缓存 */
43
+ invalidate(): void;
44
+ }
45
+ /**
46
+ * 包装 AgentProfileProvider,增加 TTL 缓存。
47
+ *
48
+ * 多进程部署时,每个进程独立缓存 Profile,TTL 到期后重新从底层 Provider 加载。
49
+ * 主动失效通过 `invalidate(profileId?)` 清除指定或全部 Profile 缓存。
50
+ */
51
+ export declare class CachedAgentProfileProvider implements AgentProfileProvider {
52
+ private cache;
53
+ private listCache;
54
+ private defaultCache;
55
+ private delegate;
56
+ constructor(delegate: AgentProfileProvider, ttlMs?: number);
57
+ private tenantKey;
58
+ listProfiles(tenant?: TenantContext): AgentProfileEntity[] | Promise<AgentProfileEntity[]>;
59
+ getProfile(id: number, tenant?: TenantContext): AgentProfileEntity | undefined | Promise<AgentProfileEntity | undefined>;
60
+ getDefaultProfile(tenant?: TenantContext): AgentProfileEntity | undefined | Promise<AgentProfileEntity | undefined>;
61
+ createProfile(data: Partial<AgentProfileEntity>, tenant?: TenantContext): AgentProfileEntity | Promise<AgentProfileEntity>;
62
+ updateProfile(id: number, data: Partial<AgentProfileEntity>, tenant?: TenantContext): AgentProfileEntity | undefined | Promise<AgentProfileEntity | undefined>;
63
+ deleteProfile(id: number, tenant?: TenantContext): boolean | Promise<boolean>;
64
+ /**
65
+ * 清除缓存。
66
+ * @param profileId 指定 profileId 时仅清除该 profile;不指定时清除全部
67
+ */
68
+ invalidate(profileId?: number): void;
69
+ }
70
+ //# sourceMappingURL=cache.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.service.d.ts","sourceRoot":"","sources":["../../../src/service/cache.service.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,aAAa,CAAC;AAYrB;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,GAAG,CAAS;gBAER,KAAK,GAAE,MAAe;IAIlC,aAAa;IACb,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,4BAA4B;IAC5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,2BAA2B;IAC3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAW1B,YAAY;IACZ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAKhC,mBAAmB;IACnB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ9B,aAAa;IACb,KAAK,IAAI,IAAI;IAIb,eAAe;IACf,YAAY,IAAI,IAAI;IASpB,aAAa;IACb,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAMD;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,QAAQ,CAAmB;gBAEvB,QAAQ,EAAE,gBAAgB,EAAE,KAAK,GAAE,MAAe;IAK9D,WAAW,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc;IAenD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc;IAWxF,aAAa,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc;IActD,WAAW;IACX,UAAU,IAAI,IAAI;CAGnB;AAMD;;;;;GAKG;AACH,qBAAa,0BAA2B,YAAW,oBAAoB;IACrE,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,QAAQ,EAAE,oBAAoB,EAAE,KAAK,GAAE,MAAe;IAOlE,OAAO,CAAC,SAAS;IAIjB,YAAY,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmB1F,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAgBxH,iBAAiB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAgBnH,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS1H,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAiB9J,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7E;;;OAGG;IACH,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;CASrC"}
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // CacheService — TTL 缓存包装器(多进程/多实例场景)
4
+ // ============================================================
5
+ //
6
+ // 问题:上层 Web 项目多进程部署时,每次 getSettings() / getProfile() 都查 DB 会产生大量重复查询。
7
+ // 解决:在 Provider 之上加一层 TTL 缓存,减少 DB 压力;同时支持主动失效。
8
+ //
9
+ // 缓存策略:
10
+ // - TTL 到期自动过期,下次请求重新从底层 Provider 加载
11
+ // - 主动失效通过 invalidate() 清除指定 key 或全部
12
+ // - 跨进程失效通过 CacheInvalidationNotifier 实现(如 Redis pub/sub)
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.CachedAgentProfileProvider = exports.CachedSettingsProvider = exports.TTLCache = void 0;
15
+ /**
16
+ * 通用 TTL 缓存。
17
+ *
18
+ * - `ttl > 0`:启用缓存,过期后自动失效
19
+ * - `ttl === 0`:禁用缓存,get() 永远返回 null(每次直接查 Provider)
20
+ */
21
+ class TTLCache {
22
+ cache = new Map();
23
+ ttl;
24
+ constructor(ttlMs = 60_000) {
25
+ this.ttl = ttlMs;
26
+ }
27
+ /** 是否启用缓存 */
28
+ get enabled() {
29
+ return this.ttl > 0;
30
+ }
31
+ /** 更新 TTL(不影响已缓存条目的过期时间) */
32
+ setTTL(ttlMs) {
33
+ this.ttl = ttlMs;
34
+ }
35
+ /** 获取缓存值(未命中或过期返回 null) */
36
+ get(key) {
37
+ if (!this.enabled)
38
+ return null;
39
+ const entry = this.cache.get(key);
40
+ if (!entry)
41
+ return null;
42
+ if (Date.now() > entry.expiresAt) {
43
+ this.cache.delete(key);
44
+ return null;
45
+ }
46
+ return entry.value;
47
+ }
48
+ /** 设置缓存值 */
49
+ set(key, value) {
50
+ if (!this.enabled)
51
+ return;
52
+ this.cache.set(key, { value, expiresAt: Date.now() + this.ttl });
53
+ }
54
+ /** 清除指定 key 的缓存 */
55
+ invalidate(key) {
56
+ if (key !== undefined) {
57
+ this.cache.delete(key);
58
+ }
59
+ else {
60
+ this.cache.clear();
61
+ }
62
+ }
63
+ /** 清除所有缓存 */
64
+ clear() {
65
+ this.cache.clear();
66
+ }
67
+ /** 清除已过期的条目 */
68
+ purgeExpired() {
69
+ const now = Date.now();
70
+ for (const [key, entry] of this.cache) {
71
+ if (now > entry.expiresAt) {
72
+ this.cache.delete(key);
73
+ }
74
+ }
75
+ }
76
+ /** 缓存条目数量 */
77
+ get size() {
78
+ return this.cache.size;
79
+ }
80
+ }
81
+ exports.TTLCache = TTLCache;
82
+ // ============================================================
83
+ // CachedSettingsProvider — Settings 缓存包装器
84
+ // ============================================================
85
+ /**
86
+ * 包装 SettingsProvider,增加 TTL 缓存。
87
+ *
88
+ * 多进程部署时,每个进程独立缓存 Settings,TTL 到期后重新从底层 Provider 加载。
89
+ * 主动失效通过 `invalidate()` 清除缓存,上层可通过 `CacheInvalidationNotifier` 跨进程通知。
90
+ */
91
+ class CachedSettingsProvider {
92
+ cache;
93
+ delegate;
94
+ constructor(delegate, ttlMs = 60_000) {
95
+ this.delegate = delegate;
96
+ this.cache = new TTLCache(ttlMs);
97
+ }
98
+ getSettings(tenant) {
99
+ const cacheKey = tenant ? `settings:${tenant.tenantId || tenant.userId || ''}` : 'settings';
100
+ const cached = this.cache.get(cacheKey);
101
+ if (cached)
102
+ return cached;
103
+ const value = this.delegate.getSettings(tenant);
104
+ // 支持异步 Provider:如果是 Promise,不能同步返回
105
+ if (value instanceof Promise) {
106
+ // 异步模式下不缓存 Promise,直接返回让调用方 await
107
+ // 缓存将在 Promise 链中填充
108
+ return value.then(v => { this.cache.set(cacheKey, v); return v; });
109
+ }
110
+ this.cache.set(cacheKey, value);
111
+ return value;
112
+ }
113
+ updateSettings(updates, tenant) {
114
+ const cacheKey = tenant ? `settings:${tenant.tenantId || tenant.userId || ''}` : 'settings';
115
+ const value = this.delegate.updateSettings(updates, tenant);
116
+ if (value instanceof Promise) {
117
+ return value.then(v => { this.cache.set(cacheKey, v); return v; });
118
+ }
119
+ // 更新后立即刷新缓存
120
+ this.cache.set(cacheKey, value);
121
+ return value;
122
+ }
123
+ resetSettings(tenant) {
124
+ const cacheKey = tenant ? `settings:${tenant.tenantId || tenant.userId || ''}` : 'settings';
125
+ if (this.delegate.resetSettings) {
126
+ const value = this.delegate.resetSettings(tenant);
127
+ if (value instanceof Promise) {
128
+ return value.then(v => { this.cache.set(cacheKey, v); return v; });
129
+ }
130
+ this.cache.set(cacheKey, value);
131
+ return value;
132
+ }
133
+ this.cache.invalidate(cacheKey);
134
+ return this.getSettings(tenant);
135
+ }
136
+ /** 清除缓存 */
137
+ invalidate() {
138
+ this.cache.invalidate('settings');
139
+ }
140
+ }
141
+ exports.CachedSettingsProvider = CachedSettingsProvider;
142
+ // ============================================================
143
+ // CachedAgentProfileProvider — Profile 缓存包装器
144
+ // ============================================================
145
+ /**
146
+ * 包装 AgentProfileProvider,增加 TTL 缓存。
147
+ *
148
+ * 多进程部署时,每个进程独立缓存 Profile,TTL 到期后重新从底层 Provider 加载。
149
+ * 主动失效通过 `invalidate(profileId?)` 清除指定或全部 Profile 缓存。
150
+ */
151
+ class CachedAgentProfileProvider {
152
+ cache;
153
+ listCache;
154
+ defaultCache;
155
+ delegate;
156
+ constructor(delegate, ttlMs = 60_000) {
157
+ this.delegate = delegate;
158
+ this.cache = new TTLCache(ttlMs);
159
+ this.listCache = new TTLCache(ttlMs);
160
+ this.defaultCache = new TTLCache(ttlMs);
161
+ }
162
+ tenantKey(tenant) {
163
+ return tenant ? String(tenant.tenantId || tenant.userId || '') : '';
164
+ }
165
+ listProfiles(tenant) {
166
+ const tk = this.tenantKey(tenant);
167
+ const listKey = tk ? `list:${tk}` : 'list';
168
+ const cached = this.listCache.get(listKey);
169
+ if (cached)
170
+ return cached;
171
+ const result = this.delegate.listProfiles(tenant);
172
+ if (result instanceof Promise) {
173
+ return result.then(value => {
174
+ this.listCache.set(listKey, value);
175
+ // 同时缓存每个 profile
176
+ for (const p of value)
177
+ this.cache.set(`${tk}:${p.id}`, p);
178
+ return value;
179
+ });
180
+ }
181
+ this.listCache.set(listKey, result);
182
+ for (const p of result)
183
+ this.cache.set(`${tk}:${p.id}`, p);
184
+ return result;
185
+ }
186
+ getProfile(id, tenant) {
187
+ const tk = this.tenantKey(tenant);
188
+ const cacheKey = `${tk}:${id}`;
189
+ const cached = this.cache.get(cacheKey);
190
+ if (cached)
191
+ return cached;
192
+ const result = this.delegate.getProfile(id, tenant);
193
+ if (result instanceof Promise) {
194
+ return result.then(value => {
195
+ if (value)
196
+ this.cache.set(cacheKey, value);
197
+ return value;
198
+ });
199
+ }
200
+ if (result)
201
+ this.cache.set(cacheKey, result);
202
+ return result;
203
+ }
204
+ getDefaultProfile(tenant) {
205
+ const tk = this.tenantKey(tenant);
206
+ const defaultKey = tk ? `default:${tk}` : 'default';
207
+ const cached = this.defaultCache.get(defaultKey);
208
+ if (cached !== null)
209
+ return cached;
210
+ const result = this.delegate.getDefaultProfile(tenant);
211
+ if (result instanceof Promise) {
212
+ return result.then(value => {
213
+ this.defaultCache.set(defaultKey, value);
214
+ return value;
215
+ });
216
+ }
217
+ this.defaultCache.set(defaultKey, result);
218
+ return result;
219
+ }
220
+ createProfile(data, tenant) {
221
+ const result = this.delegate.createProfile(data, tenant);
222
+ // 创建后清除列表缓存和默认缓存
223
+ const tk = this.tenantKey(tenant);
224
+ this.listCache.invalidate(tk ? `list:${tk}` : 'list');
225
+ this.defaultCache.invalidate(tk ? `default:${tk}` : 'default');
226
+ return result;
227
+ }
228
+ updateProfile(id, data, tenant) {
229
+ const tk = this.tenantKey(tenant);
230
+ const cacheKey = `${tk}:${id}`;
231
+ const result = this.delegate.updateProfile(id, data, tenant);
232
+ // 更新后清除该 profile 缓存 + 列表缓存
233
+ this.cache.invalidate(cacheKey);
234
+ this.listCache.invalidate(tk ? `list:${tk}` : 'list');
235
+ if (result instanceof Promise) {
236
+ return result.then(value => {
237
+ if (value)
238
+ this.cache.set(cacheKey, value);
239
+ return value;
240
+ });
241
+ }
242
+ if (result)
243
+ this.cache.set(cacheKey, result);
244
+ return result;
245
+ }
246
+ deleteProfile(id, tenant) {
247
+ const tk = this.tenantKey(tenant);
248
+ const result = this.delegate.deleteProfile(id, tenant);
249
+ this.cache.invalidate(`${tk}:${id}`);
250
+ this.listCache.invalidate(tk ? `list:${tk}` : 'list');
251
+ this.defaultCache.invalidate(tk ? `default:${tk}` : 'default');
252
+ return result;
253
+ }
254
+ /**
255
+ * 清除缓存。
256
+ * @param profileId 指定 profileId 时仅清除该 profile;不指定时清除全部
257
+ */
258
+ invalidate(profileId) {
259
+ if (profileId !== undefined) {
260
+ this.cache.invalidate(`profile:${profileId}`);
261
+ }
262
+ else {
263
+ this.cache.clear();
264
+ this.listCache.clear();
265
+ this.defaultCache.clear();
266
+ }
267
+ }
268
+ }
269
+ exports.CachedAgentProfileProvider = CachedAgentProfileProvider;
270
+ //# sourceMappingURL=cache.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../src/service/cache.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,19 @@
1
1
  import { EnginePool } from '@cicctencent/agent-core';
2
2
  export { EnginePool } from '@cicctencent/agent-core';
3
- export declare function getEnginePool(): EnginePool;
4
- /** 重置全局池(测试用) */
3
+ /** EnginePool 初始化配置 */
4
+ export interface EnginePoolConfig {
5
+ /** TTL(ms),默认 5 分钟 */
6
+ ttl?: number;
7
+ /** 最大缓存数量,默认 10 */
8
+ maxSize?: number;
9
+ }
10
+ /**
11
+ * 获取全局 Engine 池单例。
12
+ *
13
+ * 首次调用时按 config 创建;后续调用忽略 config(已创建的池不会被覆盖)。
14
+ * 如需重新创建,请先调用 `resetEnginePool()`。
15
+ */
16
+ export declare function getEnginePool(config?: EnginePoolConfig): EnginePool;
17
+ /** 重置全局池(测试用 / 配置变更后重建) */
5
18
  export declare function resetEnginePool(): void;
6
19
  //# sourceMappingURL=engine-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-pool.d.ts","sourceRoot":"","sources":["../../../src/service/engine-pool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAED,iBAAiB;AACjB,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
1
+ {"version":3,"file":"engine-pool.d.ts","sourceRoot":"","sources":["../../../src/service/engine-pool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,uBAAuB;AACvB,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAOnE;AAED,2BAA2B;AAC3B,wBAAgB,eAAe,IAAI,IAAI,CAKtC"}
@@ -11,14 +11,25 @@ var agent_core_2 = require("@cicctencent/agent-core");
11
11
  Object.defineProperty(exports, "EnginePool", { enumerable: true, get: function () { return agent_core_2.EnginePool; } });
12
12
  /** 全局 Engine 池单例 */
13
13
  let globalPool = null;
14
- function getEnginePool() {
14
+ /**
15
+ * 获取全局 Engine 池单例。
16
+ *
17
+ * 首次调用时按 config 创建;后续调用忽略 config(已创建的池不会被覆盖)。
18
+ * 如需重新创建,请先调用 `resetEnginePool()`。
19
+ */
20
+ function getEnginePool(config) {
15
21
  if (!globalPool) {
16
- globalPool = new agent_core_1.EnginePool();
22
+ const ttl = config?.ttl ?? 5 * 60_000;
23
+ const maxSize = config?.maxSize ?? 10;
24
+ globalPool = new agent_core_1.EnginePool(ttl, maxSize);
17
25
  }
18
26
  return globalPool;
19
27
  }
20
- /** 重置全局池(测试用) */
28
+ /** 重置全局池(测试用 / 配置变更后重建) */
21
29
  function resetEnginePool() {
22
- globalPool = null;
30
+ if (globalPool) {
31
+ globalPool.clear();
32
+ globalPool = null;
33
+ }
23
34
  }
24
35
  //# sourceMappingURL=engine-pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-pool.js","sourceRoot":"","sources":["../../../src/service/engine-pool.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;;;AAS/D,sCAKC;AAGD,0CAEC;AAjBD,wDAAqD;AAErD,sDAAqD;AAA5C,wGAAA,UAAU,OAAA;AAEnB,oBAAoB;AACpB,IAAI,UAAU,GAAsB,IAAI,CAAC;AAEzC,SAAgB,aAAa;IAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,IAAI,uBAAU,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,iBAAiB;AACjB,SAAgB,eAAe;IAC7B,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"engine-pool.js","sourceRoot":"","sources":["../../../src/service/engine-pool.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;;;AAuB/D,sCAOC;AAGD,0CAKC;AApCD,wDAAqD;AAErD,sDAAqD;AAA5C,wGAAA,UAAU,OAAA;AAUnB,oBAAoB;AACpB,IAAI,UAAU,GAAsB,IAAI,CAAC;AAEzC;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,MAAyB;IACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QACtC,UAAU,GAAG,IAAI,uBAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,2BAA2B;AAC3B,SAAgB,eAAe;IAC7B,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;AACH,CAAC"}