@just-every/ensemble 0.1.34 → 0.2.2
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 +62 -190
- package/dist/config/tool_execution.d.ts +11 -0
- package/dist/config/tool_execution.d.ts.map +1 -0
- package/dist/config/tool_execution.js +31 -0
- package/dist/config/tool_execution.js.map +1 -0
- package/dist/core/ensemble_embed.d.ts +3 -0
- package/dist/core/ensemble_embed.d.ts.map +1 -0
- package/dist/core/ensemble_embed.js +24 -0
- package/dist/core/ensemble_embed.js.map +1 -0
- package/dist/core/ensemble_image.d.ts +3 -0
- package/dist/core/ensemble_image.d.ts.map +1 -0
- package/dist/core/ensemble_image.js +10 -0
- package/dist/core/ensemble_image.js.map +1 -0
- package/dist/core/ensemble_request.d.ts +4 -0
- package/dist/core/ensemble_request.d.ts.map +1 -0
- package/dist/core/ensemble_request.js +240 -0
- package/dist/core/ensemble_request.js.map +1 -0
- package/dist/{model_data.d.ts → data/model_data.d.ts} +2 -2
- package/dist/data/model_data.d.ts.map +1 -0
- package/dist/{model_data.js → data/model_data.js} +52 -3
- package/dist/data/model_data.js.map +1 -0
- package/dist/index.d.ts +18 -35
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -56
- package/dist/index.js.map +1 -1
- package/dist/model_providers/base_provider.d.ts +3 -29
- package/dist/model_providers/base_provider.d.ts.map +1 -1
- package/dist/model_providers/base_provider.js +1 -114
- package/dist/model_providers/base_provider.js.map +1 -1
- package/dist/model_providers/claude.d.ts +2 -2
- package/dist/model_providers/claude.d.ts.map +1 -1
- package/dist/model_providers/claude.js +10 -4
- package/dist/model_providers/claude.js.map +1 -1
- package/dist/model_providers/deepseek.d.ts.map +1 -1
- package/dist/model_providers/deepseek.js.map +1 -1
- package/dist/model_providers/gemini.d.ts +4 -4
- package/dist/model_providers/gemini.d.ts.map +1 -1
- package/dist/model_providers/gemini.js +31 -32
- package/dist/model_providers/gemini.js.map +1 -1
- package/dist/model_providers/grok.d.ts.map +1 -1
- package/dist/model_providers/grok.js.map +1 -1
- package/dist/model_providers/model_provider.d.ts +3 -4
- package/dist/model_providers/model_provider.d.ts.map +1 -1
- package/dist/model_providers/model_provider.js +11 -5
- package/dist/model_providers/model_provider.js.map +1 -1
- package/dist/model_providers/openai.d.ts +4 -4
- package/dist/model_providers/openai.d.ts.map +1 -1
- package/dist/model_providers/openai.js +24 -26
- package/dist/model_providers/openai.js.map +1 -1
- package/dist/model_providers/openai_chat.d.ts +3 -3
- package/dist/model_providers/openai_chat.d.ts.map +1 -1
- package/dist/model_providers/openai_chat.js +2 -2
- package/dist/model_providers/openai_chat.js.map +1 -1
- package/dist/model_providers/openrouter.d.ts.map +1 -1
- package/dist/model_providers/openrouter.js +3 -3
- package/dist/model_providers/openrouter.js.map +1 -1
- package/dist/model_providers/test_provider.d.ts +3 -5
- package/dist/model_providers/test_provider.d.ts.map +1 -1
- package/dist/model_providers/test_provider.js +9 -17
- package/dist/model_providers/test_provider.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/api_types.d.ts +1 -1
- package/dist/types/api_types.d.ts.map +1 -1
- package/dist/types/tool_types.d.ts +1 -99
- package/dist/types/tool_types.d.ts.map +1 -1
- package/dist/types/tool_types.js +1 -10
- package/dist/types/tool_types.js.map +1 -1
- package/dist/{types.d.ts → types/types.d.ts} +82 -32
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js.map +1 -0
- package/dist/utils/agent.d.ts +41 -0
- package/dist/utils/agent.d.ts.map +1 -0
- package/dist/utils/agent.js +342 -0
- package/dist/utils/agent.js.map +1 -0
- package/dist/utils/communication.d.ts +0 -1
- package/dist/utils/communication.d.ts.map +1 -1
- package/dist/utils/communication.js +1 -4
- package/dist/utils/communication.js.map +1 -1
- package/dist/utils/cost_tracker.d.ts +1 -1
- package/dist/utils/cost_tracker.d.ts.map +1 -1
- package/dist/utils/cost_tracker.js +1 -1
- package/dist/utils/cost_tracker.js.map +1 -1
- package/dist/utils/create_tool_function.d.ts +1 -23
- package/dist/utils/create_tool_function.d.ts.map +1 -1
- package/dist/utils/create_tool_function.js +14 -3
- package/dist/utils/create_tool_function.js.map +1 -1
- package/dist/{external_models.d.ts → utils/external_models.d.ts} +1 -2
- package/dist/utils/external_models.d.ts.map +1 -0
- package/dist/{external_models.js → utils/external_models.js} +0 -3
- package/dist/utils/external_models.js.map +1 -0
- package/dist/utils/image_to_text.d.ts.map +1 -1
- package/dist/utils/image_to_text.js +3 -2
- package/dist/utils/image_to_text.js.map +1 -1
- package/dist/utils/image_utils.d.ts +1 -4
- package/dist/utils/image_utils.d.ts.map +1 -1
- package/dist/utils/image_utils.js +2 -10
- package/dist/utils/image_utils.js.map +1 -1
- package/dist/utils/llm_logger.d.ts +1 -1
- package/dist/utils/llm_logger.d.ts.map +1 -1
- package/dist/utils/llm_logger.js.map +1 -1
- package/dist/utils/message_history.d.ts +4 -4
- package/dist/utils/message_history.d.ts.map +1 -1
- package/dist/utils/message_history.js +18 -18
- package/dist/utils/message_history.js.map +1 -1
- package/dist/utils/quota_tracker.d.ts +1 -1
- package/dist/utils/quota_tracker.d.ts.map +1 -1
- package/dist/utils/quota_tracker.js +0 -1
- package/dist/utils/quota_tracker.js.map +1 -1
- package/dist/utils/running_tool_tracker.d.ts +42 -0
- package/dist/utils/running_tool_tracker.d.ts.map +1 -0
- package/dist/utils/running_tool_tracker.js +129 -0
- package/dist/utils/running_tool_tracker.js.map +1 -0
- package/dist/utils/sequential_queue.d.ts +13 -0
- package/dist/utils/sequential_queue.d.ts.map +1 -0
- package/dist/utils/sequential_queue.js +68 -0
- package/dist/utils/sequential_queue.js.map +1 -0
- package/dist/utils/state_manager.d.ts.map +1 -1
- package/dist/utils/state_manager.js.map +1 -1
- package/dist/utils/stream_converter.d.ts +2 -13
- package/dist/utils/stream_converter.d.ts.map +1 -1
- package/dist/utils/stream_converter.js +15 -37
- package/dist/utils/stream_converter.js.map +1 -1
- package/dist/utils/test_utils.d.ts +4 -4
- package/dist/utils/test_utils.d.ts.map +1 -1
- package/dist/utils/test_utils.js +17 -17
- package/dist/utils/test_utils.js.map +1 -1
- package/dist/utils/tool_execution_manager.d.ts +7 -0
- package/dist/utils/tool_execution_manager.d.ts.map +1 -0
- package/dist/utils/tool_execution_manager.js +145 -0
- package/dist/utils/tool_execution_manager.js.map +1 -0
- package/dist/utils/tool_parameter_utils.d.ts +2 -2
- package/dist/utils/tool_parameter_utils.d.ts.map +1 -1
- package/dist/utils/tool_parameter_utils.js +8 -4
- package/dist/utils/tool_parameter_utils.js.map +1 -1
- package/dist/utils/tool_result_processor.d.ts +6 -0
- package/dist/utils/tool_result_processor.d.ts.map +1 -0
- package/dist/utils/tool_result_processor.js +69 -0
- package/dist/utils/tool_result_processor.js.map +1 -0
- package/dist/utils/verification.d.ts +7 -0
- package/dist/utils/verification.d.ts.map +1 -0
- package/dist/utils/verification.js +43 -0
- package/dist/utils/verification.js.map +1 -0
- package/package.json +11 -10
- package/dist/cost_tracker.d.ts +0 -2
- package/dist/cost_tracker.d.ts.map +0 -1
- package/dist/cost_tracker.js +0 -2
- package/dist/cost_tracker.js.map +0 -1
- package/dist/errors.d.ts +0 -55
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -134
- package/dist/errors.js.map +0 -1
- package/dist/external_models.d.ts.map +0 -1
- package/dist/external_models.js.map +0 -1
- package/dist/model_data.d.ts.map +0 -1
- package/dist/model_data.js.map +0 -1
- package/dist/model_providers/refactored_openai.d.ts +0 -22
- package/dist/model_providers/refactored_openai.d.ts.map +0 -1
- package/dist/model_providers/refactored_openai.js +0 -310
- package/dist/model_providers/refactored_openai.js.map +0 -1
- package/dist/openai-compat.d.ts +0 -79
- package/dist/openai-compat.d.ts.map +0 -1
- package/dist/openai-compat.js +0 -581
- package/dist/openai-compat.js.map +0 -1
- package/dist/test.d.ts +0 -5
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -2
- package/dist/test.js.map +0 -1
- package/dist/types/extended_types.d.ts +0 -43
- package/dist/types/extended_types.d.ts.map +0 -1
- package/dist/types/extended_types.js +0 -2
- package/dist/types/extended_types.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/unified_request.d.ts +0 -19
- package/dist/unified_request.d.ts.map +0 -1
- package/dist/unified_request.js +0 -261
- package/dist/unified_request.js.map +0 -1
- package/dist/utils/async_queue.d.ts +0 -14
- package/dist/utils/async_queue.d.ts.map +0 -1
- package/dist/utils/async_queue.js +0 -68
- package/dist/utils/async_queue.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -60
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js +0 -205
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/error_handler.d.ts +0 -33
- package/dist/utils/error_handler.d.ts.map +0 -1
- package/dist/utils/error_handler.js +0 -84
- package/dist/utils/error_handler.js.map +0 -1
- package/dist/utils/tool_builder.d.ts +0 -51
- package/dist/utils/tool_builder.d.ts.map +0 -1
- package/dist/utils/tool_builder.js +0 -167
- package/dist/utils/tool_builder.js.map +0 -1
- package/dist/utils/tool_utils.d.ts +0 -13
- package/dist/utils/tool_utils.d.ts.map +0 -1
- package/dist/utils/tool_utils.js +0 -52
- package/dist/utils/tool_utils.js.map +0 -1
- package/dist/validation.d.ts +0 -1789
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -289
- package/dist/validation.js.map +0 -1
- package/test.d.ts +0 -3
- package/test.js +0 -4
- /package/dist/{types.js → types/types.js} +0 -0
package/dist/utils/cache.js
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
export class LRUCache {
|
|
2
|
-
maxSize;
|
|
3
|
-
ttlMs;
|
|
4
|
-
cache = new Map();
|
|
5
|
-
accessOrder = [];
|
|
6
|
-
constructor(maxSize, ttlMs = 5 * 60 * 1000) {
|
|
7
|
-
this.maxSize = maxSize;
|
|
8
|
-
this.ttlMs = ttlMs;
|
|
9
|
-
}
|
|
10
|
-
get(key) {
|
|
11
|
-
const entry = this.cache.get(key);
|
|
12
|
-
if (!entry)
|
|
13
|
-
return undefined;
|
|
14
|
-
if (Date.now() - entry.timestamp > this.ttlMs) {
|
|
15
|
-
this.delete(key);
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
this.updateAccessOrder(key);
|
|
19
|
-
return entry.value;
|
|
20
|
-
}
|
|
21
|
-
set(key, value) {
|
|
22
|
-
if (!this.cache.has(key) && this.cache.size >= this.maxSize) {
|
|
23
|
-
this.evictLRU();
|
|
24
|
-
}
|
|
25
|
-
this.cache.set(key, { value, timestamp: Date.now() });
|
|
26
|
-
this.updateAccessOrder(key);
|
|
27
|
-
}
|
|
28
|
-
delete(key) {
|
|
29
|
-
const deleted = this.cache.delete(key);
|
|
30
|
-
if (deleted) {
|
|
31
|
-
const index = this.accessOrder.indexOf(key);
|
|
32
|
-
if (index > -1) {
|
|
33
|
-
this.accessOrder.splice(index, 1);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return deleted;
|
|
37
|
-
}
|
|
38
|
-
clear() {
|
|
39
|
-
this.cache.clear();
|
|
40
|
-
this.accessOrder = [];
|
|
41
|
-
}
|
|
42
|
-
updateAccessOrder(key) {
|
|
43
|
-
const index = this.accessOrder.indexOf(key);
|
|
44
|
-
if (index > -1) {
|
|
45
|
-
this.accessOrder.splice(index, 1);
|
|
46
|
-
}
|
|
47
|
-
this.accessOrder.push(key);
|
|
48
|
-
}
|
|
49
|
-
evictLRU() {
|
|
50
|
-
const lru = this.accessOrder.shift();
|
|
51
|
-
if (lru !== undefined) {
|
|
52
|
-
this.cache.delete(lru);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
class ModelMetadataCache {
|
|
57
|
-
cache = new LRUCache(100, 10 * 60 * 1000);
|
|
58
|
-
get(modelId) {
|
|
59
|
-
return this.cache.get(modelId);
|
|
60
|
-
}
|
|
61
|
-
set(modelId, entry) {
|
|
62
|
-
this.cache.set(modelId, entry);
|
|
63
|
-
}
|
|
64
|
-
clear() {
|
|
65
|
-
this.cache.clear();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
export const modelMetadataCache = new ModelMetadataCache();
|
|
69
|
-
export class ConnectionPool {
|
|
70
|
-
factory;
|
|
71
|
-
maxConnections;
|
|
72
|
-
available = [];
|
|
73
|
-
inUse = new Set();
|
|
74
|
-
waitQueue = [];
|
|
75
|
-
constructor(factory, maxConnections = 10) {
|
|
76
|
-
this.factory = factory;
|
|
77
|
-
this.maxConnections = maxConnections;
|
|
78
|
-
for (let i = 0; i < Math.min(3, maxConnections); i++) {
|
|
79
|
-
this.available.push(this.factory());
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
async acquire() {
|
|
83
|
-
const conn = this.available.pop();
|
|
84
|
-
if (conn) {
|
|
85
|
-
this.inUse.add(conn);
|
|
86
|
-
return conn;
|
|
87
|
-
}
|
|
88
|
-
if (this.inUse.size < this.maxConnections) {
|
|
89
|
-
const newConn = this.factory();
|
|
90
|
-
this.inUse.add(newConn);
|
|
91
|
-
return newConn;
|
|
92
|
-
}
|
|
93
|
-
return new Promise((resolve) => {
|
|
94
|
-
this.waitQueue.push(resolve);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
release(conn) {
|
|
98
|
-
this.inUse.delete(conn);
|
|
99
|
-
const waiter = this.waitQueue.shift();
|
|
100
|
-
if (waiter) {
|
|
101
|
-
this.inUse.add(conn);
|
|
102
|
-
waiter(conn);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
this.available.push(conn);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
async withConnection(fn) {
|
|
109
|
-
const conn = await this.acquire();
|
|
110
|
-
try {
|
|
111
|
-
return await fn(conn);
|
|
112
|
-
}
|
|
113
|
-
finally {
|
|
114
|
-
this.release(conn);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
destroy() {
|
|
118
|
-
this.available = [];
|
|
119
|
-
this.inUse.clear();
|
|
120
|
-
this.waitQueue = [];
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
export class RequestDeduplicator {
|
|
124
|
-
pending = new Map();
|
|
125
|
-
async deduplicate(key, factory) {
|
|
126
|
-
const existing = this.pending.get(key);
|
|
127
|
-
if (existing) {
|
|
128
|
-
return existing;
|
|
129
|
-
}
|
|
130
|
-
const promise = factory().finally(() => {
|
|
131
|
-
this.pending.delete(key);
|
|
132
|
-
});
|
|
133
|
-
this.pending.set(key, promise);
|
|
134
|
-
return promise;
|
|
135
|
-
}
|
|
136
|
-
clear() {
|
|
137
|
-
this.pending.clear();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
export class TokenBucket {
|
|
141
|
-
capacity;
|
|
142
|
-
refillRate;
|
|
143
|
-
initialTokens;
|
|
144
|
-
tokens;
|
|
145
|
-
lastRefill;
|
|
146
|
-
constructor(capacity, refillRate, initialTokens) {
|
|
147
|
-
this.capacity = capacity;
|
|
148
|
-
this.refillRate = refillRate;
|
|
149
|
-
this.initialTokens = initialTokens;
|
|
150
|
-
this.tokens = initialTokens ?? capacity;
|
|
151
|
-
this.lastRefill = Date.now();
|
|
152
|
-
}
|
|
153
|
-
async consume(count = 1) {
|
|
154
|
-
this.refill();
|
|
155
|
-
if (this.tokens >= count) {
|
|
156
|
-
this.tokens -= count;
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
return false;
|
|
160
|
-
}
|
|
161
|
-
async waitAndConsume(count = 1) {
|
|
162
|
-
while (true) {
|
|
163
|
-
if (await this.consume(count)) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
const tokensNeeded = count - this.tokens;
|
|
167
|
-
const waitMs = (tokensNeeded / this.refillRate) * 1000;
|
|
168
|
-
await new Promise(resolve => setTimeout(resolve, Math.min(waitMs, 100)));
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
refill() {
|
|
172
|
-
const now = Date.now();
|
|
173
|
-
const elapsed = (now - this.lastRefill) / 1000;
|
|
174
|
-
const tokensToAdd = elapsed * this.refillRate;
|
|
175
|
-
this.tokens = Math.min(this.capacity, this.tokens + tokensToAdd);
|
|
176
|
-
this.lastRefill = now;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
export class ResponseCache {
|
|
180
|
-
cache = new LRUCache(50, 60 * 1000);
|
|
181
|
-
generateKey(model, messages, options) {
|
|
182
|
-
const data = {
|
|
183
|
-
model,
|
|
184
|
-
messages: messages.map(m => ({
|
|
185
|
-
role: m.role,
|
|
186
|
-
content: typeof m.content === 'string' ? m.content : JSON.stringify(m.content)
|
|
187
|
-
})),
|
|
188
|
-
temperature: options?.temperature,
|
|
189
|
-
max_tokens: options?.max_tokens
|
|
190
|
-
};
|
|
191
|
-
return JSON.stringify(data);
|
|
192
|
-
}
|
|
193
|
-
get(key) {
|
|
194
|
-
return this.cache.get(key);
|
|
195
|
-
}
|
|
196
|
-
set(key, value) {
|
|
197
|
-
this.cache.set(key, value);
|
|
198
|
-
}
|
|
199
|
-
clear() {
|
|
200
|
-
this.cache.clear();
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
export const responseCache = new ResponseCache();
|
|
204
|
-
export const requestDeduplicator = new RequestDeduplicator();
|
|
205
|
-
//# sourceMappingURL=cache.js.map
|
package/dist/utils/cache.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../utils/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { EnsembleStreamEvent } from '../types.js';
|
|
2
|
-
export declare enum ErrorCode {
|
|
3
|
-
PROVIDER_NOT_FOUND = "PROVIDER_NOT_FOUND",
|
|
4
|
-
PROVIDER_AUTH_FAILED = "PROVIDER_AUTH_FAILED",
|
|
5
|
-
PROVIDER_RATE_LIMIT = "PROVIDER_RATE_LIMIT",
|
|
6
|
-
PROVIDER_QUOTA_EXCEEDED = "PROVIDER_QUOTA_EXCEEDED",
|
|
7
|
-
TOOL_NOT_FOUND = "TOOL_NOT_FOUND",
|
|
8
|
-
TOOL_EXECUTION_FAILED = "TOOL_EXECUTION_FAILED",
|
|
9
|
-
TOOL_TIMEOUT = "TOOL_TIMEOUT",
|
|
10
|
-
TOOL_VALIDATION_FAILED = "TOOL_VALIDATION_FAILED",
|
|
11
|
-
MAX_TOOL_CALLS_EXCEEDED = "MAX_TOOL_CALLS_EXCEEDED",
|
|
12
|
-
LOOP_TIMEOUT = "LOOP_TIMEOUT",
|
|
13
|
-
INVALID_REQUEST = "INVALID_REQUEST",
|
|
14
|
-
UNKNOWN_ERROR = "UNKNOWN_ERROR"
|
|
15
|
-
}
|
|
16
|
-
export interface EnsembleError extends Error {
|
|
17
|
-
code: ErrorCode;
|
|
18
|
-
details?: any;
|
|
19
|
-
recoverable?: boolean;
|
|
20
|
-
retry?: {
|
|
21
|
-
attempts: number;
|
|
22
|
-
delay: number;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export declare class EnsembleErrorHandler {
|
|
26
|
-
private static retryDelays;
|
|
27
|
-
static createError(code: ErrorCode, message: string, details?: any, recoverable?: boolean): EnsembleError;
|
|
28
|
-
static handleWithRetry<T>(operation: () => Promise<T>, maxRetries?: number, isRetryable?: (error: any) => boolean): Promise<T>;
|
|
29
|
-
static isRetryableError(error: any): boolean;
|
|
30
|
-
static toStreamEvent(error: any): EnsembleStreamEvent;
|
|
31
|
-
static getUserMessage(error: any): string;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=error_handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error_handler.d.ts","sourceRoot":"","sources":["../../utils/error_handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,oBAAY,SAAS;IAEjB,kBAAkB,uBAAuB;IACzC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IAGnD,cAAc,mBAAmB;IACjC,qBAAqB,0BAA0B;IAC/C,YAAY,iBAAiB;IAC7B,sBAAsB,2BAA2B;IAGjD,uBAAuB,4BAA4B;IACnD,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IAGnC,aAAa,kBAAkB;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,MAAM,CAAC,WAAW,CAA4B;IAKtD,MAAM,CAAC,WAAW,CACd,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,GAAG,EACb,WAAW,UAAQ,GACpB,aAAa;WAWH,eAAe,CAAC,CAAC,EAC1B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,SAAI,EACd,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,GACtC,OAAO,CAAC,CAAC,CAAC;IA6Bb,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAoB5C,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,mBAAmB;IAgBrD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;CAgB5C"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
export var ErrorCode;
|
|
2
|
-
(function (ErrorCode) {
|
|
3
|
-
ErrorCode["PROVIDER_NOT_FOUND"] = "PROVIDER_NOT_FOUND";
|
|
4
|
-
ErrorCode["PROVIDER_AUTH_FAILED"] = "PROVIDER_AUTH_FAILED";
|
|
5
|
-
ErrorCode["PROVIDER_RATE_LIMIT"] = "PROVIDER_RATE_LIMIT";
|
|
6
|
-
ErrorCode["PROVIDER_QUOTA_EXCEEDED"] = "PROVIDER_QUOTA_EXCEEDED";
|
|
7
|
-
ErrorCode["TOOL_NOT_FOUND"] = "TOOL_NOT_FOUND";
|
|
8
|
-
ErrorCode["TOOL_EXECUTION_FAILED"] = "TOOL_EXECUTION_FAILED";
|
|
9
|
-
ErrorCode["TOOL_TIMEOUT"] = "TOOL_TIMEOUT";
|
|
10
|
-
ErrorCode["TOOL_VALIDATION_FAILED"] = "TOOL_VALIDATION_FAILED";
|
|
11
|
-
ErrorCode["MAX_TOOL_CALLS_EXCEEDED"] = "MAX_TOOL_CALLS_EXCEEDED";
|
|
12
|
-
ErrorCode["LOOP_TIMEOUT"] = "LOOP_TIMEOUT";
|
|
13
|
-
ErrorCode["INVALID_REQUEST"] = "INVALID_REQUEST";
|
|
14
|
-
ErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
|
|
15
|
-
})(ErrorCode || (ErrorCode = {}));
|
|
16
|
-
export class EnsembleErrorHandler {
|
|
17
|
-
static retryDelays = [1000, 2000, 4000, 8000];
|
|
18
|
-
static createError(code, message, details, recoverable = false) {
|
|
19
|
-
const error = new Error(message);
|
|
20
|
-
error.code = code;
|
|
21
|
-
error.details = details;
|
|
22
|
-
error.recoverable = recoverable;
|
|
23
|
-
return error;
|
|
24
|
-
}
|
|
25
|
-
static async handleWithRetry(operation, maxRetries = 3, isRetryable) {
|
|
26
|
-
let lastError;
|
|
27
|
-
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
28
|
-
try {
|
|
29
|
-
return await operation();
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
lastError = error;
|
|
33
|
-
const shouldRetry = isRetryable ? isRetryable(error) :
|
|
34
|
-
this.isRetryableError(error);
|
|
35
|
-
if (!shouldRetry || attempt === maxRetries) {
|
|
36
|
-
throw error;
|
|
37
|
-
}
|
|
38
|
-
const delay = this.retryDelays[Math.min(attempt, this.retryDelays.length - 1)];
|
|
39
|
-
await new Promise(resolve => setTimeout(resolve, delay));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
throw lastError;
|
|
43
|
-
}
|
|
44
|
-
static isRetryableError(error) {
|
|
45
|
-
if (error?.code) {
|
|
46
|
-
return [
|
|
47
|
-
ErrorCode.PROVIDER_RATE_LIMIT,
|
|
48
|
-
ErrorCode.TOOL_TIMEOUT,
|
|
49
|
-
ErrorCode.PROVIDER_QUOTA_EXCEEDED
|
|
50
|
-
].includes(error.code);
|
|
51
|
-
}
|
|
52
|
-
if (error?.status) {
|
|
53
|
-
return [429, 502, 503, 504].includes(error.status);
|
|
54
|
-
}
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
static toStreamEvent(error) {
|
|
58
|
-
const ensembleError = error;
|
|
59
|
-
return {
|
|
60
|
-
type: 'error',
|
|
61
|
-
error: error.message || 'Unknown error',
|
|
62
|
-
code: ensembleError.code,
|
|
63
|
-
details: ensembleError.details,
|
|
64
|
-
recoverable: ensembleError.recoverable,
|
|
65
|
-
timestamp: new Date().toISOString()
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
static getUserMessage(error) {
|
|
69
|
-
const ensembleError = error;
|
|
70
|
-
switch (ensembleError.code) {
|
|
71
|
-
case ErrorCode.PROVIDER_AUTH_FAILED:
|
|
72
|
-
return 'Authentication failed. Please check your API key.';
|
|
73
|
-
case ErrorCode.PROVIDER_RATE_LIMIT:
|
|
74
|
-
return 'Rate limit exceeded. Please try again later.';
|
|
75
|
-
case ErrorCode.TOOL_NOT_FOUND:
|
|
76
|
-
return `Tool "${ensembleError.details?.toolName}" not found.`;
|
|
77
|
-
case ErrorCode.MAX_TOOL_CALLS_EXCEEDED:
|
|
78
|
-
return 'Maximum number of tool calls exceeded.';
|
|
79
|
-
default:
|
|
80
|
-
return error.message || 'An unexpected error occurred.';
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=error_handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error_handler.js","sourceRoot":"","sources":["../../utils/error_handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { EnhancedToolFunction } from '../types/tool_types.js';
|
|
2
|
-
export interface ToolBuilderOptions {
|
|
3
|
-
name: string;
|
|
4
|
-
description?: string;
|
|
5
|
-
category?: string;
|
|
6
|
-
priority?: number;
|
|
7
|
-
maxExecutions?: number;
|
|
8
|
-
cooldown?: number;
|
|
9
|
-
sideEffects?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare class ToolBuilder {
|
|
12
|
-
private options;
|
|
13
|
-
private parameters;
|
|
14
|
-
private requiredParams;
|
|
15
|
-
private implementation?;
|
|
16
|
-
constructor(name: string);
|
|
17
|
-
description(desc: string): this;
|
|
18
|
-
category(cat: string): this;
|
|
19
|
-
param(name: string, schema: any, required?: boolean): this;
|
|
20
|
-
string(name: string, description?: string, required?: boolean): this;
|
|
21
|
-
number(name: string, description?: string, required?: boolean): this;
|
|
22
|
-
boolean(name: string, description?: string, required?: boolean): this;
|
|
23
|
-
array(name: string, itemType: string, description?: string, required?: boolean): this;
|
|
24
|
-
object(name: string, properties: Record<string, any>, description?: string, required?: boolean): this;
|
|
25
|
-
enum(name: string, values: string[], description?: string, required?: boolean): this;
|
|
26
|
-
constraints(opts: {
|
|
27
|
-
maxExecutions?: number;
|
|
28
|
-
cooldown?: number;
|
|
29
|
-
priority?: number;
|
|
30
|
-
}): this;
|
|
31
|
-
hasSideEffects(): this;
|
|
32
|
-
implement(fn: (...args: any[]) => any): this;
|
|
33
|
-
build(): EnhancedToolFunction;
|
|
34
|
-
}
|
|
35
|
-
export declare function tool(name: string): ToolBuilder;
|
|
36
|
-
export declare function createControlTools(handlers: {
|
|
37
|
-
onComplete?: (result: any) => void;
|
|
38
|
-
onError?: (error: any) => void;
|
|
39
|
-
onClarification?: (question: string, options?: string[]) => void;
|
|
40
|
-
}): EnhancedToolFunction[];
|
|
41
|
-
export declare function createToolBatch<T>(baseConfig: {
|
|
42
|
-
category?: string;
|
|
43
|
-
priority?: number;
|
|
44
|
-
prefix?: string;
|
|
45
|
-
}, tools: Array<{
|
|
46
|
-
name: string;
|
|
47
|
-
description: string;
|
|
48
|
-
params?: Record<string, any>;
|
|
49
|
-
implement: (args: T) => Promise<any>;
|
|
50
|
-
}>): EnhancedToolFunction[];
|
|
51
|
-
//# sourceMappingURL=tool_builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool_builder.d.ts","sourceRoot":"","sources":["../../utils/tool_builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
export class ToolBuilder {
|
|
2
|
-
options;
|
|
3
|
-
parameters = {};
|
|
4
|
-
requiredParams = [];
|
|
5
|
-
implementation;
|
|
6
|
-
constructor(name) {
|
|
7
|
-
this.options = { name };
|
|
8
|
-
}
|
|
9
|
-
description(desc) {
|
|
10
|
-
this.options.description = desc;
|
|
11
|
-
return this;
|
|
12
|
-
}
|
|
13
|
-
category(cat) {
|
|
14
|
-
this.options.category = cat;
|
|
15
|
-
return this;
|
|
16
|
-
}
|
|
17
|
-
param(name, schema, required = false) {
|
|
18
|
-
this.parameters[name] = schema;
|
|
19
|
-
if (required) {
|
|
20
|
-
this.requiredParams.push(name);
|
|
21
|
-
}
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
string(name, description, required = true) {
|
|
25
|
-
return this.param(name, {
|
|
26
|
-
type: 'string',
|
|
27
|
-
description
|
|
28
|
-
}, required);
|
|
29
|
-
}
|
|
30
|
-
number(name, description, required = true) {
|
|
31
|
-
return this.param(name, {
|
|
32
|
-
type: 'number',
|
|
33
|
-
description
|
|
34
|
-
}, required);
|
|
35
|
-
}
|
|
36
|
-
boolean(name, description, required = true) {
|
|
37
|
-
return this.param(name, {
|
|
38
|
-
type: 'boolean',
|
|
39
|
-
description
|
|
40
|
-
}, required);
|
|
41
|
-
}
|
|
42
|
-
array(name, itemType, description, required = true) {
|
|
43
|
-
return this.param(name, {
|
|
44
|
-
type: 'array',
|
|
45
|
-
items: { type: itemType },
|
|
46
|
-
description
|
|
47
|
-
}, required);
|
|
48
|
-
}
|
|
49
|
-
object(name, properties, description, required = true) {
|
|
50
|
-
return this.param(name, {
|
|
51
|
-
type: 'object',
|
|
52
|
-
properties,
|
|
53
|
-
description
|
|
54
|
-
}, required);
|
|
55
|
-
}
|
|
56
|
-
enum(name, values, description, required = true) {
|
|
57
|
-
return this.param(name, {
|
|
58
|
-
type: 'string',
|
|
59
|
-
enum: values,
|
|
60
|
-
description
|
|
61
|
-
}, required);
|
|
62
|
-
}
|
|
63
|
-
constraints(opts) {
|
|
64
|
-
Object.assign(this.options, opts);
|
|
65
|
-
return this;
|
|
66
|
-
}
|
|
67
|
-
hasSideEffects() {
|
|
68
|
-
this.options.sideEffects = true;
|
|
69
|
-
return this;
|
|
70
|
-
}
|
|
71
|
-
implement(fn) {
|
|
72
|
-
this.implementation = fn;
|
|
73
|
-
return this;
|
|
74
|
-
}
|
|
75
|
-
build() {
|
|
76
|
-
if (!this.implementation) {
|
|
77
|
-
throw new Error(`Tool ${this.options.name} has no implementation`);
|
|
78
|
-
}
|
|
79
|
-
const baseTool = {
|
|
80
|
-
function: this.implementation,
|
|
81
|
-
definition: {
|
|
82
|
-
type: 'function',
|
|
83
|
-
function: {
|
|
84
|
-
name: this.options.name,
|
|
85
|
-
description: this.options.description || `Tool for ${this.options.name}`,
|
|
86
|
-
parameters: {
|
|
87
|
-
type: 'object',
|
|
88
|
-
properties: this.parameters,
|
|
89
|
-
required: this.requiredParams
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
const enhancedTool = {
|
|
95
|
-
...baseTool,
|
|
96
|
-
category: this.options.category,
|
|
97
|
-
priority: this.options.priority,
|
|
98
|
-
maxExecutions: this.options.maxExecutions,
|
|
99
|
-
cooldown: this.options.cooldown,
|
|
100
|
-
sideEffects: this.options.sideEffects
|
|
101
|
-
};
|
|
102
|
-
return enhancedTool;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
export function tool(name) {
|
|
106
|
-
return new ToolBuilder(name);
|
|
107
|
-
}
|
|
108
|
-
export function createControlTools(handlers) {
|
|
109
|
-
const tools = [];
|
|
110
|
-
tools.push(tool('task_complete')
|
|
111
|
-
.description('Mark the current task as complete')
|
|
112
|
-
.category('control')
|
|
113
|
-
.constraints({ priority: 1 })
|
|
114
|
-
.hasSideEffects()
|
|
115
|
-
.string('result', 'The task result')
|
|
116
|
-
.number('confidence', 'Confidence score 0-1', false)
|
|
117
|
-
.implement(async ({ result, confidence }) => {
|
|
118
|
-
if (handlers.onComplete) {
|
|
119
|
-
handlers.onComplete({ result, confidence });
|
|
120
|
-
}
|
|
121
|
-
return `Task completed: ${result}`;
|
|
122
|
-
})
|
|
123
|
-
.build());
|
|
124
|
-
tools.push(tool('report_error')
|
|
125
|
-
.description('Report an error that prevents task completion')
|
|
126
|
-
.category('control')
|
|
127
|
-
.constraints({ priority: 1 })
|
|
128
|
-
.hasSideEffects()
|
|
129
|
-
.string('error', 'Error description')
|
|
130
|
-
.string('context', 'Error context', false)
|
|
131
|
-
.implement(async ({ error, context }) => {
|
|
132
|
-
if (handlers.onError) {
|
|
133
|
-
handlers.onError({ error, context });
|
|
134
|
-
}
|
|
135
|
-
return `Error reported: ${error}`;
|
|
136
|
-
})
|
|
137
|
-
.build());
|
|
138
|
-
if (handlers.onClarification) {
|
|
139
|
-
tools.push(tool('request_clarification')
|
|
140
|
-
.description('Request clarification from the user')
|
|
141
|
-
.category('control')
|
|
142
|
-
.constraints({ priority: 2 })
|
|
143
|
-
.string('question', 'Clarification question')
|
|
144
|
-
.array('options', 'string', 'Suggested options', false)
|
|
145
|
-
.implement(async ({ question, options }) => {
|
|
146
|
-
handlers.onClarification(question, options);
|
|
147
|
-
return 'Clarification requested';
|
|
148
|
-
})
|
|
149
|
-
.build());
|
|
150
|
-
}
|
|
151
|
-
return tools;
|
|
152
|
-
}
|
|
153
|
-
export function createToolBatch(baseConfig, tools) {
|
|
154
|
-
return tools.map(toolConfig => {
|
|
155
|
-
const builder = tool(baseConfig.prefix ? `${baseConfig.prefix}_${toolConfig.name}` : toolConfig.name)
|
|
156
|
-
.description(toolConfig.description)
|
|
157
|
-
.category(baseConfig.category || 'utility')
|
|
158
|
-
.constraints({ priority: baseConfig.priority });
|
|
159
|
-
if (toolConfig.params) {
|
|
160
|
-
Object.entries(toolConfig.params).forEach(([name, schema]) => {
|
|
161
|
-
builder.param(name, schema, true);
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
return builder.implement(toolConfig.implement).build();
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=tool_builder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool_builder.js","sourceRoot":"","sources":["../../utils/tool_builder.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,WAAW;IACZ,OAAO,CAAqB;IAC5B,UAAU,GAAwB,EAAE,CAAC;IACrC,cAAc,GAAa,EAAE,CAAC;IAC9B,cAAc,CAA2B;IAEjD,YAAY,IAAY;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAKD,WAAW,CAAC,IAAY;QACpB,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAKD,QAAQ,CAAC,GAAW;QAChB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAKD,KAAK,CAAC,IAAY,EAAE,MAAW,EAAE,QAAQ,GAAG,KAAK;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAKD,MAAM,CAAC,IAAY,EAAE,WAAoB,EAAE,QAAQ,GAAG,IAAI;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,WAAW;SACd,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;IAKD,MAAM,CAAC,IAAY,EAAE,WAAoB,EAAE,QAAQ,GAAG,IAAI;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,WAAW;SACd,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;IAKD,OAAO,CAAC,IAAY,EAAE,WAAoB,EAAE,QAAQ,GAAG,IAAI;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,SAAS;YACf,WAAW;SACd,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;IAKD,KAAK,CAAC,IAAY,EAAE,QAAgB,EAAE,WAAoB,EAAE,QAAQ,GAAG,IAAI;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW;SACd,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;IAKD,MAAM,CAAC,IAAY,EAAE,UAA+B,EAAE,WAAoB,EAAE,QAAQ,GAAG,IAAI;QACvF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,UAAU;YACV,WAAW;SACd,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;IAKD,IAAI,CAAC,IAAY,EAAE,MAAgB,EAAE,WAAoB,EAAE,QAAQ,GAAG,IAAI;QACtE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,WAAW;SACd,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;IAKD,WAAW,CAAC,IAIX;QACG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAKD,cAAc;QACV,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAKD,SAAS,CAAC,EAA2B;QACjC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAKD,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,wBAAwB,CAAC,CAAC;QACvE,CAAC;QAGD,MAAM,QAAQ,GAAiB;YAC3B,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,UAAU,EAAE;gBACR,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE;oBACN,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBACvB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBACxE,UAAU,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,QAAQ,EAAE,IAAI,CAAC,cAAc;qBAChC;iBACJ;aACJ;SACJ,CAAC;QAGF,MAAM,YAAY,GAAyB;YACvC,GAAG,QAAQ;YACX,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;SACxC,CAAC;QAEF,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAKD,MAAM,UAAU,IAAI,CAAC,IAAY;IAC7B,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,QAIlC;IACG,MAAM,KAAK,GAA2B,EAAE,CAAC;IAGzC,KAAK,CAAC,IAAI,CACN,IAAI,CAAC,eAAe,CAAC;SAChB,WAAW,CAAC,mCAAmC,CAAC;SAChD,QAAQ,CAAC,SAAS,CAAC;SACnB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SAC5B,cAAc,EAAE;SAChB,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,YAAY,EAAE,sBAAsB,EAAE,KAAK,CAAC;SACnD,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAO,EAAE,EAAE;QAC7C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,mBAAmB,MAAM,EAAE,CAAC;IACvC,CAAC,CAAC;SACD,KAAK,EAAE,CACf,CAAC;IAGF,KAAK,CAAC,IAAI,CACN,IAAI,CAAC,cAAc,CAAC;SACf,WAAW,CAAC,+CAA+C,CAAC;SAC5D,QAAQ,CAAC,SAAS,CAAC;SACnB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SAC5B,cAAc,EAAE;SAChB,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC;SACpC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC;SACzC,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAO,EAAE,EAAE;QACzC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,mBAAmB,KAAK,EAAE,CAAC;IACtC,CAAC,CAAC;SACD,KAAK,EAAE,CACf,CAAC;IAGF,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACN,IAAI,CAAC,uBAAuB,CAAC;aACxB,WAAW,CAAC,qCAAqC,CAAC;aAClD,QAAQ,CAAC,SAAS,CAAC;aACnB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aAC5B,MAAM,CAAC,UAAU,EAAE,wBAAwB,CAAC;aAC5C,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC;aACtD,SAAS,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAO,EAAE,EAAE;YAC5C,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5C,OAAO,yBAAyB,CAAC;QACrC,CAAC,CAAC;aACD,KAAK,EAAE,CACf,CAAC;IACN,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAKD,MAAM,UAAU,eAAe,CAC3B,UAIC,EACD,KAKE;IAEF,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC1B,MAAM,OAAO,GAAG,IAAI,CAChB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAClF;aACI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC;aACnC,QAAQ,CAAC,UAAU,CAAC,QAAQ,IAAI,SAAS,CAAC;aAC1C,WAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAGpD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzD,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ToolCall } from '../types.js';
|
|
2
|
-
export interface SimpleToolCall {
|
|
3
|
-
name: string;
|
|
4
|
-
arguments: Record<string, any> | string;
|
|
5
|
-
id?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function isFullToolCall(call: any): call is ToolCall;
|
|
8
|
-
export declare function normalizeToolCall(call: SimpleToolCall | ToolCall): ToolCall;
|
|
9
|
-
export declare function normalizeToolCalls(calls: Array<SimpleToolCall | ToolCall>): ToolCall[];
|
|
10
|
-
export declare function createToolCall(name: string, args?: Record<string, any>): SimpleToolCall;
|
|
11
|
-
export declare function getToolName(call: SimpleToolCall | ToolCall): string;
|
|
12
|
-
export declare function getToolArguments(call: SimpleToolCall | ToolCall): Record<string, any>;
|
|
13
|
-
//# sourceMappingURL=tool_utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool_utils.d.ts","sourceRoot":"","sources":["../../utils/tool_utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,QAAQ,CAE1D;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAmB3E;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAEtF;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,cAAc,CAK3F;AAKD,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,CAKnE;AAKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgBrF"}
|
package/dist/utils/tool_utils.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export function isFullToolCall(call) {
|
|
2
|
-
return call && typeof call === 'object' && 'function' in call;
|
|
3
|
-
}
|
|
4
|
-
export function normalizeToolCall(call) {
|
|
5
|
-
if (isFullToolCall(call)) {
|
|
6
|
-
return call;
|
|
7
|
-
}
|
|
8
|
-
const id = call.id || `call_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
9
|
-
return {
|
|
10
|
-
id,
|
|
11
|
-
type: 'function',
|
|
12
|
-
function: {
|
|
13
|
-
name: call.name,
|
|
14
|
-
arguments: typeof call.arguments === 'string'
|
|
15
|
-
? call.arguments
|
|
16
|
-
: JSON.stringify(call.arguments)
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
export function normalizeToolCalls(calls) {
|
|
21
|
-
return calls.map(normalizeToolCall);
|
|
22
|
-
}
|
|
23
|
-
export function createToolCall(name, args = {}) {
|
|
24
|
-
return {
|
|
25
|
-
name,
|
|
26
|
-
arguments: args
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export function getToolName(call) {
|
|
30
|
-
if (isFullToolCall(call)) {
|
|
31
|
-
return call.function.name;
|
|
32
|
-
}
|
|
33
|
-
return call.name;
|
|
34
|
-
}
|
|
35
|
-
export function getToolArguments(call) {
|
|
36
|
-
let argsString;
|
|
37
|
-
if (isFullToolCall(call)) {
|
|
38
|
-
argsString = call.function.arguments || '{}';
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
argsString = typeof call.arguments === 'string'
|
|
42
|
-
? call.arguments
|
|
43
|
-
: JSON.stringify(call.arguments);
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
return JSON.parse(argsString);
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
return {};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=tool_utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool_utils.js","sourceRoot":"","sources":["../../utils/tool_utils.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,cAAc,CAAC,IAAS;IACpC,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI,CAAC;AAClE,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAAC,IAA+B;IAE7D,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAEtF,OAAO;QACH,EAAE;QACF,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;gBACzC,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;SACvC;KACJ,CAAC;AACN,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,KAAuC;IACtE,OAAO,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACxC,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAA4B,EAAE;IACvE,OAAO;QACH,IAAI;QACJ,SAAS,EAAE,IAAI;KAClB,CAAC;AACN,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,IAA+B;IACvD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,CAAC;AAKD,MAAM,UAAU,gBAAgB,CAAC,IAA+B;IAC5D,IAAI,UAAkB,CAAC;IAEvB,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;IACjD,CAAC;SAAM,CAAC;QACJ,UAAU,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAC3C,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC"}
|