@loopstack/ai-module 0.18.0-rc.0 → 0.18.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.
@@ -1,9 +1,9 @@
1
- import { ModelMessage } from '@ai-sdk/provider-utils';
1
+ import { UIDataTypes, UIMessage, UITools } from 'ai';
2
2
  import { DocumentEntity } from '@loopstack/common';
3
3
  export declare class AiMessagesHelperService {
4
4
  private searchMessages;
5
5
  getMessages(documents: DocumentEntity[], args: {
6
- messages?: ModelMessage[];
6
+ messages?: Omit<UIMessage<unknown, UIDataTypes, UITools>, 'id'>[];
7
7
  messagesSearchTag?: string;
8
- }): ModelMessage[];
8
+ }): Omit<UIMessage<unknown, UIDataTypes, UITools>, 'id'>[];
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-messages-helper.service.js","sourceRoot":"","sources":["../../src/services/ai-messages-helper.service.ts"],"names":[],"mappings":";;;;;;;;;AACA,2CAA4C;AAIrC,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAC1B,cAAc,CAAC,SAA2B,EAAE,GAAW;QAC7D,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAC7D,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAuB,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CACT,SAA2B,EAC3B,IAA+D;QAE/D,IAAI,QAAQ,GAA+B,IAAI,CAAC,QAAQ,CAAC;QACzD,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;AAnBY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;GACA,uBAAuB,CAmBnC"}
1
+ {"version":3,"file":"ai-messages-helper.service.js","sourceRoot":"","sources":["../../src/services/ai-messages-helper.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAKrC,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAC1B,cAAc,CACpB,SAA2B,EAC3B,GAAW;QAEX,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAC7D,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAA+D,CAAC,CAAC;IACjG,CAAC;IAED,WAAW,CACT,SAA2B,EAC3B,IAAuG;QAEvG,IAAI,QAAQ,GAAuE,IAAI,CAAC,QAAQ,CAAC;QACjG,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;AAtBY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;GACA,uBAAuB,CAsBnC"}
@@ -33,15 +33,21 @@ let AiGenerateObject = class AiGenerateObject extends core_1.ToolBase {
33
33
  }
34
34
  async execute(args, ctx, parent) {
35
35
  const model = this.aiProviderModelHelperService.getProviderModel(args.llm);
36
- const options = {};
36
+ const options = {
37
+ messages: [],
38
+ };
37
39
  if (args.prompt) {
38
- options.prompt = args.prompt;
40
+ options.messages.push({
41
+ role: 'user',
42
+ content: args.prompt,
43
+ });
39
44
  }
40
45
  else {
41
- options.messages = this.aiMessagesHelperService.getMessages(ctx.state.getMetadata('documents'), {
46
+ const messages = this.aiMessagesHelperService.getMessages(ctx.state.getMetadata('documents'), {
42
47
  messages: args.messages,
43
48
  messagesSearchTag: args.messagesSearchTag,
44
49
  });
50
+ options.messages = await (0, ai_1.convertToModelMessages)(messages);
45
51
  }
46
52
  const document = parent.getDocument(args.response.document);
47
53
  if (!document) {
@@ -53,16 +59,19 @@ let AiGenerateObject = class AiGenerateObject extends core_1.ToolBase {
53
59
  }
54
60
  options.schema = responseSchema;
55
61
  const response = await this.handleGenerateObject(model, options);
62
+ console.log(response);
56
63
  return {
57
- data: response.object,
64
+ data: response.output,
58
65
  };
59
66
  }
60
67
  async handleGenerateObject(model, options) {
61
68
  const startTime = performance.now();
62
69
  try {
63
- return (0, ai_1.generateObject)({
70
+ console.log(options.schema);
71
+ return (0, ai_1.generateText)({
64
72
  model,
65
- ...options,
73
+ messages: options.messages,
74
+ ...(options.schema ? { output: ai_1.Output.object({ schema: options.schema }) } : {}),
66
75
  });
67
76
  }
68
77
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ai-generate-object.tool.js","sourceRoot":"","sources":["../../src/tools/ai-generate-object.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-generate-object.tool.js","sourceRoot":"","sources":["../../src/tools/ai-generate-object.tool.ts"],"names":[],"mappings":"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"}
@@ -34,16 +34,24 @@ let AiGenerateText = class AiGenerateText extends core_1.ToolBase {
34
34
  }
35
35
  async execute(args, ctx, parent) {
36
36
  const model = this.aiProviderModelHelperService.getProviderModel(args.llm);
37
- const options = {};
37
+ const options = {
38
+ messages: [],
39
+ };
38
40
  options.tools = args.tools ? this.aiToolsHelperService.getTools(args.tools, parent) : undefined;
39
41
  if (args.prompt) {
40
- options.prompt = args.prompt;
42
+ options.messages.push({
43
+ role: 'user',
44
+ content: args.prompt,
45
+ });
41
46
  }
42
47
  else {
43
- options.messages = this.aiMessagesHelperService.getMessages(ctx.state.getMetadata('documents'), {
48
+ const messages = this.aiMessagesHelperService.getMessages(ctx.state.getMetadata('documents'), {
44
49
  messages: args.messages,
45
50
  messagesSearchTag: args.messagesSearchTag,
46
51
  });
52
+ options.messages = await (0, ai_1.convertToModelMessages)(messages, {
53
+ tools: options.tools,
54
+ });
47
55
  }
48
56
  const uiMessage = await this.handleGenerateText(model, options);
49
57
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"ai-generate-text.tool.js","sourceRoot":"","sources":["../../src/tools/ai-generate-text.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-generate-text.tool.js","sourceRoot":"","sources":["../../src/tools/ai-generate-text.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2CAA4C;AAC5C,2BAAkH;AAClH,6BAAwB;AACxB,8CAA2E;AAC3E,0CAAyD;AAEzD,0FAAmF;AACnF,0CAAsD;AACtD,0CAA2D;AAC3D,0CAAmD;AAEtC,QAAA,oBAAoB,GAAG,uDAAwB,CAAC,MAAM,CAAC;IAClE,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC,MAAM,EAAE,CAAC;AAWL,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,eAAgC;IAE/C;IACA;IACA;IAHnB,YACmB,uBAAgD,EAChD,oBAA0C,EAC1C,4BAA0D;QAE3E,KAAK,EAAE,CAAC;QAJS,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,iCAA4B,GAA5B,4BAA4B,CAA8B;IAG7E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA4B,EAAE,GAAsB,EAAE,MAAoB;QACtF,MAAM,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3E,MAAM,OAAO,GAIT;YACF,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI,CAAC,MAAM;aACL,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;gBAC5F,QAAQ,EAAE,IAAI,CAAC,QAAkC;gBACjD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAA,2BAAsB,EAAC,QAAQ,EAAE;gBACxD,KAAK,EAAE,OAAO,CAAC,KAAgB;aAChC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEhE,OAAO;YACL,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,KAAoB,EACpB,OAIC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC;gBACxB,KAAK;gBACL,GAAG,OAAO;aACyB,CAAC,CAAC;YAEvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,IAAA,0BAAqB,EAAC;oBACnC,OAAO,CAAC,EAAE,MAAM,EAAE;wBAChB,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,iBAAiB,CAAC;4BACvB,aAAa,EAAE,IAAI;yBACpB,CAAC,CACH,CAAC;oBACJ,CAAC;oBACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;wBACjB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAChC,CAAC;iBACF,CAAC,CAAC;gBAGH,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;wBAClC,OAAO,IAAI,EAAE,CAAC;4BACZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;4BACrC,IAAI,IAAI;gCAAE,MAAM;wBAClB,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,wBAAwB,iBAAiB,KAAK,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA7FY,wCAAc;yBAAd,cAAc;IAP1B,IAAA,mBAAU,GAAE;IACZ,IAAA,oBAAW,EAAC;QACX,MAAM,EAAE;YACN,WAAW,EAAE,4BAA4B;SAC1C;KACF,CAAC;IACD,IAAA,sBAAa,EAAC,4BAAoB,CAAC;qCAGU,kCAAuB;QAC1B,+BAAoB;QACZ,uCAA4B;GAJlE,cAAc,CA6F1B"}
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "openai",
11
11
  "tool"
12
12
  ],
13
- "version": "0.18.0-rc.0",
13
+ "version": "0.18.0",
14
14
  "license": "Apache-2.0",
15
15
  "author": {
16
16
  "name": "Jakob Klippel",
@@ -34,9 +34,9 @@
34
34
  "@ai-sdk/anthropic": "^3.0.23",
35
35
  "@ai-sdk/openai": "^3.0.19",
36
36
  "@ai-sdk/provider-utils": "^4.0.9",
37
- "@loopstack/common": "^0.18.0-rc.1",
38
- "@loopstack/core": "^0.18.0-rc.1",
39
- "@loopstack/core-ui-module": "^0.18.0-rc.0",
37
+ "@loopstack/common": "^0.18.0",
38
+ "@loopstack/core": "^0.18.0",
39
+ "@loopstack/core-ui-module": "^0.18.0",
40
40
  "@nestjs/common": "^11.1.12",
41
41
  "@nestjs/config": "^4.0.2",
42
42
  "@nestjs/core": "^11.1.12",
@@ -1,21 +1,24 @@
1
- import { ModelMessage } from '@ai-sdk/provider-utils';
2
1
  import { Injectable } from '@nestjs/common';
2
+ import { UIDataTypes, UIMessage, UITools } from 'ai';
3
3
  import { DocumentEntity } from '@loopstack/common';
4
4
 
5
5
  @Injectable()
6
6
  export class AiMessagesHelperService {
7
- private searchMessages(documents: DocumentEntity[], tag: string): ModelMessage[] {
7
+ private searchMessages(
8
+ documents: DocumentEntity[],
9
+ tag: string,
10
+ ): Omit<UIMessage<unknown, UIDataTypes, UITools>, 'id'>[] {
8
11
  return documents
9
12
  .filter((document) => document.tags?.includes(tag))
10
13
  .sort((a, b) => a.createdAt.valueOf() - b.createdAt.valueOf())
11
- .map((document) => document.content as ModelMessage);
14
+ .map((document) => document.content as Omit<UIMessage<unknown, UIDataTypes, UITools>, 'id'>);
12
15
  }
13
16
 
14
17
  getMessages(
15
18
  documents: DocumentEntity[],
16
- args: { messages?: ModelMessage[]; messagesSearchTag?: string },
17
- ): ModelMessage[] {
18
- let messages: ModelMessage[] | undefined = args.messages;
19
+ args: { messages?: Omit<UIMessage<unknown, UIDataTypes, UITools>, 'id'>[]; messagesSearchTag?: string },
20
+ ): Omit<UIMessage<unknown, UIDataTypes, UITools>, 'id'>[] {
21
+ let messages: Omit<UIMessage<unknown, UIDataTypes, UITools>, 'id'>[] | undefined = args.messages;
19
22
  if (!messages?.length) {
20
23
  messages = this.searchMessages(documents, args.messagesSearchTag ?? 'message');
21
24
  }
@@ -1,5 +1,13 @@
1
1
  import { ModelMessage } from '@ai-sdk/provider-utils';
2
- import { GenerateObjectResult, LanguageModel, generateObject } from 'ai';
2
+ import {
3
+ GenerateTextResult,
4
+ LanguageModel,
5
+ Output,
6
+ ToolSet,
7
+ UIMessage,
8
+ convertToModelMessages,
9
+ generateText,
10
+ } from 'ai';
3
11
  import { z } from 'zod';
4
12
  import { BlockConfig, ToolResult, WithArguments } from '@loopstack/common';
5
13
  import { ToolBase, WorkflowBase } from '@loopstack/core';
@@ -36,18 +44,24 @@ export class AiGenerateObject extends ToolBase<AiGenerateObjectArgsType> {
36
44
  const model = this.aiProviderModelHelperService.getProviderModel(args.llm);
37
45
 
38
46
  const options: {
39
- prompt?: string;
40
- messages?: ModelMessage[];
47
+ messages: ModelMessage[];
41
48
  schema?: z.ZodSchema;
42
- } = {};
49
+ } = {
50
+ messages: [],
51
+ };
43
52
 
44
53
  if (args.prompt) {
45
- options.prompt = args.prompt;
54
+ options.messages.push({
55
+ role: 'user',
56
+ content: args.prompt,
57
+ } as ModelMessage);
46
58
  } else {
47
- options.messages = this.aiMessagesHelperService.getMessages(ctx.state.getMetadata('documents'), {
48
- messages: args.messages as ModelMessage[],
59
+ const messages = this.aiMessagesHelperService.getMessages(ctx.state.getMetadata('documents'), {
60
+ messages: args.messages as unknown as UIMessage[],
49
61
  messagesSearchTag: args.messagesSearchTag,
50
62
  });
63
+
64
+ options.messages = await convertToModelMessages(messages);
51
65
  }
52
66
 
53
67
  const document: Block | undefined = parent.getDocument(args.response.document);
@@ -63,25 +77,29 @@ export class AiGenerateObject extends ToolBase<AiGenerateObjectArgsType> {
63
77
 
64
78
  const response = await this.handleGenerateObject(model, options);
65
79
 
80
+ console.log(response);
81
+
66
82
  return {
67
- data: response.object,
83
+ data: response.output,
68
84
  };
69
85
  }
70
86
 
71
87
  private async handleGenerateObject(
72
88
  model: LanguageModel,
73
89
  options: {
74
- prompt?: string;
75
- messages?: ModelMessage[];
90
+ messages: ModelMessage[];
76
91
  schema?: z.ZodSchema;
77
92
  },
78
- ): Promise<GenerateObjectResult<unknown>> {
93
+ ): Promise<GenerateTextResult<ToolSet, any>> {
79
94
  const startTime = performance.now();
80
95
  try {
81
- return generateObject({
96
+ console.log(options.schema);
97
+
98
+ return generateText({
82
99
  model,
83
- ...options,
84
- } as Parameters<typeof generateObject>[0]);
100
+ messages: options.messages,
101
+ ...(options.schema ? { output: Output.object({ schema: options.schema }) } : {}),
102
+ });
85
103
  } catch (error) {
86
104
  const errorResponseTime = performance.now() - startTime;
87
105
  console.error(`Request failed after ${errorResponseTime}ms:`, error);
@@ -1,6 +1,6 @@
1
1
  import { ModelMessage } from '@ai-sdk/provider-utils';
2
2
  import { Injectable } from '@nestjs/common';
3
- import { LanguageModel, UIMessage, createUIMessageStream, streamText } from 'ai';
3
+ import { LanguageModel, ToolSet, UIMessage, convertToModelMessages, createUIMessageStream, streamText } from 'ai';
4
4
  import { z } from 'zod';
5
5
  import { BlockConfig, ToolResult, WithArguments } from '@loopstack/common';
6
6
  import { ToolBase, WorkflowBase } from '@loopstack/core';
@@ -37,19 +37,28 @@ export class AiGenerateText extends ToolBase<AiGenerateTextArgsType> {
37
37
 
38
38
  const options: {
39
39
  prompt?: string;
40
- messages?: ModelMessage[];
40
+ messages: ModelMessage[];
41
41
  tools?: Record<string, unknown>;
42
- } = {};
42
+ } = {
43
+ messages: [],
44
+ };
43
45
 
44
46
  options.tools = args.tools ? this.aiToolsHelperService.getTools(args.tools, parent) : undefined;
45
47
 
46
48
  if (args.prompt) {
47
- options.prompt = args.prompt;
49
+ options.messages.push({
50
+ role: 'user',
51
+ content: args.prompt,
52
+ } as ModelMessage);
48
53
  } else {
49
- options.messages = this.aiMessagesHelperService.getMessages(ctx.state.getMetadata('documents'), {
50
- messages: args.messages as ModelMessage[],
54
+ const messages = this.aiMessagesHelperService.getMessages(ctx.state.getMetadata('documents'), {
55
+ messages: args.messages as unknown as UIMessage[],
51
56
  messagesSearchTag: args.messagesSearchTag,
52
57
  });
58
+
59
+ options.messages = await convertToModelMessages(messages, {
60
+ tools: options.tools as ToolSet,
61
+ });
53
62
  }
54
63
 
55
64
  const uiMessage = await this.handleGenerateText(model, options);