@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.
- package/LICENSE +21 -0
- package/README.md +370 -0
- package/README.zh-CN.md +372 -0
- package/dist/audit/index.d.ts +9 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +9 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/logger.d.ts +211 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/logger.js +268 -0
- package/dist/audit/logger.js.map +1 -0
- package/dist/audit/query.d.ts +164 -0
- package/dist/audit/query.d.ts.map +1 -0
- package/dist/audit/query.js +250 -0
- package/dist/audit/query.js.map +1 -0
- package/dist/conversation/context-builder.d.ts +119 -0
- package/dist/conversation/context-builder.d.ts.map +1 -0
- package/dist/conversation/context-builder.js +252 -0
- package/dist/conversation/context-builder.js.map +1 -0
- package/dist/conversation/index.d.ts +10 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +10 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/message-store.d.ts +231 -0
- package/dist/conversation/message-store.d.ts.map +1 -0
- package/dist/conversation/message-store.js +404 -0
- package/dist/conversation/message-store.js.map +1 -0
- package/dist/conversation/session.d.ts +201 -0
- package/dist/conversation/session.d.ts.map +1 -0
- package/dist/conversation/session.js +285 -0
- package/dist/conversation/session.js.map +1 -0
- package/dist/core/agent.d.ts +277 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +674 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agentic-loop.d.ts +98 -0
- package/dist/core/agentic-loop.d.ts.map +1 -0
- package/dist/core/agentic-loop.js +496 -0
- package/dist/core/agentic-loop.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/intent-parser.d.ts +101 -0
- package/dist/core/intent-parser.d.ts.map +1 -0
- package/dist/core/intent-parser.js +221 -0
- package/dist/core/intent-parser.js.map +1 -0
- package/dist/core/plan-generator.d.ts +133 -0
- package/dist/core/plan-generator.d.ts.map +1 -0
- package/dist/core/plan-generator.js +294 -0
- package/dist/core/plan-generator.js.map +1 -0
- package/dist/core/plugin-manager.d.ts +120 -0
- package/dist/core/plugin-manager.d.ts.map +1 -0
- package/dist/core/plugin-manager.js +369 -0
- package/dist/core/plugin-manager.js.map +1 -0
- package/dist/core/response-handler.d.ts +141 -0
- package/dist/core/response-handler.d.ts.map +1 -0
- package/dist/core/response-handler.js +384 -0
- package/dist/core/response-handler.js.map +1 -0
- package/dist/core/tool-executor.d.ts +143 -0
- package/dist/core/tool-executor.d.ts.map +1 -0
- package/dist/core/tool-executor.js +354 -0
- package/dist/core/tool-executor.js.map +1 -0
- package/dist/core/tool-registry.d.ts +133 -0
- package/dist/core/tool-registry.d.ts.map +1 -0
- package/dist/core/tool-registry.js +252 -0
- package/dist/core/tool-registry.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/chunker.d.ts +78 -0
- package/dist/knowledge/chunker.d.ts.map +1 -0
- package/dist/knowledge/chunker.js +233 -0
- package/dist/knowledge/chunker.js.map +1 -0
- package/dist/knowledge/embedder.d.ts +93 -0
- package/dist/knowledge/embedder.d.ts.map +1 -0
- package/dist/knowledge/embedder.js +205 -0
- package/dist/knowledge/embedder.js.map +1 -0
- package/dist/knowledge/index.d.ts +10 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +11 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/loaders/index.d.ts +10 -0
- package/dist/knowledge/loaders/index.d.ts.map +1 -0
- package/dist/knowledge/loaders/index.js +10 -0
- package/dist/knowledge/loaders/index.js.map +1 -0
- package/dist/knowledge/loaders/markdown.d.ts +88 -0
- package/dist/knowledge/loaders/markdown.d.ts.map +1 -0
- package/dist/knowledge/loaders/markdown.js +205 -0
- package/dist/knowledge/loaders/markdown.js.map +1 -0
- package/dist/knowledge/loaders/yaml.d.ts +112 -0
- package/dist/knowledge/loaders/yaml.d.ts.map +1 -0
- package/dist/knowledge/loaders/yaml.js +368 -0
- package/dist/knowledge/loaders/yaml.js.map +1 -0
- package/dist/knowledge/retriever.d.ts +144 -0
- package/dist/knowledge/retriever.d.ts.map +1 -0
- package/dist/knowledge/retriever.js +399 -0
- package/dist/knowledge/retriever.js.map +1 -0
- package/dist/knowledge/store.d.ts +146 -0
- package/dist/knowledge/store.d.ts.map +1 -0
- package/dist/knowledge/store.js +420 -0
- package/dist/knowledge/store.js.map +1 -0
- package/dist/llm/adapter.d.ts +194 -0
- package/dist/llm/adapter.d.ts.map +1 -0
- package/dist/llm/adapter.js +42 -0
- package/dist/llm/adapter.js.map +1 -0
- package/dist/llm/adapters/anyrouter.d.ts +84 -0
- package/dist/llm/adapters/anyrouter.d.ts.map +1 -0
- package/dist/llm/adapters/anyrouter.js +372 -0
- package/dist/llm/adapters/anyrouter.js.map +1 -0
- package/dist/llm/adapters/claude.d.ts +66 -0
- package/dist/llm/adapters/claude.d.ts.map +1 -0
- package/dist/llm/adapters/claude.js +323 -0
- package/dist/llm/adapters/claude.js.map +1 -0
- package/dist/llm/adapters/index.d.ts +12 -0
- package/dist/llm/adapters/index.d.ts.map +1 -0
- package/dist/llm/adapters/index.js +12 -0
- package/dist/llm/adapters/index.js.map +1 -0
- package/dist/llm/adapters/mimo.d.ts +85 -0
- package/dist/llm/adapters/mimo.d.ts.map +1 -0
- package/dist/llm/adapters/mimo.js +316 -0
- package/dist/llm/adapters/mimo.js.map +1 -0
- package/dist/llm/adapters/openai.d.ts +53 -0
- package/dist/llm/adapters/openai.d.ts.map +1 -0
- package/dist/llm/adapters/openai.js +293 -0
- package/dist/llm/adapters/openai.js.map +1 -0
- package/dist/llm/adapters/qwen.d.ts +53 -0
- package/dist/llm/adapters/qwen.d.ts.map +1 -0
- package/dist/llm/adapters/qwen.js +299 -0
- package/dist/llm/adapters/qwen.js.map +1 -0
- package/dist/llm/adapters/siliconflow.d.ts +69 -0
- package/dist/llm/adapters/siliconflow.d.ts.map +1 -0
- package/dist/llm/adapters/siliconflow.js +331 -0
- package/dist/llm/adapters/siliconflow.js.map +1 -0
- package/dist/llm/index.d.ts +9 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +12 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/manager.d.ts +97 -0
- package/dist/llm/manager.d.ts.map +1 -0
- package/dist/llm/manager.js +337 -0
- package/dist/llm/manager.js.map +1 -0
- package/dist/test-utils/arbitraries.d.ts +230 -0
- package/dist/test-utils/arbitraries.d.ts.map +1 -0
- package/dist/test-utils/arbitraries.js +280 -0
- package/dist/test-utils/arbitraries.js.map +1 -0
- package/dist/test-utils/cleanup.d.ts +184 -0
- package/dist/test-utils/cleanup.d.ts.map +1 -0
- package/dist/test-utils/cleanup.js +282 -0
- package/dist/test-utils/cleanup.js.map +1 -0
- package/dist/test-utils/config.d.ts +80 -0
- package/dist/test-utils/config.d.ts.map +1 -0
- package/dist/test-utils/config.js +94 -0
- package/dist/test-utils/config.js.map +1 -0
- package/dist/test-utils/index.d.ts +10 -0
- package/dist/test-utils/index.d.ts.map +1 -0
- package/dist/test-utils/index.js +36 -0
- package/dist/test-utils/index.js.map +1 -0
- package/dist/test-utils/mocks.d.ts +170 -0
- package/dist/test-utils/mocks.d.ts.map +1 -0
- package/dist/test-utils/mocks.js +281 -0
- package/dist/test-utils/mocks.js.map +1 -0
- package/dist/types/config.d.ts +170 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +120 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/knowledge.d.ts +95 -0
- package/dist/types/knowledge.d.ts.map +1 -0
- package/dist/types/knowledge.js +7 -0
- package/dist/types/knowledge.js.map +1 -0
- package/dist/types/loop.d.ts +148 -0
- package/dist/types/loop.d.ts.map +1 -0
- package/dist/types/loop.js +16 -0
- package/dist/types/loop.js.map +1 -0
- package/dist/types/plugin.d.ts +137 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +15 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/response.d.ts +186 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +99 -0
- package/dist/types/response.js.map +1 -0
- package/dist/types/streaming.d.ts +478 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +483 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/tool.d.ts +118 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +42 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/error.d.ts +22 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +36 -0
- package/dist/utils/error.js.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Loop
|
|
3
|
+
*
|
|
4
|
+
* Implements the ReAct (Reasoning + Acting) loop pattern.
|
|
5
|
+
* LLM autonomously decides tool calls and iterates until task completion.
|
|
6
|
+
*
|
|
7
|
+
* @module core/agentic-loop
|
|
8
|
+
*/
|
|
9
|
+
import type { LLMManager } from '../llm/manager.js';
|
|
10
|
+
import type { ToolContext } from '../types/tool.js';
|
|
11
|
+
import type { LoopConfig, LoopResult, LoopRunOptions, LoopStatus } from '../types/loop.js';
|
|
12
|
+
import { PluginManager } from './plugin-manager.js';
|
|
13
|
+
/**
|
|
14
|
+
* Error thrown when loop execution fails
|
|
15
|
+
*/
|
|
16
|
+
export declare class LoopError extends Error {
|
|
17
|
+
readonly status: LoopStatus;
|
|
18
|
+
readonly iteration: number;
|
|
19
|
+
constructor(message: string, status: LoopStatus, iteration: number);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Agentic Loop
|
|
23
|
+
*
|
|
24
|
+
* Executes the reasoning-action loop where LLM decides what tools to call.
|
|
25
|
+
* Continues until LLM generates a final response or limits are reached.
|
|
26
|
+
*/
|
|
27
|
+
export declare class AgenticLoop {
|
|
28
|
+
private llm;
|
|
29
|
+
private pluginManager;
|
|
30
|
+
private config;
|
|
31
|
+
constructor(llm: LLMManager, pluginManager: PluginManager, config?: Partial<LoopConfig>);
|
|
32
|
+
/**
|
|
33
|
+
* Execute the agentic loop
|
|
34
|
+
*
|
|
35
|
+
* @param userMessage - The user's input message
|
|
36
|
+
* @param context - Tool execution context
|
|
37
|
+
* @param options - Optional run-time overrides
|
|
38
|
+
* @returns Loop result with final response and tool call history
|
|
39
|
+
*/
|
|
40
|
+
run(userMessage: string, context: ToolContext, options?: LoopRunOptions): Promise<LoopResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Execute a single iteration of the loop with streaming support
|
|
43
|
+
* Requirements: 1.2, 1.5, 3.3, 3.4, 3.5
|
|
44
|
+
*/
|
|
45
|
+
private executeIterationWithStreaming;
|
|
46
|
+
/**
|
|
47
|
+
* Execute tool calls with streaming events
|
|
48
|
+
* Requirements: 1.3, 1.4, 8.2
|
|
49
|
+
*/
|
|
50
|
+
private executeToolCallsWithStreaming;
|
|
51
|
+
/**
|
|
52
|
+
* Execute a single tool call with streaming events
|
|
53
|
+
* Requirements: 1.3, 1.4, 8.2
|
|
54
|
+
*/
|
|
55
|
+
private executeSingleToolCallWithStreaming;
|
|
56
|
+
/**
|
|
57
|
+
* Execute a single iteration of the loop
|
|
58
|
+
* @deprecated Use executeIterationWithStreaming instead
|
|
59
|
+
*/
|
|
60
|
+
private executeIteration;
|
|
61
|
+
/**
|
|
62
|
+
* Call LLM with timeout and abort signal support
|
|
63
|
+
*
|
|
64
|
+
* Creates a combined AbortController that responds to either:
|
|
65
|
+
* - Timeout expiration
|
|
66
|
+
* - External abort signal
|
|
67
|
+
*
|
|
68
|
+
* Requirements: 3.1, 3.2
|
|
69
|
+
*/
|
|
70
|
+
private callLLMWithTimeout;
|
|
71
|
+
/**
|
|
72
|
+
* Execute tool calls (parallel or sequential)
|
|
73
|
+
* @deprecated Use executeToolCallsWithStreaming instead
|
|
74
|
+
*/
|
|
75
|
+
private executeToolCalls;
|
|
76
|
+
/**
|
|
77
|
+
* Execute a single tool call
|
|
78
|
+
* @deprecated Use executeSingleToolCallWithStreaming instead
|
|
79
|
+
*/
|
|
80
|
+
private executeSingleToolCall;
|
|
81
|
+
/**
|
|
82
|
+
* Format messages for LLM API
|
|
83
|
+
*/
|
|
84
|
+
private formatMessagesForLLM;
|
|
85
|
+
/**
|
|
86
|
+
* Build the final result
|
|
87
|
+
*/
|
|
88
|
+
private buildResult;
|
|
89
|
+
/**
|
|
90
|
+
* Update loop configuration
|
|
91
|
+
*/
|
|
92
|
+
updateConfig(config: Partial<LoopConfig>): void;
|
|
93
|
+
/**
|
|
94
|
+
* Get current configuration
|
|
95
|
+
*/
|
|
96
|
+
getConfig(): LoopConfig;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=agentic-loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentic-loop.d.ts","sourceRoot":"","sources":["../../src/core/agentic-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAEhE,OAAO,KAAK,EACV,UAAU,EAEV,UAAU,EACV,cAAc,EAEd,UAAU,EAGX,MAAM,kBAAkB,CAAC;AAY1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;aAGhB,MAAM,EAAE,UAAU;aAClB,SAAS,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM;CAKpC;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,aAAa;IAJvB,OAAO,CAAC,MAAM,CAAa;gBAGjB,GAAG,EAAE,UAAU,EACf,aAAa,EAAE,aAAa,EACpC,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAKlC;;;;;;;OAOG;IACG,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,UAAU,CAAC;IAoGtB;;;OAGG;YACW,6BAA6B;IAiH3C;;;OAGG;YACW,6BAA6B;IAmC3C;;;OAGG;YACW,kCAAkC;IAyHhD;;;OAGG;YACW,gBAAgB;IAS9B;;;;;;;;OAQG;YACW,kBAAkB;IAiHhC;;;OAGG;YACW,gBAAgB;IAS9B;;;OAGG;YACW,qBAAqB;IAQnC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAI/C;;OAEG;IACH,SAAS,IAAI,UAAU;CAGxB"}
|
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Loop
|
|
3
|
+
*
|
|
4
|
+
* Implements the ReAct (Reasoning + Acting) loop pattern.
|
|
5
|
+
* LLM autonomously decides tool calls and iterates until task completion.
|
|
6
|
+
*
|
|
7
|
+
* @module core/agentic-loop
|
|
8
|
+
*/
|
|
9
|
+
import { createIterationStartedEvent, createIterationCompletedEvent, createContentChunkEvent, createDecisionEvent, createToolCallStartedEvent, createToolCallCompletedEvent, createToolErrorEvent, } from '../types/streaming.js';
|
|
10
|
+
import { DEFAULT_LOOP_CONFIG } from '../types/loop.js';
|
|
11
|
+
/**
|
|
12
|
+
* Error thrown when loop execution fails
|
|
13
|
+
*/
|
|
14
|
+
export class LoopError extends Error {
|
|
15
|
+
status;
|
|
16
|
+
iteration;
|
|
17
|
+
constructor(message, status, iteration) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.status = status;
|
|
20
|
+
this.iteration = iteration;
|
|
21
|
+
this.name = 'LoopError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Agentic Loop
|
|
26
|
+
*
|
|
27
|
+
* Executes the reasoning-action loop where LLM decides what tools to call.
|
|
28
|
+
* Continues until LLM generates a final response or limits are reached.
|
|
29
|
+
*/
|
|
30
|
+
export class AgenticLoop {
|
|
31
|
+
llm;
|
|
32
|
+
pluginManager;
|
|
33
|
+
config;
|
|
34
|
+
constructor(llm, pluginManager, config = {}) {
|
|
35
|
+
this.llm = llm;
|
|
36
|
+
this.pluginManager = pluginManager;
|
|
37
|
+
this.config = { ...DEFAULT_LOOP_CONFIG, ...config };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Execute the agentic loop
|
|
41
|
+
*
|
|
42
|
+
* @param userMessage - The user's input message
|
|
43
|
+
* @param context - Tool execution context
|
|
44
|
+
* @param options - Optional run-time overrides
|
|
45
|
+
* @returns Loop result with final response and tool call history
|
|
46
|
+
*/
|
|
47
|
+
async run(userMessage, context, options = {}) {
|
|
48
|
+
const maxIterations = options.maxIterations ?? this.config.maxIterations;
|
|
49
|
+
const startTime = new Date();
|
|
50
|
+
const sessionId = options.sessionId ?? 'default';
|
|
51
|
+
// Initialize state
|
|
52
|
+
const state = {
|
|
53
|
+
iteration: 0,
|
|
54
|
+
messages: [],
|
|
55
|
+
toolCalls: [],
|
|
56
|
+
status: 'running',
|
|
57
|
+
startTime,
|
|
58
|
+
};
|
|
59
|
+
// Add system prompt if provided
|
|
60
|
+
if (options.systemPrompt) {
|
|
61
|
+
state.messages.push({
|
|
62
|
+
role: 'system',
|
|
63
|
+
content: options.systemPrompt,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
// Inject historical messages (stateless mode: history from database)
|
|
67
|
+
// Messages are added after system prompt, before current user message
|
|
68
|
+
if (options.history && options.history.length > 0) {
|
|
69
|
+
// Filter out system messages (already handled via systemPrompt)
|
|
70
|
+
const historyWithoutSystem = options.history.filter((m) => m.role !== 'system');
|
|
71
|
+
state.messages.push(...historyWithoutSystem);
|
|
72
|
+
}
|
|
73
|
+
// Add user message
|
|
74
|
+
state.messages.push({
|
|
75
|
+
role: 'user',
|
|
76
|
+
content: userMessage,
|
|
77
|
+
});
|
|
78
|
+
try {
|
|
79
|
+
while (state.status === 'running') {
|
|
80
|
+
// Check iteration limit
|
|
81
|
+
if (state.iteration >= maxIterations) {
|
|
82
|
+
state.status = 'max_iterations';
|
|
83
|
+
// Emit decision event for max iterations
|
|
84
|
+
// Requirement: 3.5
|
|
85
|
+
if (options.onEvent) {
|
|
86
|
+
options.onEvent(createDecisionEvent(sessionId, `Reached maximum iteration limit (${maxIterations})`, false));
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
// Check abort signal
|
|
91
|
+
if (options.abortSignal?.aborted) {
|
|
92
|
+
state.status = 'cancelled';
|
|
93
|
+
// Emit decision event for cancellation
|
|
94
|
+
// Requirement: 3.5
|
|
95
|
+
if (options.onEvent) {
|
|
96
|
+
options.onEvent(createDecisionEvent(sessionId, 'Operation was cancelled by user', false));
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
// Execute one iteration with streaming support
|
|
101
|
+
await this.executeIterationWithStreaming(state, context, options, sessionId);
|
|
102
|
+
state.iteration++;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
// Check if this is an abort/cancellation error
|
|
107
|
+
// Requirements: 1.2, 3.3
|
|
108
|
+
const isAbortError = (error instanceof Error && error.name === 'AbortError') ||
|
|
109
|
+
(error instanceof Error && error.code === 'CANCELLED') ||
|
|
110
|
+
options.abortSignal?.aborted;
|
|
111
|
+
if (isAbortError) {
|
|
112
|
+
state.status = 'cancelled';
|
|
113
|
+
// Emit decision event for cancellation
|
|
114
|
+
if (options.onEvent) {
|
|
115
|
+
options.onEvent(createDecisionEvent(sessionId, 'Operation was cancelled by user', false));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
state.status = 'error';
|
|
120
|
+
state.error = error instanceof Error ? error.message : String(error);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
state.endTime = new Date();
|
|
124
|
+
return this.buildResult(state);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Execute a single iteration of the loop with streaming support
|
|
128
|
+
* Requirements: 1.2, 1.5, 3.3, 3.4, 3.5
|
|
129
|
+
*/
|
|
130
|
+
async executeIterationWithStreaming(state, context, options, sessionId) {
|
|
131
|
+
const iterationStartTime = Date.now();
|
|
132
|
+
const currentIteration = state.iteration + 1; // 1-indexed for display
|
|
133
|
+
const maxIterations = options.maxIterations ?? this.config.maxIterations;
|
|
134
|
+
// Emit iteration_started event
|
|
135
|
+
// Requirement: 1.2
|
|
136
|
+
if (options.onEvent) {
|
|
137
|
+
options.onEvent(createIterationStartedEvent(sessionId, currentIteration, maxIterations));
|
|
138
|
+
}
|
|
139
|
+
// Get tool definitions
|
|
140
|
+
const toolDefinitions = this.pluginManager.getToolDefinitions();
|
|
141
|
+
// Track if we've sent any content chunks during streaming
|
|
142
|
+
let hasStreamedContent = false;
|
|
143
|
+
// Create streaming callback if onEvent is provided
|
|
144
|
+
const onContentChunk = options.onEvent
|
|
145
|
+
? (content) => {
|
|
146
|
+
hasStreamedContent = true;
|
|
147
|
+
options.onEvent(createContentChunkEvent(sessionId, content, false));
|
|
148
|
+
}
|
|
149
|
+
: undefined;
|
|
150
|
+
// Call LLM with tools - pass abortSignal for cancellation support
|
|
151
|
+
// Requirements: 3.1
|
|
152
|
+
const llmResponse = await this.callLLMWithTimeout(state.messages, toolDefinitions, options.timeout ?? this.config.iterationTimeout, options.abortSignal, onContentChunk);
|
|
153
|
+
let toolCallCount = 0;
|
|
154
|
+
// Check if LLM wants to call tools
|
|
155
|
+
if (llmResponse.toolCalls && llmResponse.toolCalls.length > 0) {
|
|
156
|
+
// Add assistant message with tool calls
|
|
157
|
+
state.messages.push({
|
|
158
|
+
role: 'assistant',
|
|
159
|
+
content: llmResponse.content || '',
|
|
160
|
+
toolCalls: llmResponse.toolCalls,
|
|
161
|
+
});
|
|
162
|
+
// If we didn't stream content (non-streaming fallback), send it now
|
|
163
|
+
// Requirement: 1.5, 3.3
|
|
164
|
+
if (!hasStreamedContent && llmResponse.content && options.onEvent) {
|
|
165
|
+
options.onEvent(createContentChunkEvent(sessionId, llmResponse.content, false));
|
|
166
|
+
}
|
|
167
|
+
// Execute tools with streaming events
|
|
168
|
+
const toolResults = await this.executeToolCallsWithStreaming(llmResponse.toolCalls, context, state, options, sessionId);
|
|
169
|
+
toolCallCount = toolResults.length;
|
|
170
|
+
// Add tool results as messages
|
|
171
|
+
for (const result of toolResults) {
|
|
172
|
+
state.messages.push({
|
|
173
|
+
role: 'tool',
|
|
174
|
+
content: JSON.stringify(result.result),
|
|
175
|
+
toolCallId: result.id,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// LLM generated final response - task complete
|
|
181
|
+
state.messages.push({
|
|
182
|
+
role: 'assistant',
|
|
183
|
+
content: llmResponse.content || '',
|
|
184
|
+
});
|
|
185
|
+
state.status = 'completed';
|
|
186
|
+
// Stream final content
|
|
187
|
+
// Requirement: 1.5, 3.3
|
|
188
|
+
if (options.onEvent) {
|
|
189
|
+
if (!hasStreamedContent && llmResponse.content) {
|
|
190
|
+
// Non-streaming fallback: send all content at once
|
|
191
|
+
options.onEvent(createContentChunkEvent(sessionId, llmResponse.content, true));
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
// Content was already streamed, just signal completion
|
|
195
|
+
options.onEvent(createContentChunkEvent(sessionId, '', true));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Emit decision event for completion
|
|
199
|
+
// Requirement: 3.5
|
|
200
|
+
if (options.onEvent) {
|
|
201
|
+
options.onEvent(createDecisionEvent(sessionId, 'Task completed successfully', true));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// Emit iteration_completed event
|
|
205
|
+
// Requirement: 3.4
|
|
206
|
+
if (options.onEvent) {
|
|
207
|
+
const iterationDuration = Date.now() - iterationStartTime;
|
|
208
|
+
options.onEvent(createIterationCompletedEvent(sessionId, currentIteration, iterationDuration, toolCallCount));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Execute tool calls with streaming events
|
|
213
|
+
* Requirements: 1.3, 1.4, 8.2
|
|
214
|
+
*/
|
|
215
|
+
async executeToolCallsWithStreaming(toolCalls, context, state, options, sessionId) {
|
|
216
|
+
const results = [];
|
|
217
|
+
if (this.config.parallelToolCalls && toolCalls.length > 1) {
|
|
218
|
+
// Execute in parallel
|
|
219
|
+
const promises = toolCalls.map((tc) => this.executeSingleToolCallWithStreaming(tc, context, options, sessionId));
|
|
220
|
+
const parallelResults = await Promise.all(promises);
|
|
221
|
+
results.push(...parallelResults);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
// Execute sequentially
|
|
225
|
+
for (const toolCall of toolCalls) {
|
|
226
|
+
const result = await this.executeSingleToolCallWithStreaming(toolCall, context, options, sessionId);
|
|
227
|
+
results.push(result);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Add to state
|
|
231
|
+
state.toolCalls.push(...results);
|
|
232
|
+
return results;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Execute a single tool call with streaming events
|
|
236
|
+
* Requirements: 1.3, 1.4, 8.2
|
|
237
|
+
*/
|
|
238
|
+
async executeSingleToolCallWithStreaming(toolCall, context, options, sessionId) {
|
|
239
|
+
const startTime = Date.now();
|
|
240
|
+
const toolName = toolCall.function.name;
|
|
241
|
+
const toolCallId = toolCall.id;
|
|
242
|
+
let result;
|
|
243
|
+
let args = {};
|
|
244
|
+
try {
|
|
245
|
+
// Parse arguments
|
|
246
|
+
args = JSON.parse(toolCall.function.arguments);
|
|
247
|
+
// Emit tool_call_started event
|
|
248
|
+
// Requirement: 1.3
|
|
249
|
+
if (options.onEvent) {
|
|
250
|
+
options.onEvent(createToolCallStartedEvent(sessionId, toolCallId, toolName, args));
|
|
251
|
+
}
|
|
252
|
+
// Get tool
|
|
253
|
+
const tool = this.pluginManager.getTool(toolName);
|
|
254
|
+
if (!tool) {
|
|
255
|
+
result = {
|
|
256
|
+
success: false,
|
|
257
|
+
content: `Tool not found: ${toolName}`,
|
|
258
|
+
error: {
|
|
259
|
+
code: 'TOOL_NOT_FOUND',
|
|
260
|
+
message: `Tool '${toolName}' is not registered`,
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
// Emit tool_error event
|
|
264
|
+
// Requirement: 8.2
|
|
265
|
+
if (options.onEvent) {
|
|
266
|
+
options.onEvent(createToolErrorEvent(sessionId, toolCallId, toolName, `Tool '${toolName}' is not registered`, true // recoverable - can continue with other tools
|
|
267
|
+
));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
// Execute tool
|
|
272
|
+
result = await tool.execute(args, context);
|
|
273
|
+
const duration = Date.now() - startTime;
|
|
274
|
+
if (result.success) {
|
|
275
|
+
// Emit tool_call_completed event
|
|
276
|
+
// Requirement: 1.4
|
|
277
|
+
if (options.onEvent) {
|
|
278
|
+
options.onEvent(createToolCallCompletedEvent(sessionId, toolCallId, toolName, true, duration, result.data));
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
// Emit tool_error event for failed execution
|
|
283
|
+
// Requirement: 8.2
|
|
284
|
+
if (options.onEvent) {
|
|
285
|
+
options.onEvent(createToolErrorEvent(sessionId, toolCallId, toolName, result.error?.message ?? result.content, true // recoverable - can continue with other tools
|
|
286
|
+
));
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
293
|
+
result = {
|
|
294
|
+
success: false,
|
|
295
|
+
content: `Tool execution failed: ${errorMessage}`,
|
|
296
|
+
error: {
|
|
297
|
+
code: 'EXECUTION_ERROR',
|
|
298
|
+
message: errorMessage,
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
// Emit tool_error event
|
|
302
|
+
// Requirement: 8.2
|
|
303
|
+
if (options.onEvent) {
|
|
304
|
+
options.onEvent(createToolErrorEvent(sessionId, toolCallId, toolName, errorMessage, true // recoverable - can continue with other tools
|
|
305
|
+
));
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return {
|
|
309
|
+
id: toolCall.id,
|
|
310
|
+
toolName,
|
|
311
|
+
arguments: args,
|
|
312
|
+
result,
|
|
313
|
+
timestamp: new Date(),
|
|
314
|
+
duration: Date.now() - startTime,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Execute a single iteration of the loop
|
|
319
|
+
* @deprecated Use executeIterationWithStreaming instead
|
|
320
|
+
*/
|
|
321
|
+
async executeIteration(state, context, options) {
|
|
322
|
+
// Delegate to the streaming version without events
|
|
323
|
+
await this.executeIterationWithStreaming(state, context, options, 'default');
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Call LLM with timeout and abort signal support
|
|
327
|
+
*
|
|
328
|
+
* Creates a combined AbortController that responds to either:
|
|
329
|
+
* - Timeout expiration
|
|
330
|
+
* - External abort signal
|
|
331
|
+
*
|
|
332
|
+
* Requirements: 3.1, 3.2
|
|
333
|
+
*/
|
|
334
|
+
async callLLMWithTimeout(messages, toolDefinitions, timeout, abortSignal, onContentChunk) {
|
|
335
|
+
// Create a combined AbortController for timeout and manual abort
|
|
336
|
+
const controller = new AbortController();
|
|
337
|
+
// Set up timeout
|
|
338
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
339
|
+
// Listen to external abort signal
|
|
340
|
+
const onAbort = () => controller.abort();
|
|
341
|
+
abortSignal?.addEventListener('abort', onAbort);
|
|
342
|
+
try {
|
|
343
|
+
// Use streaming API if onContentChunk callback is provided
|
|
344
|
+
if (onContentChunk) {
|
|
345
|
+
const response = await this.llm.generateWithToolsStream('tool_calling', this.formatMessagesForLLM(messages), toolDefinitions, (chunk) => {
|
|
346
|
+
// Only forward content chunks
|
|
347
|
+
if (chunk.type === 'content' && chunk.content) {
|
|
348
|
+
onContentChunk(chunk.content);
|
|
349
|
+
}
|
|
350
|
+
}, { abortSignal: controller.signal });
|
|
351
|
+
// Convert LLM response tool calls to LLMToolCall format
|
|
352
|
+
const toolCalls = response.toolCalls?.map((tc) => {
|
|
353
|
+
if (tc.function && typeof tc.function.name === 'string') {
|
|
354
|
+
return {
|
|
355
|
+
id: tc.id,
|
|
356
|
+
type: 'function',
|
|
357
|
+
function: {
|
|
358
|
+
name: tc.function.name,
|
|
359
|
+
arguments: typeof tc.function.arguments === 'string'
|
|
360
|
+
? tc.function.arguments
|
|
361
|
+
: JSON.stringify(tc.function.arguments),
|
|
362
|
+
},
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
return {
|
|
366
|
+
id: tc.id,
|
|
367
|
+
type: 'function',
|
|
368
|
+
function: {
|
|
369
|
+
name: tc.name,
|
|
370
|
+
arguments: typeof tc.arguments === 'string' ? tc.arguments : JSON.stringify(tc.arguments),
|
|
371
|
+
},
|
|
372
|
+
};
|
|
373
|
+
});
|
|
374
|
+
return {
|
|
375
|
+
content: response.content || '',
|
|
376
|
+
toolCalls,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
// Non-streaming fallback
|
|
380
|
+
const response = await this.llm.generateWithTools('tool_calling', this.formatMessagesForLLM(messages), toolDefinitions, { abortSignal: controller.signal });
|
|
381
|
+
// Convert LLM response tool calls to LLMToolCall format
|
|
382
|
+
// Handle both formats: { name, arguments } and { function: { name, arguments } }
|
|
383
|
+
const toolCalls = response.toolCalls?.map((tc) => {
|
|
384
|
+
// Check if it's already in LLMToolCall format
|
|
385
|
+
if (tc.function && typeof tc.function.name === 'string') {
|
|
386
|
+
return {
|
|
387
|
+
id: tc.id,
|
|
388
|
+
type: 'function',
|
|
389
|
+
function: {
|
|
390
|
+
name: tc.function.name,
|
|
391
|
+
arguments: typeof tc.function.arguments === 'string'
|
|
392
|
+
? tc.function.arguments
|
|
393
|
+
: JSON.stringify(tc.function.arguments),
|
|
394
|
+
},
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
// Otherwise, convert from { name, arguments } format
|
|
398
|
+
return {
|
|
399
|
+
id: tc.id,
|
|
400
|
+
type: 'function',
|
|
401
|
+
function: {
|
|
402
|
+
name: tc.name,
|
|
403
|
+
arguments: typeof tc.arguments === 'string' ? tc.arguments : JSON.stringify(tc.arguments),
|
|
404
|
+
},
|
|
405
|
+
};
|
|
406
|
+
});
|
|
407
|
+
return {
|
|
408
|
+
content: response.content || '',
|
|
409
|
+
toolCalls,
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
finally {
|
|
413
|
+
// Clean up resources - Requirements: 1.3
|
|
414
|
+
clearTimeout(timeoutId);
|
|
415
|
+
abortSignal?.removeEventListener('abort', onAbort);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Execute tool calls (parallel or sequential)
|
|
420
|
+
* @deprecated Use executeToolCallsWithStreaming instead
|
|
421
|
+
*/
|
|
422
|
+
async executeToolCalls(toolCalls, context, state) {
|
|
423
|
+
// Delegate to the streaming version without events
|
|
424
|
+
return this.executeToolCallsWithStreaming(toolCalls, context, state, {}, 'default');
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Execute a single tool call
|
|
428
|
+
* @deprecated Use executeSingleToolCallWithStreaming instead
|
|
429
|
+
*/
|
|
430
|
+
async executeSingleToolCall(toolCall, context) {
|
|
431
|
+
// Delegate to the streaming version without events
|
|
432
|
+
return this.executeSingleToolCallWithStreaming(toolCall, context, {}, 'default');
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Format messages for LLM API
|
|
436
|
+
*/
|
|
437
|
+
formatMessagesForLLM(messages) {
|
|
438
|
+
return messages.map((msg) => {
|
|
439
|
+
const formatted = {
|
|
440
|
+
role: msg.role,
|
|
441
|
+
content: msg.content,
|
|
442
|
+
};
|
|
443
|
+
if (msg.toolCallId) {
|
|
444
|
+
formatted.toolCallId = msg.toolCallId;
|
|
445
|
+
}
|
|
446
|
+
// Include tool calls for assistant messages
|
|
447
|
+
if (msg.role === 'assistant' && msg.toolCalls && msg.toolCalls.length > 0) {
|
|
448
|
+
formatted.toolCalls = msg.toolCalls.map((tc) => {
|
|
449
|
+
let args = {};
|
|
450
|
+
try {
|
|
451
|
+
args = JSON.parse(tc.function.arguments);
|
|
452
|
+
}
|
|
453
|
+
catch {
|
|
454
|
+
// If JSON parsing fails, use empty object
|
|
455
|
+
// The error will be handled during tool execution
|
|
456
|
+
args = {};
|
|
457
|
+
}
|
|
458
|
+
return {
|
|
459
|
+
id: tc.id,
|
|
460
|
+
name: tc.function.name,
|
|
461
|
+
arguments: args,
|
|
462
|
+
};
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
return formatted;
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Build the final result
|
|
470
|
+
*/
|
|
471
|
+
buildResult(state) {
|
|
472
|
+
// Get the last assistant message as the final content
|
|
473
|
+
const lastAssistantMessage = [...state.messages].reverse().find((m) => m.role === 'assistant');
|
|
474
|
+
return {
|
|
475
|
+
status: state.status,
|
|
476
|
+
content: lastAssistantMessage?.content || '',
|
|
477
|
+
toolCalls: state.toolCalls,
|
|
478
|
+
iterations: state.iteration,
|
|
479
|
+
duration: state.endTime ? state.endTime.getTime() - state.startTime.getTime() : 0,
|
|
480
|
+
error: state.error,
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Update loop configuration
|
|
485
|
+
*/
|
|
486
|
+
updateConfig(config) {
|
|
487
|
+
this.config = { ...this.config, ...config };
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Get current configuration
|
|
491
|
+
*/
|
|
492
|
+
getConfig() {
|
|
493
|
+
return { ...this.config };
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
//# sourceMappingURL=agentic-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentic-loop.js","sourceRoot":"","sources":["../../src/core/agentic-loop.ts"],"names":[],"mappings":"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"}
|