@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.
- package/dist/claude.module.d.ts +3 -0
- package/dist/claude.module.d.ts.map +1 -0
- package/dist/claude.module.js +40 -0
- package/dist/claude.module.js.map +1 -0
- package/dist/documents/claude-message-document.d.ts +14 -0
- package/dist/documents/claude-message-document.d.ts.map +1 -0
- package/dist/documents/claude-message-document.js +41 -0
- package/dist/documents/claude-message-document.js.map +1 -0
- package/dist/documents/claude-message-document.yaml +5 -0
- package/dist/documents/index.d.ts +2 -0
- package/dist/documents/index.d.ts.map +1 -0
- package/dist/documents/index.js +18 -0
- package/dist/documents/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/claude-generate-tool-base.schema.d.ts +20 -0
- package/dist/schemas/claude-generate-tool-base.schema.d.ts.map +1 -0
- package/dist/schemas/claude-generate-tool-base.schema.js +24 -0
- package/dist/schemas/claude-generate-tool-base.schema.js.map +1 -0
- package/dist/services/claude-client.service.d.ts +8 -0
- package/dist/services/claude-client.service.d.ts.map +1 -0
- package/dist/services/claude-client.service.js +40 -0
- package/dist/services/claude-client.service.js.map +1 -0
- package/dist/services/claude-messages-helper.service.d.ts +10 -0
- package/dist/services/claude-messages-helper.service.d.ts.map +1 -0
- package/dist/services/claude-messages-helper.service.js +39 -0
- package/dist/services/claude-messages-helper.service.js.map +1 -0
- package/dist/services/claude-tools-helper.service.d.ts +6 -0
- package/dist/services/claude-tools-helper.service.d.ts.map +1 -0
- package/dist/services/claude-tools-helper.service.js +43 -0
- package/dist/services/claude-tools-helper.service.js.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +20 -0
- package/dist/services/index.js.map +1 -0
- package/dist/tools/claude-delegate-tool-call.tool.d.ts +19 -0
- package/dist/tools/claude-delegate-tool-call.tool.d.ts.map +1 -0
- package/dist/tools/claude-delegate-tool-call.tool.js +102 -0
- package/dist/tools/claude-delegate-tool-call.tool.js.map +1 -0
- package/dist/tools/claude-generate-document.tool.d.ts +10 -0
- package/dist/tools/claude-generate-document.tool.d.ts.map +1 -0
- package/dist/tools/claude-generate-document.tool.js +64 -0
- package/dist/tools/claude-generate-document.tool.js.map +1 -0
- package/dist/tools/claude-generate-object.tool.d.ts +33 -0
- package/dist/tools/claude-generate-object.tool.d.ts.map +1 -0
- package/dist/tools/claude-generate-object.tool.js +131 -0
- package/dist/tools/claude-generate-object.tool.js.map +1 -0
- package/dist/tools/claude-generate-text.tool.d.ts +32 -0
- package/dist/tools/claude-generate-text.tool.d.ts.map +1 -0
- package/dist/tools/claude-generate-text.tool.js +112 -0
- package/dist/tools/claude-generate-text.tool.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +21 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/claude.types.d.ts +19 -0
- package/dist/types/claude.types.d.ts.map +1 -0
- package/dist/types/claude.types.js +9 -0
- package/dist/types/claude.types.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/cache.utils.d.ts +11 -0
- package/dist/utils/cache.utils.d.ts.map +1 -0
- package/dist/utils/cache.utils.js +36 -0
- package/dist/utils/cache.utils.js.map +1 -0
- package/package.json +76 -0
- package/src/claude.module.ts +32 -0
- package/src/documents/claude-message-document.ts +26 -0
- package/src/documents/claude-message-document.yaml +5 -0
- package/src/documents/index.ts +1 -0
- package/src/index.ts +3 -0
- package/src/schemas/claude-generate-tool-base.schema.ts +23 -0
- package/src/services/claude-client.service.ts +34 -0
- package/src/services/claude-messages-helper.service.ts +41 -0
- package/src/services/claude-tools-helper.service.ts +38 -0
- package/src/services/index.ts +3 -0
- package/src/tools/claude-delegate-tool-call.tool.ts +125 -0
- package/src/tools/claude-generate-document.tool.ts +66 -0
- package/src/tools/claude-generate-object.tool.ts +151 -0
- package/src/tools/claude-generate-text.tool.ts +120 -0
- package/src/tools/index.ts +4 -0
- package/src/types/claude.types.ts +34 -0
- package/src/types/index.ts +1 -0
- package/src/utils/cache.utils.ts +59 -0
|
@@ -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 @@
|
|
|
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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"}
|