@sprucelabs/sprucebot-llm 13.2.0 → 13.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.
@@ -0,0 +1,26 @@
1
+ import { Schema } from '@sprucelabs/schema';
2
+ import { Log } from '@sprucelabs/spruce-skill-utils';
3
+ import Anthropic from '@anthropic-ai/sdk';
4
+ import { LlmAdapter, SprucebotLlmBot, SendMessageOptions, LllmReasoningEffort } from '../../llm.types';
5
+ export default class AnthropicAdapter implements LlmAdapter {
6
+ static Anthropic: typeof Anthropic;
7
+ private api;
8
+ private model;
9
+ private maxTokens;
10
+ private sender;
11
+ private memoryLimit?;
12
+ private isThinkingEnabled;
13
+ constructor(apiKey: string, options: AnthropicAdapterOptions);
14
+ sendMessage(bot: SprucebotLlmBot<Schema>, options?: SendMessageOptions): Promise<string>;
15
+ private sendHandler;
16
+ setModel(model: string): void;
17
+ setReasoningEffort(effort: LllmReasoningEffort): void;
18
+ }
19
+ export interface AnthropicAdapterOptions {
20
+ log?: Log;
21
+ memoryLimit?: number;
22
+ model?: string;
23
+ baseUrl?: string;
24
+ maxTokens: number;
25
+ thinking?: boolean;
26
+ }
@@ -6,20 +6,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const schema_1 = require("@sprucelabs/schema");
7
7
  const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
8
8
  const MessageSender_1 = __importDefault(require("./MessageSender"));
9
- class AthropicAdapter {
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
- this.api = new AthropicAdapter.Anthropic({ apiKey });
17
- this.maxTokens = options.maxTokens;
18
- this.sender = MessageSender_1.default.Sender(this.sendHandler.bind(this));
17
+ const { log, memoryLimit, maxTokens, thinking } = options;
18
+ this.api = new AnthropicAdapter.Anthropic({ apiKey });
19
+ this.maxTokens = maxTokens;
20
+ this.memoryLimit = memoryLimit;
21
+ this.isThinkingEnabled = thinking ?? false;
22
+ this.sender = MessageSender_1.default.Sender(this.sendHandler.bind(this), log);
19
23
  }
20
24
  async sendMessage(bot, options) {
21
25
  const text = await this.sender.sendMessage(bot, {
22
26
  model: this.model,
27
+ memoryLimit: this.memoryLimit,
23
28
  ...options,
24
29
  });
25
30
  return text;
@@ -37,6 +42,9 @@ class AthropicAdapter {
37
42
  max_tokens: this.maxTokens,
38
43
  model,
39
44
  messages,
45
+ thinking: {
46
+ type: this.isThinkingEnabled ? 'adaptive' : 'disabled',
47
+ },
40
48
  }, sendOptions);
41
49
  const text = response.content?.[0]?.text;
42
50
  return text;
@@ -44,7 +52,9 @@ class AthropicAdapter {
44
52
  setModel(model) {
45
53
  this.model = model;
46
54
  }
47
- setReasoningEffort(_effort) { }
55
+ setReasoningEffort(effort) {
56
+ this.isThinkingEnabled = effort !== 'none';
57
+ }
48
58
  }
49
- AthropicAdapter.Anthropic = sdk_1.default;
50
- exports.default = AthropicAdapter;
59
+ AnthropicAdapter.Anthropic = sdk_1.default;
60
+ exports.default = AnthropicAdapter;
@@ -8,6 +8,7 @@ export default class MessageSenderImpl implements MessageSender {
8
8
  new (): AbortController;
9
9
  prototype: AbortController;
10
10
  };
11
+ static Class?: new (send: MessageSenderSendHandler, log?: Log) => MessageSender;
11
12
  private log?;
12
13
  private lastAbortController?;
13
14
  private sendHandler;
@@ -12,7 +12,7 @@ class MessageSenderImpl {
12
12
  this.sendHandler = send;
13
13
  }
14
14
  static Sender(send, log) {
15
- return new this(send, log);
15
+ return new (this.Class ?? this)(send, log);
16
16
  }
17
17
  async sendMessage(bot, options) {
18
18
  const { memoryLimit, ...rest } = options;
@@ -0,0 +1,26 @@
1
+ import { Schema } from '@sprucelabs/schema';
2
+ import { Log } from '@sprucelabs/spruce-skill-utils';
3
+ import Anthropic from '@anthropic-ai/sdk';
4
+ import { LlmAdapter, SprucebotLlmBot, SendMessageOptions, LllmReasoningEffort } from '../../llm.types';
5
+ export default class AnthropicAdapter implements LlmAdapter {
6
+ static Anthropic: typeof Anthropic;
7
+ private api;
8
+ private model;
9
+ private maxTokens;
10
+ private sender;
11
+ private memoryLimit?;
12
+ private isThinkingEnabled;
13
+ constructor(apiKey: string, options: AnthropicAdapterOptions);
14
+ sendMessage(bot: SprucebotLlmBot<Schema>, options?: SendMessageOptions): Promise<string>;
15
+ private sendHandler;
16
+ setModel(model: string): void;
17
+ setReasoningEffort(effort: LllmReasoningEffort): void;
18
+ }
19
+ export interface AnthropicAdapterOptions {
20
+ log?: Log;
21
+ memoryLimit?: number;
22
+ model?: string;
23
+ baseUrl?: string;
24
+ maxTokens: number;
25
+ thinking?: boolean;
26
+ }
@@ -10,20 +10,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { assertOptions } from '@sprucelabs/schema';
11
11
  import Anthropic from '@anthropic-ai/sdk';
12
12
  import MessageSenderImpl from './MessageSender.js';
13
- class AthropicAdapter {
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
- this.api = new AthropicAdapter.Anthropic({ apiKey });
21
- this.maxTokens = options.maxTokens;
22
- this.sender = MessageSenderImpl.Sender(this.sendHandler.bind(this));
21
+ const { log, memoryLimit, maxTokens, thinking } = options;
22
+ this.api = new AnthropicAdapter.Anthropic({ apiKey });
23
+ this.maxTokens = maxTokens;
24
+ this.memoryLimit = memoryLimit;
25
+ this.isThinkingEnabled = thinking !== null && thinking !== void 0 ? thinking : false;
26
+ this.sender = MessageSenderImpl.Sender(this.sendHandler.bind(this), log);
23
27
  }
24
28
  sendMessage(bot, options) {
25
29
  return __awaiter(this, void 0, void 0, function* () {
26
- const text = yield this.sender.sendMessage(bot, Object.assign({ model: this.model }, options));
30
+ const text = yield this.sender.sendMessage(bot, Object.assign({ model: this.model, memoryLimit: this.memoryLimit }, options));
27
31
  return text;
28
32
  });
29
33
  }
@@ -42,6 +46,9 @@ class AthropicAdapter {
42
46
  max_tokens: this.maxTokens,
43
47
  model,
44
48
  messages,
49
+ thinking: {
50
+ type: this.isThinkingEnabled ? 'adaptive' : 'disabled',
51
+ },
45
52
  }, sendOptions);
46
53
  const text = (_b = (_a = response.content) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.text;
47
54
  return text;
@@ -50,7 +57,9 @@ class AthropicAdapter {
50
57
  setModel(model) {
51
58
  this.model = model;
52
59
  }
53
- setReasoningEffort(_effort) { }
60
+ setReasoningEffort(effort) {
61
+ this.isThinkingEnabled = effort !== 'none';
62
+ }
54
63
  }
55
- AthropicAdapter.Anthropic = Anthropic;
56
- export default AthropicAdapter;
64
+ AnthropicAdapter.Anthropic = Anthropic;
65
+ export default AnthropicAdapter;
@@ -8,6 +8,7 @@ export default class MessageSenderImpl implements MessageSender {
8
8
  new (): AbortController;
9
9
  prototype: AbortController;
10
10
  };
11
+ static Class?: new (send: MessageSenderSendHandler, log?: Log) => MessageSender;
11
12
  private log?;
12
13
  private lastAbortController?;
13
14
  private sendHandler;
@@ -27,7 +27,8 @@ class MessageSenderImpl {
27
27
  this.sendHandler = send;
28
28
  }
29
29
  static Sender(send, log) {
30
- return new this(send, log);
30
+ var _a;
31
+ return new ((_a = this.Class) !== null && _a !== void 0 ? _a : this)(send, log);
31
32
  }
32
33
  sendMessage(bot, options) {
33
34
  return __awaiter(this, void 0, void 0, function* () {
@@ -10,5 +10,5 @@ export { default as SpyLlmAdapter } from './tests/SpyAdapter';
10
10
  export { default as SpyOpenAiApi } from './bots/adapters/SpyOpenAiModule';
11
11
  export { default as OllamaAdapter } from './bots/adapters/OllamaAdapter';
12
12
  export * from './bots/adapters/OllamaAdapter';
13
- export { default as AthropicAdapter } from './bots/adapters/AthropicAdapter';
14
- export * from './bots/adapters/AthropicAdapter';
13
+ export { default as AthropicAdapter } from './bots/adapters/AnthropicAdapter';
14
+ export * from './bots/adapters/AnthropicAdapter';
@@ -10,5 +10,5 @@ export { default as SpyLlmAdapter } from './tests/SpyAdapter.js';
10
10
  export { default as SpyOpenAiApi } from './bots/adapters/SpyOpenAiModule.js';
11
11
  export { default as OllamaAdapter } from './bots/adapters/OllamaAdapter.js';
12
12
  export * from './bots/adapters/OllamaAdapter.js';
13
- export { default as AthropicAdapter } from './bots/adapters/AthropicAdapter.js';
14
- export * from './bots/adapters/AthropicAdapter.js';
13
+ export { default as AthropicAdapter } from './bots/adapters/AnthropicAdapter.js';
14
+ export * from './bots/adapters/AnthropicAdapter.js';
package/build/index.d.ts CHANGED
@@ -10,5 +10,5 @@ export { default as SpyLlmAdapter } from './tests/SpyAdapter';
10
10
  export { default as SpyOpenAiApi } from './bots/adapters/SpyOpenAiModule';
11
11
  export { default as OllamaAdapter } from './bots/adapters/OllamaAdapter';
12
12
  export * from './bots/adapters/OllamaAdapter';
13
- export { default as AthropicAdapter } from './bots/adapters/AthropicAdapter';
14
- export * from './bots/adapters/AthropicAdapter';
13
+ export { default as AthropicAdapter } from './bots/adapters/AnthropicAdapter';
14
+ export * from './bots/adapters/AnthropicAdapter';
package/build/index.js CHANGED
@@ -40,6 +40,6 @@ Object.defineProperty(exports, "SpyOpenAiApi", { enumerable: true, get: function
40
40
  var OllamaAdapter_1 = require("./bots/adapters/OllamaAdapter");
41
41
  Object.defineProperty(exports, "OllamaAdapter", { enumerable: true, get: function () { return __importDefault(OllamaAdapter_1).default; } });
42
42
  __exportStar(require("./bots/adapters/OllamaAdapter"), exports);
43
- var AthropicAdapter_1 = require("./bots/adapters/AthropicAdapter");
44
- Object.defineProperty(exports, "AthropicAdapter", { enumerable: true, get: function () { return __importDefault(AthropicAdapter_1).default; } });
45
- __exportStar(require("./bots/adapters/AthropicAdapter"), exports);
43
+ var AnthropicAdapter_1 = require("./bots/adapters/AnthropicAdapter");
44
+ Object.defineProperty(exports, "AthropicAdapter", { enumerable: true, get: function () { return __importDefault(AnthropicAdapter_1).default; } });
45
+ __exportStar(require("./bots/adapters/AnthropicAdapter"), exports);
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "eta"
9
9
  ]
10
10
  },
11
- "version": "13.2.0",
11
+ "version": "13.2.2",
12
12
  "files": [
13
13
  "build"
14
14
  ],
@@ -1,17 +0,0 @@
1
- import { Schema } from '@sprucelabs/schema';
2
- import Anthropic from '@anthropic-ai/sdk';
3
- import { LlmAdapter, SprucebotLlmBot, SendMessageOptions, LllmReasoningEffort } from '../../llm.types';
4
- export default class AthropicAdapter implements LlmAdapter {
5
- static Anthropic: typeof Anthropic;
6
- private api;
7
- private model;
8
- private maxTokens;
9
- private sender;
10
- constructor(apiKey: string, options: {
11
- maxTokens: number;
12
- });
13
- sendMessage(bot: SprucebotLlmBot<Schema>, options?: SendMessageOptions): Promise<string>;
14
- private sendHandler;
15
- setModel(model: string): void;
16
- setReasoningEffort(_effort: LllmReasoningEffort): void;
17
- }
@@ -1,17 +0,0 @@
1
- import { Schema } from '@sprucelabs/schema';
2
- import Anthropic from '@anthropic-ai/sdk';
3
- import { LlmAdapter, SprucebotLlmBot, SendMessageOptions, LllmReasoningEffort } from '../../llm.types';
4
- export default class AthropicAdapter implements LlmAdapter {
5
- static Anthropic: typeof Anthropic;
6
- private api;
7
- private model;
8
- private maxTokens;
9
- private sender;
10
- constructor(apiKey: string, options: {
11
- maxTokens: number;
12
- });
13
- sendMessage(bot: SprucebotLlmBot<Schema>, options?: SendMessageOptions): Promise<string>;
14
- private sendHandler;
15
- setModel(model: string): void;
16
- setReasoningEffort(_effort: LllmReasoningEffort): void;
17
- }