@loopstack/core 0.10.1 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @loopstack/core
2
2
 
3
+ ## 0.10.3
4
+
5
+ ### Patch Changes
6
+
7
+ - fix
8
+ - Updated dependencies
9
+ - @loopstack/shared@0.10.2
10
+
11
+ ## 0.10.2
12
+
13
+ ### Patch Changes
14
+
15
+ - fix
16
+
3
17
  ## 0.10.1
4
18
 
5
19
  ### Patch Changes
@@ -33,6 +33,7 @@ export declare const CreateDocumentInputSchema: z.ZodObject<{
33
33
  }>>;
34
34
  }, "strip", z.ZodTypeAny, {
35
35
  ui?: any;
36
+ content?: any;
36
37
  meta?: {
37
38
  invalidate?: boolean | undefined;
38
39
  mimeType?: "text/plain" | "text/html" | "text/css" | "text/xml" | "text/markdown" | "application/javascript" | "application/typescript" | "application/json" | "application/xml" | "application/yaml" | undefined;
@@ -41,10 +42,10 @@ export declare const CreateDocumentInputSchema: z.ZodObject<{
41
42
  hideAtPlaces?: string[] | undefined;
42
43
  } | undefined;
43
44
  schema?: any;
44
- content?: any;
45
45
  tags?: string[] | undefined;
46
46
  }, {
47
47
  ui?: any;
48
+ content?: any;
48
49
  meta?: {
49
50
  invalidate?: boolean | undefined;
50
51
  mimeType?: "text/plain" | "text/html" | "text/css" | "text/xml" | "text/markdown" | "application/javascript" | "application/typescript" | "application/json" | "application/xml" | "application/yaml" | undefined;
@@ -53,7 +54,6 @@ export declare const CreateDocumentInputSchema: z.ZodObject<{
53
54
  hideAtPlaces?: string[] | undefined;
54
55
  } | undefined;
55
56
  schema?: any;
56
- content?: any;
57
57
  tags?: string[] | undefined;
58
58
  }>>;
59
59
  }, "strict", z.ZodTypeAny, {
@@ -61,6 +61,7 @@ export declare const CreateDocumentInputSchema: z.ZodObject<{
61
61
  validate?: "strict" | "skip" | "safe" | undefined;
62
62
  update?: {
63
63
  ui?: any;
64
+ content?: any;
64
65
  meta?: {
65
66
  invalidate?: boolean | undefined;
66
67
  mimeType?: "text/plain" | "text/html" | "text/css" | "text/xml" | "text/markdown" | "application/javascript" | "application/typescript" | "application/json" | "application/xml" | "application/yaml" | undefined;
@@ -69,7 +70,6 @@ export declare const CreateDocumentInputSchema: z.ZodObject<{
69
70
  hideAtPlaces?: string[] | undefined;
70
71
  } | undefined;
71
72
  schema?: any;
72
- content?: any;
73
73
  tags?: string[] | undefined;
74
74
  } | undefined;
75
75
  }, {
@@ -77,6 +77,7 @@ export declare const CreateDocumentInputSchema: z.ZodObject<{
77
77
  validate?: "strict" | "skip" | "safe" | undefined;
78
78
  update?: {
79
79
  ui?: any;
80
+ content?: any;
80
81
  meta?: {
81
82
  invalidate?: boolean | undefined;
82
83
  mimeType?: "text/plain" | "text/html" | "text/css" | "text/xml" | "text/markdown" | "application/javascript" | "application/typescript" | "application/json" | "application/xml" | "application/yaml" | undefined;
@@ -85,7 +86,6 @@ export declare const CreateDocumentInputSchema: z.ZodObject<{
85
86
  hideAtPlaces?: string[] | undefined;
86
87
  } | undefined;
87
88
  schema?: any;
88
- content?: any;
89
89
  tags?: string[] | undefined;
90
90
  } | undefined;
91
91
  }>;
@@ -119,6 +119,7 @@ export declare const CreateDocumentConfigSchema: z.ZodObject<{
119
119
  }>>;
120
120
  }, "strip", z.ZodTypeAny, {
121
121
  ui?: any;
122
+ content?: any;
122
123
  meta?: {
123
124
  invalidate?: string | boolean | undefined;
124
125
  mimeType?: string | undefined;
@@ -127,10 +128,10 @@ export declare const CreateDocumentConfigSchema: z.ZodObject<{
127
128
  hideAtPlaces?: string[] | undefined;
128
129
  } | undefined;
129
130
  schema?: any;
130
- content?: any;
131
131
  tags?: string[] | undefined;
132
132
  }, {
133
133
  ui?: any;
134
+ content?: any;
134
135
  meta?: {
135
136
  invalidate?: string | boolean | undefined;
136
137
  mimeType?: string | undefined;
@@ -139,7 +140,6 @@ export declare const CreateDocumentConfigSchema: z.ZodObject<{
139
140
  hideAtPlaces?: string[] | undefined;
140
141
  } | undefined;
141
142
  schema?: any;
142
- content?: any;
143
143
  tags?: string[] | undefined;
144
144
  }>>;
145
145
  }, "strict", z.ZodTypeAny, {
@@ -147,6 +147,7 @@ export declare const CreateDocumentConfigSchema: z.ZodObject<{
147
147
  validate?: string | undefined;
148
148
  update?: {
149
149
  ui?: any;
150
+ content?: any;
150
151
  meta?: {
151
152
  invalidate?: string | boolean | undefined;
152
153
  mimeType?: string | undefined;
@@ -155,7 +156,6 @@ export declare const CreateDocumentConfigSchema: z.ZodObject<{
155
156
  hideAtPlaces?: string[] | undefined;
156
157
  } | undefined;
157
158
  schema?: any;
158
- content?: any;
159
159
  tags?: string[] | undefined;
160
160
  } | undefined;
161
161
  }, {
@@ -163,6 +163,7 @@ export declare const CreateDocumentConfigSchema: z.ZodObject<{
163
163
  validate?: string | undefined;
164
164
  update?: {
165
165
  ui?: any;
166
+ content?: any;
166
167
  meta?: {
167
168
  invalidate?: string | boolean | undefined;
168
169
  mimeType?: string | undefined;
@@ -171,7 +172,6 @@ export declare const CreateDocumentConfigSchema: z.ZodObject<{
171
172
  hideAtPlaces?: string[] | undefined;
172
173
  } | undefined;
173
174
  schema?: any;
174
- content?: any;
175
175
  tags?: string[] | undefined;
176
176
  } | undefined;
177
177
  }>;
@@ -2,4 +2,5 @@ export * from './services';
2
2
  export * from './errors';
3
3
  export * from './abstract';
4
4
  export * from './blocks';
5
+ export * from './llm';
5
6
  export * from './workflow-processor.module';
@@ -18,5 +18,6 @@ __exportStar(require("./services"), exports);
18
18
  __exportStar(require("./errors"), exports);
19
19
  __exportStar(require("./abstract"), exports);
20
20
  __exportStar(require("./blocks"), exports);
21
+ __exportStar(require("./llm"), exports);
21
22
  __exportStar(require("./workflow-processor.module"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/workflow-processor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,8DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/workflow-processor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,wCAAsB;AACtB,8DAA4C"}
@@ -0,0 +1,23 @@
1
+ import { AiProviderOptions, HandlerCallResult } from '@loopstack/shared';
2
+ import { Logger } from '@nestjs/common';
3
+ import { z } from 'zod';
4
+ import { ModelMessage } from '@ai-sdk/provider-utils';
5
+ import { Tool } from '../abstract';
6
+ import { GenerateObjectResult } from 'ai';
7
+ import { BlockRegistryService } from '../../configuration';
8
+ export declare class AiGenerateObjectTool extends Tool {
9
+ private readonly blockRegistryService;
10
+ protected readonly logger: Logger;
11
+ constructor(blockRegistryService: BlockRegistryService);
12
+ private getApiKey;
13
+ private getModel;
14
+ private getProvider;
15
+ createClient(options: AiProviderOptions): import("@ai-sdk/openai").OpenAIProvider;
16
+ getModelClient(client: any, model: string): any;
17
+ getProviderModel(config: any): any;
18
+ handleGenerateObject(model: any, messages: ModelMessage[], schema: any): Promise<GenerateObjectResult<any>>;
19
+ getSchema(args: {
20
+ responseDocument: string;
21
+ }): z.ZodType | undefined;
22
+ execute(): Promise<HandlerCallResult>;
23
+ }
@@ -0,0 +1,159 @@
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 AiGenerateObjectTool_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.AiGenerateObjectTool = void 0;
14
+ const shared_1 = require("@loopstack/shared");
15
+ const common_1 = require("@nestjs/common");
16
+ const zod_1 = require("zod");
17
+ const lodash_1 = require("lodash");
18
+ const abstract_1 = require("../abstract");
19
+ const ai_1 = require("ai");
20
+ const completion_message_schema_1 = require("../schemas/completion-message.schema");
21
+ const configuration_1 = require("../../configuration");
22
+ const openai_1 = require("@ai-sdk/openai");
23
+ const config = zod_1.z
24
+ .object({
25
+ llm: zod_1.z
26
+ .object({
27
+ model: zod_1.z.string().optional(),
28
+ provider: zod_1.z.string().optional(),
29
+ envApiKey: zod_1.z.string().optional(),
30
+ cacheResponse: zod_1.z.boolean().optional(),
31
+ })
32
+ .optional(),
33
+ messages: zod_1.z.array(completion_message_schema_1.CompletionMessageConfigSchema).optional(),
34
+ messagesSearchTag: zod_1.z.string().optional(),
35
+ responseDocument: zod_1.z.union([
36
+ shared_1.TemplateExpression,
37
+ zod_1.z.string(),
38
+ ]),
39
+ })
40
+ .strict();
41
+ const schema = zod_1.z
42
+ .object({
43
+ llm: zod_1.z
44
+ .object({
45
+ model: zod_1.z.string().optional(),
46
+ provider: zod_1.z.string().optional(),
47
+ envApiKey: zod_1.z.string().optional(),
48
+ cacheResponse: zod_1.z.boolean().optional(),
49
+ })
50
+ .optional(),
51
+ messages: zod_1.z.array(completion_message_schema_1.CompletionMessageSchema).optional(),
52
+ messagesSearchTag: zod_1.z.string().optional(),
53
+ responseDocument: zod_1.z.string(),
54
+ })
55
+ .strict();
56
+ let AiGenerateObjectTool = AiGenerateObjectTool_1 = class AiGenerateObjectTool extends abstract_1.Tool {
57
+ blockRegistryService;
58
+ logger = new common_1.Logger(AiGenerateObjectTool_1.name);
59
+ constructor(blockRegistryService) {
60
+ super();
61
+ this.blockRegistryService = blockRegistryService;
62
+ }
63
+ getApiKey(envApiKey, providerName) {
64
+ const defaultKey = `${providerName.toUpperCase()}_API_KEY`;
65
+ const apiKey = envApiKey ? process.env[envApiKey] : process.env[defaultKey];
66
+ if (!apiKey) {
67
+ throw new Error(`No API key found! Please make sure to provide "${envApiKey ?? defaultKey}" in your .env file.`);
68
+ }
69
+ return apiKey;
70
+ }
71
+ getModel(modelName) {
72
+ const model = modelName ?? process.env['DEFAULT_MODEL'];
73
+ if (!modelName) {
74
+ throw new Error(`No Model defined. Please provide DEFAULT_MODEL or set the model parameter in the completion service call.`);
75
+ }
76
+ return model;
77
+ }
78
+ getProvider(name) {
79
+ const provider = name ?? process.env['DEFAULT_PROVIDER'];
80
+ if (!provider) {
81
+ throw new Error(`No Provider defined. Please provide DEFAULT_PROVIDER or set the provider parameter in the completion service call.`);
82
+ }
83
+ return provider;
84
+ }
85
+ createClient(options) {
86
+ return (0, openai_1.createOpenAI)({
87
+ apiKey: options.apiKey,
88
+ baseURL: options.baseURL,
89
+ });
90
+ }
91
+ getModelClient(client, model) {
92
+ return client(model);
93
+ }
94
+ getProviderModel(config) {
95
+ const modelName = this.getModel(config.model);
96
+ const providerName = this.getProvider(config.provider);
97
+ const apiKey = this.getApiKey(config.envApiKey, providerName);
98
+ const client = this.createClient({
99
+ apiKey: apiKey,
100
+ model: modelName || '',
101
+ });
102
+ return this.getModelClient(client, modelName || '');
103
+ }
104
+ async handleGenerateObject(model, messages, schema) {
105
+ const startTime = performance.now();
106
+ try {
107
+ return (0, ai_1.generateObject)({
108
+ model,
109
+ messages,
110
+ schema,
111
+ });
112
+ }
113
+ catch (error) {
114
+ const errorResponseTime = performance.now() - startTime;
115
+ console.error(`Request failed after ${errorResponseTime}ms:`, error);
116
+ throw error;
117
+ }
118
+ }
119
+ getSchema(args) {
120
+ let responseSchema = undefined;
121
+ if (args.responseDocument) {
122
+ const documentBlock = this.blockRegistryService.getBlock(args.responseDocument);
123
+ if (!documentBlock) {
124
+ throw new Error(`Document ${args.responseDocument} not found.`);
125
+ }
126
+ responseSchema = documentBlock.metadata.properties;
127
+ }
128
+ return responseSchema;
129
+ }
130
+ async execute() {
131
+ const model = this.getProviderModel(this.args.llm);
132
+ let messages = this.args.messages;
133
+ const responseSchema = this.getSchema((0, lodash_1.pick)(this.args, ['responseDocument']));
134
+ if (!responseSchema) {
135
+ throw new Error(`AI object generation must have a schema.`);
136
+ }
137
+ const response = await this.handleGenerateObject(model, messages, responseSchema);
138
+ console.log('response');
139
+ console.log(response);
140
+ return {
141
+ success: true,
142
+ data: response,
143
+ };
144
+ }
145
+ };
146
+ exports.AiGenerateObjectTool = AiGenerateObjectTool;
147
+ exports.AiGenerateObjectTool = AiGenerateObjectTool = AiGenerateObjectTool_1 = __decorate([
148
+ (0, common_1.Injectable)(),
149
+ (0, shared_1.Block)({
150
+ config: {
151
+ type: 'tool',
152
+ description: 'Create a template from a document schema.',
153
+ },
154
+ properties: schema,
155
+ configSchema: config,
156
+ }),
157
+ __metadata("design:paramtypes", [configuration_1.BlockRegistryService])
158
+ ], AiGenerateObjectTool);
159
+ //# sourceMappingURL=ai-generate-object.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-generate-object.tool.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/llm/ai-generate-object.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './ai-generate-object.tool';
@@ -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("./ai-generate-object.tool"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/llm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAAyC"}
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ export declare const CompletionMessageConfigSchema: z.ZodObject<{
3
+ role: z.ZodString;
4
+ content: z.ZodAny;
5
+ }, "strip", z.ZodTypeAny, {
6
+ role: string;
7
+ content?: any;
8
+ }, {
9
+ role: string;
10
+ content?: any;
11
+ }>;
12
+ export declare const CompletionMessageSchema: z.ZodObject<{
13
+ role: z.ZodEnum<["system", "assistant", "user", "tool"]>;
14
+ content: z.ZodAny;
15
+ }, "strip", z.ZodTypeAny, {
16
+ role: "tool" | "system" | "assistant" | "user";
17
+ content?: any;
18
+ }, {
19
+ role: "tool" | "system" | "assistant" | "user";
20
+ content?: any;
21
+ }>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompletionMessageSchema = exports.CompletionMessageConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.CompletionMessageConfigSchema = zod_1.z.object({
6
+ role: zod_1.z.string(),
7
+ content: zod_1.z.any(),
8
+ });
9
+ exports.CompletionMessageSchema = zod_1.z.object({
10
+ role: zod_1.z.enum(['system', 'assistant', 'user', 'tool']),
11
+ content: zod_1.z.any(),
12
+ });
13
+ //# sourceMappingURL=completion-message.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-message.schema.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/schemas/completion-message.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,GAAG,EAAE;CACjB,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,EAAE,OAAC,CAAC,GAAG,EAAE;CACjB,CAAC,CAAC"}
@@ -21,6 +21,7 @@ const tools_1 = require("../persistence/blocks/tools");
21
21
  const create_document_service_1 = require("./blocks/services/create-document.service");
22
22
  const service_state_factory_service_1 = require("./services/service-state-factory.service");
23
23
  const batch_create_documents_service_1 = require("./blocks/services/batch-create-documents.service");
24
+ const llm_1 = require("./llm");
24
25
  let WorkflowProcessorModule = class WorkflowProcessorModule {
25
26
  };
26
27
  exports.WorkflowProcessorModule = WorkflowProcessorModule;
@@ -73,12 +74,14 @@ exports.WorkflowProcessorModule = WorkflowProcessorModule = __decorate([
73
74
  blocks_1.MarkdownMessageDocument,
74
75
  blocks_1.PlainMessageDocument,
75
76
  blocks_1.SetContext,
77
+ llm_1.AiGenerateObjectTool,
76
78
  ],
77
79
  exports: [
78
80
  services_1.RootProcessorService,
79
81
  services_1.ToolExecutionService,
80
82
  services_1.TemplateExpressionEvaluatorService,
81
83
  services_2.CreatePipelineService,
84
+ llm_1.AiGenerateObjectTool,
82
85
  ],
83
86
  })
84
87
  ], WorkflowProcessorModule);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-processor.module.js","sourceRoot":"","sources":["../../../src/modules/workflow-processor/workflow-processor.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,oDAAuD;AACvD,gDAAmD;AACnD,uCAA+C;AAC/C,sCAAyC;AACzC,6CAIsB;AACtB,yCAWoB;AACpB,yCAAmD;AACnD,iEAA6D;AAC7D,qCAqBkB;AAClB,uDAAgE;AAChE,uFAAkF;AAClF,4FAA+E;AAC/E,qGAA+F;AA0DxF,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;CAAG,CAAA;AAA1B,0DAAuB;kCAAvB,uBAAuB;IAxDnC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,sBAAe;YACf,qBAAY;YACZ,mCAAmB;YACnB,+BAAiB;SAClB;QACD,SAAS,EAAE;YACT,+BAAoB;YACpB,+BAAoB;YACpB,mCAAwB;YACxB,+BAAoB;YACpB,oCAAyB;YACzB,mCAAwB;YACxB,6CAAkC;YAClC,iCAAsB;YACtB,gCAAmB;YACnB,0CAA6B;YAC7B,oCAAuB;YACvB,wCAA6B;YAC7B,uCAA4B;YAC5B,mDAAmB;YACnB,6BAAkB;YAClB,gCAAqB;YACrB,0BAAiB;YACjB,qBAAY;YACZ,2BAAkB;YAClB,8BAAqB;YACrB,2BAAkB;YAClB,uBAAc;YACd,cAAK;YACL,4BAAmB;YACnB,yBAAiB;YACjB,+CAAqB;YACrB,4DAA2B;YAC3B,qBAAY;YACZ,0BAAW;YACX,mBAAU;YACV,qBAAY;YACZ,yBAAgB;YAChB,iBAAQ;YACR,mBAAU;YACV,uBAAc;YACd,wBAAe;YACf,6BAAoB;YACpB,gCAAuB;YACvB,6BAAoB;YACpB,mBAAU;SACX;QACD,OAAO,EAAE;YACP,+BAAoB;YACpB,+BAAoB;YACpB,6CAAkC;YAClC,gCAAqB;SACtB;KACF,CAAC;GACW,uBAAuB,CAAG"}
1
+ {"version":3,"file":"workflow-processor.module.js","sourceRoot":"","sources":["../../../src/modules/workflow-processor/workflow-processor.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,oDAAuD;AACvD,gDAAmD;AACnD,uCAA+C;AAC/C,sCAAyC;AACzC,6CAIsB;AACtB,yCAWoB;AACpB,yCAAmD;AACnD,iEAA6D;AAC7D,qCAqBkB;AAClB,uDAAgE;AAChE,uFAAkF;AAClF,4FAA+E;AAC/E,qGAA+F;AAC/F,+BAA6C;AA6DtC,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;CAAG,CAAA;AAA1B,0DAAuB;kCAAvB,uBAAuB;IA3DnC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,sBAAe;YACf,qBAAY;YACZ,mCAAmB;YACnB,+BAAiB;SAClB;QACD,SAAS,EAAE;YACT,+BAAoB;YACpB,+BAAoB;YACpB,mCAAwB;YACxB,+BAAoB;YACpB,oCAAyB;YACzB,mCAAwB;YACxB,6CAAkC;YAClC,iCAAsB;YACtB,gCAAmB;YACnB,0CAA6B;YAC7B,oCAAuB;YACvB,wCAA6B;YAC7B,uCAA4B;YAC5B,mDAAmB;YACnB,6BAAkB;YAClB,gCAAqB;YACrB,0BAAiB;YACjB,qBAAY;YACZ,2BAAkB;YAClB,8BAAqB;YACrB,2BAAkB;YAClB,uBAAc;YACd,cAAK;YACL,4BAAmB;YACnB,yBAAiB;YACjB,+CAAqB;YACrB,4DAA2B;YAC3B,qBAAY;YACZ,0BAAW;YACX,mBAAU;YACV,qBAAY;YACZ,yBAAgB;YAChB,iBAAQ;YACR,mBAAU;YACV,uBAAc;YACd,wBAAe;YACf,6BAAoB;YACpB,gCAAuB;YACvB,6BAAoB;YACpB,mBAAU;YAEV,0BAAoB;SACrB;QACD,OAAO,EAAE;YACP,+BAAoB;YACpB,+BAAoB;YACpB,6CAAkC;YAClC,gCAAqB;YACrB,0BAAoB;SACrB;KACF,CAAC;GACW,uBAAuB,CAAG"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@loopstack/core",
3
3
  "displayName": "Loopstack Core Module",
4
4
  "description": "The core module of the loopstack automation framework",
5
- "version": "0.10.1",
5
+ "version": "0.10.3",
6
6
  "author": {
7
7
  "name": "Jakob Klippel",
8
8
  "url": "https://www.linkedin.com/in/jakob-klippel//"
@@ -20,11 +20,15 @@
20
20
  "typeorm": "^0.3.20"
21
21
  },
22
22
  "dependencies": {
23
- "@loopstack/shared": "^0.10.1",
23
+ "@ai-sdk/anthropic": "^2.0.1",
24
+ "@ai-sdk/openai": "^2.0.4",
25
+ "@ai-sdk/provider-utils": "^3.0.9",
26
+ "@loopstack/shared": "^0.10.2",
24
27
  "@nestjs/bullmq": "^11.0.3",
25
28
  "@nestjs/config": "^4.0.0",
26
29
  "@nestjs/event-emitter": "^3.0.1",
27
30
  "@nestjs/schedule": "^6.0.0",
31
+ "ai": "^5.0.44",
28
32
  "ajv": "^8.17.1",
29
33
  "bullmq": "^5.56.8",
30
34
  "class-transformer": "^0.5.1",