@solidstarters/solid-core 1.2.180 → 1.2.183

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dev-grooming-docs/ozzy-prompts.txt +28 -3
  2. package/dist/config/iam.config.d.ts.map +1 -1
  3. package/dist/config/iam.config.js +2 -1
  4. package/dist/config/iam.config.js.map +1 -1
  5. package/dist/controllers/service.controller.d.ts.map +1 -1
  6. package/dist/controllers/service.controller.js +0 -1
  7. package/dist/controllers/service.controller.js.map +1 -1
  8. package/dist/decorators/active-user.decorator.d.ts +1 -1
  9. package/dist/dtos/create-menu-item-metadata.dto.d.ts +3 -0
  10. package/dist/dtos/create-menu-item-metadata.dto.d.ts.map +1 -1
  11. package/dist/dtos/create-menu-item-metadata.dto.js +4 -1
  12. package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
  13. package/dist/dtos/create-role-metadata.dto.d.ts +4 -0
  14. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  15. package/dist/dtos/create-role-metadata.dto.js +45 -1
  16. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  17. package/dist/interfaces.d.ts +20 -0
  18. package/dist/interfaces.d.ts.map +1 -1
  19. package/dist/interfaces.js.map +1 -1
  20. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +7 -1
  21. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  22. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +70 -9
  23. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  24. package/dist/repository/view-metadata.repository.d.ts +1 -0
  25. package/dist/repository/view-metadata.repository.d.ts.map +1 -1
  26. package/dist/repository/view-metadata.repository.js +14 -0
  27. package/dist/repository/view-metadata.repository.js.map +1 -1
  28. package/dist/seeders/module-metadata-seeder.service.d.ts +52 -42
  29. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  30. package/dist/seeders/module-metadata-seeder.service.js +259 -202
  31. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  32. package/dist/seeders/permission-metadata-seeder.service.js +0 -1
  33. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  34. package/dist/seeders/seed-data/solid-core-metadata.json +2 -3
  35. package/dist/services/ai-interaction.service.d.ts +3 -3
  36. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  37. package/dist/services/ai-interaction.service.js +5 -5
  38. package/dist/services/ai-interaction.service.js.map +1 -1
  39. package/dist/services/genai/ingest-metadata.service.d.ts.map +1 -1
  40. package/dist/services/genai/ingest-metadata.service.js +46 -35
  41. package/dist/services/genai/ingest-metadata.service.js.map +1 -1
  42. package/dist/services/{mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts → genai/mcp-handlers/mcp-handler-factory.service.d.ts} +3 -3
  43. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +1 -0
  44. package/dist/services/{mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js → genai/mcp-handlers/mcp-handler-factory.service.js} +10 -10
  45. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +1 -0
  46. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +12 -0
  47. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +1 -0
  48. package/dist/services/{mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js} +19 -20
  49. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +1 -0
  50. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +16 -0
  51. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +1 -0
  52. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +75 -0
  53. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +1 -0
  54. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.d.ts → genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts} +9 -9
  55. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +1 -0
  56. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js} +13 -13
  57. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +1 -0
  58. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +12 -0
  59. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +1 -0
  60. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js} +8 -8
  61. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +1 -0
  62. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.d.ts → genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts} +4 -4
  63. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +1 -0
  64. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js} +8 -8
  65. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +1 -0
  66. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +12 -0
  67. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +1 -0
  68. package/dist/services/{mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js} +8 -8
  69. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +1 -0
  70. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +14 -0
  71. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +1 -0
  72. package/dist/services/{mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js} +14 -16
  73. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +1 -0
  74. package/dist/services/{mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts → genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts} +4 -4
  75. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +1 -0
  76. package/dist/services/{mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-create-module-mcp-handler.service.js} +13 -10
  77. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +1 -0
  78. package/dist/services/{mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.d.ts → genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts} +3 -3
  79. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +1 -0
  80. package/dist/services/{mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.js → genai/mcp-handlers/solid-update-layout-mcp-handler.service.js} +12 -10
  81. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +1 -0
  82. package/dist/services/import-transaction.service.js +2 -2
  83. package/dist/services/import-transaction.service.js.map +1 -1
  84. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  85. package/dist/services/menu-item-metadata.service.js +0 -2
  86. package/dist/services/menu-item-metadata.service.js.map +1 -1
  87. package/dist/services/model-metadata.service.d.ts.map +1 -1
  88. package/dist/services/model-metadata.service.js.map +1 -1
  89. package/dist/services/module-metadata.service.d.ts.map +1 -1
  90. package/dist/services/module-metadata.service.js +1 -1
  91. package/dist/services/module-metadata.service.js.map +1 -1
  92. package/dist/services/role-metadata.service.d.ts.map +1 -1
  93. package/dist/services/role-metadata.service.js +1 -7
  94. package/dist/services/role-metadata.service.js.map +1 -1
  95. package/dist/services/solid-ts-morph.service.d.ts +28 -0
  96. package/dist/services/solid-ts-morph.service.d.ts.map +1 -0
  97. package/dist/services/solid-ts-morph.service.js +222 -0
  98. package/dist/services/solid-ts-morph.service.js.map +1 -0
  99. package/dist/solid-core.module.d.ts.map +1 -1
  100. package/dist/solid-core.module.js +22 -18
  101. package/dist/solid-core.module.js.map +1 -1
  102. package/dist/tsconfig.tsbuildinfo +1 -1
  103. package/package.json +6 -4
  104. package/solid_seed_fixes.ts.txt +93 -0
  105. package/src/config/iam.config.ts +2 -1
  106. package/src/controllers/service.controller.ts +4 -1
  107. package/src/dtos/create-menu-item-metadata.dto.ts +5 -1
  108. package/src/dtos/create-role-metadata.dto.ts +60 -1
  109. package/src/interfaces.ts +29 -2
  110. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +74 -8
  111. package/src/repository/view-metadata.repository.ts +15 -0
  112. package/src/seeders/module-metadata-seeder.service.ts +355 -282
  113. package/src/seeders/permission-metadata-seeder.service.ts +1 -1
  114. package/src/seeders/seed-data/solid-core-metadata.json +3 -5
  115. package/src/services/ai-interaction.service.ts +3 -5
  116. package/src/services/genai/ingest-metadata.service.ts +115 -39
  117. package/src/services/{mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.ts → genai/mcp-handlers/mcp-handler-factory.service.ts} +5 -5
  118. package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +68 -0
  119. package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +71 -0
  120. package/src/services/{mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts} +8 -8
  121. package/src/services/{mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts} +3 -3
  122. package/src/services/{mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts} +3 -3
  123. package/src/services/{mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts} +3 -3
  124. package/src/services/{mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts} +8 -10
  125. package/src/services/{mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-create-module-mcp-handler.service.ts} +8 -5
  126. package/src/services/{mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.ts → genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts} +11 -5
  127. package/src/services/import-transaction.service.ts +2 -2
  128. package/src/services/menu-item-metadata.service.ts +3 -7
  129. package/src/services/model-metadata.service.ts +0 -3
  130. package/src/services/module-metadata.service.ts +2 -3
  131. package/src/services/role-metadata.service.ts +22 -8
  132. package/src/services/solid-ts-morph.service.ts +263 -0
  133. package/src/solid-core.module.ts +25 -19
  134. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts.map +0 -1
  135. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js.map +0 -1
  136. package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.d.ts +0 -16
  137. package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.d.ts.map +0 -1
  138. package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.js.map +0 -1
  139. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.d.ts.map +0 -1
  140. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.js.map +0 -1
  141. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.d.ts +0 -12
  142. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.d.ts.map +0 -1
  143. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.js.map +0 -1
  144. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.d.ts.map +0 -1
  145. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.js.map +0 -1
  146. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.d.ts +0 -12
  147. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.d.ts.map +0 -1
  148. package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.js.map +0 -1
  149. package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.d.ts +0 -16
  150. package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.d.ts.map +0 -1
  151. package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.js.map +0 -1
  152. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts.map +0 -1
  153. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js.map +0 -1
  154. package/dist/services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.d.ts.map +0 -1
  155. package/dist/services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.js.map +0 -1
  156. package/src/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.ts +0 -56
@@ -9,17 +9,17 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SolidCreateDashboardMcpToolResponseHandler = void 0;
12
+ exports.SolidCreateDashboardMcpHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const class_transformer_1 = require("class-transformer");
15
- const create_dashboard_dto_1 = require("../../dtos/create-dashboard.dto");
16
- const action_metadata_service_1 = require("../action-metadata.service");
17
- const dashboard_service_1 = require("../dashboard.service");
18
- const menu_item_metadata_service_1 = require("../menu-item-metadata.service");
19
- const model_metadata_service_1 = require("../model-metadata.service");
20
- const module_metadata_service_1 = require("../module-metadata.service");
21
- const role_metadata_service_1 = require("../role-metadata.service");
22
- let SolidCreateDashboardMcpToolResponseHandler = class SolidCreateDashboardMcpToolResponseHandler {
15
+ const create_dashboard_dto_1 = require("../../../dtos/create-dashboard.dto");
16
+ const action_metadata_service_1 = require("../../action-metadata.service");
17
+ const dashboard_service_1 = require("../../dashboard.service");
18
+ const menu_item_metadata_service_1 = require("../../menu-item-metadata.service");
19
+ const model_metadata_service_1 = require("../../model-metadata.service");
20
+ const module_metadata_service_1 = require("../../module-metadata.service");
21
+ const role_metadata_service_1 = require("../../role-metadata.service");
22
+ let SolidCreateDashboardMcpHandler = class SolidCreateDashboardMcpHandler {
23
23
  constructor(dashboardService, actionMetadataService, menuItemMetadataService, moduleMetadataService, modelMetadataService, roleService) {
24
24
  this.dashboardService = dashboardService;
25
25
  this.actionMetadataService = actionMetadataService;
@@ -101,8 +101,8 @@ let SolidCreateDashboardMcpToolResponseHandler = class SolidCreateDashboardMcpTo
101
101
  return { dashboardDto, dashboard };
102
102
  }
103
103
  };
104
- exports.SolidCreateDashboardMcpToolResponseHandler = SolidCreateDashboardMcpToolResponseHandler;
105
- exports.SolidCreateDashboardMcpToolResponseHandler = SolidCreateDashboardMcpToolResponseHandler = __decorate([
104
+ exports.SolidCreateDashboardMcpHandler = SolidCreateDashboardMcpHandler;
105
+ exports.SolidCreateDashboardMcpHandler = SolidCreateDashboardMcpHandler = __decorate([
106
106
  (0, common_1.Injectable)(),
107
107
  __metadata("design:paramtypes", [dashboard_service_1.DashboardService,
108
108
  action_metadata_service_1.ActionMetadataService,
@@ -110,5 +110,5 @@ exports.SolidCreateDashboardMcpToolResponseHandler = SolidCreateDashboardMcpTool
110
110
  module_metadata_service_1.ModuleMetadataService,
111
111
  model_metadata_service_1.ModelMetadataService,
112
112
  role_metadata_service_1.RoleMetadataService])
113
- ], SolidCreateDashboardMcpToolResponseHandler);
114
- //# sourceMappingURL=solid-create-dashboard-mcp-tool-response-handler.service.js.map
113
+ ], SolidCreateDashboardMcpHandler);
114
+ //# sourceMappingURL=solid-create-dashboard-mcp-handler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-dashboard-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { plainToInstance } from \"class-transformer\";\nimport { CreateDashboardDto } from \"src/dtos/create-dashboard.dto\";\nimport { UpdateMenuItemMetadataDto } from \"src/dtos/update-menu-item-metadata.dto\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { Dashboard } from \"src/entities/dashboard.entity\";\nimport { IMcpToolResponseHandler } from \"../../../interfaces\";\nimport { ActionMetadataService } from \"../../action-metadata.service\";\nimport { DashboardService } from \"../../dashboard.service\";\nimport { MenuItemMetadataService } from \"../../menu-item-metadata.service\";\nimport { ModelMetadataService } from \"../../model-metadata.service\";\nimport { ModuleMetadataService } from \"../../module-metadata.service\";\nimport { RoleMetadataService } from \"../../role-metadata.service\";\n\n@Injectable()\nexport class SolidCreateDashboardMcpHandler implements IMcpToolResponseHandler {\n\n constructor(\n private readonly dashboardService: DashboardService,\n private readonly actionMetadataService: ActionMetadataService,\n private readonly menuItemMetadataService: MenuItemMetadataService,\n private readonly moduleMetadataService: ModuleMetadataService,\n private readonly modelMetadataService: ModelMetadataService,\n private readonly roleService: RoleMetadataService, // Assuming roleService is a Mongoose model, adjust as necessary\n ) {\n }\n\n async apply(aiInteraction: AiInteraction) {\n const escapedMessage = aiInteraction.message.replace(/\\\\'/g, \"'\");\n const aiResponseMessage = JSON.parse(escapedMessage);\n\n const { dashboardDto, dashboard } = await this.createDashboard(aiResponseMessage);\n\n const { moduleUserKey, actionMetadataEntity } = await this.createActionMetadataEntry(dashboardDto, dashboard);\n\n await this.createMenuItemEntry(dashboard, moduleUserKey, actionMetadataEntity);\n\n // TODO: decide on some shape to return hre...\n return {\n seedingRequired: false,\n serverRebooting: false,\n }\n }\n\n\n private async createMenuItemEntry(dashboard: Dashboard, moduleUserKey: string, actionMetadataEntity: any) {\n const menuData = {\n displayName: dashboard.displayName || dashboard.name,\n name: `${moduleUserKey}-${dashboard.name}-dashboard-menu-item`,\n sequenceNumber: 1,\n actionUserKey: actionMetadataEntity.name,\n moduleUserKey: moduleUserKey,\n parentMenuItemUserKey: '',\n };\n\n const adminRole = await this.roleService.findRoleByName('Admin');\n const specifiedRoles = menuData['roles'];\n\n // If the developer has specified roles, then resolve them, making sure that admin role is also given.\n const specifiedRoleObjects = [adminRole];\n if (specifiedRoles) {\n for (let i = 0; i < specifiedRoles.length; i++) {\n const specifiedRole = specifiedRoles[i];\n const specifiedRoleObject = await this.roleService.findRoleByName(specifiedRole);\n if (!specifiedRoleObject) {\n throw new Error(`Invalid role: (${specifiedRole}) specified against menu with display name ${menuData.displayName}.`);\n }\n specifiedRoleObjects.push(specifiedRoleObject);\n }\n }\n\n menuData['roles'] = specifiedRoleObjects;\n menuData['action'] = await this.actionMetadataService.findOneByUserKey(menuData.actionUserKey);\n menuData['module'] = await this.moduleMetadataService.findOneByUserKey(menuData.moduleUserKey);\n\n if (menuData.parentMenuItemUserKey) {\n menuData['parentMenuItem'] = await this.menuItemMetadataService.findOneByUserKey(menuData.parentMenuItemUserKey);\n } else {\n menuData['parentMenuItem'] = null;\n }\n await this.menuItemMetadataService.upsert(menuData as unknown as UpdateMenuItemMetadataDto);\n }\n\n private async createActionMetadataEntry(dashboardDto: CreateDashboardDto, dashboard: Dashboard) {\n const moduleUserKey = dashboardDto.moduleUserKey;\n const actionMetadata = {\n name: `${dashboard.name}-view`,\n displayName: dashboard.displayName || dashboard.name,\n type: 'custom',\n domain: \"{}\",\n context: \"{}\",\n customComponent: `/admin/core/${moduleUserKey}/dashboards?dashboardName=${dashboard.name}`,\n customIsModal: true,\n serverEndpoint: '',\n moduleUserKey: moduleUserKey,\n modelUserKey: '',\n viewUserKey: `${dashboard.name}-view`,\n };\n actionMetadata['module'] = await this.moduleMetadataService.findOneByUserKey(actionMetadata.moduleUserKey);\n if (actionMetadata.modelUserKey) {\n actionMetadata['model'] = await this.modelMetadataService.findOneByUserKey(actionMetadata.modelUserKey);\n }\n const actionMetadataEntity = await this.actionMetadataService.upsert(actionMetadata);\n return { moduleUserKey, actionMetadataEntity };\n }\n\n private async createDashboard(aiResponseMessage: any) {\n const dashboardDto = plainToInstance(CreateDashboardDto, aiResponseMessage);\n dashboardDto['layoutJson'] = JSON.stringify(dashboardDto['layoutJson']);\n const dashboard = await this.dashboardService.create(dashboardDto, []);\n return { dashboardDto, dashboard };\n }\n}"]}
@@ -0,0 +1,12 @@
1
+ import { AiInteraction } from "src/entities/ai-interaction.entity";
2
+ import { IMcpToolResponseHandler } from "../../../interfaces";
3
+ import { DashboardQuestionService } from "../../dashboard-question.service";
4
+ export declare class SolidCreateDashboardQuestionMcpHandler implements IMcpToolResponseHandler {
5
+ private readonly dashboardQuestionService;
6
+ constructor(dashboardQuestionService: DashboardQuestionService);
7
+ apply(aiInteraction: AiInteraction): Promise<{
8
+ seedingRequired: boolean;
9
+ serverRebooting: boolean;
10
+ }>;
11
+ }
12
+ //# sourceMappingURL=solid-create-dashboard-question-mcp-handler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-dashboard-question-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBACa,sCAAuC,YAAW,uBAAuB;IAG9E,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAAxB,wBAAwB,EAAE,wBAAwB;IAIjE,KAAK,CAAC,aAAa,EAAE,aAAa;;;;CAsB3C"}
@@ -9,12 +9,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SolidCreateDashboardQuestionMcpToolResponseHandler = void 0;
12
+ exports.SolidCreateDashboardQuestionMcpHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const class_transformer_1 = require("class-transformer");
15
- const create_dashboard_question_dto_1 = require("../../dtos/create-dashboard-question.dto");
16
- const dashboard_question_service_1 = require("../dashboard-question.service");
17
- let SolidCreateDashboardQuestionMcpToolResponseHandler = class SolidCreateDashboardQuestionMcpToolResponseHandler {
15
+ const create_dashboard_question_dto_1 = require("../../../dtos/create-dashboard-question.dto");
16
+ const dashboard_question_service_1 = require("../../dashboard-question.service");
17
+ let SolidCreateDashboardQuestionMcpHandler = class SolidCreateDashboardQuestionMcpHandler {
18
18
  constructor(dashboardQuestionService) {
19
19
  this.dashboardQuestionService = dashboardQuestionService;
20
20
  }
@@ -29,9 +29,9 @@ let SolidCreateDashboardQuestionMcpToolResponseHandler = class SolidCreateDashbo
29
29
  };
30
30
  }
31
31
  };
32
- exports.SolidCreateDashboardQuestionMcpToolResponseHandler = SolidCreateDashboardQuestionMcpToolResponseHandler;
33
- exports.SolidCreateDashboardQuestionMcpToolResponseHandler = SolidCreateDashboardQuestionMcpToolResponseHandler = __decorate([
32
+ exports.SolidCreateDashboardQuestionMcpHandler = SolidCreateDashboardQuestionMcpHandler;
33
+ exports.SolidCreateDashboardQuestionMcpHandler = SolidCreateDashboardQuestionMcpHandler = __decorate([
34
34
  (0, common_1.Injectable)(),
35
35
  __metadata("design:paramtypes", [dashboard_question_service_1.DashboardQuestionService])
36
- ], SolidCreateDashboardQuestionMcpToolResponseHandler);
37
- //# sourceMappingURL=solid-create-dashboard-question-mcp-tool-response-handler.service.js.map
36
+ ], SolidCreateDashboardQuestionMcpHandler);
37
+ //# sourceMappingURL=solid-create-dashboard-question-mcp-handler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-dashboard-question-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAoD;AACpD,+FAAoF;AAGpF,iFAA4E;AAGrE,IAAM,sCAAsC,GAA5C,MAAM,sCAAsC;IAE/C,YACqB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;IAEvE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,aAA4B;QACpC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QASrD,MAAM,oBAAoB,GAAG,IAAA,mCAAe,EAAC,0DAA0B,EAAE,iBAAiB,CAAC,CAAC;QAE5F,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAG/F,OAAO;YACH,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;SACzB,CAAA;IACL,CAAC;CAEJ,CAAA;AA7BY,wFAAsC;iDAAtC,sCAAsC;IADlD,IAAA,mBAAU,GAAE;qCAIsC,qDAAwB;GAH9D,sCAAsC,CA6BlD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { plainToInstance } from \"class-transformer\";\nimport { CreateDashboardQuestionDto } from \"src/dtos/create-dashboard-question.dto\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { IMcpToolResponseHandler } from \"../../../interfaces\";\nimport { DashboardQuestionService } from \"../../dashboard-question.service\";\n\n@Injectable()\nexport class SolidCreateDashboardQuestionMcpHandler implements IMcpToolResponseHandler {\n\n constructor(\n private readonly dashboardQuestionService: DashboardQuestionService,\n ) {\n }\n\n async apply(aiInteraction: AiInteraction) {\n const escapedMessage = aiInteraction.message.replace(/\\\\'/g, \"'\");\n const aiResponseMessage = JSON.parse(escapedMessage);\n\n //FIXME: Replace \\' with ' in the response, since the AI response seems to contain \\' which is invalid JSON.\n // This is a workaround for now, until we find a better solution.\n // const aiResponseMessageReplaced = aiResponseMessage['message'].replace(/\\\\'/g, \"'\");\n // const dashboardUserKey = aiResponseMessageReplaced['dashboardUserKey'];\n // if (!dashboardUserKey) {\n // throw new Error(\"Dashboard User Key is required to create a Dashboard Question.\");\n // }\n const dashboardQuestionDto = plainToInstance(CreateDashboardQuestionDto, aiResponseMessage);\n\n const dashboardQuestion = await this.dashboardQuestionService.create(dashboardQuestionDto, []);\n\n // TODO: decide on some shape to return hre...\n return {\n seedingRequired: false,\n serverRebooting: false,\n }\n }\n\n}"]}
@@ -1,7 +1,7 @@
1
1
  import { AiInteraction } from "src/entities/ai-interaction.entity";
2
- import { IMcpToolResponseHandler } from "../../interfaces";
3
- import { DashboardQuestionSqlDatasetConfigService } from "../dashboard-question-sql-dataset-config.service";
4
- export declare class SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler implements IMcpToolResponseHandler {
2
+ import { IMcpToolResponseHandler } from "../../../interfaces";
3
+ import { DashboardQuestionSqlDatasetConfigService } from "../../dashboard-question-sql-dataset-config.service";
4
+ export declare class SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler implements IMcpToolResponseHandler {
5
5
  private readonly dashboardQuestionSqlDatasetConfigService;
6
6
  constructor(dashboardQuestionSqlDatasetConfigService: DashboardQuestionSqlDatasetConfigService);
7
7
  apply(aiInteraction: AiInteraction): Promise<{
@@ -9,4 +9,4 @@ export declare class SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponse
9
9
  serverRebooting: boolean;
10
10
  }>;
11
11
  }
12
- //# sourceMappingURL=solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.d.ts.map
12
+ //# sourceMappingURL=solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,wCAAwC,EAAE,MAAM,qDAAqD,CAAC;AAG/G,qBACa,sDAAuD,YAAW,uBAAuB;IAG9F,OAAO,CAAC,QAAQ,CAAC,wCAAwC;gBAAxC,wCAAwC,EAAE,wCAAwC;IAIjG,KAAK,CAAC,aAAa,EAAE,aAAa;;;;CAwB3C"}
@@ -9,12 +9,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler = void 0;
12
+ exports.SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const class_transformer_1 = require("class-transformer");
15
- const dashboard_question_sql_dataset_config_service_1 = require("../dashboard-question-sql-dataset-config.service");
16
- const create_dashboard_question_sql_dataset_config_dto_1 = require("../../dtos/create-dashboard-question-sql-dataset-config.dto");
17
- let SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler = class SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler {
15
+ const dashboard_question_sql_dataset_config_service_1 = require("../../dashboard-question-sql-dataset-config.service");
16
+ const create_dashboard_question_sql_dataset_config_dto_1 = require("../../../dtos/create-dashboard-question-sql-dataset-config.dto");
17
+ let SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler = class SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler {
18
18
  constructor(dashboardQuestionSqlDatasetConfigService) {
19
19
  this.dashboardQuestionSqlDatasetConfigService = dashboardQuestionSqlDatasetConfigService;
20
20
  }
@@ -30,9 +30,9 @@ let SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler = class S
30
30
  };
31
31
  }
32
32
  };
33
- exports.SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler = SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler;
34
- exports.SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler = SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler = __decorate([
33
+ exports.SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler = SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler;
34
+ exports.SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler = SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler = __decorate([
35
35
  (0, common_1.Injectable)(),
36
36
  __metadata("design:paramtypes", [dashboard_question_sql_dataset_config_service_1.DashboardQuestionSqlDatasetConfigService])
37
- ], SolidCreateDashboardQuestionSqlDatasetConfigMcpToolResponseHandler);
38
- //# sourceMappingURL=solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.js.map
37
+ ], SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler);
38
+ //# sourceMappingURL=solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAoD;AAGpD,uHAA+G;AAC/G,qIAAuH;AAGhH,IAAM,sDAAsD,GAA5D,MAAM,sDAAsD;IAE/D,YACqB,wCAAkF;QAAlF,6CAAwC,GAAxC,wCAAwC,CAA0C;IAEvG,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,aAA4B;QAEpC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QASrD,MAAM,GAAG,GAAG,IAAA,mCAAe,EAAC,6FAA0C,EAAE,iBAAiB,CAAC,CAAC;QAC3F,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAEhD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wCAAwC,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAG9F,OAAO;YACH,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;SACzB,CAAA;IACL,CAAC;CAEJ,CAAA;AA/BY,wHAAsD;iEAAtD,sDAAsD;IADlE,IAAA,mBAAU,GAAE;qCAIsD,wFAAwC;GAH9F,sDAAsD,CA+BlE","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { plainToInstance } from \"class-transformer\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { IMcpToolResponseHandler } from \"../../../interfaces\";\nimport { DashboardQuestionSqlDatasetConfigService } from \"../../dashboard-question-sql-dataset-config.service\";\nimport { CreateDashboardQuestionSqlDatasetConfigDto } from \"src/dtos/create-dashboard-question-sql-dataset-config.dto\";\n\n@Injectable()\nexport class SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler implements IMcpToolResponseHandler {\n\n constructor(\n private readonly dashboardQuestionSqlDatasetConfigService: DashboardQuestionSqlDatasetConfigService,\n ) {\n }\n\n async apply(aiInteraction: AiInteraction) {\n // const aiResponse = JSON.parse(aiInteraction.message);\n const escapedMessage = aiInteraction.message.replace(/\\\\'/g, \"'\");\n const aiResponseMessage = JSON.parse(escapedMessage);\n\n // FIXME: Replace \\' with ' in the response, since the AI response seems to contain \\' which is invalid JSON.\n // This is a workaround for now, until we find a better solution.\n // const aiResponseMessageReplaced = aiResponse['message'].replace(/\\\\'/g, \"'\");\n // const dashboardUserKey = aiResponseMessageReplaced['dashboardUserKey'];\n // if (!dashboardUserKey) {\n // throw new Error(\"Dashboard User Key is required to create a Dashboard Question.\");\n // }\n const dto = plainToInstance(CreateDashboardQuestionSqlDatasetConfigDto, aiResponseMessage);\n dto['options'] = JSON.stringify(dto['options']);\n\n const dashboardQuestion = await this.dashboardQuestionSqlDatasetConfigService.create(dto, []);\n\n // TODO: decide on some shape to return hre...\n return {\n seedingRequired: false,\n serverRebooting: false,\n }\n }\n\n}"]}
@@ -0,0 +1,12 @@
1
+ import { AiInteraction } from "src/entities/ai-interaction.entity";
2
+ import { IMcpToolResponseHandler } from "../../../interfaces";
3
+ import { DashboardQuestionService } from "../../dashboard-question.service";
4
+ export declare class SolidCreateDashboardWidgetMcpHandler implements IMcpToolResponseHandler {
5
+ private readonly dashboardQuestionService;
6
+ constructor(dashboardQuestionService: DashboardQuestionService);
7
+ apply(aiInteraction: AiInteraction): Promise<{
8
+ seedingRequired: boolean;
9
+ serverRebooting: boolean;
10
+ }>;
11
+ }
12
+ //# sourceMappingURL=solid-create-dashboard-widget-mcp-handler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-dashboard-widget-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBACa,oCAAqC,YAAW,uBAAuB;IAG5E,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAAxB,wBAAwB,EAAE,wBAAwB;IAIjE,KAAK,CAAC,aAAa,EAAE,aAAa;;;;CAuB3C"}
@@ -9,12 +9,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SolidCreateDashboardWidgetMcpToolResponseHandler = void 0;
12
+ exports.SolidCreateDashboardWidgetMcpHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const class_transformer_1 = require("class-transformer");
15
- const create_dashboard_question_dto_1 = require("../../dtos/create-dashboard-question.dto");
16
- const dashboard_question_service_1 = require("../dashboard-question.service");
17
- let SolidCreateDashboardWidgetMcpToolResponseHandler = class SolidCreateDashboardWidgetMcpToolResponseHandler {
15
+ const create_dashboard_question_dto_1 = require("../../../dtos/create-dashboard-question.dto");
16
+ const dashboard_question_service_1 = require("../../dashboard-question.service");
17
+ let SolidCreateDashboardWidgetMcpHandler = class SolidCreateDashboardWidgetMcpHandler {
18
18
  constructor(dashboardQuestionService) {
19
19
  this.dashboardQuestionService = dashboardQuestionService;
20
20
  }
@@ -30,9 +30,9 @@ let SolidCreateDashboardWidgetMcpToolResponseHandler = class SolidCreateDashboar
30
30
  };
31
31
  }
32
32
  };
33
- exports.SolidCreateDashboardWidgetMcpToolResponseHandler = SolidCreateDashboardWidgetMcpToolResponseHandler;
34
- exports.SolidCreateDashboardWidgetMcpToolResponseHandler = SolidCreateDashboardWidgetMcpToolResponseHandler = __decorate([
33
+ exports.SolidCreateDashboardWidgetMcpHandler = SolidCreateDashboardWidgetMcpHandler;
34
+ exports.SolidCreateDashboardWidgetMcpHandler = SolidCreateDashboardWidgetMcpHandler = __decorate([
35
35
  (0, common_1.Injectable)(),
36
36
  __metadata("design:paramtypes", [dashboard_question_service_1.DashboardQuestionService])
37
- ], SolidCreateDashboardWidgetMcpToolResponseHandler);
38
- //# sourceMappingURL=solid-create-dashboard-widget-mcp-tool-response-handler.service.js.map
37
+ ], SolidCreateDashboardWidgetMcpHandler);
38
+ //# sourceMappingURL=solid-create-dashboard-widget-mcp-handler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-dashboard-widget-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAoD;AACpD,+FAAoF;AAGpF,iFAA4E;AAGrE,IAAM,oCAAoC,GAA1C,MAAM,oCAAoC;IAE7C,YACqB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;IAEvE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,aAA4B;QACpC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QASrD,MAAM,oBAAoB,GAAG,IAAA,mCAAe,EAAC,0DAA0B,EAAE,iBAAiB,CAAC,CAAC;QAC5F,oBAAoB,CAAC,kCAAkC,CAAC,GAAG,QAAQ,CAAC;QAEpE,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAG/F,OAAO;YACH,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;SACzB,CAAA;IACL,CAAC;CAEJ,CAAA;AA9BY,oFAAoC;+CAApC,oCAAoC;IADhD,IAAA,mBAAU,GAAE;qCAIsC,qDAAwB;GAH9D,oCAAoC,CA8BhD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { plainToInstance } from \"class-transformer\";\nimport { CreateDashboardQuestionDto } from \"src/dtos/create-dashboard-question.dto\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { IMcpToolResponseHandler } from \"../../../interfaces\";\nimport { DashboardQuestionService } from \"../../dashboard-question.service\";\n\n@Injectable()\nexport class SolidCreateDashboardWidgetMcpHandler implements IMcpToolResponseHandler {\n\n constructor(\n private readonly dashboardQuestionService: DashboardQuestionService,\n ) {\n }\n\n async apply(aiInteraction: AiInteraction) {\n const escapedMessage = aiInteraction.message.replace(/\\\\'/g, \"'\");\n const aiResponseMessage = JSON.parse(escapedMessage);\n\n //FIXME: Replace \\' with ' in the response, since the AI response seems to contain \\' which is invalid JSON.\n // This is a workaround for now, until we find a better solution.\n // const aiResponseMessageReplaced = aiResponseMessage['message'].replace(/\\\\'/g, \"'\");\n // const dashboardUserKey = aiResponseMessageReplaced['dashboardUserKey'];\n // if (!dashboardUserKey) {\n // throw new Error(\"Dashboard User Key is required to create a Dashboard Question.\");\n // }\n const dashboardQuestionDto = plainToInstance(CreateDashboardQuestionDto, aiResponseMessage);\n dashboardQuestionDto['questionSqlDatasetConfigsCommand'] = \"update\";\n\n const dashboardQuestion = await this.dashboardQuestionService.create(dashboardQuestionDto, []);\n\n // TODO: decide on some shape to return hre...\n return {\n seedingRequired: false,\n serverRebooting: false,\n }\n }\n\n}"]}
@@ -0,0 +1,14 @@
1
+ import { IMcpToolResponseHandler } from "../../../interfaces";
2
+ import { AiInteraction } from "src/entities/ai-interaction.entity";
3
+ import { ModelMetadataService } from "../../model-metadata.service";
4
+ import { ModuleMetadataService } from "../../module-metadata.service";
5
+ export declare class SolidCreateModelWithFieldsMcpHandler implements IMcpToolResponseHandler {
6
+ private readonly moduleMetadataService;
7
+ private readonly modelMetadataService;
8
+ constructor(moduleMetadataService: ModuleMetadataService, modelMetadataService: ModelMetadataService);
9
+ apply(aiInteraction: AiInteraction): Promise<{
10
+ seedingRequired: boolean;
11
+ serverRebooting: boolean;
12
+ }>;
13
+ }
14
+ //# sourceMappingURL=solid-create-model-with-fields-mcp-handler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-model-with-fields-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,qBACa,oCAAqC,YAAW,uBAAuB;IAG5E,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBADpB,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB;IAIzD,KAAK,CAAC,aAAa,EAAE,aAAa;;;;CA4B3C"}
@@ -9,27 +9,26 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SolidCreateModelWithFieldsMcpToolResponseHandler = void 0;
12
+ exports.SolidCreateModelWithFieldsMcpHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
- const solid_registry_1 = require("../../helpers/solid-registry");
15
- const model_metadata_service_1 = require("../model-metadata.service");
16
- const module_metadata_service_1 = require("../module-metadata.service");
17
- let SolidCreateModelWithFieldsMcpToolResponseHandler = class SolidCreateModelWithFieldsMcpToolResponseHandler {
18
- constructor(moduleMetadataService, modelMetadataService, solidRegistry) {
14
+ const model_metadata_service_1 = require("../../model-metadata.service");
15
+ const module_metadata_service_1 = require("../../module-metadata.service");
16
+ let SolidCreateModelWithFieldsMcpHandler = class SolidCreateModelWithFieldsMcpHandler {
17
+ constructor(moduleMetadataService, modelMetadataService) {
19
18
  this.moduleMetadataService = moduleMetadataService;
20
19
  this.modelMetadataService = modelMetadataService;
21
- this.solidRegistry = solidRegistry;
22
20
  }
23
21
  async apply(aiInteraction) {
24
22
  const escapedMessage = aiInteraction.message.replace(/\\'/g, "'");
25
23
  const aiResponseMessage = JSON.parse(escapedMessage);
26
- const { moduleUserKey, ...modelSchema } = aiResponseMessage;
24
+ const { generation_status, instructions, data } = aiResponseMessage;
25
+ const { moduleUserKey, schema } = data;
27
26
  const moduleMetadata = await this.moduleMetadataService.findOneByUserKey(moduleUserKey);
28
27
  if (!moduleMetadata) {
29
28
  throw new Error(`Module with user key ${moduleUserKey} not found.`);
30
29
  }
31
- modelSchema['moduleId'] = moduleMetadata.id;
32
- const modelObj = await this.modelMetadataService.create(modelSchema);
30
+ schema['moduleId'] = moduleMetadata.id;
31
+ const modelObj = await this.modelMetadataService.create(schema);
33
32
  await this.modelMetadataService.handleGenerateCode({ modelId: modelObj.id });
34
33
  return {
35
34
  seedingRequired: true,
@@ -37,11 +36,10 @@ let SolidCreateModelWithFieldsMcpToolResponseHandler = class SolidCreateModelWit
37
36
  };
38
37
  }
39
38
  };
40
- exports.SolidCreateModelWithFieldsMcpToolResponseHandler = SolidCreateModelWithFieldsMcpToolResponseHandler;
41
- exports.SolidCreateModelWithFieldsMcpToolResponseHandler = SolidCreateModelWithFieldsMcpToolResponseHandler = __decorate([
39
+ exports.SolidCreateModelWithFieldsMcpHandler = SolidCreateModelWithFieldsMcpHandler;
40
+ exports.SolidCreateModelWithFieldsMcpHandler = SolidCreateModelWithFieldsMcpHandler = __decorate([
42
41
  (0, common_1.Injectable)(),
43
42
  __metadata("design:paramtypes", [module_metadata_service_1.ModuleMetadataService,
44
- model_metadata_service_1.ModelMetadataService,
45
- solid_registry_1.SolidRegistry])
46
- ], SolidCreateModelWithFieldsMcpToolResponseHandler);
47
- //# sourceMappingURL=solid-create-model-with-fields-mcp-tool-response-handler.service.js.map
43
+ model_metadata_service_1.ModelMetadataService])
44
+ ], SolidCreateModelWithFieldsMcpHandler);
45
+ //# sourceMappingURL=solid-create-model-with-fields-mcp-handler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-model-with-fields-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,yEAAoE;AAEpE,2EAAsE;AAG/D,IAAM,oCAAoC,GAA1C,MAAM,oCAAoC;IAE7C,YACqB,qBAA4C,EAC5C,oBAA0C;QAD1C,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,yBAAoB,GAApB,oBAAoB,CAAsB;IAE/D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,aAA4B;QAEpC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAErD,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;QACpE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACxF,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,aAAa,aAAa,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;QAKvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAgC,CAAC,CAAC;QAG1F,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAG7E,OAAO;YACH,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,IAAI;SACxB,CAAA;IACL,CAAC;CAEJ,CAAA;AApCY,oFAAoC;+CAApC,oCAAoC;IADhD,IAAA,mBAAU,GAAE;qCAImC,+CAAqB;QACtB,6CAAoB;GAJtD,oCAAoC,CAoChD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { IMcpToolResponseHandler } from \"../../../interfaces\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { ModelMetadataService } from \"../../model-metadata.service\";\nimport { CreateModelMetadataDto } from \"src/dtos/create-model-metadata.dto\";\nimport { ModuleMetadataService } from \"../../module-metadata.service\";\n\n@Injectable()\nexport class SolidCreateModelWithFieldsMcpHandler implements IMcpToolResponseHandler {\n\n constructor(\n private readonly moduleMetadataService: ModuleMetadataService,\n private readonly modelMetadataService: ModelMetadataService,\n ) {\n }\n\n async apply(aiInteraction: AiInteraction) {\n // const aiResponse = JSON.parse(aiInteraction.message);\n const escapedMessage = aiInteraction.message.replace(/\\\\'/g, \"'\");\n const aiResponseMessage = JSON.parse(escapedMessage);\n\n const { generation_status, instructions, data } = aiResponseMessage;\n const { moduleUserKey, schema } = data;\n const moduleMetadata = await this.moduleMetadataService.findOneByUserKey(moduleUserKey);\n if (!moduleMetadata) {\n throw new Error(`Module with user key ${moduleUserKey} not found.`);\n }\n schema['moduleId'] = moduleMetadata.id;\n\n // TODO: Validate if another model with same name exists, if it does then raise an error...\n\n // This creates the module-metadata.json file....\n const modelObj = await this.modelMetadataService.create(schema as CreateModelMetadataDto);\n\n // Now we need to run solid seed & then solid refresh-model --name <module-name>\n await this.modelMetadataService.handleGenerateCode({ modelId: modelObj.id });\n\n // TODO: decide on some shape to return hre...\n return {\n seedingRequired: true,\n serverRebooting: true,\n }\n }\n\n}"]}
@@ -1,8 +1,8 @@
1
- import { IMcpToolResponseHandler } from "../../interfaces";
1
+ import { IMcpToolResponseHandler } from "../../../interfaces";
2
2
  import { AiInteraction } from "src/entities/ai-interaction.entity";
3
- import { ModuleMetadataService } from "../module-metadata.service";
3
+ import { ModuleMetadataService } from "../../module-metadata.service";
4
4
  import { SolidRegistry } from "src/helpers/solid-registry";
5
- export declare class SolidCreateModuleMcpToolResponseHandler implements IMcpToolResponseHandler {
5
+ export declare class SolidCreateModuleMcpHandler implements IMcpToolResponseHandler {
6
6
  private readonly moduleMetadataService;
7
7
  private readonly solidRegistry;
8
8
  constructor(moduleMetadataService: ModuleMetadataService, solidRegistry: SolidRegistry);
@@ -11,4 +11,4 @@ export declare class SolidCreateModuleMcpToolResponseHandler implements IMcpTool
11
11
  serverRebooting: boolean;
12
12
  }>;
13
13
  }
14
- //# sourceMappingURL=solid-create-module-mcp-tool-response-handler.service.d.ts.map
14
+ //# sourceMappingURL=solid-create-module-mcp-handler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-module-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,qBACa,2BAA4B,YAAW,uBAAuB;IAGnE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa;IAK3C,KAAK,CAAC,aAAa,EAAE,aAAa;;;;CAwC3C"}
@@ -9,18 +9,21 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SolidCreateModuleMcpToolResponseHandler = void 0;
12
+ exports.SolidCreateModuleMcpHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
- const module_metadata_service_1 = require("../module-metadata.service");
15
- const solid_registry_1 = require("../../helpers/solid-registry");
16
- let SolidCreateModuleMcpToolResponseHandler = class SolidCreateModuleMcpToolResponseHandler {
14
+ const module_metadata_service_1 = require("../../module-metadata.service");
15
+ const solid_registry_1 = require("../../../helpers/solid-registry");
16
+ let SolidCreateModuleMcpHandler = class SolidCreateModuleMcpHandler {
17
17
  constructor(moduleMetadataService, solidRegistry) {
18
18
  this.moduleMetadataService = moduleMetadataService;
19
19
  this.solidRegistry = solidRegistry;
20
20
  }
21
21
  async apply(aiInteraction) {
22
- const aiResponseMessage = JSON.parse(aiInteraction.message);
23
- const moduleMetadata = aiResponseMessage?.moduleMetadata ?? {};
22
+ const escapedMessage = aiInteraction.message.replace(/\\'/g, "'");
23
+ const aiResponseMessage = JSON.parse(escapedMessage);
24
+ const { generation_status, instructions, data } = aiResponseMessage;
25
+ const { schema } = data;
26
+ const { moduleMetadata } = schema;
24
27
  const createDto = {
25
28
  defaultDataSource: 'default',
26
29
  description: moduleMetadata['description'],
@@ -39,10 +42,10 @@ let SolidCreateModuleMcpToolResponseHandler = class SolidCreateModuleMcpToolResp
39
42
  };
40
43
  }
41
44
  };
42
- exports.SolidCreateModuleMcpToolResponseHandler = SolidCreateModuleMcpToolResponseHandler;
43
- exports.SolidCreateModuleMcpToolResponseHandler = SolidCreateModuleMcpToolResponseHandler = __decorate([
45
+ exports.SolidCreateModuleMcpHandler = SolidCreateModuleMcpHandler;
46
+ exports.SolidCreateModuleMcpHandler = SolidCreateModuleMcpHandler = __decorate([
44
47
  (0, common_1.Injectable)(),
45
48
  __metadata("design:paramtypes", [module_metadata_service_1.ModuleMetadataService,
46
49
  solid_registry_1.SolidRegistry])
47
- ], SolidCreateModuleMcpToolResponseHandler);
48
- //# sourceMappingURL=solid-create-module-mcp-tool-response-handler.service.js.map
50
+ ], SolidCreateModuleMcpHandler);
51
+ //# sourceMappingURL=solid-create-module-mcp-handler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-create-module-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,2EAAsE;AAEtE,oEAA2D;AAGpD,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEpC,YACqB,qBAA4C,EAC5C,aAA4B;QAD5B,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,kBAAa,GAAb,aAAa,CAAe;IAGjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,aAA4B;QACpC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAErD,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;QACpE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QAIlC,MAAM,SAAS,GAA4B;YACvC,iBAAiB,EAAE,SAAS;YAC5B,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC;YAC1C,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC;YAC1C,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;YAC5B,kBAAkB,EAAE,CAAC;SACxB,CAAA;QAGD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAKrE,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAO1E,OAAO;YACH,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,IAAI;SACxB,CAAA;IACL,CAAC;CAEJ,CAAA;AAjDY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAImC,+CAAqB;QAC7B,8BAAa;GAJxC,2BAA2B,CAiDvC","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { IMcpToolResponseHandler } from \"../../../interfaces\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { ModuleMetadataService } from \"../../module-metadata.service\";\nimport { CreateModuleMetadataDto } from \"src/dtos/create-module-metadata.dto\";\nimport { SolidRegistry } from \"src/helpers/solid-registry\";\n\n@Injectable()\nexport class SolidCreateModuleMcpHandler implements IMcpToolResponseHandler {\n\n constructor(\n private readonly moduleMetadataService: ModuleMetadataService,\n private readonly solidRegistry: SolidRegistry,\n\n ) {\n }\n\n async apply(aiInteraction: AiInteraction) {\n const escapedMessage = aiInteraction.message.replace(/\\\\'/g, \"'\");\n const aiResponseMessage = JSON.parse(escapedMessage);\n\n const { generation_status, instructions, data } = aiResponseMessage;\n const { schema } = data;\n const { moduleMetadata } = schema;\n\n // TODO: Validate if another module with same name exists, if it does then raise an error...\n\n const createDto: CreateModuleMetadataDto = {\n defaultDataSource: 'default',\n description: moduleMetadata['description'],\n displayName: moduleMetadata['displayName'],\n isSystem: false,\n menuIconUrl: '',\n models: [],\n name: moduleMetadata['name'],\n menuSequenceNumber: 1\n }\n\n // This creates the module-metadata.json file....\n const moduleObj = await this.moduleMetadataService.create(createDto);\n\n // const seeder = this.solidRegistry.getSeeders().filter((seeder) => seeder.name === 'ModuleMetadataSeederService').map((seeder) => seeder.instance).pop();\n\n // Now we need to run solid seed & then solid refresh-model --name <module-name>\n await this.moduleMetadataService.generateCode({ moduleId: moduleObj.id });\n\n // solid seed ... this has to be run after reboot from the UI...\n // await new Promise(resolve => setTimeout(resolve, 1000));\n // await seeder.seed();\n\n // TODO: decide on some shape to return hre...\n return {\n seedingRequired: true,\n serverRebooting: true,\n }\n }\n\n}"]}
@@ -1,7 +1,7 @@
1
1
  import { AiInteraction } from "src/entities/ai-interaction.entity";
2
2
  import { ViewMetadataRepository } from "src/repository/view-metadata.repository";
3
- import { IMcpToolResponseHandler } from "../../interfaces";
4
- export declare class SolidCreateModelLayoutMcpToolResponseHandler implements IMcpToolResponseHandler {
3
+ import { IMcpToolResponseHandler } from "../../../interfaces";
4
+ export declare class SolidUpdateLayoutMcpHandler implements IMcpToolResponseHandler {
5
5
  private readonly viewMetadataRepository;
6
6
  constructor(viewMetadataRepository: ViewMetadataRepository);
7
7
  apply(aiInteraction: AiInteraction): Promise<{
@@ -9,4 +9,4 @@ export declare class SolidCreateModelLayoutMcpToolResponseHandler implements IMc
9
9
  serverRebooting: boolean;
10
10
  }>;
11
11
  }
12
- //# sourceMappingURL=solid-save-model-layout-mcp-tool-response-handler.service.d.ts.map
12
+ //# sourceMappingURL=solid-update-layout-mcp-handler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-update-layout-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,qBACa,2BAA4B,YAAW,uBAAuB;IAGnE,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBAAtB,sBAAsB,EAAE,sBAAsB;IAI7D,KAAK,CAAC,aAAa,EAAE,aAAa;;;;CA0B3C"}
@@ -9,17 +9,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SolidCreateModelLayoutMcpToolResponseHandler = void 0;
12
+ exports.SolidUpdateLayoutMcpHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
- const view_metadata_repository_1 = require("../../repository/view-metadata.repository");
15
- let SolidCreateModelLayoutMcpToolResponseHandler = class SolidCreateModelLayoutMcpToolResponseHandler {
14
+ const view_metadata_repository_1 = require("../../../repository/view-metadata.repository");
15
+ let SolidUpdateLayoutMcpHandler = class SolidUpdateLayoutMcpHandler {
16
16
  constructor(viewMetadataRepository) {
17
17
  this.viewMetadataRepository = viewMetadataRepository;
18
18
  }
19
19
  async apply(aiInteraction) {
20
- const aiResponse = JSON.parse(aiInteraction.message);
21
- const { name, modelUserKey, moduleUserKey, layout } = aiResponse;
22
- const viewMetadata = await this.viewMetadataRepository.findByNameAndModelNameAndModuleName(name, modelUserKey, moduleUserKey);
20
+ const escapedMessage = aiInteraction.message.replace(/\\'/g, "'");
21
+ const aiResponseMessage = JSON.parse(escapedMessage);
22
+ const { data } = aiResponseMessage;
23
+ const { moduleUserKey, modelUserKey, view, schema: layout } = data;
24
+ const viewMetadata = await this.viewMetadataRepository.findByTypeModelNameAndModuleName(view, modelUserKey, moduleUserKey);
23
25
  viewMetadata.layout = JSON.stringify(layout);
24
26
  await this.viewMetadataRepository.save(viewMetadata);
25
27
  return {
@@ -28,9 +30,9 @@ let SolidCreateModelLayoutMcpToolResponseHandler = class SolidCreateModelLayoutM
28
30
  };
29
31
  }
30
32
  };
31
- exports.SolidCreateModelLayoutMcpToolResponseHandler = SolidCreateModelLayoutMcpToolResponseHandler;
32
- exports.SolidCreateModelLayoutMcpToolResponseHandler = SolidCreateModelLayoutMcpToolResponseHandler = __decorate([
33
+ exports.SolidUpdateLayoutMcpHandler = SolidUpdateLayoutMcpHandler;
34
+ exports.SolidUpdateLayoutMcpHandler = SolidUpdateLayoutMcpHandler = __decorate([
33
35
  (0, common_1.Injectable)(),
34
36
  __metadata("design:paramtypes", [view_metadata_repository_1.ViewMetadataRepository])
35
- ], SolidCreateModelLayoutMcpToolResponseHandler);
36
- //# sourceMappingURL=solid-save-model-layout-mcp-tool-response-handler.service.js.map
37
+ ], SolidUpdateLayoutMcpHandler);
38
+ //# sourceMappingURL=solid-update-layout-mcp-handler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-update-layout-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,2FAAiF;AAI1E,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEpC,YACqB,sBAA8C;QAA9C,2BAAsB,GAAtB,sBAAsB,CAAwB;IAEnE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,aAA4B;QAEpC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAGrD,MAAM,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;QACnC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAGnE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAI3H,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAG7C,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAGrD,OAAO;YACH,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;SACzB,CAAA;IACL,CAAC;CAEJ,CAAA;AAjCY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAIoC,iDAAsB;GAH1D,2BAA2B,CAiCvC","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { ViewMetadataRepository } from \"src/repository/view-metadata.repository\";\nimport { IMcpToolResponseHandler } from \"../../../interfaces\";\n\n@Injectable()\nexport class SolidUpdateLayoutMcpHandler implements IMcpToolResponseHandler {\n\n constructor(\n private readonly viewMetadataRepository: ViewMetadataRepository,\n ) {\n }\n\n async apply(aiInteraction: AiInteraction) {\n // const aiResponse = JSON.parse(aiInteraction.message);\n const escapedMessage = aiInteraction.message.replace(/\\\\'/g, \"'\");\n const aiResponseMessage = JSON.parse(escapedMessage);\n\n // Get the data for resolving the view metadata\n const { data } = aiResponseMessage;\n const { moduleUserKey, modelUserKey, view, schema: layout } = data;\n\n // Fetch the view metadata for the given model and module and the view name\n const viewMetadata = await this.viewMetadataRepository.findByTypeModelNameAndModuleName(view, modelUserKey, moduleUserKey);\n\n // TODO: Validation to check if we were able to resolve the right view.\n\n viewMetadata.layout = JSON.stringify(layout);\n\n // Save the updated view metadata\n await this.viewMetadataRepository.save(viewMetadata);\n\n // TODO: decide on some shape to return hre...\n return {\n seedingRequired: false,\n serverRebooting: false,\n }\n }\n\n}"]}
@@ -491,9 +491,9 @@ let ImportTransactionService = ImportTransactionService_1 = class ImportTransact
491
491
  dtoRecord[fieldMetadata.name] = null;
492
492
  return dtoRecord;
493
493
  }
494
- console.log(cellValue, 'cellValue');
494
+ this.logger.verbose(cellValue, 'cellValue');
495
495
  const dateValue = (0, date_helper_1.parseFlexibleDate)(cellValue);
496
- console.log(dateValue, 'dateValue');
496
+ this.logger.verbose(dateValue, 'dateValue');
497
497
  if (!dateValue) {
498
498
  throw new Error(`Invalid date value for cell ${key} with value ${cellValue}`);
499
499
  }