@agenticc/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/README.zh-CN.md +372 -0
  4. package/dist/audit/index.d.ts +9 -0
  5. package/dist/audit/index.d.ts.map +1 -0
  6. package/dist/audit/index.js +9 -0
  7. package/dist/audit/index.js.map +1 -0
  8. package/dist/audit/logger.d.ts +211 -0
  9. package/dist/audit/logger.d.ts.map +1 -0
  10. package/dist/audit/logger.js +268 -0
  11. package/dist/audit/logger.js.map +1 -0
  12. package/dist/audit/query.d.ts +164 -0
  13. package/dist/audit/query.d.ts.map +1 -0
  14. package/dist/audit/query.js +250 -0
  15. package/dist/audit/query.js.map +1 -0
  16. package/dist/conversation/context-builder.d.ts +119 -0
  17. package/dist/conversation/context-builder.d.ts.map +1 -0
  18. package/dist/conversation/context-builder.js +252 -0
  19. package/dist/conversation/context-builder.js.map +1 -0
  20. package/dist/conversation/index.d.ts +10 -0
  21. package/dist/conversation/index.d.ts.map +1 -0
  22. package/dist/conversation/index.js +10 -0
  23. package/dist/conversation/index.js.map +1 -0
  24. package/dist/conversation/message-store.d.ts +231 -0
  25. package/dist/conversation/message-store.d.ts.map +1 -0
  26. package/dist/conversation/message-store.js +404 -0
  27. package/dist/conversation/message-store.js.map +1 -0
  28. package/dist/conversation/session.d.ts +201 -0
  29. package/dist/conversation/session.d.ts.map +1 -0
  30. package/dist/conversation/session.js +285 -0
  31. package/dist/conversation/session.js.map +1 -0
  32. package/dist/core/agent.d.ts +277 -0
  33. package/dist/core/agent.d.ts.map +1 -0
  34. package/dist/core/agent.js +674 -0
  35. package/dist/core/agent.js.map +1 -0
  36. package/dist/core/agentic-loop.d.ts +98 -0
  37. package/dist/core/agentic-loop.d.ts.map +1 -0
  38. package/dist/core/agentic-loop.js +496 -0
  39. package/dist/core/agentic-loop.js.map +1 -0
  40. package/dist/core/index.d.ts +14 -0
  41. package/dist/core/index.d.ts.map +1 -0
  42. package/dist/core/index.js +14 -0
  43. package/dist/core/index.js.map +1 -0
  44. package/dist/core/intent-parser.d.ts +101 -0
  45. package/dist/core/intent-parser.d.ts.map +1 -0
  46. package/dist/core/intent-parser.js +221 -0
  47. package/dist/core/intent-parser.js.map +1 -0
  48. package/dist/core/plan-generator.d.ts +133 -0
  49. package/dist/core/plan-generator.d.ts.map +1 -0
  50. package/dist/core/plan-generator.js +294 -0
  51. package/dist/core/plan-generator.js.map +1 -0
  52. package/dist/core/plugin-manager.d.ts +120 -0
  53. package/dist/core/plugin-manager.d.ts.map +1 -0
  54. package/dist/core/plugin-manager.js +369 -0
  55. package/dist/core/plugin-manager.js.map +1 -0
  56. package/dist/core/response-handler.d.ts +141 -0
  57. package/dist/core/response-handler.d.ts.map +1 -0
  58. package/dist/core/response-handler.js +384 -0
  59. package/dist/core/response-handler.js.map +1 -0
  60. package/dist/core/tool-executor.d.ts +143 -0
  61. package/dist/core/tool-executor.d.ts.map +1 -0
  62. package/dist/core/tool-executor.js +354 -0
  63. package/dist/core/tool-executor.js.map +1 -0
  64. package/dist/core/tool-registry.d.ts +133 -0
  65. package/dist/core/tool-registry.d.ts.map +1 -0
  66. package/dist/core/tool-registry.js +252 -0
  67. package/dist/core/tool-registry.js.map +1 -0
  68. package/dist/index.d.ts +44 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +47 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/knowledge/chunker.d.ts +78 -0
  73. package/dist/knowledge/chunker.d.ts.map +1 -0
  74. package/dist/knowledge/chunker.js +233 -0
  75. package/dist/knowledge/chunker.js.map +1 -0
  76. package/dist/knowledge/embedder.d.ts +93 -0
  77. package/dist/knowledge/embedder.d.ts.map +1 -0
  78. package/dist/knowledge/embedder.js +205 -0
  79. package/dist/knowledge/embedder.js.map +1 -0
  80. package/dist/knowledge/index.d.ts +10 -0
  81. package/dist/knowledge/index.d.ts.map +1 -0
  82. package/dist/knowledge/index.js +11 -0
  83. package/dist/knowledge/index.js.map +1 -0
  84. package/dist/knowledge/loaders/index.d.ts +10 -0
  85. package/dist/knowledge/loaders/index.d.ts.map +1 -0
  86. package/dist/knowledge/loaders/index.js +10 -0
  87. package/dist/knowledge/loaders/index.js.map +1 -0
  88. package/dist/knowledge/loaders/markdown.d.ts +88 -0
  89. package/dist/knowledge/loaders/markdown.d.ts.map +1 -0
  90. package/dist/knowledge/loaders/markdown.js +205 -0
  91. package/dist/knowledge/loaders/markdown.js.map +1 -0
  92. package/dist/knowledge/loaders/yaml.d.ts +112 -0
  93. package/dist/knowledge/loaders/yaml.d.ts.map +1 -0
  94. package/dist/knowledge/loaders/yaml.js +368 -0
  95. package/dist/knowledge/loaders/yaml.js.map +1 -0
  96. package/dist/knowledge/retriever.d.ts +144 -0
  97. package/dist/knowledge/retriever.d.ts.map +1 -0
  98. package/dist/knowledge/retriever.js +399 -0
  99. package/dist/knowledge/retriever.js.map +1 -0
  100. package/dist/knowledge/store.d.ts +146 -0
  101. package/dist/knowledge/store.d.ts.map +1 -0
  102. package/dist/knowledge/store.js +420 -0
  103. package/dist/knowledge/store.js.map +1 -0
  104. package/dist/llm/adapter.d.ts +194 -0
  105. package/dist/llm/adapter.d.ts.map +1 -0
  106. package/dist/llm/adapter.js +42 -0
  107. package/dist/llm/adapter.js.map +1 -0
  108. package/dist/llm/adapters/anyrouter.d.ts +84 -0
  109. package/dist/llm/adapters/anyrouter.d.ts.map +1 -0
  110. package/dist/llm/adapters/anyrouter.js +372 -0
  111. package/dist/llm/adapters/anyrouter.js.map +1 -0
  112. package/dist/llm/adapters/claude.d.ts +66 -0
  113. package/dist/llm/adapters/claude.d.ts.map +1 -0
  114. package/dist/llm/adapters/claude.js +323 -0
  115. package/dist/llm/adapters/claude.js.map +1 -0
  116. package/dist/llm/adapters/index.d.ts +12 -0
  117. package/dist/llm/adapters/index.d.ts.map +1 -0
  118. package/dist/llm/adapters/index.js +12 -0
  119. package/dist/llm/adapters/index.js.map +1 -0
  120. package/dist/llm/adapters/mimo.d.ts +85 -0
  121. package/dist/llm/adapters/mimo.d.ts.map +1 -0
  122. package/dist/llm/adapters/mimo.js +316 -0
  123. package/dist/llm/adapters/mimo.js.map +1 -0
  124. package/dist/llm/adapters/openai.d.ts +53 -0
  125. package/dist/llm/adapters/openai.d.ts.map +1 -0
  126. package/dist/llm/adapters/openai.js +293 -0
  127. package/dist/llm/adapters/openai.js.map +1 -0
  128. package/dist/llm/adapters/qwen.d.ts +53 -0
  129. package/dist/llm/adapters/qwen.d.ts.map +1 -0
  130. package/dist/llm/adapters/qwen.js +299 -0
  131. package/dist/llm/adapters/qwen.js.map +1 -0
  132. package/dist/llm/adapters/siliconflow.d.ts +69 -0
  133. package/dist/llm/adapters/siliconflow.d.ts.map +1 -0
  134. package/dist/llm/adapters/siliconflow.js +331 -0
  135. package/dist/llm/adapters/siliconflow.js.map +1 -0
  136. package/dist/llm/index.d.ts +9 -0
  137. package/dist/llm/index.d.ts.map +1 -0
  138. package/dist/llm/index.js +12 -0
  139. package/dist/llm/index.js.map +1 -0
  140. package/dist/llm/manager.d.ts +97 -0
  141. package/dist/llm/manager.d.ts.map +1 -0
  142. package/dist/llm/manager.js +337 -0
  143. package/dist/llm/manager.js.map +1 -0
  144. package/dist/test-utils/arbitraries.d.ts +230 -0
  145. package/dist/test-utils/arbitraries.d.ts.map +1 -0
  146. package/dist/test-utils/arbitraries.js +280 -0
  147. package/dist/test-utils/arbitraries.js.map +1 -0
  148. package/dist/test-utils/cleanup.d.ts +184 -0
  149. package/dist/test-utils/cleanup.d.ts.map +1 -0
  150. package/dist/test-utils/cleanup.js +282 -0
  151. package/dist/test-utils/cleanup.js.map +1 -0
  152. package/dist/test-utils/config.d.ts +80 -0
  153. package/dist/test-utils/config.d.ts.map +1 -0
  154. package/dist/test-utils/config.js +94 -0
  155. package/dist/test-utils/config.js.map +1 -0
  156. package/dist/test-utils/index.d.ts +10 -0
  157. package/dist/test-utils/index.d.ts.map +1 -0
  158. package/dist/test-utils/index.js +36 -0
  159. package/dist/test-utils/index.js.map +1 -0
  160. package/dist/test-utils/mocks.d.ts +170 -0
  161. package/dist/test-utils/mocks.d.ts.map +1 -0
  162. package/dist/test-utils/mocks.js +281 -0
  163. package/dist/test-utils/mocks.js.map +1 -0
  164. package/dist/types/config.d.ts +170 -0
  165. package/dist/types/config.d.ts.map +1 -0
  166. package/dist/types/config.js +120 -0
  167. package/dist/types/config.js.map +1 -0
  168. package/dist/types/knowledge.d.ts +95 -0
  169. package/dist/types/knowledge.d.ts.map +1 -0
  170. package/dist/types/knowledge.js +7 -0
  171. package/dist/types/knowledge.js.map +1 -0
  172. package/dist/types/loop.d.ts +148 -0
  173. package/dist/types/loop.d.ts.map +1 -0
  174. package/dist/types/loop.js +16 -0
  175. package/dist/types/loop.js.map +1 -0
  176. package/dist/types/plugin.d.ts +137 -0
  177. package/dist/types/plugin.d.ts.map +1 -0
  178. package/dist/types/plugin.js +15 -0
  179. package/dist/types/plugin.js.map +1 -0
  180. package/dist/types/response.d.ts +186 -0
  181. package/dist/types/response.d.ts.map +1 -0
  182. package/dist/types/response.js +99 -0
  183. package/dist/types/response.js.map +1 -0
  184. package/dist/types/streaming.d.ts +478 -0
  185. package/dist/types/streaming.d.ts.map +1 -0
  186. package/dist/types/streaming.js +483 -0
  187. package/dist/types/streaming.js.map +1 -0
  188. package/dist/types/tool.d.ts +118 -0
  189. package/dist/types/tool.d.ts.map +1 -0
  190. package/dist/types/tool.js +42 -0
  191. package/dist/types/tool.js.map +1 -0
  192. package/dist/utils/error.d.ts +22 -0
  193. package/dist/utils/error.d.ts.map +1 -0
  194. package/dist/utils/error.js +36 -0
  195. package/dist/utils/error.js.map +1 -0
  196. package/package.json +102 -0
@@ -0,0 +1,285 @@
1
+ /**
2
+ * Session Management
3
+ *
4
+ * Manages conversation sessions for the Agent.
5
+ * Each session maintains its own conversation history and metadata.
6
+ *
7
+ * _Requirements: 9.1, 9.4_
8
+ */
9
+ import { v4 as uuidv4 } from 'uuid';
10
+ /**
11
+ * Session Manager
12
+ *
13
+ * Manages the lifecycle of conversation sessions.
14
+ * Provides methods for creating, retrieving, and managing sessions.
15
+ */
16
+ export class SessionManager {
17
+ sessions = new Map();
18
+ defaultSessionId = 'default';
19
+ /**
20
+ * Create a new session
21
+ *
22
+ * @param options - Session creation options
23
+ * @returns The new session ID
24
+ */
25
+ createSession(options) {
26
+ const id = options?.id ?? uuidv4();
27
+ // Check if session already exists
28
+ if (this.sessions.has(id)) {
29
+ throw new Error(`Session with ID "${id}" already exists`);
30
+ }
31
+ const now = new Date();
32
+ const session = {
33
+ id,
34
+ messages: [],
35
+ createdAt: now,
36
+ updatedAt: now,
37
+ metadata: options?.metadata,
38
+ active: true,
39
+ };
40
+ // Add system message if provided
41
+ if (options?.systemMessage) {
42
+ session.messages.push({
43
+ id: uuidv4(),
44
+ role: 'system',
45
+ content: options.systemMessage,
46
+ timestamp: now,
47
+ });
48
+ }
49
+ this.sessions.set(id, session);
50
+ return id;
51
+ }
52
+ /**
53
+ * Get a session by ID
54
+ *
55
+ * @param sessionId - Session ID
56
+ * @returns The session or undefined if not found
57
+ */
58
+ getSession(sessionId) {
59
+ return this.sessions.get(sessionId);
60
+ }
61
+ /**
62
+ * Get or create a session
63
+ *
64
+ * @param sessionId - Session ID
65
+ * @param options - Options for creating if not exists
66
+ * @returns The session
67
+ */
68
+ getOrCreateSession(sessionId, options) {
69
+ let session = this.sessions.get(sessionId);
70
+ if (!session) {
71
+ this.createSession({ ...options, id: sessionId });
72
+ session = this.sessions.get(sessionId);
73
+ }
74
+ return session;
75
+ }
76
+ /**
77
+ * Check if a session exists
78
+ *
79
+ * @param sessionId - Session ID
80
+ * @returns True if session exists
81
+ */
82
+ hasSession(sessionId) {
83
+ return this.sessions.has(sessionId);
84
+ }
85
+ /**
86
+ * Get all sessions matching query options
87
+ *
88
+ * @param options - Query options
89
+ * @returns Array of matching sessions
90
+ */
91
+ querySessions(options) {
92
+ let sessions = Array.from(this.sessions.values());
93
+ // Apply filters
94
+ if (options?.active !== undefined) {
95
+ sessions = sessions.filter((s) => s.active === options.active);
96
+ }
97
+ if (options?.createdAfter) {
98
+ sessions = sessions.filter((s) => s.createdAt >= options.createdAfter);
99
+ }
100
+ if (options?.createdBefore) {
101
+ sessions = sessions.filter((s) => s.createdAt <= options.createdBefore);
102
+ }
103
+ // Sort by creation date (newest first)
104
+ sessions.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
105
+ // Apply pagination
106
+ if (options?.offset) {
107
+ sessions = sessions.slice(options.offset);
108
+ }
109
+ if (options?.limit) {
110
+ sessions = sessions.slice(0, options.limit);
111
+ }
112
+ return sessions;
113
+ }
114
+ /**
115
+ * Get conversation history for a session
116
+ * Messages are returned in chronological order (oldest first)
117
+ *
118
+ * @param sessionId - Session ID
119
+ * @returns Array of messages ordered by timestamp
120
+ */
121
+ getHistory(sessionId) {
122
+ const session = this.sessions.get(sessionId);
123
+ if (!session) {
124
+ return [];
125
+ }
126
+ // Return a copy sorted by timestamp (chronological order)
127
+ return [...session.messages].sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
128
+ }
129
+ /**
130
+ * Add a user message to a session
131
+ *
132
+ * @param sessionId - Session ID
133
+ * @param content - Message content
134
+ * @param metadata - Optional metadata
135
+ * @returns The created message
136
+ */
137
+ addUserMessage(sessionId, content, metadata) {
138
+ const session = this.getOrCreateSession(sessionId);
139
+ const message = {
140
+ id: uuidv4(),
141
+ role: 'user',
142
+ content,
143
+ timestamp: new Date(),
144
+ metadata,
145
+ };
146
+ session.messages.push(message);
147
+ session.updatedAt = new Date();
148
+ return message;
149
+ }
150
+ /**
151
+ * Add an assistant message to a session
152
+ *
153
+ * @param sessionId - Session ID
154
+ * @param response - Agent response
155
+ * @param metadata - Optional metadata
156
+ * @returns The created message
157
+ */
158
+ addAssistantMessage(sessionId, response, metadata) {
159
+ const session = this.getOrCreateSession(sessionId);
160
+ const message = {
161
+ id: uuidv4(),
162
+ role: 'assistant',
163
+ content: 'message' in response ? response.message : JSON.stringify(response),
164
+ timestamp: new Date(),
165
+ responseType: response.type,
166
+ metadata,
167
+ };
168
+ // Add tool calls if present
169
+ if (response.type === 'execute' && response.toolCalls) {
170
+ message.toolCalls = response.toolCalls;
171
+ }
172
+ session.messages.push(message);
173
+ session.updatedAt = new Date();
174
+ return message;
175
+ }
176
+ /**
177
+ * Add a system message to a session
178
+ *
179
+ * @param sessionId - Session ID
180
+ * @param content - Message content
181
+ * @returns The created message
182
+ */
183
+ addSystemMessage(sessionId, content) {
184
+ const session = this.getOrCreateSession(sessionId);
185
+ const message = {
186
+ id: uuidv4(),
187
+ role: 'system',
188
+ content,
189
+ timestamp: new Date(),
190
+ };
191
+ session.messages.push(message);
192
+ session.updatedAt = new Date();
193
+ return message;
194
+ }
195
+ /**
196
+ * Close a session (mark as inactive)
197
+ *
198
+ * @param sessionId - Session ID
199
+ * @returns True if session was closed
200
+ */
201
+ closeSession(sessionId) {
202
+ const session = this.sessions.get(sessionId);
203
+ if (!session) {
204
+ return false;
205
+ }
206
+ session.active = false;
207
+ session.updatedAt = new Date();
208
+ return true;
209
+ }
210
+ /**
211
+ * Delete a session
212
+ *
213
+ * @param sessionId - Session ID
214
+ * @returns True if session was deleted
215
+ */
216
+ deleteSession(sessionId) {
217
+ return this.sessions.delete(sessionId);
218
+ }
219
+ /**
220
+ * Clear all messages in a session
221
+ *
222
+ * @param sessionId - Session ID
223
+ * @returns True if session was cleared
224
+ */
225
+ clearSession(sessionId) {
226
+ const session = this.sessions.get(sessionId);
227
+ if (!session) {
228
+ return false;
229
+ }
230
+ session.messages = [];
231
+ session.updatedAt = new Date();
232
+ return true;
233
+ }
234
+ /**
235
+ * Update session metadata
236
+ *
237
+ * @param sessionId - Session ID
238
+ * @param metadata - New metadata (merged with existing)
239
+ * @returns True if session was updated
240
+ */
241
+ updateMetadata(sessionId, metadata) {
242
+ const session = this.sessions.get(sessionId);
243
+ if (!session) {
244
+ return false;
245
+ }
246
+ session.metadata = { ...session.metadata, ...metadata };
247
+ session.updatedAt = new Date();
248
+ return true;
249
+ }
250
+ /**
251
+ * Get the default session ID
252
+ */
253
+ getDefaultSessionId() {
254
+ return this.defaultSessionId;
255
+ }
256
+ /**
257
+ * Set the default session ID
258
+ */
259
+ setDefaultSessionId(sessionId) {
260
+ this.defaultSessionId = sessionId;
261
+ }
262
+ /**
263
+ * Get total number of sessions
264
+ */
265
+ getSessionCount() {
266
+ return this.sessions.size;
267
+ }
268
+ /**
269
+ * Get total number of messages across all sessions
270
+ */
271
+ getTotalMessageCount() {
272
+ let count = 0;
273
+ for (const session of this.sessions.values()) {
274
+ count += session.messages.length;
275
+ }
276
+ return count;
277
+ }
278
+ }
279
+ /**
280
+ * Create a new SessionManager instance
281
+ */
282
+ export function createSessionManager() {
283
+ return new SessionManager();
284
+ }
285
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/conversation/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Agent Core
3
+ *
4
+ * Main Agent class that orchestrates the agentic loop, plugin management,
5
+ * knowledge retrieval, and response handling.
6
+ *
7
+ * Refactored to use:
8
+ * - PluginManager for tool management (replacing ToolRegistry)
9
+ * - AgenticLoop for autonomous LLM decision-making
10
+ * - Confirmation mechanism for high-risk operations
11
+ *
12
+ * _Requirements: 1.1-1.7, 4.1, 4.5, 4.7_
13
+ */
14
+ import type { AgentConfig } from '../types/config.js';
15
+ import type { AgentResponse, ToolCallRecord } from '../types/response.js';
16
+ import type { Tool } from '../types/tool.js';
17
+ import type { AgentPlugin, PluginInfo } from '../types/plugin.js';
18
+ import type { StreamEvent } from '../types/streaming.js';
19
+ import { LLMManager } from '../llm/manager.js';
20
+ import { KnowledgeStore } from '../knowledge/store.js';
21
+ import { Retriever } from '../knowledge/retriever.js';
22
+ import { PluginManager } from './plugin-manager.js';
23
+ import { AgenticLoop } from './agentic-loop.js';
24
+ /**
25
+ * Message in conversation history
26
+ */
27
+ export interface Message {
28
+ id: string;
29
+ role: 'user' | 'assistant' | 'system';
30
+ content: string;
31
+ timestamp: Date;
32
+ toolCalls?: ToolCallRecord[];
33
+ responseType?: string;
34
+ }
35
+ /**
36
+ * Conversation session
37
+ */
38
+ export interface Session {
39
+ id: string;
40
+ messages: Message[];
41
+ createdAt: Date;
42
+ updatedAt: Date;
43
+ metadata?: Record<string, unknown>;
44
+ /** Pending confirmation state */
45
+ pendingConfirmation?: PendingConfirmation;
46
+ }
47
+ /**
48
+ * Pending confirmation state
49
+ */
50
+ export interface PendingConfirmation {
51
+ /** The tool that requires confirmation */
52
+ toolName: string;
53
+ /** Arguments for the tool */
54
+ arguments: Record<string, unknown>;
55
+ /** Original user message */
56
+ userMessage: string;
57
+ /** Timestamp when confirmation was requested */
58
+ timestamp: Date;
59
+ }
60
+ /**
61
+ * Agent options for chat
62
+ */
63
+ export interface ChatOptions {
64
+ /** Session ID (creates new session if not provided) */
65
+ sessionId?: string;
66
+ /** Skip knowledge retrieval */
67
+ skipKnowledge?: boolean;
68
+ /** Skip confirmation for this request */
69
+ skipConfirmation?: boolean;
70
+ /** Additional context */
71
+ context?: Record<string, unknown>;
72
+ /** System prompt override */
73
+ systemPrompt?: string;
74
+ /** Abort signal for cancellation */
75
+ abortSignal?: AbortSignal;
76
+ /** Callback for streaming events */
77
+ onEvent?: (event: StreamEvent) => void;
78
+ /** Message ID for streaming events */
79
+ messageId?: string;
80
+ /**
81
+ * Historical messages loaded from database.
82
+ * Used for stateless operation - Agent does not maintain session state in memory.
83
+ */
84
+ history?: Message[];
85
+ /**
86
+ * Pending confirmation state loaded from database.
87
+ * Used for stateless operation when user needs to confirm a high-risk operation.
88
+ */
89
+ pendingConfirmation?: PendingConfirmation;
90
+ }
91
+ /**
92
+ * Agent
93
+ *
94
+ * Main AI Agent class that coordinates all components to process
95
+ * user messages and generate appropriate responses using the agentic loop.
96
+ */
97
+ export declare class Agent {
98
+ private config;
99
+ private behavior;
100
+ private llmManager;
101
+ private knowledgeStore;
102
+ private embedder?;
103
+ private retriever;
104
+ private pluginManager;
105
+ private agenticLoop;
106
+ private responseHandler;
107
+ private logger;
108
+ private logLevel;
109
+ private metricsEnabled;
110
+ private pluginContext;
111
+ constructor(config: AgentConfig);
112
+ /**
113
+ * Process a user message and generate a response
114
+ *
115
+ * Pure Stateless Implementation:
116
+ * - Does not maintain session state in memory
117
+ * - History is passed in via options.history (loaded from database)
118
+ * - PendingConfirmation is passed in via options.pendingConfirmation
119
+ * - Returns pendingConfirmation in response for external persistence
120
+ *
121
+ * _Requirements: 1.1, 1.2, 1.3, 2.3, 2.4_
122
+ */
123
+ chat(message: string, options?: ChatOptions): Promise<AgentResponse>;
124
+ /**
125
+ * Convert external Message history to LoopMessage format
126
+ */
127
+ private convertHistoryToLoopMessages;
128
+ /**
129
+ * Map an error to a streaming error code
130
+ */
131
+ private mapErrorToCode;
132
+ /**
133
+ * Retrieve knowledge context with streaming events
134
+ * Requirement: 3.1
135
+ */
136
+ private retrieveKnowledgeContextWithEvents;
137
+ /**
138
+ * Handle user's response to a confirmation request
139
+ *
140
+ * Stateless version: receives pendingConfirmation from database via options
141
+ */
142
+ private handleConfirmationResponse;
143
+ /**
144
+ * Check if any tool in the potential execution requires confirmation
145
+ *
146
+ * _Requirements: 4.7_
147
+ */
148
+ private checkConfirmationNeeded;
149
+ /**
150
+ * Create a confirmation response
151
+ */
152
+ private createConfirmResponse;
153
+ /**
154
+ * Convert agentic loop result to agent response
155
+ */
156
+ private loopResultToResponse;
157
+ /**
158
+ * Retrieve knowledge context for the message
159
+ * @deprecated Use retrieveKnowledgeContextWithEvents instead
160
+ */
161
+ private retrieveKnowledgeContext;
162
+ /**
163
+ * Continue processing after user confirmation
164
+ *
165
+ * @deprecated In stateless mode, confirmations should be handled by passing
166
+ * pendingConfirmation via options.pendingConfirmation in chat()
167
+ */
168
+ confirm(confirmed: boolean, sessionId?: string, options?: ChatOptions): Promise<AgentResponse>;
169
+ /**
170
+ * Add knowledge to the knowledge base
171
+ */
172
+ addKnowledge(content: string, category: string, title?: string): Promise<string>;
173
+ /**
174
+ * Load a plugin
175
+ */
176
+ loadPlugin(plugin: AgentPlugin): Promise<void>;
177
+ /**
178
+ * Unload a plugin
179
+ */
180
+ unloadPlugin(pluginName: string): Promise<boolean>;
181
+ /**
182
+ * List all loaded plugins
183
+ */
184
+ listPlugins(): PluginInfo[];
185
+ /**
186
+ * Get a specific plugin
187
+ */
188
+ getPlugin(name: string): AgentPlugin | undefined;
189
+ /**
190
+ * Check if a plugin is loaded
191
+ */
192
+ hasPlugin(name: string): boolean;
193
+ /**
194
+ * Register a tool with the agent (legacy method)
195
+ * @deprecated Use loadPlugin instead
196
+ */
197
+ registerTool(tool: Tool): void;
198
+ /**
199
+ * Register multiple tools (legacy method)
200
+ * @deprecated Use loadPlugin instead
201
+ */
202
+ registerTools(tools: Tool[]): void;
203
+ /**
204
+ * @deprecated In stateless mode, history should be passed via options.history in chat()
205
+ * This method is kept for backward compatibility but does nothing.
206
+ */
207
+ importSessionHistory(_sessionId: string, _messages: Array<{
208
+ id: string;
209
+ role: string;
210
+ content: string;
211
+ createdAt: Date | string;
212
+ toolCalls?: string | null;
213
+ responseType?: string | null;
214
+ }>): void;
215
+ /**
216
+ * @deprecated In stateless mode, Agent does not maintain session state.
217
+ * Always returns false.
218
+ */
219
+ hasSessionHistory(_sessionId: string): boolean;
220
+ /**
221
+ * @deprecated In stateless mode, history is not stored in Agent.
222
+ * Always returns empty array.
223
+ */
224
+ getHistory(_sessionId?: string): Message[];
225
+ /**
226
+ * @deprecated In stateless mode, sessions are managed externally (database).
227
+ * Returns a generated UUID for compatibility.
228
+ */
229
+ createSession(_metadata?: Record<string, unknown>): string;
230
+ /**
231
+ * Create tool context for execution
232
+ */
233
+ private createToolContext;
234
+ /**
235
+ * Create plugin context for dependency injection
236
+ */
237
+ private createPluginContext;
238
+ /**
239
+ * Create a logger instance with log level filtering
240
+ */
241
+ private createLogger;
242
+ /**
243
+ * Create a logger wrapper for custom logger
244
+ */
245
+ private createCustomLogger;
246
+ /**
247
+ * Get the LLM Manager
248
+ */
249
+ getLLMManager(): LLMManager;
250
+ /**
251
+ * Get the Plugin Manager
252
+ */
253
+ getPluginManager(): PluginManager;
254
+ /**
255
+ * Get the Knowledge Store
256
+ */
257
+ getKnowledgeStore(): KnowledgeStore;
258
+ /**
259
+ * Get the Retriever
260
+ */
261
+ getRetriever(): Retriever;
262
+ /**
263
+ * Get the Agentic Loop
264
+ */
265
+ getAgenticLoop(): AgenticLoop;
266
+ /**
267
+ * Get the current session ID
268
+ * @deprecated In stateless mode, session ID should be managed externally.
269
+ * Returns a placeholder value for compatibility.
270
+ */
271
+ getCurrentSessionId(): string;
272
+ }
273
+ /**
274
+ * Create an Agent with simplified configuration
275
+ */
276
+ export declare function createAgent(llmProvider: 'openai' | 'claude' | 'qwen' | 'siliconflow', apiKey: string, model: string, options?: Partial<AgentConfig>): Agent;
277
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}