@loopstack/claude-module 0.22.5 → 0.23.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.
Files changed (72) hide show
  1. package/dist/claude.module.d.ts.map +1 -1
  2. package/dist/claude.module.js +4 -23
  3. package/dist/claude.module.js.map +1 -1
  4. package/dist/documents/index.d.ts +1 -1
  5. package/dist/documents/index.d.ts.map +1 -1
  6. package/dist/documents/index.js +0 -15
  7. package/dist/documents/index.js.map +1 -1
  8. package/dist/services/claude-client.service.d.ts +6 -3
  9. package/dist/services/claude-client.service.d.ts.map +1 -1
  10. package/dist/services/claude-client.service.js +1 -1
  11. package/dist/services/claude-client.service.js.map +1 -1
  12. package/dist/services/claude-llm-provider.d.ts +22 -0
  13. package/dist/services/claude-llm-provider.d.ts.map +1 -0
  14. package/dist/services/claude-llm-provider.js +204 -0
  15. package/dist/services/claude-llm-provider.js.map +1 -0
  16. package/dist/services/index.d.ts +1 -2
  17. package/dist/services/index.d.ts.map +1 -1
  18. package/dist/services/index.js +1 -2
  19. package/dist/services/index.js.map +1 -1
  20. package/dist/tools/claude-web-search-server.tool.d.ts +13 -0
  21. package/dist/tools/claude-web-search-server.tool.d.ts.map +1 -0
  22. package/dist/tools/claude-web-search-server.tool.js +40 -0
  23. package/dist/tools/claude-web-search-server.tool.js.map +1 -0
  24. package/dist/tools/claude-web-search.tool.d.ts +14 -16
  25. package/dist/tools/claude-web-search.tool.d.ts.map +1 -1
  26. package/dist/tools/claude-web-search.tool.js +33 -82
  27. package/dist/tools/claude-web-search.tool.js.map +1 -1
  28. package/dist/tools/index.d.ts +1 -5
  29. package/dist/tools/index.d.ts.map +1 -1
  30. package/dist/tools/index.js +1 -5
  31. package/dist/tools/index.js.map +1 -1
  32. package/dist/types/claude.types.d.ts +5 -29
  33. package/dist/types/claude.types.d.ts.map +1 -1
  34. package/dist/types/claude.types.js.map +1 -1
  35. package/package.json +4 -3
  36. package/dist/documents/claude-message-document.d.ts +0 -16
  37. package/dist/documents/claude-message-document.d.ts.map +0 -1
  38. package/dist/documents/claude-message-document.js +0 -29
  39. package/dist/documents/claude-message-document.js.map +0 -1
  40. package/dist/documents/claude-message-document.yaml +0 -5
  41. package/dist/schemas/claude-generate-tool-base.schema.d.ts +0 -20
  42. package/dist/schemas/claude-generate-tool-base.schema.d.ts.map +0 -1
  43. package/dist/schemas/claude-generate-tool-base.schema.js +0 -24
  44. package/dist/schemas/claude-generate-tool-base.schema.js.map +0 -1
  45. package/dist/services/claude-messages-helper.service.d.ts +0 -10
  46. package/dist/services/claude-messages-helper.service.d.ts.map +0 -1
  47. package/dist/services/claude-messages-helper.service.js +0 -39
  48. package/dist/services/claude-messages-helper.service.js.map +0 -1
  49. package/dist/services/claude-tools-helper.service.d.ts +0 -6
  50. package/dist/services/claude-tools-helper.service.d.ts.map +0 -1
  51. package/dist/services/claude-tools-helper.service.js +0 -42
  52. package/dist/services/claude-tools-helper.service.js.map +0 -1
  53. package/dist/tools/claude-generate-document.tool.d.ts +0 -7
  54. package/dist/tools/claude-generate-document.tool.d.ts.map +0 -1
  55. package/dist/tools/claude-generate-document.tool.js +0 -42
  56. package/dist/tools/claude-generate-document.tool.js.map +0 -1
  57. package/dist/tools/claude-generate-object.tool.d.ts +0 -32
  58. package/dist/tools/claude-generate-object.tool.d.ts.map +0 -1
  59. package/dist/tools/claude-generate-object.tool.js +0 -121
  60. package/dist/tools/claude-generate-object.tool.js.map +0 -1
  61. package/dist/tools/claude-generate-text.tool.d.ts +0 -33
  62. package/dist/tools/claude-generate-text.tool.d.ts.map +0 -1
  63. package/dist/tools/claude-generate-text.tool.js +0 -128
  64. package/dist/tools/claude-generate-text.tool.js.map +0 -1
  65. package/dist/tools/delegate-tool-calls.tool.d.ts +0 -23
  66. package/dist/tools/delegate-tool-calls.tool.d.ts.map +0 -1
  67. package/dist/tools/delegate-tool-calls.tool.js +0 -133
  68. package/dist/tools/delegate-tool-calls.tool.js.map +0 -1
  69. package/dist/tools/update-tool-result.tool.d.ts +0 -22
  70. package/dist/tools/update-tool-result.tool.d.ts.map +0 -1
  71. package/dist/tools/update-tool-result.tool.js +0 -109
  72. package/dist/tools/update-tool-result.tool.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"claude.module.d.ts","sourceRoot":"","sources":["../src/claude.module.ts"],"names":[],"mappings":"AAYA,qBA6Ba,YAAY;CAAG"}
1
+ {"version":3,"file":"claude.module.d.ts","sourceRoot":"","sources":["../src/claude.module.ts"],"names":[],"mappings":"AAMA,qBAKa,YAAY;CAAG"}
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ClaudeModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const core_1 = require("@loopstack/core");
12
+ const llm_provider_module_1 = require("@loopstack/llm-provider-module");
12
13
  const services_1 = require("./services");
13
14
  const tools_1 = require("./tools");
14
15
  let ClaudeModule = class ClaudeModule {
@@ -16,29 +17,9 @@ let ClaudeModule = class ClaudeModule {
16
17
  exports.ClaudeModule = ClaudeModule;
17
18
  exports.ClaudeModule = ClaudeModule = __decorate([
18
19
  (0, common_1.Module)({
19
- imports: [core_1.LoopCoreModule],
20
- providers: [
21
- services_1.ClaudeClientService,
22
- services_1.ClaudeMessagesHelperService,
23
- services_1.ClaudeToolsHelperService,
24
- tools_1.ClaudeGenerateText,
25
- tools_1.ClaudeGenerateObject,
26
- tools_1.ClaudeGenerateDocument,
27
- tools_1.ClaudeWebSearch,
28
- tools_1.DelegateToolCalls,
29
- tools_1.UpdateToolResult,
30
- ],
31
- exports: [
32
- services_1.ClaudeClientService,
33
- services_1.ClaudeMessagesHelperService,
34
- services_1.ClaudeToolsHelperService,
35
- tools_1.ClaudeGenerateText,
36
- tools_1.ClaudeGenerateObject,
37
- tools_1.ClaudeGenerateDocument,
38
- tools_1.ClaudeWebSearch,
39
- tools_1.DelegateToolCalls,
40
- tools_1.UpdateToolResult,
41
- ],
20
+ imports: [core_1.LoopCoreModule, llm_provider_module_1.LlmProviderModule],
21
+ providers: [services_1.ClaudeClientService, services_1.ClaudeLlmProvider, tools_1.ClaudeWebSearch, tools_1.ClaudeWebSearchServerTool],
22
+ exports: [services_1.ClaudeClientService, services_1.ClaudeLlmProvider, tools_1.ClaudeWebSearch, tools_1.ClaudeWebSearchServerTool],
42
23
  })
43
24
  ], ClaudeModule);
44
25
  //# sourceMappingURL=claude.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.module.js","sourceRoot":"","sources":["../src/claude.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,0CAAiD;AACjD,yCAAwG;AACxG,mCAOiB;AA+BV,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IA7BxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAc,CAAC;QACzB,SAAS,EAAE;YAET,8BAAmB;YACnB,sCAA2B;YAC3B,mCAAwB;YAGxB,0BAAkB;YAClB,4BAAoB;YACpB,8BAAsB;YACtB,uBAAe;YACf,yBAAiB;YACjB,wBAAgB;SACjB;QACD,OAAO,EAAE;YACP,8BAAmB;YACnB,sCAA2B;YAC3B,mCAAwB;YAExB,0BAAkB;YAClB,4BAAoB;YACpB,8BAAsB;YACtB,uBAAe;YACf,yBAAiB;YACjB,wBAAgB;SACjB;KACF,CAAC;GACW,YAAY,CAAG"}
1
+ {"version":3,"file":"claude.module.js","sourceRoot":"","sources":["../src/claude.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,0CAAiD;AACjD,wEAAmE;AACnE,yCAAoE;AACpE,mCAAqE;AAO9D,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IALxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAc,EAAE,uCAAiB,CAAC;QAC5C,SAAS,EAAE,CAAC,8BAAmB,EAAE,4BAAiB,EAAE,uBAAe,EAAE,iCAAyB,CAAC;QAC/F,OAAO,EAAE,CAAC,8BAAmB,EAAE,4BAAiB,EAAE,uBAAe,EAAE,iCAAyB,CAAC;KAC9F,CAAC;GACW,YAAY,CAAG"}
@@ -1,2 +1,2 @@
1
- export * from './claude-message-document';
1
+ export {};
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -1,18 +1,3 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./claude-message-document"), exports);
18
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":""}
@@ -1,8 +1,11 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
- import { ClaudeModelConfig } from '../types';
2
+ export interface ClaudeClientConfig {
3
+ model?: string;
4
+ envApiKey?: string;
5
+ }
3
6
  export declare class ClaudeClientService {
4
7
  private getApiKey;
5
- getClient(config?: ClaudeModelConfig): Anthropic;
6
- getModel(config?: ClaudeModelConfig, defaultModel?: string): string;
8
+ getClient(config?: ClaudeClientConfig): Anthropic;
9
+ getModel(config?: ClaudeClientConfig, defaultModel?: string): string;
7
10
  }
8
11
  //# sourceMappingURL=claude-client.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-client.service.d.ts","sourceRoot":"","sources":["../../src/services/claude-client.service.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,qBACa,mBAAmB;IAC9B,OAAO,CAAC,SAAS;IAWjB,SAAS,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,SAAS;IAKhD,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;CAWpE"}
1
+ {"version":3,"file":"claude-client.service.d.ts","sourceRoot":"","sources":["../../src/services/claude-client.service.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAG1C,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,mBAAmB;IAC9B,OAAO,CAAC,SAAS;IAWjB,SAAS,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,SAAS;IAKjD,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;CAWrE"}
@@ -28,7 +28,7 @@ let ClaudeClientService = class ClaudeClientService {
28
28
  getModel(config, defaultModel) {
29
29
  const model = config?.model ?? process.env['CLAUDE_MODEL'] ?? defaultModel;
30
30
  if (!model) {
31
- throw new Error('No model defined. Please provide CLAUDE_MODEL env var or set the claude.model parameter in the tool args.');
31
+ throw new Error('No model defined. Please provide CLAUDE_MODEL env var or set the model parameter in the tool args.');
32
32
  }
33
33
  return model;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-client.service.js","sourceRoot":"","sources":["../../src/services/claude-client.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAA0C;AAC1C,2CAA4C;AAIrC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACtB,SAAS,CAAC,SAAkB;QAClC,MAAM,MAAM,GAAG,SAAS,IAAI,mBAAmB,CAAC;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,sBAAsB,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAA0B;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,IAAI,aAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,MAA0B,EAAE,YAAqB;QACxD,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC;QAE3E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,2GAA2G,CAC5G,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AA5BY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CA4B/B"}
1
+ {"version":3,"file":"claude-client.service.js","sourceRoot":"","sources":["../../src/services/claude-client.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAA0C;AAC1C,2CAA4C;AAQrC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACtB,SAAS,CAAC,SAAkB;QAClC,MAAM,MAAM,GAAG,SAAS,IAAI,mBAAmB,CAAC;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,sBAAsB,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAA2B;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,IAAI,aAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,MAA2B,EAAE,YAAqB;QACzD,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC;QAE3E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AA5BY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CA4B/B"}
@@ -0,0 +1,22 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ import { OnModuleInit } from '@nestjs/common';
3
+ import type { LlmContext, LlmGenerateObjectArgs, LlmGenerateObjectResult, LlmGenerateTextArgs, LlmGenerateTextResult, LlmNormalizedMessage, LlmProviderInterface, LlmUsage } from '@loopstack/llm-provider-module';
4
+ import { LlmProviderRegistry, LlmToolsHelperService } from '@loopstack/llm-provider-module';
5
+ import type { ClaudeProviderConfig } from '../types';
6
+ import { ClaudeClientService } from './claude-client.service';
7
+ export declare class ClaudeLlmProvider implements LlmProviderInterface<ClaudeProviderConfig>, OnModuleInit {
8
+ private readonly registry;
9
+ private readonly clientService;
10
+ private readonly toolsHelper;
11
+ readonly providerId = "claude";
12
+ private readonly logger;
13
+ constructor(registry: LlmProviderRegistry, clientService: ClaudeClientService, toolsHelper: LlmToolsHelperService);
14
+ onModuleInit(): void;
15
+ generateText(args: LlmGenerateTextArgs<ClaudeProviderConfig>, ctx: LlmContext): Promise<LlmGenerateTextResult>;
16
+ generateObject(args: LlmGenerateObjectArgs<ClaudeProviderConfig>, ctx: LlmContext): Promise<LlmGenerateObjectResult>;
17
+ extractUsage(response: unknown): LlmUsage | undefined;
18
+ toProviderMessage(content: LlmNormalizedMessage): Anthropic.MessageParam;
19
+ private resolveMessages;
20
+ private normalizeResponse;
21
+ }
22
+ //# sourceMappingURL=claude-llm-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-llm-provider.d.ts","sourceRoot":"","sources":["../../src/services/claude-llm-provider.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EAEpB,QAAQ,EACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAA8B,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACxH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,iBAAkB,YAAW,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,YAAY;IAK9F,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAN9B,QAAQ,CAAC,UAAU,YAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAG1C,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,EAAE,mBAAmB,EAClC,WAAW,EAAE,qBAAqB;IAGrD,YAAY,IAAI,IAAI;IASd,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAoD9G,cAAc,CAClB,IAAI,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,EACjD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,uBAAuB,CAAC;IAgDnC,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS;IAerD,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC,YAAY;IAWxE,OAAO,CAAC,eAAe;IAkDvB,OAAO,CAAC,iBAAiB;CAgD1B"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var ClaudeLlmProvider_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ClaudeLlmProvider = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const llm_provider_module_1 = require("@loopstack/llm-provider-module");
16
+ const cache_utils_1 = require("../utils/cache.utils");
17
+ const claude_client_service_1 = require("./claude-client.service");
18
+ let ClaudeLlmProvider = ClaudeLlmProvider_1 = class ClaudeLlmProvider {
19
+ registry;
20
+ clientService;
21
+ toolsHelper;
22
+ providerId = 'claude';
23
+ logger = new common_1.Logger(ClaudeLlmProvider_1.name);
24
+ constructor(registry, clientService, toolsHelper) {
25
+ this.registry = registry;
26
+ this.clientService = clientService;
27
+ this.toolsHelper = toolsHelper;
28
+ }
29
+ onModuleInit() {
30
+ this.registry.register(this);
31
+ this.logger.log('Claude LLM provider registered');
32
+ }
33
+ async generateText(args, ctx) {
34
+ const pc = args.providerConfig;
35
+ const config = { model: args.model, envApiKey: pc?.envApiKey };
36
+ const client = this.clientService.getClient(config);
37
+ const model = this.clientService.getModel(config);
38
+ const messages = this.resolveMessages(args, ctx.documents);
39
+ const resolvedTools = args.tools ? this.toolsHelper.getTools(args.tools, ctx.parent, ctx.workspace) : undefined;
40
+ const tools = resolvedTools
41
+ ? resolvedTools.map((t) => t.type === 'tool'
42
+ ? {
43
+ name: t.name,
44
+ description: t.description,
45
+ input_schema: t.inputSchema,
46
+ }
47
+ : t.config)
48
+ : undefined;
49
+ const { system: cachedSystem, tools: cachedTools, messages: cachedMessages, } = pc?.cache
50
+ ? (0, cache_utils_1.applyCacheBreakpoints)({ system: args.system, tools, messages })
51
+ : { system: args.system, tools, messages };
52
+ const stream = client.messages.stream({
53
+ model,
54
+ messages: cachedMessages,
55
+ max_tokens: pc?.maxTokens ?? 4096,
56
+ ...(cachedSystem ? { system: cachedSystem } : {}),
57
+ ...(cachedTools ? { tools: cachedTools } : {}),
58
+ ...(pc?.temperature != null ? { temperature: pc.temperature } : {}),
59
+ ...(pc?.stopSequences?.length ? { stop_sequences: pc.stopSequences } : {}),
60
+ });
61
+ const response = await stream.finalMessage();
62
+ return {
63
+ message: this.normalizeResponse(response),
64
+ response,
65
+ };
66
+ }
67
+ async generateObject(args, ctx) {
68
+ const pc = args.providerConfig;
69
+ const config = { model: args.model, envApiKey: pc?.envApiKey };
70
+ const client = this.clientService.getClient(config);
71
+ const model = this.clientService.getModel(config);
72
+ const messages = this.resolveMessages(args, ctx.documents);
73
+ const structuredTool = {
74
+ name: 'structured_output',
75
+ description: 'Return the structured output matching the schema.',
76
+ input_schema: args.outputSchema,
77
+ };
78
+ const { system, tools, messages: cachedMessages, } = pc?.cache
79
+ ? (0, cache_utils_1.applyCacheBreakpoints)({ system: args.system, tools: [structuredTool], messages })
80
+ : { system: args.system, tools: [structuredTool], messages };
81
+ const response = await client.messages.create({
82
+ model,
83
+ messages: cachedMessages,
84
+ max_tokens: pc?.maxTokens ?? 4096,
85
+ ...(system ? { system } : {}),
86
+ tools: tools,
87
+ tool_choice: { type: 'tool', name: 'structured_output' },
88
+ ...(pc?.temperature != null ? { temperature: pc.temperature } : {}),
89
+ });
90
+ const toolUseBlock = response.content.find((block) => block.type === 'tool_use');
91
+ if (!toolUseBlock) {
92
+ throw new Error('LLM did not return structured output.');
93
+ }
94
+ return {
95
+ data: toolUseBlock.input,
96
+ response,
97
+ };
98
+ }
99
+ extractUsage(response) {
100
+ const r = response;
101
+ if (!r?.usage)
102
+ return undefined;
103
+ return {
104
+ inputTokens: r.usage.input_tokens,
105
+ outputTokens: r.usage.output_tokens,
106
+ cacheCreationInputTokens: r.usage.cache_creation_input_tokens ?? 0,
107
+ cacheReadInputTokens: r.usage.cache_read_input_tokens ?? 0,
108
+ };
109
+ }
110
+ toProviderMessage(content) {
111
+ return {
112
+ role: content.role,
113
+ content: content.content,
114
+ };
115
+ }
116
+ resolveMessages(args, documents) {
117
+ if (args.prompt) {
118
+ return [{ role: 'user', content: args.prompt }];
119
+ }
120
+ if (args.messages?.length) {
121
+ return args.messages;
122
+ }
123
+ const tag = args.messagesSearchTag ?? 'message';
124
+ return documents
125
+ .filter((doc) => !doc.isInvalidated && doc.tags?.includes(tag))
126
+ .sort((a, b) => a.index - b.index)
127
+ .flatMap((doc) => {
128
+ const content = doc.content;
129
+ if (Array.isArray(content.content) && content.content[0]?.type === 'tool_result') {
130
+ const blocks = content.content;
131
+ return [
132
+ {
133
+ role: 'user',
134
+ content: blocks.map((tr) => ({
135
+ type: 'tool_result',
136
+ tool_use_id: tr.toolCallId,
137
+ content: tr.content,
138
+ is_error: tr.isError,
139
+ })),
140
+ },
141
+ ];
142
+ }
143
+ if (doc.meta?.response) {
144
+ const native = doc.meta.response;
145
+ return [{ role: native.role, content: native.content }];
146
+ }
147
+ return [this.toProviderMessage(content)];
148
+ });
149
+ }
150
+ normalizeResponse(response) {
151
+ const content = response.content.map((block) => {
152
+ switch (block.type) {
153
+ case 'text':
154
+ return { type: 'text', text: block.text };
155
+ case 'thinking':
156
+ return { type: 'thinking', text: block.thinking };
157
+ case 'redacted_thinking':
158
+ return { type: 'thinking', text: '[Reasoning redacted]' };
159
+ case 'tool_use':
160
+ return {
161
+ type: 'tool_call',
162
+ id: block.id,
163
+ name: block.name,
164
+ args: block.input,
165
+ };
166
+ case 'server_tool_use':
167
+ return {
168
+ type: 'server_tool_use',
169
+ id: block.id,
170
+ name: block.name,
171
+ input: block.input,
172
+ };
173
+ case 'web_search_tool_result':
174
+ return {
175
+ type: 'server_tool_result',
176
+ toolUseId: block.tool_use_id,
177
+ content: block.content,
178
+ };
179
+ default:
180
+ return { type: 'text', text: JSON.stringify(block) };
181
+ }
182
+ });
183
+ const stopReasonMap = {
184
+ end_turn: 'end_turn',
185
+ tool_use: 'tool_use',
186
+ max_tokens: 'max_tokens',
187
+ stop_sequence: 'stop_sequence',
188
+ };
189
+ return llm_provider_module_1.LlmNormalizedMessageSchema.parse({
190
+ id: response.id,
191
+ role: 'assistant',
192
+ content,
193
+ stopReason: response.stop_reason ? stopReasonMap[response.stop_reason] : 'end_turn',
194
+ });
195
+ }
196
+ };
197
+ exports.ClaudeLlmProvider = ClaudeLlmProvider;
198
+ exports.ClaudeLlmProvider = ClaudeLlmProvider = ClaudeLlmProvider_1 = __decorate([
199
+ (0, common_1.Injectable)(),
200
+ __metadata("design:paramtypes", [llm_provider_module_1.LlmProviderRegistry,
201
+ claude_client_service_1.ClaudeClientService,
202
+ llm_provider_module_1.LlmToolsHelperService])
203
+ ], ClaudeLlmProvider);
204
+ //# sourceMappingURL=claude-llm-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-llm-provider.js","sourceRoot":"","sources":["../../src/services/claude-llm-provider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
1
  export * from './claude-client.service';
2
- export * from './claude-messages-helper.service';
3
- export * from './claude-tools-helper.service';
2
+ export * from './claude-llm-provider';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -15,6 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./claude-client.service"), exports);
18
- __exportStar(require("./claude-messages-helper.service"), exports);
19
- __exportStar(require("./claude-tools-helper.service"), exports);
18
+ __exportStar(require("./claude-llm-provider"), exports);
20
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,mEAAiD;AACjD,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wDAAsC"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import { ServerTool } from '@loopstack/common';
3
+ export declare const ClaudeWebSearchServerToolConfigSchema: z.ZodObject<{
4
+ maxUses: z.ZodDefault<z.ZodNumber>;
5
+ allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
+ }, z.core.$strip>;
8
+ type ClaudeWebSearchServerToolConfig = z.infer<typeof ClaudeWebSearchServerToolConfigSchema>;
9
+ export declare class ClaudeWebSearchServerTool extends ServerTool<ClaudeWebSearchServerToolConfig> {
10
+ toServerToolConfig(config?: ClaudeWebSearchServerToolConfig): unknown;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=claude-web-search-server.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-web-search-server.tool.d.ts","sourceRoot":"","sources":["../../src/tools/claude-web-search-server.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAQ,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,qCAAqC;;;;iBAIhD,CAAC;AAEH,KAAK,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAE7F,qBASa,yBAA0B,SAAQ,UAAU,CAAC,+BAA+B,CAAC;IACxF,kBAAkB,CAAC,MAAM,CAAC,EAAE,+BAA+B,GAAG,OAAO;CAWtE"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ClaudeWebSearchServerTool = exports.ClaudeWebSearchServerToolConfigSchema = void 0;
10
+ const zod_1 = require("zod");
11
+ const common_1 = require("@loopstack/common");
12
+ exports.ClaudeWebSearchServerToolConfigSchema = zod_1.z.object({
13
+ maxUses: zod_1.z.number().int().positive().default(8),
14
+ allowedDomains: zod_1.z.array(zod_1.z.string()).optional(),
15
+ blockedDomains: zod_1.z.array(zod_1.z.string()).optional(),
16
+ });
17
+ let ClaudeWebSearchServerTool = class ClaudeWebSearchServerTool extends common_1.ServerTool {
18
+ toServerToolConfig(config) {
19
+ const maxUses = config?.maxUses ?? 8;
20
+ return {
21
+ type: 'web_search_20260209',
22
+ name: 'web_search',
23
+ max_uses: maxUses,
24
+ ...(config?.allowedDomains?.length ? { allowed_domains: config.allowedDomains } : {}),
25
+ ...(config?.blockedDomains?.length ? { blocked_domains: config.blockedDomains } : {}),
26
+ };
27
+ }
28
+ };
29
+ exports.ClaudeWebSearchServerTool = ClaudeWebSearchServerTool;
30
+ exports.ClaudeWebSearchServerTool = ClaudeWebSearchServerTool = __decorate([
31
+ (0, common_1.Tool)({
32
+ uiConfig: {
33
+ description: "Search the web using Claude's built-in server-side web search tool. " +
34
+ 'Provides real-time information retrieval during agent conversations. ' +
35
+ 'Configure via @InjectTool({ maxUses, allowedDomains, blockedDomains }).',
36
+ },
37
+ configSchema: exports.ClaudeWebSearchServerToolConfigSchema,
38
+ })
39
+ ], ClaudeWebSearchServerTool);
40
+ //# sourceMappingURL=claude-web-search-server.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-web-search-server.tool.js","sourceRoot":"","sources":["../../src/tools/claude-web-search-server.tool.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6BAAwB;AACxB,8CAAqD;AAExC,QAAA,qCAAqC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,cAAc,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,cAAc,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC;AAaI,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,mBAA2C;IACxF,kBAAkB,CAAC,MAAwC;QACzD,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC;QAErC,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,OAAO;YACjB,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC;IACJ,CAAC;CACF,CAAA;AAZY,8DAAyB;oCAAzB,yBAAyB;IATrC,IAAA,aAAI,EAAC;QACJ,QAAQ,EAAE;YACR,WAAW,EACT,sEAAsE;gBACtE,uEAAuE;gBACvE,yEAAyE;SAC5E;QACD,YAAY,EAAE,6CAAqC;KACpD,CAAC;GACW,yBAAyB,CAYrC"}
@@ -1,24 +1,22 @@
1
1
  import { z } from 'zod';
2
- import { BaseTool, ToolResult } from '@loopstack/common';
2
+ import { BaseTool, ToolCallOptions, ToolResult } from '@loopstack/common';
3
3
  import { WebSearchResult } from '../types';
4
- export declare const ClaudeWebSearchSchema: z.ZodObject<{
4
+ export declare const ClaudeWebSearchArgsSchema: z.ZodObject<{
5
5
  query: z.ZodString;
6
- allowed_domains: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
- blocked_domains: z.ZodOptional<z.ZodArray<z.ZodString>>;
8
- max_uses: z.ZodOptional<z.ZodNumber>;
9
- timeoutMs: z.ZodOptional<z.ZodNumber>;
10
- claude: z.ZodOptional<z.ZodObject<{
11
- model: z.ZodOptional<z.ZodString>;
12
- envApiKey: z.ZodOptional<z.ZodString>;
13
- maxTokens: z.ZodOptional<z.ZodNumber>;
14
- }, z.core.$strip>>;
15
6
  }, z.core.$strict>;
16
- type ClaudeWebSearchArgs = z.infer<typeof ClaudeWebSearchSchema>;
17
- export declare class ClaudeWebSearch extends BaseTool {
7
+ export declare const ClaudeWebSearchConfigSchema: z.ZodObject<{
8
+ model: z.ZodOptional<z.ZodString>;
9
+ maxTokens: z.ZodOptional<z.ZodNumber>;
10
+ envApiKey: z.ZodOptional<z.ZodString>;
11
+ cache: z.ZodOptional<z.ZodBoolean>;
12
+ }, z.core.$strip>;
13
+ type ClaudeWebSearchArgs = z.infer<typeof ClaudeWebSearchArgsSchema>;
14
+ type ClaudeWebSearchConfig = z.infer<typeof ClaudeWebSearchConfigSchema>;
15
+ export declare class ClaudeWebSearch extends BaseTool<ClaudeWebSearchArgs, ClaudeWebSearchConfig> {
18
16
  private readonly logger;
19
- private readonly claudeClientService;
20
- call(args: ClaudeWebSearchArgs): Promise<ToolResult<WebSearchResult>>;
21
- private buildWebSearchTool;
17
+ private readonly tools;
18
+ private readonly llmGenerateText;
19
+ call(args: ClaudeWebSearchArgs, options?: ToolCallOptions<ClaudeWebSearchConfig>): Promise<ToolResult<WebSearchResult>>;
22
20
  private getSystemPrompt;
23
21
  private parseResponse;
24
22
  private capResultSize;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-web-search.tool.d.ts","sourceRoot":"","sources":["../../src/tools/claude-web-search.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAQ,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAgB,eAAe,EAAwB,MAAM,UAAU,CAAC;AAW/E,eAAO,MAAM,qBAAqB;;;;;;;;;;;kBA4B9B,CAAC;AAEL,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEjE,qBASa,eAAgB,SAAQ,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAEjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAE9D,IAAI,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAiD3E,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,aAAa;CAuBtB"}
1
+ {"version":3,"file":"claude-web-search.tool.d.ts","sourceRoot":"","sources":["../../src/tools/claude-web-search.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAoB,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG5F,OAAO,EAAgB,eAAe,EAAwB,MAAM,UAAU,CAAC;AAO/E,eAAO,MAAM,yBAAyB;;kBAI3B,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;iBAKtC,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACrE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEzE,qBAUa,eAAgB,SAAQ,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;IACvF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEzB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IAE9D,IAAI,CACR,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,eAAe,CAAC,qBAAqB,CAAC,GAC/C,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IA6BvC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,aAAa;CAuBtB"}