@solidstarters/solid-core 1.2.179 → 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.
- package/dev-grooming-docs/ozzy-prompts.txt +28 -3
- package/dist/config/iam.config.d.ts.map +1 -1
- package/dist/config/iam.config.js +2 -1
- package/dist/config/iam.config.js.map +1 -1
- package/dist/controllers/service.controller.d.ts +8 -1
- package/dist/controllers/service.controller.d.ts.map +1 -1
- package/dist/controllers/service.controller.js +38 -2
- package/dist/controllers/service.controller.js.map +1 -1
- package/dist/decorators/active-user.decorator.d.ts +1 -1
- package/dist/dtos/create-menu-item-metadata.dto.d.ts +3 -0
- package/dist/dtos/create-menu-item-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-menu-item-metadata.dto.js +4 -1
- package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts +4 -0
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +45 -1
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/helpers/date.helper.d.ts +2 -0
- package/dist/helpers/date.helper.d.ts.map +1 -0
- package/dist/helpers/date.helper.js +18 -0
- package/dist/helpers/date.helper.js.map +1 -0
- package/dist/interfaces.d.ts +20 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +7 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +82 -17
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/repository/view-metadata.repository.d.ts +1 -0
- package/dist/repository/view-metadata.repository.d.ts.map +1 -1
- package/dist/repository/view-metadata.repository.js +14 -0
- package/dist/repository/view-metadata.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +52 -42
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +259 -202
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js +0 -1
- package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +2 -3
- package/dist/services/ai-interaction.service.d.ts +3 -3
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +16 -9
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/excel.service.js +2 -2
- package/dist/services/excel.service.js.map +1 -1
- package/dist/services/genai/ingest-metadata.service.d.ts.map +1 -1
- package/dist/services/genai/ingest-metadata.service.js +46 -35
- package/dist/services/genai/ingest-metadata.service.js.map +1 -1
- 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
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +1 -0
- package/dist/services/{mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js → genai/mcp-handlers/mcp-handler-factory.service.js} +10 -10
- package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +1 -0
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +12 -0
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +1 -0
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +16 -0
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +1 -0
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +75 -0
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +1 -0
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +12 -0
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +1 -0
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +12 -0
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +1 -0
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +14 -0
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +1 -0
- 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} +15 -17
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +1 -0
- 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
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +1 -0
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +6 -3
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +0 -2
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +1 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +1 -7
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/solid-ts-morph.service.d.ts +28 -0
- package/dist/services/solid-ts-morph.service.d.ts.map +1 -0
- package/dist/services/solid-ts-morph.service.js +222 -0
- package/dist/services/solid-ts-morph.service.js.map +1 -0
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +22 -18
- package/dist/solid-core.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -4
- package/solid_seed_fixes.ts.txt +93 -0
- package/src/config/iam.config.ts +2 -1
- package/src/controllers/service.controller.ts +43 -2
- package/src/dtos/create-menu-item-metadata.dto.ts +5 -1
- package/src/dtos/create-role-metadata.dto.ts +60 -1
- package/src/helpers/date.helper.ts +13 -0
- package/src/interfaces.ts +29 -2
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +86 -16
- package/src/repository/view-metadata.repository.ts +15 -0
- package/src/seeders/module-metadata-seeder.service.ts +355 -282
- package/src/seeders/permission-metadata-seeder.service.ts +1 -1
- package/src/seeders/seed-data/solid-core-metadata.json +3 -5
- package/src/services/ai-interaction.service.ts +17 -13
- package/src/services/excel.service.ts +2 -2
- package/src/services/genai/ingest-metadata.service.ts +115 -39
- package/src/services/{mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.ts → genai/mcp-handlers/mcp-handler-factory.service.ts} +5 -5
- package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +68 -0
- package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +71 -0
- 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
- 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
- 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
- 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
- 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} +9 -10
- 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
- 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
- package/src/services/import-transaction.service.ts +12 -4
- package/src/services/menu-item-metadata.service.ts +3 -7
- package/src/services/model-metadata.service.ts +0 -3
- package/src/services/module-metadata.service.ts +2 -3
- package/src/services/role-metadata.service.ts +22 -8
- package/src/services/solid-ts-morph.service.ts +263 -0
- package/src/solid-core.module.ts +25 -19
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.d.ts +0 -16
- package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.js.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-mcp-tool-response-handler.service.js.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.d.ts +0 -12
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-mcp-tool-response-handler.service.js.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-tool-response-handler.service.js.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.d.ts +0 -12
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-dashboard-widget-mcp-tool-response-handler.service.js.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.d.ts +0 -16
- package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-model-with-fields-mcp-tool-response-handler.service.js.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.d.ts.map +0 -1
- package/dist/services/mcp-tool-response-handlers/solid-save-model-layout-mcp-tool-response-handler.service.js.map +0 -1
- package/src/services/mcp-tool-response-handlers/solid-add-field-mcp-tool-response-handler.service.ts +0 -56
package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
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 SolidCreateComputedProviderMcpHandler_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.SolidCreateComputedProviderMcpHandler = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const solid_ts_morph_service_1 = require("../../solid-ts-morph.service");
|
|
16
|
+
const RESTART_TOUCH_FILE = process.env.MCP_RESTART_TOUCH_FILE || "tmp/restart.touch";
|
|
17
|
+
let SolidCreateComputedProviderMcpHandler = SolidCreateComputedProviderMcpHandler_1 = class SolidCreateComputedProviderMcpHandler {
|
|
18
|
+
constructor(tsMorph) {
|
|
19
|
+
this.tsMorph = tsMorph;
|
|
20
|
+
this.logger = new common_1.Logger(SolidCreateComputedProviderMcpHandler_1.name);
|
|
21
|
+
}
|
|
22
|
+
async apply(aiInteraction) {
|
|
23
|
+
const raw = this.safeParse(aiInteraction.message);
|
|
24
|
+
const payload = (raw?.data?.plan ? raw.data : raw);
|
|
25
|
+
if (!payload || !Array.isArray(payload.plan)) {
|
|
26
|
+
throw new Error("SolidCreateComputedProviderMcpHandler: invalid MCP response; missing plan[]");
|
|
27
|
+
}
|
|
28
|
+
this.tsMorph.begin();
|
|
29
|
+
try {
|
|
30
|
+
for (const step of payload.plan) {
|
|
31
|
+
switch (step.type) {
|
|
32
|
+
case "createNewFile": {
|
|
33
|
+
const overwrite = step.overwrite ?? false;
|
|
34
|
+
this.tsMorph.createNewFile(step.path, step.content, overwrite);
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
case "registerNestProvider": {
|
|
38
|
+
const uniqueGuard = step.uniqueGuard ?? true;
|
|
39
|
+
this.tsMorph.registerNestProvider(step.modulePath, step.providerClassName, step.importFrom, step.registerIn, uniqueGuard);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
default:
|
|
43
|
+
throw new Error(`Unsupported plan step type: ${step.type}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const result = await this.tsMorph.commit();
|
|
47
|
+
return {
|
|
48
|
+
seedingRequired: false,
|
|
49
|
+
serverRebooting: false,
|
|
50
|
+
appliedSteps: payload.plan.length,
|
|
51
|
+
wroteFiles: result.wrote,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
this.logger.error(`Apply failed; rolling back. ${String(err)}`);
|
|
56
|
+
this.tsMorph.rollback();
|
|
57
|
+
throw err;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
safeParse(str) {
|
|
61
|
+
try {
|
|
62
|
+
return JSON.parse(str);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
const unescaped = str.replace(/\\'/g, "'");
|
|
66
|
+
return JSON.parse(unescaped);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
exports.SolidCreateComputedProviderMcpHandler = SolidCreateComputedProviderMcpHandler;
|
|
71
|
+
exports.SolidCreateComputedProviderMcpHandler = SolidCreateComputedProviderMcpHandler = SolidCreateComputedProviderMcpHandler_1 = __decorate([
|
|
72
|
+
(0, common_1.Injectable)(),
|
|
73
|
+
__metadata("design:paramtypes", [solid_ts_morph_service_1.SolidTsMorphService])
|
|
74
|
+
], SolidCreateComputedProviderMcpHandler);
|
|
75
|
+
//# sourceMappingURL=solid-create-computed-provider-mcp-handler.service.js.map
|
package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solid-create-computed-provider-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from \"@nestjs/common\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { IMcpToolResponseHandler, McpComputedProviderResponse, PlanStep } from \"../../../interfaces\";\nimport { SolidTsMorphService } from \"src/services/solid-ts-morph.service\";\n\nconst RESTART_TOUCH_FILE = process.env.MCP_RESTART_TOUCH_FILE || \"tmp/restart.touch\";\n\n@Injectable()\nexport class SolidCreateComputedProviderMcpHandler implements IMcpToolResponseHandler {\n private readonly logger = new Logger(SolidCreateComputedProviderMcpHandler.name);\n\n constructor(private readonly tsMorph: SolidTsMorphService) { }\n\n async apply(aiInteraction: AiInteraction) {\n const raw = this.safeParse(aiInteraction.message);\n const payload: McpComputedProviderResponse | undefined = (raw?.data?.plan ? raw.data : raw) as McpComputedProviderResponse;\n\n if (!payload || !Array.isArray(payload.plan)) {\n throw new Error(\"SolidCreateComputedProviderMcpHandler: invalid MCP response; missing plan[]\");\n }\n\n // Batch all plan steps in a single txn so nodemon restarts only once.\n this.tsMorph.begin();\n try {\n for (const step of payload.plan as PlanStep[]) {\n switch (step.type) {\n case \"createNewFile\": {\n const overwrite = step.overwrite ?? false;\n this.tsMorph.createNewFile(step.path, step.content, overwrite);\n break;\n }\n case \"registerNestProvider\": {\n const uniqueGuard = step.uniqueGuard ?? true;\n this.tsMorph.registerNestProvider(\n step.modulePath,\n step.providerClassName,\n step.importFrom,\n step.registerIn,\n uniqueGuard,\n );\n break;\n }\n default:\n throw new Error(`Unsupported plan step type: ${(step as any).type}`);\n }\n }\n\n const result = await this.tsMorph.commit();\n\n return {\n seedingRequired: false,\n serverRebooting: false,\n appliedSteps: payload.plan.length,\n wroteFiles: result.wrote,\n };\n } catch (err) {\n this.logger.error(`Apply failed; rolling back. ${String(err)}`);\n this.tsMorph.rollback();\n throw err;\n }\n }\n\n private safeParse(str: string): any {\n try {\n return JSON.parse(str);\n } catch {\n const unescaped = str.replace(/\\\\'/g, \"'\");\n return JSON.parse(unescaped);\n }\n }\n}"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { AiInteraction } from "src/entities/ai-interaction.entity";
|
|
2
|
-
import { IMcpToolResponseHandler } from "
|
|
3
|
-
import { ActionMetadataService } from "
|
|
4
|
-
import { DashboardService } from "
|
|
5
|
-
import { MenuItemMetadataService } from "
|
|
6
|
-
import { ModelMetadataService } from "
|
|
7
|
-
import { ModuleMetadataService } from "
|
|
8
|
-
import { RoleMetadataService } from "
|
|
9
|
-
export declare class
|
|
2
|
+
import { IMcpToolResponseHandler } from "../../../interfaces";
|
|
3
|
+
import { ActionMetadataService } from "../../action-metadata.service";
|
|
4
|
+
import { DashboardService } from "../../dashboard.service";
|
|
5
|
+
import { MenuItemMetadataService } from "../../menu-item-metadata.service";
|
|
6
|
+
import { ModelMetadataService } from "../../model-metadata.service";
|
|
7
|
+
import { ModuleMetadataService } from "../../module-metadata.service";
|
|
8
|
+
import { RoleMetadataService } from "../../role-metadata.service";
|
|
9
|
+
export declare class SolidCreateDashboardMcpHandler implements IMcpToolResponseHandler {
|
|
10
10
|
private readonly dashboardService;
|
|
11
11
|
private readonly actionMetadataService;
|
|
12
12
|
private readonly menuItemMetadataService;
|
|
@@ -22,4 +22,4 @@ export declare class SolidCreateDashboardMcpToolResponseHandler implements IMcpT
|
|
|
22
22
|
private createActionMetadataEntry;
|
|
23
23
|
private createDashboard;
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=solid-create-dashboard-mcp-
|
|
25
|
+
//# sourceMappingURL=solid-create-dashboard-mcp-handler.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solid-create-dashboard-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,qBACa,8BAA+B,YAAW,uBAAuB;IAGtE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBALX,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,uBAAuB,EAAE,uBAAuB,EAChD,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,mBAAmB;IAI/C,KAAK,CAAC,aAAa,EAAE,aAAa;;;;YAkB1B,mBAAmB;YAsCnB,yBAAyB;YAuBzB,eAAe;CAMhC"}
|
|
@@ -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.
|
|
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("
|
|
16
|
-
const action_metadata_service_1 = require("
|
|
17
|
-
const dashboard_service_1 = require("
|
|
18
|
-
const menu_item_metadata_service_1 = require("
|
|
19
|
-
const model_metadata_service_1 = require("
|
|
20
|
-
const module_metadata_service_1 = require("
|
|
21
|
-
const role_metadata_service_1 = require("
|
|
22
|
-
let
|
|
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.
|
|
105
|
-
exports.
|
|
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
|
-
],
|
|
114
|
-
//# sourceMappingURL=solid-create-dashboard-mcp-
|
|
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}"]}
|
package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts
ADDED
|
@@ -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.
|
|
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("
|
|
16
|
-
const dashboard_question_service_1 = require("
|
|
17
|
-
let
|
|
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.
|
|
33
|
-
exports.
|
|
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
|
-
],
|
|
37
|
-
//# sourceMappingURL=solid-create-dashboard-question-mcp-
|
|
36
|
+
], SolidCreateDashboardQuestionMcpHandler);
|
|
37
|
+
//# sourceMappingURL=solid-create-dashboard-question-mcp-handler.service.js.map
|
package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map
ADDED
|
@@ -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 "
|
|
3
|
-
import { DashboardQuestionSqlDatasetConfigService } from "
|
|
4
|
-
export declare class
|
|
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-
|
|
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.
|
|
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("
|
|
16
|
-
const create_dashboard_question_sql_dataset_config_dto_1 = require("
|
|
17
|
-
let
|
|
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.
|
|
34
|
-
exports.
|
|
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
|
-
],
|
|
38
|
-
//# sourceMappingURL=solid-create-dashboard-question-sql-dataset-config-mcp-
|
|
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}"]}
|
package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts
ADDED
|
@@ -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
|
package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map
ADDED
|
@@ -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.
|
|
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("
|
|
16
|
-
const dashboard_question_service_1 = require("
|
|
17
|
-
let
|
|
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.
|
|
34
|
-
exports.
|
|
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
|
-
],
|
|
38
|
-
//# sourceMappingURL=solid-create-dashboard-widget-mcp-
|
|
37
|
+
], SolidCreateDashboardWidgetMcpHandler);
|
|
38
|
+
//# sourceMappingURL=solid-create-dashboard-widget-mcp-handler.service.js.map
|
package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map
ADDED
|
@@ -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}"]}
|
package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts
ADDED
|
@@ -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
|
package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map
ADDED
|
@@ -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.
|
|
12
|
+
exports.SolidCreateModelWithFieldsMcpHandler = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
const
|
|
26
|
-
const {
|
|
23
|
+
const aiResponseMessage = JSON.parse(escapedMessage);
|
|
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
|
-
|
|
32
|
-
const modelObj = await this.modelMetadataService.create(
|
|
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.
|
|
41
|
-
exports.
|
|
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
|
-
|
|
46
|
-
|
|
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
|
package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map
ADDED
|
@@ -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 "
|
|
1
|
+
import { IMcpToolResponseHandler } from "../../../interfaces";
|
|
2
2
|
import { AiInteraction } from "src/entities/ai-interaction.entity";
|
|
3
|
-
import { ModuleMetadataService } from "
|
|
3
|
+
import { ModuleMetadataService } from "../../module-metadata.service";
|
|
4
4
|
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
5
|
-
export declare class
|
|
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-
|
|
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.
|
|
12
|
+
exports.SolidCreateModuleMcpHandler = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const module_metadata_service_1 = require("
|
|
15
|
-
const solid_registry_1 = require("
|
|
16
|
-
let
|
|
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
|
|
23
|
-
const
|
|
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.
|
|
43
|
-
exports.
|
|
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
|
-
],
|
|
48
|
-
//# sourceMappingURL=solid-create-module-mcp-
|
|
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 "
|
|
4
|
-
export declare class
|
|
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-
|
|
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"}
|