@sprucelabs/sprucebot-llm 13.2.1 → 13.2.3
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/build/bots/adapters/AnthropicAdapter.d.ts +3 -1
- package/build/bots/adapters/AnthropicAdapter.js +10 -3
- package/build/bots/adapters/MessageSender.d.ts +1 -1
- package/build/esm/bots/adapters/AnthropicAdapter.d.ts +3 -1
- package/build/esm/bots/adapters/AnthropicAdapter.js +11 -4
- package/build/esm/bots/adapters/MessageSender.d.ts +1 -1
- package/package.json +1 -1
|
@@ -9,11 +9,12 @@ export default class AnthropicAdapter implements LlmAdapter {
|
|
|
9
9
|
private maxTokens;
|
|
10
10
|
private sender;
|
|
11
11
|
private memoryLimit?;
|
|
12
|
+
private isThinkingEnabled;
|
|
12
13
|
constructor(apiKey: string, options: AnthropicAdapterOptions);
|
|
13
14
|
sendMessage(bot: SprucebotLlmBot<Schema>, options?: SendMessageOptions): Promise<string>;
|
|
14
15
|
private sendHandler;
|
|
15
16
|
setModel(model: string): void;
|
|
16
|
-
setReasoningEffort(
|
|
17
|
+
setReasoningEffort(effort: LllmReasoningEffort): void;
|
|
17
18
|
}
|
|
18
19
|
export interface AnthropicAdapterOptions {
|
|
19
20
|
log?: Log;
|
|
@@ -21,4 +22,5 @@ export interface AnthropicAdapterOptions {
|
|
|
21
22
|
model?: string;
|
|
22
23
|
baseUrl?: string;
|
|
23
24
|
maxTokens: number;
|
|
25
|
+
thinking?: boolean;
|
|
24
26
|
}
|
|
@@ -9,14 +9,16 @@ const MessageSender_1 = __importDefault(require("./MessageSender"));
|
|
|
9
9
|
class AnthropicAdapter {
|
|
10
10
|
constructor(apiKey, options) {
|
|
11
11
|
this.model = 'claude-sonnet-4-5';
|
|
12
|
+
this.isThinkingEnabled = false;
|
|
12
13
|
(0, schema_1.assertOptions)({ apiKey, maxTokens: options?.maxTokens }, [
|
|
13
14
|
'apiKey',
|
|
14
15
|
'maxTokens',
|
|
15
16
|
]);
|
|
16
|
-
const { log, memoryLimit, maxTokens } = options;
|
|
17
|
+
const { log, memoryLimit, maxTokens, thinking } = options;
|
|
17
18
|
this.api = new AnthropicAdapter.Anthropic({ apiKey });
|
|
18
19
|
this.maxTokens = maxTokens;
|
|
19
20
|
this.memoryLimit = memoryLimit;
|
|
21
|
+
this.isThinkingEnabled = thinking ?? false;
|
|
20
22
|
this.sender = MessageSender_1.default.Sender(this.sendHandler.bind(this), log);
|
|
21
23
|
}
|
|
22
24
|
async sendMessage(bot, options) {
|
|
@@ -40,14 +42,19 @@ class AnthropicAdapter {
|
|
|
40
42
|
max_tokens: this.maxTokens,
|
|
41
43
|
model,
|
|
42
44
|
messages,
|
|
45
|
+
thinking: {
|
|
46
|
+
type: this.isThinkingEnabled ? 'adaptive' : 'disabled',
|
|
47
|
+
},
|
|
43
48
|
}, sendOptions);
|
|
44
|
-
const text = response.content?.
|
|
49
|
+
const text = response.content.find((block) => block.type === 'text')?.text;
|
|
45
50
|
return text;
|
|
46
51
|
}
|
|
47
52
|
setModel(model) {
|
|
48
53
|
this.model = model;
|
|
49
54
|
}
|
|
50
|
-
setReasoningEffort(
|
|
55
|
+
setReasoningEffort(effort) {
|
|
56
|
+
this.isThinkingEnabled = effort !== 'none';
|
|
57
|
+
}
|
|
51
58
|
}
|
|
52
59
|
AnthropicAdapter.Anthropic = sdk_1.default;
|
|
53
60
|
exports.default = AnthropicAdapter;
|
|
@@ -8,7 +8,7 @@ export default class MessageSenderImpl implements MessageSender {
|
|
|
8
8
|
new (): AbortController;
|
|
9
9
|
prototype: AbortController;
|
|
10
10
|
};
|
|
11
|
-
static Class
|
|
11
|
+
static Class?: new (send: MessageSenderSendHandler, log?: Log) => MessageSender;
|
|
12
12
|
private log?;
|
|
13
13
|
private lastAbortController?;
|
|
14
14
|
private sendHandler;
|
|
@@ -9,11 +9,12 @@ export default class AnthropicAdapter implements LlmAdapter {
|
|
|
9
9
|
private maxTokens;
|
|
10
10
|
private sender;
|
|
11
11
|
private memoryLimit?;
|
|
12
|
+
private isThinkingEnabled;
|
|
12
13
|
constructor(apiKey: string, options: AnthropicAdapterOptions);
|
|
13
14
|
sendMessage(bot: SprucebotLlmBot<Schema>, options?: SendMessageOptions): Promise<string>;
|
|
14
15
|
private sendHandler;
|
|
15
16
|
setModel(model: string): void;
|
|
16
|
-
setReasoningEffort(
|
|
17
|
+
setReasoningEffort(effort: LllmReasoningEffort): void;
|
|
17
18
|
}
|
|
18
19
|
export interface AnthropicAdapterOptions {
|
|
19
20
|
log?: Log;
|
|
@@ -21,4 +22,5 @@ export interface AnthropicAdapterOptions {
|
|
|
21
22
|
model?: string;
|
|
22
23
|
baseUrl?: string;
|
|
23
24
|
maxTokens: number;
|
|
25
|
+
thinking?: boolean;
|
|
24
26
|
}
|
|
@@ -13,14 +13,16 @@ import MessageSenderImpl from './MessageSender.js';
|
|
|
13
13
|
class AnthropicAdapter {
|
|
14
14
|
constructor(apiKey, options) {
|
|
15
15
|
this.model = 'claude-sonnet-4-5';
|
|
16
|
+
this.isThinkingEnabled = false;
|
|
16
17
|
assertOptions({ apiKey, maxTokens: options === null || options === void 0 ? void 0 : options.maxTokens }, [
|
|
17
18
|
'apiKey',
|
|
18
19
|
'maxTokens',
|
|
19
20
|
]);
|
|
20
|
-
const { log, memoryLimit, maxTokens } = options;
|
|
21
|
+
const { log, memoryLimit, maxTokens, thinking } = options;
|
|
21
22
|
this.api = new AnthropicAdapter.Anthropic({ apiKey });
|
|
22
23
|
this.maxTokens = maxTokens;
|
|
23
24
|
this.memoryLimit = memoryLimit;
|
|
25
|
+
this.isThinkingEnabled = thinking !== null && thinking !== void 0 ? thinking : false;
|
|
24
26
|
this.sender = MessageSenderImpl.Sender(this.sendHandler.bind(this), log);
|
|
25
27
|
}
|
|
26
28
|
sendMessage(bot, options) {
|
|
@@ -31,7 +33,7 @@ class AnthropicAdapter {
|
|
|
31
33
|
}
|
|
32
34
|
sendHandler(params, sendOptions) {
|
|
33
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
var _a
|
|
36
|
+
var _a;
|
|
35
37
|
const { messages: openAiMessages, model } = params;
|
|
36
38
|
const messages = [];
|
|
37
39
|
for (const msg of openAiMessages) {
|
|
@@ -44,15 +46,20 @@ class AnthropicAdapter {
|
|
|
44
46
|
max_tokens: this.maxTokens,
|
|
45
47
|
model,
|
|
46
48
|
messages,
|
|
49
|
+
thinking: {
|
|
50
|
+
type: this.isThinkingEnabled ? 'adaptive' : 'disabled',
|
|
51
|
+
},
|
|
47
52
|
}, sendOptions);
|
|
48
|
-
const text = (
|
|
53
|
+
const text = (_a = response.content.find((block) => block.type === 'text')) === null || _a === void 0 ? void 0 : _a.text;
|
|
49
54
|
return text;
|
|
50
55
|
});
|
|
51
56
|
}
|
|
52
57
|
setModel(model) {
|
|
53
58
|
this.model = model;
|
|
54
59
|
}
|
|
55
|
-
setReasoningEffort(
|
|
60
|
+
setReasoningEffort(effort) {
|
|
61
|
+
this.isThinkingEnabled = effort !== 'none';
|
|
62
|
+
}
|
|
56
63
|
}
|
|
57
64
|
AnthropicAdapter.Anthropic = Anthropic;
|
|
58
65
|
export default AnthropicAdapter;
|
|
@@ -8,7 +8,7 @@ export default class MessageSenderImpl implements MessageSender {
|
|
|
8
8
|
new (): AbortController;
|
|
9
9
|
prototype: AbortController;
|
|
10
10
|
};
|
|
11
|
-
static Class
|
|
11
|
+
static Class?: new (send: MessageSenderSendHandler, log?: Log) => MessageSender;
|
|
12
12
|
private log?;
|
|
13
13
|
private lastAbortController?;
|
|
14
14
|
private sendHandler;
|