@steedos/server 3.0.0-beta.109 → 3.0.0-beta.112

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.
@@ -41,7 +41,7 @@ let AiController = class AiController {
41
41
  }
42
42
  }
43
43
  const includeRelatedBoolean = includeRelated.toLowerCase() === "true";
44
- const results = yield this.aiService.getObjectPromptMultiple(objectApiNames, includeRelatedBoolean);
44
+ const results = yield this.aiService.getObjectSchemaWithRelated(objectApiNames, includeRelatedBoolean);
45
45
  return results;
46
46
  });
47
47
  }
@@ -68,6 +68,7 @@ __decorate([
68
68
  __metadata("design:returntype", Promise)
69
69
  ], AiController.prototype, "getObjectsPrompt", null);
70
70
  exports.AiController = AiController = __decorate([
71
+ (0, swagger_1.ApiTags)("AI"),
71
72
  (0, common_1.Controller)("/api/v6/ai"),
72
73
  __metadata("design:paramtypes", [ai_service_1.AiService])
73
74
  ], AiController);
@@ -1 +1 @@
1
- {"version":3,"file":"ai.controller.js","sourceRoot":"","sources":["../../src/ai/ai.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAQyB;AACzB,6CAAyC;AAGlC,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAgB/C,gBAAgB;6DACF,OAAa,EACN,iBAAyB,OAAO;YAEzD,IAAI,cAAc,GAAa,EAAE,CAAC;YAClC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBAAC,WAAM,CAAC;oBACP,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAGD,MAAM,qBAAqB,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;YAEtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAC1D,cAAc,EACd,qBAAqB,CACtB,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;CACF,CAAA;AAvCY,oCAAY;AAiBjB;IAdL,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,wGAAwG;QAC1G,OAAO,EAAE,aAAa;KACvB,CAAC;IACD,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,OAAO;KACd,CAAC;IACD,IAAA,YAAG,EAAC,gBAAgB,CAAC;IAEnB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;;;;oDAmBzB;uBAtCU,YAAY;IADxB,IAAA,mBAAU,EAAC,YAAY,CAAC;qCAEiB,sBAAS;GADtC,YAAY,CAuCxB"}
1
+ {"version":3,"file":"ai.controller.js","sourceRoot":"","sources":["../../src/ai/ai.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAQyB;AACzB,6CAAyC;AAIlC,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAgB/C,gBAAgB;6DACF,OAAa,EACN,iBAAyB,OAAO;YAEzD,IAAI,cAAc,GAAa,EAAE,CAAC;YAClC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBAAC,WAAM,CAAC;oBACP,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAGD,MAAM,qBAAqB,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;YAEtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAC7D,cAAc,EACd,qBAAqB,CACtB,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;CACF,CAAA;AAvCY,oCAAY;AAiBjB;IAdL,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,wGAAwG;QAC1G,OAAO,EAAE,aAAa;KACvB,CAAC;IACD,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,OAAO;KACd,CAAC;IACD,IAAA,YAAG,EAAC,gBAAgB,CAAC;IAEnB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;;;;oDAmBzB;uBAtCU,YAAY;IAFxB,IAAA,iBAAO,EAAC,IAAI,CAAC;IACb,IAAA,mBAAU,EAAC,YAAY,CAAC;qCAEiB,sBAAS;GADtC,YAAY,CAuCxB"}
@@ -11,13 +11,14 @@ const common_1 = require("@nestjs/common");
11
11
  const ai_controller_1 = require("./ai.controller");
12
12
  const ai_service_1 = require("./ai.service");
13
13
  const core_1 = require("@builder6/core");
14
+ const chat_controller_1 = require("./chat.controller");
14
15
  let AiModule = class AiModule {
15
16
  };
16
17
  exports.AiModule = AiModule;
17
18
  exports.AiModule = AiModule = __decorate([
18
19
  (0, common_1.Module)({
19
20
  imports: [core_1.AuthModule],
20
- controllers: [ai_controller_1.AiController],
21
+ controllers: [ai_controller_1.AiController, chat_controller_1.ChatController],
21
22
  providers: [ai_service_1.AiService],
22
23
  })
23
24
  ], AiModule);
@@ -1 +1 @@
1
- {"version":3,"file":"ai.module.js","sourceRoot":"","sources":["../../src/ai/ai.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAA+C;AAC/C,6CAAyC;AACzC,yCAA4C;AAOrC,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAAG,CAAA;AAAX,4BAAQ;mBAAR,QAAQ;IALpB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,iBAAU,CAAC;QACrB,WAAW,EAAE,CAAC,4BAAY,CAAC;QAC3B,SAAS,EAAE,CAAC,sBAAS,CAAC;KACvB,CAAC;GACW,QAAQ,CAAG"}
1
+ {"version":3,"file":"ai.module.js","sourceRoot":"","sources":["../../src/ai/ai.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAA+C;AAC/C,6CAAyC;AACzC,yCAA4C;AAC5C,uDAAmD;AAO5C,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAAG,CAAA;AAAX,4BAAQ;mBAAR,QAAQ;IALpB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,iBAAU,CAAC;QACrB,WAAW,EAAE,CAAC,4BAAY,EAAE,gCAAc,CAAC;QAC3C,SAAS,EAAE,CAAC,sBAAS,CAAC;KACvB,CAAC;GACW,QAAQ,CAAG"}
@@ -1,9 +1,19 @@
1
1
  export declare class AiService {
2
2
  getObjectConfig(objectApiName: string): Promise<any>;
3
- getObjectPrompt(objectApiName: string): Promise<{
3
+ getObjectSchema(objectApiName: string): Promise<{
4
4
  name: any;
5
5
  label: any;
6
6
  fields: {};
7
7
  }>;
8
- getObjectPromptMultiple(objectApiNames: string[], includeRelated: any): Promise<{}>;
8
+ getObjectSchemaWithRelated(objectApiNames: string[], includeRelated: any): Promise<{}>;
9
+ getObjectSchemaTool(): import("ai").Tool<{
10
+ objectApiName: string;
11
+ }, {
12
+ name: any;
13
+ label: any;
14
+ fields: {};
15
+ }>;
16
+ getObjectSchemaWithRelatedTool(): import("ai").Tool<{
17
+ objectApiName: string;
18
+ }, {}>;
9
19
  }
@@ -18,6 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.AiService = void 0;
19
19
  const common_1 = require("@nestjs/common");
20
20
  const objectql_1 = require("@steedos/objectql");
21
+ const zod_1 = require("zod");
22
+ const ai_1 = require("ai");
21
23
  let AiService = class AiService {
22
24
  getObjectConfig(objectApiName) {
23
25
  return __awaiter(this, void 0, void 0, function* () {
@@ -28,7 +30,7 @@ let AiService = class AiService {
28
30
  return obj.getConfig();
29
31
  });
30
32
  }
31
- getObjectPrompt(objectApiName) {
33
+ getObjectSchema(objectApiName) {
32
34
  return __awaiter(this, void 0, void 0, function* () {
33
35
  const obj = (0, objectql_1.getObject)(objectApiName);
34
36
  if (!obj) {
@@ -55,11 +57,11 @@ let AiService = class AiService {
55
57
  };
56
58
  });
57
59
  }
58
- getObjectPromptMultiple(objectApiNames, includeRelated) {
60
+ getObjectSchemaWithRelated(objectApiNames, includeRelated) {
59
61
  return __awaiter(this, void 0, void 0, function* () {
60
62
  const results = {};
61
63
  for (const objectApiName of objectApiNames) {
62
- const fields = yield this.getObjectPrompt(objectApiName);
64
+ const fields = yield this.getObjectSchema(objectApiName);
63
65
  results[objectApiName] = fields;
64
66
  if (includeRelated) {
65
67
  for (const fieldKey in fields.fields) {
@@ -67,7 +69,7 @@ let AiService = class AiService {
67
69
  if (field.type === "lookup" || field.type === "master_detail") {
68
70
  const relatedObjectApiName = field.reference_to;
69
71
  if (relatedObjectApiName && !results[relatedObjectApiName]) {
70
- const fields = yield this.getObjectPrompt(relatedObjectApiName);
72
+ const fields = yield this.getObjectSchema(relatedObjectApiName);
71
73
  results[relatedObjectApiName] = fields;
72
74
  }
73
75
  }
@@ -77,6 +79,36 @@ let AiService = class AiService {
77
79
  return results;
78
80
  });
79
81
  }
82
+ getObjectSchemaTool() {
83
+ return (0, ai_1.tool)({
84
+ description: "Get object schema",
85
+ inputSchema: zod_1.z.object({
86
+ objectApiName: zod_1.z
87
+ .string()
88
+ .describe('The object API name, e.g., "space_users"'),
89
+ }),
90
+ execute: (_a) => __awaiter(this, [_a], void 0, function* ({ objectApiName }) {
91
+ const schema = yield this.getObjectSchema(objectApiName);
92
+ console.log("Calling tool getObjectSchema:", schema);
93
+ return schema;
94
+ }),
95
+ });
96
+ }
97
+ getObjectSchemaWithRelatedTool() {
98
+ return (0, ai_1.tool)({
99
+ description: "Get schema for object and related objects",
100
+ inputSchema: zod_1.z.object({
101
+ objectApiName: zod_1.z
102
+ .string()
103
+ .describe('The object API name, e.g., "space_users"'),
104
+ }),
105
+ execute: (_a) => __awaiter(this, [_a], void 0, function* ({ objectApiName }) {
106
+ const schema = yield this.getObjectSchemaWithRelated([objectApiName], true);
107
+ console.log("Calling tool getObjectSchemaWithRelated:", schema);
108
+ return schema;
109
+ }),
110
+ });
111
+ }
80
112
  };
81
113
  exports.AiService = AiService;
82
114
  exports.AiService = AiService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"ai.service.js","sourceRoot":"","sources":["../../src/ai/ai.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gDAA8C;AAGvC,IAAM,SAAS,GAAf,MAAM,SAAS;IACd,eAAe,CAAC,aAAqB;;YACzC,MAAM,GAAG,GAAG,IAAA,oBAAS,EAAC,aAAa,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,UAAU,aAAa,YAAY,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC;KAAA;IAEK,eAAe,CAAC,aAAqB;;YACzC,MAAM,GAAG,GAAG,IAAA,oBAAS,EAAC,aAAa,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,UAAU,aAAa,YAAY,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAE/B,MAAM,gBAAgB,GAAG,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzD,MAAM,KAAK,GAAG,KAAY,CAAC;gBAC3B,IACE,CAAC,KAAK,CAAC,MAAM;oBACb,KAAK,CAAC,UAAU,IAAI,UAAU;oBAC9B,KAAK,CAAC,UAAU,IAAI,WAAW,EAC/B,CAAC;oBACD,gBAAgB,CAAC,GAAG,CAAC,GAAG;wBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;qBACjC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,gBAAgB;aACzB,CAAC;QACJ,CAAC;KAAA;IAEK,uBAAuB,CAAC,cAAwB,EAAE,cAAc;;YACpE,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBACzD,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;gBAEhC,IAAI,cAAc,EAAE,CAAC;oBAEnB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBACtC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;4BAC9D,MAAM,oBAAoB,GAAG,KAAK,CAAC,YAAY,CAAC;4BAChD,IAAI,oBAAoB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;gCAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;gCAChE,OAAO,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC;4BACzC,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;CACF,CAAA;AA7DY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;GACA,SAAS,CA6DrB"}
1
+ {"version":3,"file":"ai.service.js","sourceRoot":"","sources":["../../src/ai/ai.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Response } from "express";
2
+ import { AiService } from "./ai.service";
3
+ export declare class ChatController {
4
+ private readonly aiService;
5
+ constructor(aiService: AiService);
6
+ generateText(model: string, system: string, prompt: string): Promise<{
7
+ text: string;
8
+ }>;
9
+ streamText(model: string, system: string, prompt: string, res: Response): Promise<void>;
10
+ }
@@ -0,0 +1,113 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.ChatController = void 0;
25
+ const openai_1 = require("@ai-sdk/openai");
26
+ const common_1 = require("@nestjs/common");
27
+ const swagger_1 = require("@nestjs/swagger");
28
+ const ai_1 = require("ai");
29
+ const ai_service_1 = require("./ai.service");
30
+ let ChatController = class ChatController {
31
+ constructor(aiService) {
32
+ this.aiService = aiService;
33
+ }
34
+ generateText(model, system, prompt) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ const result = yield (0, ai_1.generateText)({
37
+ model: (0, openai_1.openai)(model),
38
+ system,
39
+ prompt,
40
+ tools: {
41
+ getObjectSchema: this.aiService.getObjectSchemaTool(),
42
+ getObjectSchemaWithRelated: this.aiService.getObjectSchemaWithRelatedTool(),
43
+ },
44
+ stopWhen: (0, ai_1.stepCountIs)(5),
45
+ });
46
+ return {
47
+ text: result.text,
48
+ };
49
+ });
50
+ }
51
+ streamText(model, system, prompt, res) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const result = (0, ai_1.streamText)({
54
+ model: (0, openai_1.openai)(model),
55
+ system,
56
+ prompt,
57
+ });
58
+ result.pipeUIMessageStreamToResponse(res);
59
+ });
60
+ }
61
+ };
62
+ exports.ChatController = ChatController;
63
+ __decorate([
64
+ (0, swagger_1.ApiBody)({
65
+ schema: {
66
+ type: "object",
67
+ },
68
+ examples: {
69
+ text: {
70
+ value: {
71
+ model: "gpt-4o",
72
+ prompt: "Invent a new holiday and describe its traditions.",
73
+ },
74
+ },
75
+ },
76
+ }),
77
+ (0, common_1.Post)("generateText"),
78
+ __param(0, (0, common_1.Body)("model")),
79
+ __param(1, (0, common_1.Body)("system")),
80
+ __param(2, (0, common_1.Body)("prompt")),
81
+ __metadata("design:type", Function),
82
+ __metadata("design:paramtypes", [String, String, String]),
83
+ __metadata("design:returntype", Promise)
84
+ ], ChatController.prototype, "generateText", null);
85
+ __decorate([
86
+ (0, swagger_1.ApiBody)({
87
+ schema: {
88
+ type: "object",
89
+ },
90
+ examples: {
91
+ text: {
92
+ value: {
93
+ model: "gpt-4o",
94
+ prompt: "Invent a new holiday and describe its traditions.",
95
+ },
96
+ },
97
+ },
98
+ }),
99
+ (0, common_1.Post)("streamText"),
100
+ __param(0, (0, common_1.Body)("model")),
101
+ __param(1, (0, common_1.Body)("system")),
102
+ __param(2, (0, common_1.Body)("prompt")),
103
+ __param(3, (0, common_1.Res)()),
104
+ __metadata("design:type", Function),
105
+ __metadata("design:paramtypes", [String, String, String, Object]),
106
+ __metadata("design:returntype", Promise)
107
+ ], ChatController.prototype, "streamText", null);
108
+ exports.ChatController = ChatController = __decorate([
109
+ (0, swagger_1.ApiTags)("AI"),
110
+ (0, common_1.Controller)("api/v6/ai/chat"),
111
+ __metadata("design:paramtypes", [ai_service_1.AiService])
112
+ ], ChatController);
113
+ //# sourceMappingURL=chat.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.controller.js","sourceRoot":"","sources":["../../src/ai/chat.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,2CAAoE;AACpE,6CAQyB;AACzB,2BAA2D;AAE3D,6CAAyC;AAIlC,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAgB/C,YAAY,CACD,KAAa,EACZ,MAAc,EACd,MAAc;;YAE9B,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAY,EAAC;gBAChC,KAAK,EAAE,IAAA,eAAM,EAAC,KAAK,CAAC;gBACpB,MAAM;gBACN,MAAM;gBACN,KAAK,EAAE;oBACL,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;oBACrD,0BAA0B,EACxB,IAAI,CAAC,SAAS,CAAC,8BAA8B,EAAE;iBAClD;gBACD,QAAQ,EAAE,IAAA,gBAAW,EAAC,CAAC,CAAC;aACzB,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC;KAAA;IAgBK,UAAU,CACC,KAAa,EACZ,MAAc,EACd,MAAc,EACvB,GAAa;;YAEpB,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC;gBACxB,KAAK,EAAE,IAAA,eAAM,EAAC,KAAK,CAAC;gBACpB,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;KAAA;CACF,CAAA;AAnEY,wCAAc;AAiBnB;IAdL,IAAA,iBAAO,EAAC;QACP,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,mDAAmD;iBAC5D;aACF;SACF;KACF,CAAC;IACD,IAAA,aAAI,EAAC,cAAc,CAAC;IAElB,WAAA,IAAA,aAAI,EAAC,OAAO,CAAC,CAAA;IACb,WAAA,IAAA,aAAI,EAAC,QAAQ,CAAC,CAAA;IACd,WAAA,IAAA,aAAI,EAAC,QAAQ,CAAC,CAAA;;;;kDAiBhB;AAgBK;IAdL,IAAA,iBAAO,EAAC;QACP,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,mDAAmD;iBAC5D;aACF;SACF;KACF,CAAC;IACD,IAAA,aAAI,EAAC,YAAY,CAAC;IAEhB,WAAA,IAAA,aAAI,EAAC,OAAO,CAAC,CAAA;IACb,WAAA,IAAA,aAAI,EAAC,QAAQ,CAAC,CAAA;IACd,WAAA,IAAA,aAAI,EAAC,QAAQ,CAAC,CAAA;IACd,WAAA,IAAA,YAAG,GAAE,CAAA;;;;gDASP;yBAlEU,cAAc;IAF1B,IAAA,iBAAO,EAAC,IAAI,CAAC;IACb,IAAA,mBAAU,EAAC,gBAAgB,CAAC;qCAEa,sBAAS;GADtC,cAAc,CAmE1B"}
@@ -33,7 +33,7 @@ else {
33
33
  }
34
34
  process.env.STEEDOS_AMIS_URL = process.env.STEEDOS_AMIS_URL.replace(/\/+$/, "");
35
35
  if ((0, lodash_1.isEmpty)(process.env.STEEDOS_WIDGETS_VERSION)) {
36
- process.env.STEEDOS_WIDGETS_VERSION = "v6.10.2-beta.2";
36
+ process.env.STEEDOS_WIDGETS_VERSION = "v6.10.2-beta.3";
37
37
  }
38
38
  if ((0, lodash_1.isEmpty)(process.env.STEEDOS_PUBLIC_PAGE_ASSETURLS)) {
39
39
  const widgetsVersion = process.env.STEEDOS_WIDGETS_VERSION;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/server",
3
- "version": "3.0.0-beta.109",
3
+ "version": "3.0.0-beta.112",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "AGPL-3.0-only",
@@ -8,8 +8,7 @@
8
8
  "dist",
9
9
  "public",
10
10
  "views",
11
- "default.steedos.settings.yml",
12
- "dist"
11
+ "default.steedos.settings.yml"
13
12
  ],
14
13
  "main": "dist/bootstrap.js",
15
14
  "scripts": {
@@ -23,15 +22,79 @@
23
22
  "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix"
24
23
  },
25
24
  "dependencies": {
26
- "@builder6/server": "^3.0.9",
25
+ "@ai-sdk/openai": "^2.0.52",
26
+ "@builder6/cli": "3.0.9",
27
+ "@builder6/core": "3.0.9",
28
+ "@builder6/docs": "3.0.9",
29
+ "@builder6/email": "3.0.9",
30
+ "@builder6/files": "3.0.9",
31
+ "@builder6/microservices": "3.0.9",
32
+ "@builder6/moleculer": "3.0.9",
33
+ "@builder6/oidc": "3.0.9",
34
+ "@builder6/oidc-provider": "3.0.9",
35
+ "@builder6/onlyoffice": "3.0.9",
36
+ "@builder6/pages": "3.0.9",
37
+ "@builder6/query-mongodb": "3.0.9",
38
+ "@builder6/rooms": "3.0.9",
39
+ "@builder6/services": "3.0.9",
40
+ "@builder6/sharepoint": "3.0.9",
41
+ "@builder6/steedos": "3.0.9",
42
+ "@builder6/tables": "3.0.9",
43
+ "@nestjs/common": "^11.0.0",
44
+ "@nestjs/config": "^4.0.1",
45
+ "@nestjs/core": "^11.0.0",
46
+ "@nestjs/jwt": "^11.0.0",
47
+ "@nestjs/microservices": "^11.0.15",
48
+ "@nestjs/passport": "^11.0.0",
49
+ "@nestjs/platform-express": "^11.0.0",
50
+ "@nestjs/platform-socket.io": "^11.0.0",
51
+ "@nestjs/platform-ws": "^11.0.0",
52
+ "@nestjs/schedule": "^5.0.0",
27
53
  "@nestjs/schematics": "^11.0.2",
54
+ "@nestjs/serve-static": "^5.0.0",
28
55
  "@nestjs/swagger": "^11.0.0",
29
- "@steedos/auth": "3.0.0-beta.109",
56
+ "@nestjs/websockets": "^11.0.0",
57
+ "@steedos/auth": "3.0.0-beta.112",
30
58
  "@steedos/ee_unpkg": "1.0.1",
31
- "@steedos/objectql": "3.0.0-beta.109",
32
- "@steedos/service-community": "3.0.0-beta.109",
33
- "@steedos/service-enterprise": "3.0.0-beta.109",
34
- "@steedos/webapp": "3.0.0-beta.109"
59
+ "@steedos/objectql": "3.0.0-beta.112",
60
+ "@steedos/service-community": "3.0.0-beta.112",
61
+ "@steedos/service-enterprise": "3.0.0-beta.112",
62
+ "@steedos/webapp": "3.0.0-beta.112",
63
+ "@types/multer": "^1.4.12",
64
+ "ai": "^5.0.71",
65
+ "aws-sdk": "^2.1692.0",
66
+ "axios": "^1.7.9",
67
+ "bcrypt": "^5.1.1",
68
+ "class-validator": "^0.14.1",
69
+ "compression": "^1.7.5",
70
+ "connect-redis": "8.0.2",
71
+ "cookie-parser": "^1.4.7",
72
+ "crypto-js": "^4.2.0",
73
+ "dotenv": "^16.4.5",
74
+ "dotenv-flow": "^4.1.0",
75
+ "express-session": "^1.18.1",
76
+ "fs-extra": "^11.2.0",
77
+ "hbs": "^4.2.0",
78
+ "http-proxy-middleware": "^3.0.3",
79
+ "ioredis": "^5.4.1",
80
+ "mime-types": "^2.1.35",
81
+ "moleculer": "^0.14.35",
82
+ "mongodb": "^3.7.3",
83
+ "multer": "^1.4.5-lts.1",
84
+ "nestjs-pino": "^4.2.0",
85
+ "nopt": "5.0.0",
86
+ "passport": "^0.7.0",
87
+ "passport-local": "^1.0.0",
88
+ "passport-openidconnect": "^0.1.2",
89
+ "raw-body": "^3.0.0",
90
+ "redis": "^4.7.0",
91
+ "reflect-metadata": "^0.2.0",
92
+ "regenerator-runtime": "^0.14.1",
93
+ "rxjs": "^7.8.1",
94
+ "sha256": "^0.2.0",
95
+ "uuid": "^9.0.0",
96
+ "ws": "8.13.0",
97
+ "zod": "^4.1.12"
35
98
  },
36
99
  "devDependencies": {
37
100
  "@nestjs/cli": "^11.0.0",
@@ -73,9 +136,8 @@
73
136
  "coverageDirectory": "../coverage",
74
137
  "testEnvironment": "node"
75
138
  },
76
- "private": false,
77
139
  "publishConfig": {
78
140
  "access": "public"
79
141
  },
80
- "gitHead": "5c0958e88a1e3db12f511609cd827e3e93782822"
142
+ "gitHead": "742d399ecaca836729c200044deee3ef0988be14"
81
143
  }