concevent-ai-agent-sdk 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/README.md +993 -0
- package/dist/adapters/index.d.ts +3 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +2 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/websocket.d.ts +23 -0
- package/dist/adapters/websocket.d.ts.map +1 -0
- package/dist/adapters/websocket.js +95 -0
- package/dist/adapters/websocket.js.map +1 -0
- package/dist/core/agent.d.ts +11 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +296 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/errors.d.ts +16 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +55 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +24 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +95 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/openrouter-client.d.ts +8 -0
- package/dist/core/openrouter-client.d.ts.map +1 -0
- package/dist/core/openrouter-client.js +16 -0
- package/dist/core/openrouter-client.js.map +1 -0
- package/dist/core/openrouter-utils.d.ts +20 -0
- package/dist/core/openrouter-utils.d.ts.map +1 -0
- package/dist/core/openrouter-utils.js +163 -0
- package/dist/core/openrouter-utils.js.map +1 -0
- package/dist/core/session.d.ts +19 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +47 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/summarization.d.ts +14 -0
- package/dist/core/summarization.d.ts.map +1 -0
- package/dist/core/summarization.js +83 -0
- package/dist/core/summarization.js.map +1 -0
- package/dist/core/tool-executor.d.ts +22 -0
- package/dist/core/tool-executor.d.ts.map +1 -0
- package/dist/core/tool-executor.js +87 -0
- package/dist/core/tool-executor.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/react/AgentProvider.d.ts +15 -0
- package/dist/react/AgentProvider.d.ts.map +1 -0
- package/dist/react/AgentProvider.js +20 -0
- package/dist/react/AgentProvider.js.map +1 -0
- package/dist/react/index.d.ts +6 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +3 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/types.d.ts +26 -0
- package/dist/react/types.d.ts.map +1 -0
- package/dist/react/types.js +2 -0
- package/dist/react/types.js.map +1 -0
- package/dist/react/useAgent.d.ts +15 -0
- package/dist/react/useAgent.d.ts.map +1 -0
- package/dist/react/useAgent.js +167 -0
- package/dist/react/useAgent.js.map +1 -0
- package/dist/types/config.d.ts +84 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/events.d.ts +85 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +8 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/messages.d.ts +30 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +2 -0
- package/dist/types/messages.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
const LOG_PREFIX = '[AI-Agent-SDK]';
|
|
2
|
+
const MAX_CONTENT_LENGTH = 200;
|
|
3
|
+
const MAX_RESULT_LENGTH = 500;
|
|
4
|
+
function truncate(text, maxLength) {
|
|
5
|
+
if (text.length <= maxLength)
|
|
6
|
+
return text;
|
|
7
|
+
return text.substring(0, maxLength) + `... (${text.length - maxLength} more chars)`;
|
|
8
|
+
}
|
|
9
|
+
function formatArgs(args) {
|
|
10
|
+
try {
|
|
11
|
+
const str = JSON.stringify(args);
|
|
12
|
+
return truncate(str, MAX_CONTENT_LENGTH);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return '[unable to serialize]';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function formatResult(result) {
|
|
19
|
+
try {
|
|
20
|
+
const str = JSON.stringify(result);
|
|
21
|
+
return truncate(str, MAX_RESULT_LENGTH);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return '[unable to serialize]';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export const logger = {
|
|
28
|
+
chatStart(message, historyLength) {
|
|
29
|
+
console.log(`${LOG_PREFIX} 💬 Chat started`);
|
|
30
|
+
console.log(`${LOG_PREFIX} Message: ${truncate(message, MAX_CONTENT_LENGTH)}`);
|
|
31
|
+
console.log(`${LOG_PREFIX} History length: ${historyLength} messages`);
|
|
32
|
+
},
|
|
33
|
+
iteration(current, max) {
|
|
34
|
+
console.log(`${LOG_PREFIX} 🔄 Iteration ${current}/${max}`);
|
|
35
|
+
},
|
|
36
|
+
apiRequest(model, messageCount, hasTools) {
|
|
37
|
+
console.log(`${LOG_PREFIX} 📤 API Request`);
|
|
38
|
+
console.log(`${LOG_PREFIX} Model: ${model}`);
|
|
39
|
+
console.log(`${LOG_PREFIX} Messages: ${messageCount}`);
|
|
40
|
+
console.log(`${LOG_PREFIX} Tools: ${hasTools ? 'enabled' : 'none'}`);
|
|
41
|
+
},
|
|
42
|
+
apiResponse(hasText, toolCallCount, hasThinking) {
|
|
43
|
+
console.log(`${LOG_PREFIX} 📥 API Response`);
|
|
44
|
+
console.log(`${LOG_PREFIX} Has text: ${hasText}`);
|
|
45
|
+
console.log(`${LOG_PREFIX} Tool calls: ${toolCallCount}`);
|
|
46
|
+
console.log(`${LOG_PREFIX} Has thinking: ${hasThinking}`);
|
|
47
|
+
},
|
|
48
|
+
toolCallStart(calls) {
|
|
49
|
+
console.log(`${LOG_PREFIX} 🔧 Tool calls starting (${calls.length})`);
|
|
50
|
+
for (const call of calls) {
|
|
51
|
+
console.log(`${LOG_PREFIX} → ${call.name}(${formatArgs(call.args)})`);
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
toolCallResult(name, result, error) {
|
|
55
|
+
if (error) {
|
|
56
|
+
console.log(`${LOG_PREFIX} ❌ Tool result: ${name} - ERROR: ${error}`);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
console.log(`${LOG_PREFIX} ✅ Tool result: ${name}`);
|
|
60
|
+
console.log(`${LOG_PREFIX} Result: ${formatResult(result)}`);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
thinking(hasThinking) {
|
|
64
|
+
if (hasThinking) {
|
|
65
|
+
console.log(`${LOG_PREFIX} 🧠 Reasoning/thinking received`);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
summarizationStart(messageCount) {
|
|
69
|
+
console.log(`${LOG_PREFIX} 📝 Summarization starting (${messageCount} messages)`);
|
|
70
|
+
},
|
|
71
|
+
summarizationEnd(tokensEstimate) {
|
|
72
|
+
console.log(`${LOG_PREFIX} 📝 Summarization complete (est. ${tokensEstimate ?? '?'} tokens)`);
|
|
73
|
+
},
|
|
74
|
+
tokenUsage(usage) {
|
|
75
|
+
console.log(`${LOG_PREFIX} 📊 Token usage: ${usage.promptTokenCount ?? 0} prompt + ${usage.responseTokenCount ?? 0} response = ${usage.totalTokenCount ?? 0} total`);
|
|
76
|
+
},
|
|
77
|
+
chatComplete(iterations, summarized) {
|
|
78
|
+
console.log(`${LOG_PREFIX} ✨ Chat complete`);
|
|
79
|
+
console.log(`${LOG_PREFIX} Iterations: ${iterations}`);
|
|
80
|
+
console.log(`${LOG_PREFIX} Summarized: ${summarized}`);
|
|
81
|
+
},
|
|
82
|
+
error(message, error) {
|
|
83
|
+
console.error(`${LOG_PREFIX} ❌ Error: ${message}`);
|
|
84
|
+
if (error) {
|
|
85
|
+
console.error(`${LOG_PREFIX} Details:`, error);
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
aborted() {
|
|
89
|
+
console.log(`${LOG_PREFIX} 🛑 Request aborted`);
|
|
90
|
+
},
|
|
91
|
+
retry(attempt, maxAttempts, reason) {
|
|
92
|
+
console.log(`${LOG_PREFIX} 🔁 Retry ${attempt}/${maxAttempts}: ${reason}`);
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAiB;IAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS,cAAc,CAAC;AACtF,CAAC;AAED,SAAS,UAAU,CAAC,IAA6B;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,uBAAuB,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAe;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,uBAAuB,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,SAAS,CAAC,OAAe,EAAE,aAAqB;QAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,kBAAkB,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,eAAe,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,sBAAsB,aAAa,WAAW,CAAC,CAAC;IAC3E,CAAC;IAED,SAAS,CAAC,OAAe,EAAE,GAAW;QACpC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,iBAAiB,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,YAAoB,EAAE,QAAiB;QAC/D,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,iBAAiB,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,aAAa,KAAK,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,gBAAgB,YAAY,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,aAAa,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,WAAW,CAAC,OAAgB,EAAE,aAAqB,EAAE,WAAoB;QACvE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,kBAAkB,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,gBAAgB,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,kBAAkB,aAAa,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,oBAAoB,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,aAAa,CAAC,KAA6D;QACzE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,4BAA4B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,QAAQ,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,cAAc,CAAC,IAAY,EAAE,MAAe,EAAE,KAAc;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,mBAAmB,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,mBAAmB,IAAI,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,cAAc,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,WAAoB;QAC3B,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,iCAAiC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,YAAoB;QACrC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,+BAA+B,YAAY,YAAY,CAAC,CAAC;IACpF,CAAC;IAED,gBAAgB,CAAC,cAAuB;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,oCAAoC,cAAc,IAAI,GAAG,UAAU,CAAC,CAAC;IAChG,CAAC;IAED,UAAU,CAAC,KAIV;QACC,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,oBAAoB,KAAK,CAAC,gBAAgB,IAAI,CAAC,aAAa,KAAK,CAAC,kBAAkB,IAAI,CAAC,eAAe,KAAK,CAAC,eAAe,IAAI,CAAC,QAAQ,CACxJ,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,UAAkB,EAAE,UAAmB;QAClD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,kBAAkB,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,kBAAkB,UAAU,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,kBAAkB,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAe;QACpC,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,aAAa,OAAO,EAAE,CAAC,CAAC;QACnD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,aAAa,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,qBAAqB,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,WAAmB,EAAE,MAAc;QACxD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,aAAa,OAAO,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
export interface OpenRouterClientConfig {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
baseURL?: string;
|
|
5
|
+
defaultHeaders?: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
export declare function createOpenRouterClient(config: OpenRouterClientConfig): OpenAI;
|
|
8
|
+
//# sourceMappingURL=openrouter-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-client.d.ts","sourceRoot":"","sources":["../../src/core/openrouter-client.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAkB7E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
export function createOpenRouterClient(config) {
|
|
3
|
+
const { apiKey, baseURL = 'https://openrouter.ai/api/v1', defaultHeaders = {} } = config;
|
|
4
|
+
if (!apiKey) {
|
|
5
|
+
throw new Error('API key is required');
|
|
6
|
+
}
|
|
7
|
+
if (!apiKey.startsWith('sk-or-v1-')) {
|
|
8
|
+
console.warn('Warning: API key does not appear to be a valid OpenRouter API key format (expected sk-or-v1-...)');
|
|
9
|
+
}
|
|
10
|
+
return new OpenAI({
|
|
11
|
+
apiKey,
|
|
12
|
+
baseURL,
|
|
13
|
+
defaultHeaders,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=openrouter-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-client.js","sourceRoot":"","sources":["../../src/core/openrouter-client.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAQ5B,MAAM,UAAU,sBAAsB,CAAC,MAA8B;IACnE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,8BAA8B,EAAE,cAAc,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAEzF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CACV,kGAAkG,CACnG,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,MAAM,CAAC;QAChB,MAAM;QACN,OAAO;QACP,cAAc;KACf,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
import type { ChatMessage, ReasoningDetail, FunctionDeclaration, UsageMetadata } from '../types/index.js';
|
|
3
|
+
export declare const ENCRYPTED_REASONING_MARKER = "[REASONING_ENCRYPTED]";
|
|
4
|
+
export declare function convertChatMessagesToOpenAI(messages: ChatMessage[]): OpenAI.Chat.Completions.ChatCompletionMessageParam[];
|
|
5
|
+
export declare function convertFunctionDeclarationsToTools(declarations: FunctionDeclaration[]): OpenAI.Chat.Completions.ChatCompletionTool[];
|
|
6
|
+
export declare function convertOpenAIToolCallsToFunctionCalls(toolCalls: OpenAI.Chat.Completions.ChatCompletionMessageToolCall[]): Array<{
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
args: Record<string, unknown>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function mapOpenAIUsageToMetadata(usage: OpenAI.CompletionUsage): UsageMetadata;
|
|
12
|
+
export declare function createSystemMessage(content: string): OpenAI.Chat.Completions.ChatCompletionSystemMessageParam;
|
|
13
|
+
export declare function createUserMessage(content: string): OpenAI.Chat.Completions.ChatCompletionUserMessageParam;
|
|
14
|
+
export declare function createAssistantMessage(content: string): OpenAI.Chat.Completions.ChatCompletionAssistantMessageParam;
|
|
15
|
+
export interface NormalizedReasoning {
|
|
16
|
+
displayText?: string;
|
|
17
|
+
rawReasoningDetails?: ReasoningDetail[];
|
|
18
|
+
}
|
|
19
|
+
export declare function normalizeReasoning(reasoning?: string, reasoningDetails?: ReasoningDetail[]): NormalizedReasoning;
|
|
20
|
+
//# sourceMappingURL=openrouter-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-utils.d.ts","sourceRoot":"","sources":["../../src/core/openrouter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,WAAW,EAAE,GACtB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,CAiFtD;AAED,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,mBAAmB,EAAE,GAClC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAS9C;AAED,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,6BAA6B,EAAE,GACjE,KAAK,CAAC;IACP,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC,CAWD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,GAAG,aAAa,CAerF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAK1D;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAKxD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAmC,CAK7D;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAC;CACzC;AAED,wBAAgB,kBAAkB,CAChC,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,mBAAmB,CAiCrB"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
export const ENCRYPTED_REASONING_MARKER = '[REASONING_ENCRYPTED]';
|
|
2
|
+
export function convertChatMessagesToOpenAI(messages) {
|
|
3
|
+
const result = [];
|
|
4
|
+
for (const message of messages) {
|
|
5
|
+
if (message.role === 'user') {
|
|
6
|
+
result.push({
|
|
7
|
+
role: 'user',
|
|
8
|
+
content: message.content,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
else if (message.role === 'assistant') {
|
|
12
|
+
const assistantMessage = {
|
|
13
|
+
role: 'assistant',
|
|
14
|
+
content: message.content,
|
|
15
|
+
};
|
|
16
|
+
if (message.reasoning) {
|
|
17
|
+
assistantMessage.reasoning = message.reasoning;
|
|
18
|
+
}
|
|
19
|
+
if (message.reasoning_details && message.reasoning_details.length > 0) {
|
|
20
|
+
assistantMessage.reasoning_details =
|
|
21
|
+
message.reasoning_details;
|
|
22
|
+
}
|
|
23
|
+
result.push(assistantMessage);
|
|
24
|
+
}
|
|
25
|
+
else if (message.role === 'system') {
|
|
26
|
+
result.push({
|
|
27
|
+
role: 'system',
|
|
28
|
+
content: message.content,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else if (message.role === 'tool-call') {
|
|
32
|
+
if (message.toolCalls && message.toolCalls.length > 0) {
|
|
33
|
+
const toolCallMessage = {
|
|
34
|
+
role: 'assistant',
|
|
35
|
+
content: message.content,
|
|
36
|
+
tool_calls: message.toolCalls.map((toolCall) => ({
|
|
37
|
+
id: toolCall.id,
|
|
38
|
+
type: 'function',
|
|
39
|
+
function: {
|
|
40
|
+
name: toolCall.name,
|
|
41
|
+
arguments: JSON.stringify(toolCall.args),
|
|
42
|
+
},
|
|
43
|
+
})),
|
|
44
|
+
};
|
|
45
|
+
if (message.reasoning) {
|
|
46
|
+
toolCallMessage.reasoning = message.reasoning;
|
|
47
|
+
}
|
|
48
|
+
if (message.reasoning_details && message.reasoning_details.length > 0) {
|
|
49
|
+
toolCallMessage.reasoning_details =
|
|
50
|
+
message.reasoning_details;
|
|
51
|
+
}
|
|
52
|
+
result.push(toolCallMessage);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
const assistantMessage = {
|
|
56
|
+
role: 'assistant',
|
|
57
|
+
content: message.content,
|
|
58
|
+
};
|
|
59
|
+
if (message.reasoning) {
|
|
60
|
+
assistantMessage.reasoning = message.reasoning;
|
|
61
|
+
}
|
|
62
|
+
if (message.reasoning_details && message.reasoning_details.length > 0) {
|
|
63
|
+
assistantMessage.reasoning_details =
|
|
64
|
+
message.reasoning_details;
|
|
65
|
+
}
|
|
66
|
+
result.push(assistantMessage);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (message.role === 'tool-call-results') {
|
|
70
|
+
if (message.toolCallId) {
|
|
71
|
+
result.push({
|
|
72
|
+
role: 'tool',
|
|
73
|
+
content: message.content,
|
|
74
|
+
tool_call_id: message.toolCallId,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw new Error(`tool-call-results message missing tool_call_id: ${message.content.substring(0, 100)}...`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw new Error(`Unsupported message role: ${message.role}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
export function convertFunctionDeclarationsToTools(declarations) {
|
|
88
|
+
return declarations.map((decl) => ({
|
|
89
|
+
type: 'function',
|
|
90
|
+
function: {
|
|
91
|
+
name: decl.name,
|
|
92
|
+
description: decl.description,
|
|
93
|
+
parameters: decl.parametersJsonSchema,
|
|
94
|
+
},
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
export function convertOpenAIToolCallsToFunctionCalls(toolCalls) {
|
|
98
|
+
return toolCalls.map((call) => {
|
|
99
|
+
if (call.type === 'function') {
|
|
100
|
+
return {
|
|
101
|
+
id: call.id,
|
|
102
|
+
name: call.function.name,
|
|
103
|
+
args: JSON.parse(call.function.arguments),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
throw new Error(`Unsupported tool call type: ${call.type}`);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
export function mapOpenAIUsageToMetadata(usage) {
|
|
110
|
+
return {
|
|
111
|
+
promptTokenCount: usage.prompt_tokens,
|
|
112
|
+
candidatesTokenCount: usage.completion_tokens,
|
|
113
|
+
totalTokenCount: usage.total_tokens,
|
|
114
|
+
cachedContentTokenCount: undefined,
|
|
115
|
+
reasoningTokenCount: usage.completion_tokens_details
|
|
116
|
+
? usage.completion_tokens_details?.reasoning_tokens
|
|
117
|
+
: undefined,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function createSystemMessage(content) {
|
|
121
|
+
return {
|
|
122
|
+
role: 'system',
|
|
123
|
+
content,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export function createUserMessage(content) {
|
|
127
|
+
return {
|
|
128
|
+
role: 'user',
|
|
129
|
+
content,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export function createAssistantMessage(content) {
|
|
133
|
+
return {
|
|
134
|
+
role: 'assistant',
|
|
135
|
+
content,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
export function normalizeReasoning(reasoning, reasoningDetails) {
|
|
139
|
+
if (reasoningDetails && reasoningDetails.length > 0) {
|
|
140
|
+
const displayableDetails = reasoningDetails.filter((detail) => detail.text && detail.type !== 'reasoning.encrypted');
|
|
141
|
+
if (displayableDetails.length > 0) {
|
|
142
|
+
return {
|
|
143
|
+
displayText: displayableDetails
|
|
144
|
+
.sort((a, b) => a.index - b.index)
|
|
145
|
+
.map((detail) => detail.text)
|
|
146
|
+
.join('\n\n'),
|
|
147
|
+
rawReasoningDetails: reasoningDetails,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const hasEncryptedReasoning = reasoningDetails.some((detail) => detail.type === 'reasoning.encrypted' || (detail.data && !detail.text));
|
|
151
|
+
if (hasEncryptedReasoning) {
|
|
152
|
+
return {
|
|
153
|
+
displayText: ENCRYPTED_REASONING_MARKER,
|
|
154
|
+
rawReasoningDetails: reasoningDetails,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (reasoning) {
|
|
159
|
+
return { displayText: reasoning };
|
|
160
|
+
}
|
|
161
|
+
return {};
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=openrouter-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-utils.js","sourceRoot":"","sources":["../../src/core/openrouter-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ChatMessage, UsageMetadata } from '../types/index.js';
|
|
2
|
+
export declare class AgentSession {
|
|
3
|
+
private history;
|
|
4
|
+
private tokenUsage;
|
|
5
|
+
private abortController;
|
|
6
|
+
getHistory(): ChatMessage[];
|
|
7
|
+
setHistory(history: ChatMessage[]): void;
|
|
8
|
+
addMessage(message: ChatMessage): void;
|
|
9
|
+
addMessages(messages: ChatMessage[]): void;
|
|
10
|
+
clearHistory(): void;
|
|
11
|
+
getTokenUsage(): UsageMetadata;
|
|
12
|
+
updateTokenUsage(usage: UsageMetadata): void;
|
|
13
|
+
createAbortController(): AbortController;
|
|
14
|
+
getAbortSignal(): AbortSignal | undefined;
|
|
15
|
+
abort(): void;
|
|
16
|
+
isAborted(): boolean;
|
|
17
|
+
clearAbortController(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpE,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,eAAe,CAAgC;IAEvD,UAAU,IAAI,WAAW,EAAE;IAI3B,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IAIxC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAItC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAI1C,YAAY,IAAI,IAAI;IAKpB,aAAa,IAAI,aAAa;IAI9B,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAI5C,qBAAqB,IAAI,eAAe;IAKxC,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC,KAAK,IAAI,IAAI;IAOb,SAAS,IAAI,OAAO;IAIpB,oBAAoB,IAAI,IAAI;CAG7B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export class AgentSession {
|
|
2
|
+
history = [];
|
|
3
|
+
tokenUsage = {};
|
|
4
|
+
abortController = null;
|
|
5
|
+
getHistory() {
|
|
6
|
+
return [...this.history];
|
|
7
|
+
}
|
|
8
|
+
setHistory(history) {
|
|
9
|
+
this.history = [...history];
|
|
10
|
+
}
|
|
11
|
+
addMessage(message) {
|
|
12
|
+
this.history.push(message);
|
|
13
|
+
}
|
|
14
|
+
addMessages(messages) {
|
|
15
|
+
this.history.push(...messages);
|
|
16
|
+
}
|
|
17
|
+
clearHistory() {
|
|
18
|
+
this.history = [];
|
|
19
|
+
this.tokenUsage = {};
|
|
20
|
+
}
|
|
21
|
+
getTokenUsage() {
|
|
22
|
+
return { ...this.tokenUsage };
|
|
23
|
+
}
|
|
24
|
+
updateTokenUsage(usage) {
|
|
25
|
+
this.tokenUsage = { ...usage };
|
|
26
|
+
}
|
|
27
|
+
createAbortController() {
|
|
28
|
+
this.abortController = new AbortController();
|
|
29
|
+
return this.abortController;
|
|
30
|
+
}
|
|
31
|
+
getAbortSignal() {
|
|
32
|
+
return this.abortController?.signal;
|
|
33
|
+
}
|
|
34
|
+
abort() {
|
|
35
|
+
if (this.abortController) {
|
|
36
|
+
this.abortController.abort();
|
|
37
|
+
this.abortController = null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
isAborted() {
|
|
41
|
+
return this.abortController?.signal.aborted ?? false;
|
|
42
|
+
}
|
|
43
|
+
clearAbortController() {
|
|
44
|
+
this.abortController = null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACf,OAAO,GAAkB,EAAE,CAAC;IAC5B,UAAU,GAAkB,EAAE,CAAC;IAC/B,eAAe,GAA2B,IAAI,CAAC;IAEvD,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,OAAsB;QAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU,CAAC,OAAoB;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,QAAuB;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,KAAoB;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;IACtC,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;IACvD,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
import type { ChatMessage, ReasoningEffort, SummarizationConfig } from '../types/index.js';
|
|
3
|
+
export interface SummarizationResult {
|
|
4
|
+
summary: string;
|
|
5
|
+
originalMessageCount: number;
|
|
6
|
+
tokensEstimate: number;
|
|
7
|
+
requestId?: string;
|
|
8
|
+
error?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function summarizeConversation(conversationHistory: ChatMessage[], client: OpenAI, model: string, config: SummarizationConfig, reasoningEffort?: ReasoningEffort, temperature?: number, abortSignal?: AbortSignal): Promise<SummarizationResult>;
|
|
11
|
+
export declare function createSummaryMessage(summary: string): ChatMessage;
|
|
12
|
+
export declare function shouldSummarize(totalTokens: number, contextLimitTokens: number): boolean;
|
|
13
|
+
export declare const DEFAULT_CONTEXT_LIMIT_TOKENS: number;
|
|
14
|
+
//# sourceMappingURL=summarization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summarization.d.ts","sourceRoot":"","sources":["../../src/core/summarization.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA0B3F,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,qBAAqB,CACzC,mBAAmB,EAAE,WAAW,EAAE,EAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAC3B,eAAe,GAAE,eAAwB,EACzC,WAAW,GAAE,MAAY,EACzB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAwD9B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAMjE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAExF;AAED,eAAO,MAAM,4BAA4B,QAAa,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createUserMessage } from './openrouter-utils.js';
|
|
2
|
+
const DEFAULT_SUMMARIZATION_PROMPT = `You are an AI assistant specialized in summarizing conversations.
|
|
3
|
+
|
|
4
|
+
Your task is to summarize the conversation you received accurately and completely, preserving all important information.
|
|
5
|
+
|
|
6
|
+
The summary should include:
|
|
7
|
+
1. Main topics of the conversation
|
|
8
|
+
2. User requests and questions
|
|
9
|
+
3. Answers and solutions provided
|
|
10
|
+
4. Important data and numbers mentioned
|
|
11
|
+
5. Decisions or future plans
|
|
12
|
+
|
|
13
|
+
Write the summary concisely but comprehensively. The summary will be passed to another AI system to continue the conversation.
|
|
14
|
+
|
|
15
|
+
Example of a good summary structure:
|
|
16
|
+
"The user asked about [topic]. It was explained [solution/information]. Relevant data: [data]. The user requested [additional request]. It was agreed that [decision/plan]."
|
|
17
|
+
|
|
18
|
+
Do not include in the summary:
|
|
19
|
+
- Irrelevant conversation details
|
|
20
|
+
- Opening and closing greetings
|
|
21
|
+
- Side remarks
|
|
22
|
+
|
|
23
|
+
Summarize the following conversation:`;
|
|
24
|
+
export async function summarizeConversation(conversationHistory, client, model, config, reasoningEffort = 'high', temperature = 0.1, abortSignal) {
|
|
25
|
+
try {
|
|
26
|
+
if (abortSignal?.aborted) {
|
|
27
|
+
throw new Error('Request aborted before processing');
|
|
28
|
+
}
|
|
29
|
+
const prompt = config.prompt || DEFAULT_SUMMARIZATION_PROMPT;
|
|
30
|
+
const conversationText = conversationHistory
|
|
31
|
+
.map((msg) => {
|
|
32
|
+
const role = msg.role === 'user' ? 'User' : 'Assistant';
|
|
33
|
+
return `${role}: ${msg.content}`;
|
|
34
|
+
})
|
|
35
|
+
.join('\n\n');
|
|
36
|
+
const messages = [
|
|
37
|
+
createUserMessage(`${prompt}\n\n--- Conversation to summarize ---\n${conversationText}`),
|
|
38
|
+
];
|
|
39
|
+
const response = await client.chat.completions.create({
|
|
40
|
+
model,
|
|
41
|
+
messages,
|
|
42
|
+
temperature,
|
|
43
|
+
reasoning_effort: reasoningEffort,
|
|
44
|
+
});
|
|
45
|
+
const responseMessage = response.choices[0]?.message;
|
|
46
|
+
if (!responseMessage?.content) {
|
|
47
|
+
throw new Error('Failed to generate conversation summary');
|
|
48
|
+
}
|
|
49
|
+
const summary = responseMessage.content.trim();
|
|
50
|
+
const originalText = conversationHistory.map((msg) => msg.content).join(' ');
|
|
51
|
+
const tokensEstimate = Math.ceil(originalText.length / 4);
|
|
52
|
+
return {
|
|
53
|
+
summary,
|
|
54
|
+
originalMessageCount: conversationHistory.length,
|
|
55
|
+
tokensEstimate,
|
|
56
|
+
requestId: response.id,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error('Error summarizing conversation:', error);
|
|
61
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
summary: '',
|
|
66
|
+
error: error instanceof Error ? error.message : 'Unknown error during summarization',
|
|
67
|
+
originalMessageCount: conversationHistory.length,
|
|
68
|
+
tokensEstimate: 0,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function createSummaryMessage(summary) {
|
|
73
|
+
return {
|
|
74
|
+
role: 'assistant',
|
|
75
|
+
content: `Summary of previous conversation: ${summary}`,
|
|
76
|
+
timestamp: new Date(),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export function shouldSummarize(totalTokens, contextLimitTokens) {
|
|
80
|
+
return totalTokens >= contextLimitTokens;
|
|
81
|
+
}
|
|
82
|
+
export const DEFAULT_CONTEXT_LIMIT_TOKENS = 100 * 1024;
|
|
83
|
+
//# sourceMappingURL=summarization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summarization.js","sourceRoot":"","sources":["../../src/core/summarization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ToolDefinition, ToolExecutorContext, FunctionCallResult, ToolResultData, ExecutedToolCall } from '../types/index.js';
|
|
2
|
+
export declare class ToolExecutor {
|
|
3
|
+
private toolMap;
|
|
4
|
+
constructor(tools: ToolDefinition[]);
|
|
5
|
+
getToolDeclarations(): import("../index.js").FunctionDeclaration[];
|
|
6
|
+
hasTool(name: string): boolean;
|
|
7
|
+
executeToolCall(call: {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
args: Record<string, unknown>;
|
|
11
|
+
}, context: ToolExecutorContext): Promise<FunctionCallResult>;
|
|
12
|
+
executeToolCalls(calls: Array<{
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
args: Record<string, unknown>;
|
|
16
|
+
}>, context: ToolExecutorContext, onResult?: (result: ToolResultData) => void): Promise<ExecutedToolCall[]>;
|
|
17
|
+
formatToolResultForHistory(_callId: string, functionName: string, result: FunctionCallResult): {
|
|
18
|
+
content: string;
|
|
19
|
+
isError: boolean;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=tool-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/core/tool-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAG3B,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA8B;gBAEjC,KAAK,EAAE,cAAc,EAAE;IAOnC,mBAAmB;IAInB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxB,eAAe,CACnB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EACjE,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IA2BxB,gBAAgB,CACpB,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,EACzE,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAC1C,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiC9B,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,kBAAkB,GACzB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;CAqBzC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { logger } from './logger.js';
|
|
2
|
+
export class ToolExecutor {
|
|
3
|
+
toolMap;
|
|
4
|
+
constructor(tools) {
|
|
5
|
+
this.toolMap = new Map();
|
|
6
|
+
for (const tool of tools) {
|
|
7
|
+
this.toolMap.set(tool.declaration.name, tool);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
getToolDeclarations() {
|
|
11
|
+
return Array.from(this.toolMap.values()).map((t) => t.declaration);
|
|
12
|
+
}
|
|
13
|
+
hasTool(name) {
|
|
14
|
+
return this.toolMap.has(name);
|
|
15
|
+
}
|
|
16
|
+
async executeToolCall(call, context) {
|
|
17
|
+
const tool = this.toolMap.get(call.name);
|
|
18
|
+
if (!tool) {
|
|
19
|
+
return {
|
|
20
|
+
functionName: call.name,
|
|
21
|
+
result: null,
|
|
22
|
+
error: `Unknown function: ${call.name}`,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const result = await tool.executor(call.args, context);
|
|
27
|
+
return {
|
|
28
|
+
functionName: call.name,
|
|
29
|
+
result,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.error(`Tool execution error for ${call.name}:`, error);
|
|
34
|
+
return {
|
|
35
|
+
functionName: call.name,
|
|
36
|
+
result: null,
|
|
37
|
+
error: error instanceof Error ? error.message : 'Unknown error during tool execution',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async executeToolCalls(calls, context, onResult) {
|
|
42
|
+
const executedCalls = [];
|
|
43
|
+
for (const call of calls) {
|
|
44
|
+
if (context.abortSignal?.aborted) {
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
const result = await this.executeToolCall(call, context);
|
|
48
|
+
const executedCall = {
|
|
49
|
+
id: call.id,
|
|
50
|
+
functionName: call.name,
|
|
51
|
+
args: call.args,
|
|
52
|
+
result,
|
|
53
|
+
};
|
|
54
|
+
executedCalls.push(executedCall);
|
|
55
|
+
logger.toolCallResult(call.name, result.result, result.error);
|
|
56
|
+
if (onResult) {
|
|
57
|
+
onResult({
|
|
58
|
+
id: call.id,
|
|
59
|
+
functionName: call.name,
|
|
60
|
+
result: result.result,
|
|
61
|
+
error: result.error,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return executedCalls;
|
|
66
|
+
}
|
|
67
|
+
formatToolResultForHistory(_callId, functionName, result) {
|
|
68
|
+
if (result.error) {
|
|
69
|
+
const content = `Error in function ${functionName}: ${result.error}
|
|
70
|
+
|
|
71
|
+
🤔 THINK AND ANALYZE: This function call failed. You need to:
|
|
72
|
+
1. Analyze the error message carefully to understand what went wrong
|
|
73
|
+
2. Check if you have the correct parameter types and values
|
|
74
|
+
3. Consider if you need to call other functions first
|
|
75
|
+
4. Look at the function schema to understand what parameters are expected
|
|
76
|
+
5. Retry with corrected parameters or try a different approach
|
|
77
|
+
|
|
78
|
+
Remember: You have access to all previous function results in this conversation. Use them to solve this issue.`;
|
|
79
|
+
return { content, isError: true };
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
content: `Result of ${functionName}: ${JSON.stringify(result.result)}`,
|
|
83
|
+
isError: false,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=tool-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/core/tool-executor.ts"],"names":[],"mappings":"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"}
|