@loopstack/claude-module 0.21.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 (88) hide show
  1. package/dist/claude.module.d.ts +3 -0
  2. package/dist/claude.module.d.ts.map +1 -0
  3. package/dist/claude.module.js +40 -0
  4. package/dist/claude.module.js.map +1 -0
  5. package/dist/documents/claude-message-document.d.ts +14 -0
  6. package/dist/documents/claude-message-document.d.ts.map +1 -0
  7. package/dist/documents/claude-message-document.js +41 -0
  8. package/dist/documents/claude-message-document.js.map +1 -0
  9. package/dist/documents/claude-message-document.yaml +5 -0
  10. package/dist/documents/index.d.ts +2 -0
  11. package/dist/documents/index.d.ts.map +1 -0
  12. package/dist/documents/index.js +18 -0
  13. package/dist/documents/index.js.map +1 -0
  14. package/dist/index.d.ts +4 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +20 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/schemas/claude-generate-tool-base.schema.d.ts +20 -0
  19. package/dist/schemas/claude-generate-tool-base.schema.d.ts.map +1 -0
  20. package/dist/schemas/claude-generate-tool-base.schema.js +24 -0
  21. package/dist/schemas/claude-generate-tool-base.schema.js.map +1 -0
  22. package/dist/services/claude-client.service.d.ts +8 -0
  23. package/dist/services/claude-client.service.d.ts.map +1 -0
  24. package/dist/services/claude-client.service.js +40 -0
  25. package/dist/services/claude-client.service.js.map +1 -0
  26. package/dist/services/claude-messages-helper.service.d.ts +10 -0
  27. package/dist/services/claude-messages-helper.service.d.ts.map +1 -0
  28. package/dist/services/claude-messages-helper.service.js +39 -0
  29. package/dist/services/claude-messages-helper.service.js.map +1 -0
  30. package/dist/services/claude-tools-helper.service.d.ts +6 -0
  31. package/dist/services/claude-tools-helper.service.d.ts.map +1 -0
  32. package/dist/services/claude-tools-helper.service.js +43 -0
  33. package/dist/services/claude-tools-helper.service.js.map +1 -0
  34. package/dist/services/index.d.ts +4 -0
  35. package/dist/services/index.d.ts.map +1 -0
  36. package/dist/services/index.js +20 -0
  37. package/dist/services/index.js.map +1 -0
  38. package/dist/tools/claude-delegate-tool-call.tool.d.ts +19 -0
  39. package/dist/tools/claude-delegate-tool-call.tool.d.ts.map +1 -0
  40. package/dist/tools/claude-delegate-tool-call.tool.js +102 -0
  41. package/dist/tools/claude-delegate-tool-call.tool.js.map +1 -0
  42. package/dist/tools/claude-generate-document.tool.d.ts +10 -0
  43. package/dist/tools/claude-generate-document.tool.d.ts.map +1 -0
  44. package/dist/tools/claude-generate-document.tool.js +64 -0
  45. package/dist/tools/claude-generate-document.tool.js.map +1 -0
  46. package/dist/tools/claude-generate-object.tool.d.ts +33 -0
  47. package/dist/tools/claude-generate-object.tool.d.ts.map +1 -0
  48. package/dist/tools/claude-generate-object.tool.js +131 -0
  49. package/dist/tools/claude-generate-object.tool.js.map +1 -0
  50. package/dist/tools/claude-generate-text.tool.d.ts +32 -0
  51. package/dist/tools/claude-generate-text.tool.d.ts.map +1 -0
  52. package/dist/tools/claude-generate-text.tool.js +112 -0
  53. package/dist/tools/claude-generate-text.tool.js.map +1 -0
  54. package/dist/tools/index.d.ts +5 -0
  55. package/dist/tools/index.d.ts.map +1 -0
  56. package/dist/tools/index.js +21 -0
  57. package/dist/tools/index.js.map +1 -0
  58. package/dist/types/claude.types.d.ts +19 -0
  59. package/dist/types/claude.types.d.ts.map +1 -0
  60. package/dist/types/claude.types.js +9 -0
  61. package/dist/types/claude.types.js.map +1 -0
  62. package/dist/types/index.d.ts +2 -0
  63. package/dist/types/index.d.ts.map +1 -0
  64. package/dist/types/index.js +18 -0
  65. package/dist/types/index.js.map +1 -0
  66. package/dist/utils/cache.utils.d.ts +11 -0
  67. package/dist/utils/cache.utils.d.ts.map +1 -0
  68. package/dist/utils/cache.utils.js +36 -0
  69. package/dist/utils/cache.utils.js.map +1 -0
  70. package/package.json +76 -0
  71. package/src/claude.module.ts +32 -0
  72. package/src/documents/claude-message-document.ts +26 -0
  73. package/src/documents/claude-message-document.yaml +5 -0
  74. package/src/documents/index.ts +1 -0
  75. package/src/index.ts +3 -0
  76. package/src/schemas/claude-generate-tool-base.schema.ts +23 -0
  77. package/src/services/claude-client.service.ts +34 -0
  78. package/src/services/claude-messages-helper.service.ts +41 -0
  79. package/src/services/claude-tools-helper.service.ts +38 -0
  80. package/src/services/index.ts +3 -0
  81. package/src/tools/claude-delegate-tool-call.tool.ts +125 -0
  82. package/src/tools/claude-generate-document.tool.ts +66 -0
  83. package/src/tools/claude-generate-object.tool.ts +151 -0
  84. package/src/tools/claude-generate-text.tool.ts +120 -0
  85. package/src/tools/index.ts +4 -0
  86. package/src/types/claude.types.ts +34 -0
  87. package/src/types/index.ts +1 -0
  88. package/src/utils/cache.utils.ts +59 -0
@@ -0,0 +1,3 @@
1
+ export declare class ClaudeModule {
2
+ }
3
+ //# sourceMappingURL=claude.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.module.d.ts","sourceRoot":"","sources":["../src/claude.module.ts"],"names":[],"mappings":"AAMA,qBAyBa,YAAY;CAAG"}
@@ -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.ClaudeModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const core_ui_module_1 = require("@loopstack/core-ui-module");
12
+ const documents_1 = require("./documents");
13
+ const services_1 = require("./services");
14
+ const tools_1 = require("./tools");
15
+ let ClaudeModule = class ClaudeModule {
16
+ };
17
+ exports.ClaudeModule = ClaudeModule;
18
+ exports.ClaudeModule = ClaudeModule = __decorate([
19
+ (0, common_1.Module)({
20
+ imports: [core_ui_module_1.CoreUiModule],
21
+ providers: [
22
+ services_1.ClaudeClientService,
23
+ services_1.ClaudeMessagesHelperService,
24
+ services_1.ClaudeToolsHelperService,
25
+ tools_1.ClaudeGenerateText,
26
+ tools_1.ClaudeGenerateObject,
27
+ tools_1.ClaudeGenerateDocument,
28
+ tools_1.ClaudeDelegateToolCall,
29
+ documents_1.ClaudeMessageDocument,
30
+ ],
31
+ exports: [
32
+ tools_1.ClaudeGenerateText,
33
+ tools_1.ClaudeGenerateObject,
34
+ tools_1.ClaudeGenerateDocument,
35
+ tools_1.ClaudeDelegateToolCall,
36
+ documents_1.ClaudeMessageDocument,
37
+ ],
38
+ })
39
+ ], ClaudeModule);
40
+ //# sourceMappingURL=claude.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.module.js","sourceRoot":"","sources":["../src/claude.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8DAAyD;AACzD,2CAAoD;AACpD,yCAAwG;AACxG,mCAAmH;AA2B5G,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IAzBxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,6BAAY,CAAC;QACvB,SAAS,EAAE;YAET,8BAAmB;YACnB,sCAA2B;YAC3B,mCAAwB;YAGxB,0BAAkB;YAClB,4BAAoB;YACpB,8BAAsB;YACtB,8BAAsB;YAGtB,iCAAqB;SACtB;QACD,OAAO,EAAE;YACP,0BAAkB;YAClB,4BAAoB;YACpB,8BAAsB;YACtB,8BAAsB;YACtB,iCAAqB;SACtB;KACF,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export declare const ClaudeMessageDocumentSchema: z.ZodObject<{
3
+ role: z.ZodEnum<{
4
+ user: "user";
5
+ assistant: "assistant";
6
+ }>;
7
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodAny>]>;
8
+ toolResults: z.ZodOptional<z.ZodArray<z.ZodAny>>;
9
+ }, z.core.$strip>;
10
+ export type ClaudeMessageDocumentContentType = z.infer<typeof ClaudeMessageDocumentSchema>;
11
+ export declare class ClaudeMessageDocument {
12
+ content: z.infer<typeof ClaudeMessageDocumentSchema>;
13
+ }
14
+ //# sourceMappingURL=claude-message-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-message-document.d.ts","sourceRoot":"","sources":["../../src/documents/claude-message-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,2BAA2B;;;;;;;iBAItC,CAAC;AAEH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE3F,qBAQa,qBAAqB;IAIhC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;CACtD"}
@@ -0,0 +1,41 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ClaudeMessageDocument = exports.ClaudeMessageDocumentSchema = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const zod_1 = require("zod");
15
+ const common_2 = require("@loopstack/common");
16
+ exports.ClaudeMessageDocumentSchema = zod_1.z.object({
17
+ role: zod_1.z.enum(['user', 'assistant']),
18
+ content: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.any())]),
19
+ toolResults: zod_1.z.array(zod_1.z.any()).optional(),
20
+ });
21
+ let ClaudeMessageDocument = class ClaudeMessageDocument {
22
+ content;
23
+ };
24
+ exports.ClaudeMessageDocument = ClaudeMessageDocument;
25
+ __decorate([
26
+ (0, common_2.Input)({
27
+ schema: exports.ClaudeMessageDocumentSchema,
28
+ }),
29
+ __metadata("design:type", Object)
30
+ ], ClaudeMessageDocument.prototype, "content", void 0);
31
+ exports.ClaudeMessageDocument = ClaudeMessageDocument = __decorate([
32
+ (0, common_1.Injectable)(),
33
+ (0, common_2.Document)({
34
+ config: {
35
+ type: 'document',
36
+ description: 'Claude Message Document. Stores messages in Anthropic native format.',
37
+ },
38
+ configFile: __dirname + '/claude-message-document.yaml',
39
+ })
40
+ ], ClaudeMessageDocument);
41
+ //# sourceMappingURL=claude-message-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-message-document.js","sourceRoot":"","sources":["../../src/documents/claude-message-document.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6BAAwB;AACxB,8CAAoD;AAEvC,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAChD,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAYI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAIhC,OAAO,CAA8C;CACtD,CAAA;AALY,sDAAqB;AAIhC;IAHC,IAAA,cAAK,EAAC;QACL,MAAM,EAAE,mCAA2B;KACpC,CAAC;;sDACmD;gCAJ1C,qBAAqB;IARjC,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAQ,EAAC;QACR,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,sEAAsE;SACpF;QACD,UAAU,EAAE,SAAS,GAAG,+BAA+B;KACxD,CAAC;GACW,qBAAqB,CAKjC"}
@@ -0,0 +1,5 @@
1
+ tags:
2
+ - message
3
+ ui:
4
+ form:
5
+ widget: claude-message
@@ -0,0 +1,2 @@
1
+ export * from './claude-message-document';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,18 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./claude-message-document"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/documents/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
@@ -0,0 +1,4 @@
1
+ export * from './claude.module';
2
+ export * from './tools';
3
+ export * from './documents';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./claude.module"), exports);
18
+ __exportStar(require("./tools"), exports);
19
+ __exportStar(require("./documents"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,0CAAwB;AACxB,8CAA4B"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const ClaudeGenerateToolBaseSchema: z.ZodObject<{
3
+ claude: z.ZodOptional<z.ZodObject<{
4
+ model: z.ZodOptional<z.ZodString>;
5
+ envApiKey: z.ZodOptional<z.ZodString>;
6
+ maxTokens: z.ZodOptional<z.ZodNumber>;
7
+ cache: z.ZodOptional<z.ZodBoolean>;
8
+ }, z.core.$strip>>;
9
+ messages: z.ZodOptional<z.ZodArray<z.ZodObject<{
10
+ role: z.ZodEnum<{
11
+ user: "user";
12
+ assistant: "assistant";
13
+ }>;
14
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodAny>]>;
15
+ }, z.core.$strip>>>;
16
+ system: z.ZodOptional<z.ZodString>;
17
+ prompt: z.ZodOptional<z.ZodString>;
18
+ messagesSearchTag: z.ZodOptional<z.ZodString>;
19
+ }, z.core.$strip>;
20
+ //# sourceMappingURL=claude-generate-tool-base.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-generate-tool-base.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/claude-generate-tool-base.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;iBAoBvC,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClaudeGenerateToolBaseSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.ClaudeGenerateToolBaseSchema = zod_1.z.object({
6
+ claude: zod_1.z
7
+ .object({
8
+ model: zod_1.z.string().optional(),
9
+ envApiKey: zod_1.z.string().optional(),
10
+ maxTokens: zod_1.z.number().optional(),
11
+ cache: zod_1.z.boolean().optional(),
12
+ })
13
+ .optional(),
14
+ messages: zod_1.z
15
+ .array(zod_1.z.object({
16
+ role: zod_1.z.enum(['user', 'assistant']),
17
+ content: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.any())]),
18
+ }))
19
+ .optional(),
20
+ system: zod_1.z.string().optional(),
21
+ prompt: zod_1.z.string().optional(),
22
+ messagesSearchTag: zod_1.z.string().optional(),
23
+ });
24
+ //# sourceMappingURL=claude-generate-tool-base.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-generate-tool-base.schema.js","sourceRoot":"","sources":["../../src/schemas/claude-generate-tool-base.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IACnD,MAAM,EAAE,OAAC;SACN,MAAM,CAAC;QACN,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;SACD,QAAQ,EAAE;IACb,QAAQ,EAAE,OAAC;SACR,KAAK,CACJ,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnC,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KACjD,CAAC,CACH;SACA,QAAQ,EAAE;IACb,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ import { ClaudeModelConfig } from '../types';
3
+ export declare class ClaudeClientService {
4
+ private getApiKey;
5
+ getClient(config?: ClaudeModelConfig): Anthropic;
6
+ getModel(config?: ClaudeModelConfig): string;
7
+ }
8
+ //# sourceMappingURL=claude-client.service.d.ts.map
@@ -0,0 +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,GAAG,MAAM;CAW7C"}
@@ -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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ClaudeClientService = void 0;
13
+ const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
14
+ const common_1 = require("@nestjs/common");
15
+ let ClaudeClientService = class ClaudeClientService {
16
+ getApiKey(envApiKey) {
17
+ const envVar = envApiKey ?? 'ANTHROPIC_API_KEY';
18
+ const apiKey = process.env[envVar];
19
+ if (!apiKey) {
20
+ throw new Error(`No API key found! Please make sure to provide "${envVar}" in your .env file.`);
21
+ }
22
+ return apiKey;
23
+ }
24
+ getClient(config) {
25
+ const apiKey = this.getApiKey(config?.envApiKey);
26
+ return new sdk_1.default({ apiKey });
27
+ }
28
+ getModel(config) {
29
+ const model = config?.model ?? process.env['CLAUDE_MODEL'];
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.');
32
+ }
33
+ return model;
34
+ }
35
+ };
36
+ exports.ClaudeClientService = ClaudeClientService;
37
+ exports.ClaudeClientService = ClaudeClientService = __decorate([
38
+ (0, common_1.Injectable)()
39
+ ], ClaudeClientService);
40
+ //# sourceMappingURL=claude-client.service.js.map
@@ -0,0 +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;QACjC,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE3D,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"}
@@ -0,0 +1,10 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ import { DocumentEntity } from '@loopstack/common';
3
+ export declare class ClaudeMessagesHelperService {
4
+ private searchMessages;
5
+ getMessages(documents: DocumentEntity[], args: {
6
+ messages?: Anthropic.MessageParam[];
7
+ messagesSearchTag?: string;
8
+ }): Anthropic.MessageParam[];
9
+ }
10
+ //# sourceMappingURL=claude-messages-helper.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-messages-helper.service.d.ts","sourceRoot":"","sources":["../../src/services/claude-messages-helper.service.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBACa,2BAA2B;IACtC,OAAO,CAAC,cAAc;IAuBtB,WAAW,CACT,SAAS,EAAE,cAAc,EAAE,EAC3B,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,GACxE,SAAS,CAAC,YAAY,EAAE;CAQ5B"}
@@ -0,0 +1,39 @@
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.ClaudeMessagesHelperService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ let ClaudeMessagesHelperService = class ClaudeMessagesHelperService {
12
+ searchMessages(documents, tag) {
13
+ return documents
14
+ .filter((document) => !document.isInvalidated && document.tags?.includes(tag))
15
+ .sort((a, b) => a.index - b.index)
16
+ .flatMap((document) => {
17
+ const content = document.content;
18
+ if (content.toolResults?.length) {
19
+ return [
20
+ { role: content.role, content: content.content },
21
+ { role: 'user', content: content.toolResults },
22
+ ];
23
+ }
24
+ return [{ role: content.role, content: content.content }];
25
+ });
26
+ }
27
+ getMessages(documents, args) {
28
+ let messages = args.messages;
29
+ if (!messages?.length) {
30
+ messages = this.searchMessages(documents, args.messagesSearchTag ?? 'message');
31
+ }
32
+ return messages;
33
+ }
34
+ };
35
+ exports.ClaudeMessagesHelperService = ClaudeMessagesHelperService;
36
+ exports.ClaudeMessagesHelperService = ClaudeMessagesHelperService = __decorate([
37
+ (0, common_1.Injectable)()
38
+ ], ClaudeMessagesHelperService);
39
+ //# sourceMappingURL=claude-messages-helper.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-messages-helper.service.js","sourceRoot":"","sources":["../../src/services/claude-messages-helper.service.ts"],"names":[],"mappings":";;;;;;;;;AACA,2CAA4C;AAIrC,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAC9B,cAAc,CAAC,SAA2B,EAAE,GAAW;QAC7D,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAIxB,CAAC;YAGF,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;gBAChC,OAAO;oBACL,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAA4B;oBAC1E,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAA4B;iBAClF,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAA4B,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CACT,SAA2B,EAC3B,IAAyE;QAEzE,IAAI,QAAQ,GAAyC,IAAI,CAAC,QAAQ,CAAC;QACnE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YACtB,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,IAAI,SAAS,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AAnCY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;GACA,2BAA2B,CAmCvC"}
@@ -0,0 +1,6 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ import { WorkflowInterface } from '@loopstack/common';
3
+ export declare class ClaudeToolsHelperService {
4
+ getTools(tools: string[], parent: WorkflowInterface): Anthropic.Tool[] | undefined;
5
+ }
6
+ //# sourceMappingURL=claude-tools-helper.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-tools-helper.service.d.ts","sourceRoot":"","sources":["../../src/services/claude-tools-helper.service.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAiB,iBAAiB,EAAsC,MAAM,mBAAmB,CAAC;AAIzG,qBACa,wBAAwB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,SAAS;CA4BnF"}
@@ -0,0 +1,43 @@
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.ClaudeToolsHelperService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const zod_1 = require("zod");
12
+ const common_2 = require("@loopstack/common");
13
+ const common_3 = require("@loopstack/common");
14
+ let ClaudeToolsHelperService = class ClaudeToolsHelperService {
15
+ getTools(tools, parent) {
16
+ const toolDefinitions = [];
17
+ for (const toolName of tools) {
18
+ const tool = (0, common_3.getBlockTool)(parent, toolName);
19
+ if (!tool) {
20
+ throw new Error(`Tool with name ${toolName} not available in Workflow context.`);
21
+ }
22
+ const inputSchema = (0, common_2.getBlockArgsSchema)(tool);
23
+ const config = (0, common_2.getBlockConfig)(tool);
24
+ if (!config) {
25
+ throw new Error(`Block ${tool.constructor.name} is missing @BlockConfig decorator`);
26
+ }
27
+ if (inputSchema) {
28
+ const jsonSchema = (0, zod_1.toJSONSchema)(inputSchema);
29
+ toolDefinitions.push({
30
+ name: toolName,
31
+ description: config.description ?? '',
32
+ input_schema: jsonSchema,
33
+ });
34
+ }
35
+ }
36
+ return toolDefinitions.length ? toolDefinitions : undefined;
37
+ }
38
+ };
39
+ exports.ClaudeToolsHelperService = ClaudeToolsHelperService;
40
+ exports.ClaudeToolsHelperService = ClaudeToolsHelperService = __decorate([
41
+ (0, common_1.Injectable)()
42
+ ], ClaudeToolsHelperService);
43
+ //# sourceMappingURL=claude-tools-helper.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-tools-helper.service.js","sourceRoot":"","sources":["../../src/services/claude-tools-helper.service.ts"],"names":[],"mappings":";;;;;;;;;AACA,2CAA4C;AAC5C,6BAAmC;AACnC,8CAAyG;AACzG,8CAAiD;AAI1C,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,QAAQ,CAAC,KAAe,EAAE,MAAyB;QACjD,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAA,qBAAY,EAAgB,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,qCAAqC,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,WAAW,GAAG,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAe,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oCAAoC,CAAC,CAAC;YACtF,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,UAAU,GAAG,IAAA,kBAAY,EAAC,WAAW,CAAC,CAAC;gBAE7C,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;oBACrC,YAAY,EAAE,UAA4C;iBAC3D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;CACF,CAAA;AA7BY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;GACA,wBAAwB,CA6BpC"}
@@ -0,0 +1,4 @@
1
+ export * from './claude-client.service';
2
+ export * from './claude-messages-helper.service';
3
+ export * from './claude-tools-helper.service';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,20 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./claude-client.service"), exports);
18
+ __exportStar(require("./claude-messages-helper.service"), exports);
19
+ __exportStar(require("./claude-tools-helper.service"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,mEAAiD;AACjD,gEAA8C"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { RunContext, ToolInterface, ToolResult, WorkflowInterface, WorkflowMetadataInterface } from '@loopstack/common';
3
+ declare const ClaudeDelegateToolCallSchema: z.ZodObject<{
4
+ message: z.ZodObject<{
5
+ id: z.ZodOptional<z.ZodString>;
6
+ content: z.ZodArray<z.ZodAny>;
7
+ }, z.core.$strip>;
8
+ document: z.ZodOptional<z.ZodString>;
9
+ skipResponseMessage: z.ZodOptional<z.ZodBoolean>;
10
+ }, z.core.$strip>;
11
+ type ClaudeDelegateToolCallArgs = z.infer<typeof ClaudeDelegateToolCallSchema>;
12
+ export declare class ClaudeDelegateToolCall implements ToolInterface<ClaudeDelegateToolCallArgs> {
13
+ private readonly logger;
14
+ args: ClaudeDelegateToolCallArgs;
15
+ execute(args: ClaudeDelegateToolCallArgs, ctx: RunContext, parent: WorkflowInterface, runtime: WorkflowMetadataInterface): Promise<ToolResult>;
16
+ private createResponseMessage;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=claude-delegate-tool-call.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-delegate-tool-call.tool.d.ts","sourceRoot":"","sources":["../../src/tools/claude-delegate-tool-call.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,UAAU,EAEV,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,yBAAyB,EAE1B,MAAM,mBAAmB,CAAC;AAE3B,QAAA,MAAM,4BAA4B;;;;;;;iBAOhC,CAAC;AAEH,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAE/E,qBAKa,sBAAuB,YAAW,aAAa,CAAC,0BAA0B,CAAC;IACtF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAKlE,IAAI,EAAE,0BAA0B,CAAC;IAE3B,OAAO,CACX,IAAI,EAAE,0BAA0B,EAChC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,UAAU,CAAC;YAoDR,qBAAqB;CA6BpC"}
@@ -0,0 +1,102 @@
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 ClaudeDelegateToolCall_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ClaudeDelegateToolCall = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const zod_1 = require("zod");
16
+ const common_2 = require("@loopstack/common");
17
+ const ClaudeDelegateToolCallSchema = zod_1.z.object({
18
+ message: zod_1.z.object({
19
+ id: zod_1.z.string().optional(),
20
+ content: zod_1.z.array(zod_1.z.any()),
21
+ }),
22
+ document: zod_1.z.string().optional(),
23
+ skipResponseMessage: zod_1.z.boolean().optional(),
24
+ });
25
+ let ClaudeDelegateToolCall = ClaudeDelegateToolCall_1 = class ClaudeDelegateToolCall {
26
+ logger = new common_1.Logger(ClaudeDelegateToolCall_1.name);
27
+ args;
28
+ async execute(args, ctx, parent, runtime) {
29
+ const contentBlocks = args.message.content;
30
+ const toolResults = [];
31
+ for (const block of contentBlocks) {
32
+ if (block.type !== 'tool_use') {
33
+ continue;
34
+ }
35
+ const tool = (0, common_2.getBlockTool)(parent, block.name);
36
+ if (!tool) {
37
+ throw new Error(`Tool ${block.name} not found.`);
38
+ }
39
+ try {
40
+ const result = await tool.execute(block.input, ctx, parent, runtime);
41
+ toolResults.push({
42
+ type: 'tool_result',
43
+ tool_use_id: block.id,
44
+ content: JSON.stringify(result.data, null, 2),
45
+ });
46
+ }
47
+ catch (error) {
48
+ const errorMessage = error instanceof Error ? error.message : String(error);
49
+ this.logger.error(`Tool "${block.name}" failed: ${errorMessage}`);
50
+ toolResults.push({
51
+ type: 'tool_result',
52
+ tool_use_id: block.id,
53
+ content: errorMessage,
54
+ is_error: true,
55
+ });
56
+ }
57
+ }
58
+ const resultData = { toolResults };
59
+ if (args.document && !args.skipResponseMessage) {
60
+ const docResult = await this.createResponseMessage(args, toolResults, ctx, parent, runtime);
61
+ return {
62
+ data: resultData,
63
+ effects: docResult.effects,
64
+ };
65
+ }
66
+ return {
67
+ data: resultData,
68
+ };
69
+ }
70
+ async createResponseMessage(args, toolResults, ctx, parent, runtime) {
71
+ const createDocumentTool = (0, common_2.getBlockTool)(parent, 'createDocument');
72
+ if (!createDocumentTool) {
73
+ throw new Error('createDocument tool not found in parent context.');
74
+ }
75
+ return createDocumentTool.execute({
76
+ id: args.message.id,
77
+ document: args.document,
78
+ update: {
79
+ content: {
80
+ role: 'assistant',
81
+ content: args.message.content,
82
+ toolResults,
83
+ },
84
+ },
85
+ }, ctx, parent, runtime);
86
+ }
87
+ };
88
+ exports.ClaudeDelegateToolCall = ClaudeDelegateToolCall;
89
+ __decorate([
90
+ (0, common_2.Input)({
91
+ schema: ClaudeDelegateToolCallSchema,
92
+ }),
93
+ __metadata("design:type", Object)
94
+ ], ClaudeDelegateToolCall.prototype, "args", void 0);
95
+ exports.ClaudeDelegateToolCall = ClaudeDelegateToolCall = ClaudeDelegateToolCall_1 = __decorate([
96
+ (0, common_2.Tool)({
97
+ config: {
98
+ description: 'Delegate tool calls from a Claude response.',
99
+ },
100
+ })
101
+ ], ClaudeDelegateToolCall);
102
+ //# sourceMappingURL=claude-delegate-tool-call.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-delegate-tool-call.tool.js","sourceRoot":"","sources":["../../src/tools/claude-delegate-tool-call.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { RunContext, ToolInterface, ToolResult, WorkflowInterface, WorkflowMetadataInterface } from '@loopstack/common';
2
+ import { ClaudeGenerateObjectArgsType } from './claude-generate-object.tool';
3
+ export declare class ClaudeGenerateDocument implements ToolInterface<ClaudeGenerateObjectArgsType> {
4
+ private claudeGenerateObject;
5
+ private createDocument;
6
+ args: ClaudeGenerateObjectArgsType;
7
+ private getRequiredTool;
8
+ execute(args: ClaudeGenerateObjectArgsType, ctx: RunContext, parent: WorkflowInterface, metadata: WorkflowMetadataInterface): Promise<ToolResult>;
9
+ }
10
+ //# sourceMappingURL=claude-generate-document.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-generate-document.tool.d.ts","sourceRoot":"","sources":["../../src/tools/claude-generate-document.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAEV,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,yBAAyB,EAE1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEL,4BAA4B,EAE7B,MAAM,+BAA+B,CAAC;AAEvC,qBAKa,sBAAuB,YAAW,aAAa,CAAC,4BAA4B,CAAC;IAC1E,OAAO,CAAC,oBAAoB,CAAwB;IACpD,OAAO,CAAC,cAAc,CAAkB;IAKtD,IAAI,EAAE,4BAA4B,CAAC;IAEnC,OAAO,CAAC,eAAe;IAQjB,OAAO,CACX,IAAI,EAAE,4BAA4B,EAClC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,UAAU,CAAC;CAoBvB"}