@solidstarters/solid-core 1.2.135 → 1.2.137
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/dist/controllers/ai-interaction.controller.d.ts +3 -1
- package/dist/controllers/ai-interaction.controller.d.ts.map +1 -1
- package/dist/controllers/ai-interaction.controller.js +27 -3
- package/dist/controllers/ai-interaction.controller.js.map +1 -1
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +43 -0
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +1 -0
- package/dist/controllers/{question-sql-dataset-config.controller.js → dashboard-question-sql-dataset-config.controller.js} +30 -30
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +1 -0
- package/dist/controllers/dashboard-question.controller.d.ts +45 -0
- package/dist/controllers/dashboard-question.controller.d.ts.map +1 -0
- package/dist/controllers/{question.controller.js → dashboard-question.controller.js} +31 -31
- package/dist/controllers/dashboard-question.controller.js.map +1 -0
- package/dist/dtos/{create-question-sql-dataset-config.dto.d.ts → create-dashboard-question-sql-dataset-config.dto.d.ts} +2 -2
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
- package/dist/dtos/{create-question-sql-dataset-config.dto.js → create-dashboard-question-sql-dataset-config.dto.js} +13 -13
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +1 -0
- package/dist/dtos/create-dashboard-question.dto.d.ts +17 -0
- package/dist/dtos/create-dashboard-question.dto.d.ts.map +1 -0
- package/dist/dtos/{create-question.dto.js → create-dashboard-question.dto.js} +25 -19
- package/dist/dtos/create-dashboard-question.dto.js.map +1 -0
- package/dist/dtos/create-dashboard.dto.d.ts +2 -2
- package/dist/dtos/create-dashboard.dto.d.ts.map +1 -1
- package/dist/dtos/create-dashboard.dto.js +3 -3
- package/dist/dtos/create-dashboard.dto.js.map +1 -1
- package/dist/dtos/{update-question-sql-dataset-config.dto.d.ts → update-dashboard-question-sql-dataset-config.dto.d.ts} +2 -2
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
- package/dist/dtos/{update-question-sql-dataset-config.dto.js → update-dashboard-question-sql-dataset-config.dto.js} +14 -14
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +1 -0
- package/dist/dtos/update-dashboard-question.dto.d.ts +18 -0
- package/dist/dtos/update-dashboard-question.dto.d.ts.map +1 -0
- package/dist/dtos/{update-question.dto.js → update-dashboard-question.dto.js} +26 -20
- package/dist/dtos/update-dashboard-question.dto.js.map +1 -0
- package/dist/dtos/update-dashboard.dto.d.ts +2 -2
- package/dist/dtos/update-dashboard.dto.d.ts.map +1 -1
- package/dist/dtos/update-dashboard.dto.js +3 -3
- package/dist/dtos/update-dashboard.dto.js.map +1 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +13 -0
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -0
- package/dist/entities/{question-sql-dataset-config.entity.js → dashboard-question-sql-dataset-config.entity.js} +19 -19
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -0
- package/dist/entities/dashboard-question.entity.d.ts +16 -0
- package/dist/entities/dashboard-question.entity.d.ts.map +1 -0
- package/dist/entities/{question.entity.js → dashboard-question.entity.js} +23 -19
- package/dist/entities/dashboard-question.entity.js.map +1 -0
- package/dist/entities/dashboard.entity.d.ts +2 -2
- package/dist/entities/dashboard.entity.d.ts.map +1 -1
- package/dist/entities/dashboard.entity.js +3 -3
- package/dist/entities/dashboard.entity.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +21 -2
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +39 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +8 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.js +10 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +16 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +91 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -0
- package/dist/repository/dashboard.repository.d.ts +1 -3
- package/dist/repository/dashboard.repository.d.ts.map +1 -1
- package/dist/repository/dashboard.repository.js +42 -37
- package/dist/repository/dashboard.repository.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +88 -131
- package/dist/services/ai-interaction.service.d.ts +13 -2
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +84 -19
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +8 -6
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/{question-sql-dataset-config.service.d.ts → dashboard-question-sql-dataset-config.service.d.ts} +5 -5
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -0
- package/dist/services/{question-sql-dataset-config.service.js → dashboard-question-sql-dataset-config.service.js} +9 -9
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -0
- package/dist/services/{question.service.d.ts → dashboard-question.service.d.ts} +5 -5
- package/dist/services/dashboard-question.service.d.ts.map +1 -0
- package/dist/services/{question.service.js → dashboard-question.service.js} +10 -10
- package/dist/services/dashboard-question.service.js.map +1 -0
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +1 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +3 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +22 -0
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +1 -0
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +3 -0
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts +9 -0
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts.map +1 -0
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js +40 -0
- package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js.map +1 -0
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts +11 -0
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts.map +1 -0
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js +46 -0
- package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js.map +1 -0
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +2 -2
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +1 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +11 -7
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +1 -1
- package/dist/services/question-data-providers/helpers.d.ts +5 -2
- package/dist/services/question-data-providers/helpers.d.ts.map +1 -1
- package/dist/services/question-data-providers/helpers.js +18 -3
- package/dist/services/question-data-providers/helpers.js.map +1 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +2 -2
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +1 -1
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +10 -4
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +1 -1
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +2 -2
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +1 -1
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +11 -3
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +1 -1
- package/dist/services/queues/publisher-factory.service.js +1 -1
- package/dist/services/queues/publisher-factory.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts +1 -1
- package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduled-job.interface.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +1 -6
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +56 -39
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/{question-sql-dataset-config.subscriber.d.ts → dashboard-question-sql-dataset-config.subscriber.d.ts} +6 -6
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +1 -0
- package/dist/subscribers/{question-sql-dataset-config.subscriber.js → dashboard-question-sql-dataset-config.subscriber.js} +10 -10
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +1 -0
- package/dist/subscribers/{question.subscriber.d.ts → dashboard-question.subscriber.d.ts} +7 -7
- package/dist/subscribers/dashboard-question.subscriber.d.ts.map +1 -0
- package/dist/subscribers/{question.subscriber.js → dashboard-question.subscriber.js} +8 -8
- package/dist/subscribers/dashboard-question.subscriber.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/controllers/ai-interaction.controller.ts +14 -2
- package/src/controllers/{question-sql-dataset-config.controller.ts → dashboard-question-sql-dataset-config.controller.ts} +10 -10
- package/src/controllers/{question.controller.ts → dashboard-question.controller.ts} +10 -10
- package/src/dtos/{create-question-sql-dataset-config.dto.ts → create-dashboard-question-sql-dataset-config.dto.ts} +1 -1
- package/src/dtos/{create-question.dto.ts → create-dashboard-question.dto.ts} +9 -4
- package/src/dtos/create-dashboard.dto.ts +3 -3
- package/src/dtos/{update-question-sql-dataset-config.dto.ts → update-dashboard-question-sql-dataset-config.dto.ts} +1 -1
- package/src/dtos/{update-question.dto.ts → update-dashboard-question.dto.ts} +9 -4
- package/src/dtos/update-dashboard.dto.ts +3 -3
- package/src/entities/{question-sql-dataset-config.entity.ts → dashboard-question-sql-dataset-config.entity.ts} +5 -5
- package/src/entities/{question.entity.ts → dashboard-question.entity.ts} +8 -5
- package/src/entities/dashboard.entity.ts +3 -3
- package/src/index.ts +7 -4
- package/src/interfaces.ts +24 -2
- package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +22 -0
- package/src/jobs/database/trigger-mcp-client-queue-options.ts +9 -0
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +89 -0
- package/src/repository/dashboard.repository.ts +54 -53
- package/src/seeders/seed-data/solid-core-metadata.json +88 -131
- package/src/services/ai-interaction.service.ts +117 -33
- package/src/services/chatter-message.service.ts +12 -6
- package/src/services/{question-sql-dataset-config.service.ts → dashboard-question-sql-dataset-config.service.ts} +5 -5
- package/src/services/{question.service.ts → dashboard-question.service.ts} +6 -6
- package/src/services/field-metadata.service.ts +1 -0
- package/src/services/import-transaction.service.ts +29 -1
- package/src/services/list-of-values.service.ts +5 -0
- package/src/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.ts +36 -0
- package/src/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.ts +52 -0
- package/src/services/module-metadata.service.ts +0 -5
- package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +14 -10
- package/src/services/question-data-providers/helpers.ts +23 -4
- package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +12 -6
- package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +14 -5
- package/src/services/question-data-providers/test.sql +1 -0
- package/src/services/queues/publisher-factory.service.ts +1 -1
- package/src/services/scheduled-jobs/scheduled-job.interface.ts +1 -1
- package/src/services/scheduled-jobs/scheduler.service.ts +6 -6
- package/src/solid-core.module.ts +59 -39
- package/src/subscribers/{question-sql-dataset-config.subscriber.ts → dashboard-question-sql-dataset-config.subscriber.ts} +8 -10
- package/src/subscribers/{question.subscriber.ts → dashboard-question.subscriber.ts} +7 -10
- package/dist/controllers/question-sql-dataset-config.controller.d.ts +0 -43
- package/dist/controllers/question-sql-dataset-config.controller.d.ts.map +0 -1
- package/dist/controllers/question-sql-dataset-config.controller.js.map +0 -1
- package/dist/controllers/question.controller.d.ts +0 -45
- package/dist/controllers/question.controller.d.ts.map +0 -1
- package/dist/controllers/question.controller.js.map +0 -1
- package/dist/dtos/create-question-sql-dataset-config.dto.d.ts.map +0 -1
- package/dist/dtos/create-question-sql-dataset-config.dto.js.map +0 -1
- package/dist/dtos/create-question.dto.d.ts +0 -16
- package/dist/dtos/create-question.dto.d.ts.map +0 -1
- package/dist/dtos/create-question.dto.js.map +0 -1
- package/dist/dtos/update-question-sql-dataset-config.dto.d.ts.map +0 -1
- package/dist/dtos/update-question-sql-dataset-config.dto.js.map +0 -1
- package/dist/dtos/update-question.dto.d.ts +0 -17
- package/dist/dtos/update-question.dto.d.ts.map +0 -1
- package/dist/dtos/update-question.dto.js.map +0 -1
- package/dist/entities/question-sql-dataset-config.entity.d.ts +0 -13
- package/dist/entities/question-sql-dataset-config.entity.d.ts.map +0 -1
- package/dist/entities/question-sql-dataset-config.entity.js.map +0 -1
- package/dist/entities/question.entity.d.ts +0 -15
- package/dist/entities/question.entity.d.ts.map +0 -1
- package/dist/entities/question.entity.js.map +0 -1
- package/dist/services/question-sql-dataset-config.service.d.ts.map +0 -1
- package/dist/services/question-sql-dataset-config.service.js.map +0 -1
- package/dist/services/question.service.d.ts.map +0 -1
- package/dist/services/question.service.js.map +0 -1
- package/dist/subscribers/question-sql-dataset-config.subscriber.d.ts.map +0 -1
- package/dist/subscribers/question-sql-dataset-config.subscriber.js.map +0 -1
- package/dist/subscribers/question.subscriber.d.ts.map +0 -1
- package/dist/subscribers/question.subscriber.js.map +0 -1
- package/src/services/1. Create a context menu option i.py +0 -12
package/dist/interfaces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,qCAAqC,EAAE,MAAM,mDAAmD,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/dist/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAsJA,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,gDAAmC,CAAA;AACrC,CAAC,EAFW,SAAS,yBAAT,SAAS,QAEpB;AAED,MAAa,YAAY;IACvB,YACS,IAAS,EACT,OAAU;QADV,SAAI,GAAJ,IAAI,CAAK;QACT,YAAO,GAAP,OAAO,CAAG;IACf,CAAC;CACN;AALD,oCAKC;AAmDD,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,mCAAqB,CAAA;AACvB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB","sourcesContent":["import { CreateEmailTemplateDto } from 'src/dtos/create-email-template.dto';\nimport { CreateSmsTemplateDto } from 'src/dtos/create-sms-template.dto';\nimport { SignUpDto } from 'src/dtos/sign-up.dto';\nimport { Readable } from 'stream';\nimport { CreateMediaStorageProviderMetadataDto } from './dtos/create-media-storage-provider-metadata.dto';\nimport { DatasourceType } from './dtos/create-model-metadata.dto';\nimport { CreateModuleMetadataDto } from './dtos/create-module-metadata.dto';\nimport { CreateRoleMetadataDto } from './dtos/create-role-metadata.dto';\nimport { CreateSecurityRuleDto } from './dtos/create-security-rule.dto';\nimport { FieldMetadata } from './entities/field-metadata.entity';\nimport { Media } from './entities/media.entity';\nimport { DashboardQuestion } from './entities/dashboard-question.entity';\nimport { ComputedFieldMetadata } from './helpers/solid-registry';\nimport { SqlExpression } from './services/question-data-providers/chartjs-sql-data-provider.service';\nimport { CreateDashboardDto } from './dtos/create-dashboard.dto';\nimport { AiInteraction } from './entities/ai-interaction.entity';\n\nexport interface FieldCrudManager {\n // fieldMetadata: FieldMetadata;\n // entityManager?: EntityManager;\n // createDto: any;\n // files : Array<Express.Multer.File>;\n validate(\n dto: any,\n files: Array<Express.Multer.File>,\n ): ValidationError[] | Promise<ValidationError[]>;\n transformForCreate(dto: any, ctxt?: any): any | Promise<any>;\n}\n\nexport interface ValidationError {\n field: string;\n error: string;\n}\n\n// export interface MediaStorage\nexport interface MediaStorageProvider<T> {\n store(files: Express.Multer.File[], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]>;\n delete(entity: T, mediaFieldMetadata: FieldMetadata): Promise<void>;\n retrieve(entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]>;\n storeStreams(streamPairs: [Readable, string][], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]>;\n // delete(file: string): Promise<void>;\n}\n\nexport interface ModuleMetadataConfiguration {\n moduleMetadata?: CreateModuleMetadataDto,\n roles?: CreateRoleMetadataDto[],\n users?: SignUpDto[],\n actions?: any[],\n menus?: any[],\n views?: any[],\n emailTemplates?: CreateEmailTemplateDto[],\n smsTemplates?: CreateSmsTemplateDto[],\n mediaStorageProviders?: CreateMediaStorageProviderMetadataDto[]\n securityRules?: CreateSecurityRuleDto[],\n dashboards?: CreateDashboardDto[],\n}\n\nexport interface CodeGenerationOptions {\n moduleId?: number;\n moduleUserKey?: string;\n modelId?: number;\n modelUserKey?: string;\n fieldIdsForRemoval?: number[];\n dryRun?: boolean;\n}\n\nexport interface TriggerMcpClientOptions {\n aiInteractionId: number;\n}\n\nexport interface McpResponse {\n success: boolean;\n request: string;\n response: string;\n model?: string;\n tools_invoked?: string[];\n tool_calls?: any[];\n duration_ms?: number;\n errors?: string[];\n trace?: string[];\n content_type?: string;\n}\n\nexport interface ISelectionProviderContext {\n // query: string;\n}\n\nexport interface ISelectionProviderValues {\n label: string;\n value: string;\n}\n\nexport interface ISelectionProvider<T extends ISelectionProviderContext> {\n help(): string;\n\n name(): string;\n\n value(optionValue: string, ctxt: T): Promise<ISelectionProviderValues | any>;\n\n values(query: any, ctxt: T): Promise<readonly ISelectionProviderValues[]>;\n}\n\nexport interface IDashboardVariableSelectionProvider<T extends ISelectionProviderContext> extends ISelectionProvider<T> {\n}\n\nexport interface IMcpToolResponseHandler {\n apply(aiInteraction: AiInteraction);\n}\n\nexport interface IDashboardQuestionDataProvider<TContext, TData> {\n help(): string;\n\n name(): string;\n\n getData(question: DashboardQuestion, expressions?: SqlExpression[], ctxt?: TContext): Promise<TData[] | TData>;\n}\n\n/**\n * @deprecated Use `IEntityComputedFieldProvider` instead.\n */\nexport interface IComputedFieldProvider<T> {\n help(): string;\n\n name(): string;\n\n valueType(): string;\n\n computeValue(dto: any, ctxt: T): Promise<string | number>; // FIXME : Improve the types to make it more specific using generics\n}\n\nexport interface IEntityComputedFieldProvider {\n help(): string;\n\n name(): string;\n}\n\nexport interface IEntityPreComputeFieldProvider<TTriggerEntity, TContext, TValue> extends IEntityComputedFieldProvider {\n preComputeValue(entity: TTriggerEntity, computedFieldMetadata: ComputedFieldMetadata<TContext>): Promise<TValue>;\n}\n\nexport interface IEntityPostComputeFieldProvider<TTriggerEntity, TContext> extends IEntityComputedFieldProvider {\n postComputeAndSaveValue(triggerEntity: TTriggerEntity, computedFieldMetadata: ComputedFieldMetadata<TContext>): Promise<void>;\n}\n\nexport interface ISolidDatabaseModule {\n name(): string;\n\n type(): DatasourceType;\n}\n\nexport enum EventType {\n USER_REGISTERED = 'user.registered',\n}\n\nexport class EventDetails<T> {\n constructor(\n public type: any,\n public payload: T,\n ) { }\n}\n\nexport interface IMail {\n sendEmail(\n to: string,\n subject: string,\n body: string,\n shouldQueueEmails: boolean,\n wrapperAttachments?: MailAttachmentWrapper[],\n attachments?: MailAttachment[],\n parentEntity?: any,\n parentEntityId?: any,\n ): Promise<void>;\n\n sendEmailUsingTemplate(\n to: string,\n templateName: string,\n templateParams: any,\n shouldQueueEmails: boolean,\n wrapperAttachments?: MailAttachmentWrapper[],\n attachments?: MailAttachment[],\n parentEntity?: any,\n parentEntityId?: any,\n ): Promise<void>;\n}\n\nexport interface ISMS {\n sendSMS(to: string, body: string, shouldQueueSms: boolean): Promise<void>;\n\n sendSMSUsingTemplate(\n to: string,\n templateName: string,\n templateParams: any,\n shouldQueueSms: boolean,\n ): Promise<void>;\n}\n\nexport interface MailAttachmentWrapper {\n relativePath?: string;\n attachment?: MailAttachment;\n}\n\nexport interface MailAttachment {\n filename: string;\n templatePath?: string;\n templateParams?: any;\n content?: string | Buffer;\n contentType?: string;\n path?: string;\n}\n\nexport enum BrokerType {\n RabbitMQ = 'rabbitmq',\n Database = 'database'\n}\n\nexport interface QueuesModuleOptions {\n name: string;\n type: BrokerType;\n queueName: string;\n}\n\nexport type MediaWithFullUrl = Media & {\n _full_url: string;\n};\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { QueuesModuleOptions, TriggerMcpClientOptions } from "src/interfaces";
|
|
2
|
+
import { MqMessageQueueService } from "src/services/mq-message-queue.service";
|
|
3
|
+
import { MqMessageService } from "src/services/mq-message.service";
|
|
4
|
+
import { DatabasePublisher } from "src/services/queues/database-publisher.service";
|
|
5
|
+
export declare class TriggerMcpClientPublisherDatabase extends DatabasePublisher<TriggerMcpClientOptions> {
|
|
6
|
+
protected readonly mqMessageService: MqMessageService;
|
|
7
|
+
protected readonly mqMessageQueueService: MqMessageQueueService;
|
|
8
|
+
constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService);
|
|
9
|
+
options(): QueuesModuleOptions;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=trigger-mcp-client-publisher-database.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-mcp-client-publisher-database.service.d.ts","sourceRoot":"","sources":["../../../src/jobs/database/trigger-mcp-client-publisher-database.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAGnF,qBACa,iCAAkC,SAAQ,iBAAiB,CAAC,uBAAuB,CAAC;IAEzF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;gBAD5C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB;IAKnE,OAAO,IAAI,mBAAmB;CAKjC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TriggerMcpClientPublisherDatabase = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const mq_message_queue_service_1 = require("../../services/mq-message-queue.service");
|
|
18
|
+
const mq_message_service_1 = require("../../services/mq-message.service");
|
|
19
|
+
const database_publisher_service_1 = require("../../services/queues/database-publisher.service");
|
|
20
|
+
const trigger_mcp_client_queue_options_1 = __importDefault(require("./trigger-mcp-client-queue-options"));
|
|
21
|
+
let TriggerMcpClientPublisherDatabase = class TriggerMcpClientPublisherDatabase extends database_publisher_service_1.DatabasePublisher {
|
|
22
|
+
constructor(mqMessageService, mqMessageQueueService) {
|
|
23
|
+
super(mqMessageService, mqMessageQueueService);
|
|
24
|
+
this.mqMessageService = mqMessageService;
|
|
25
|
+
this.mqMessageQueueService = mqMessageQueueService;
|
|
26
|
+
}
|
|
27
|
+
options() {
|
|
28
|
+
return {
|
|
29
|
+
...trigger_mcp_client_queue_options_1.default
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.TriggerMcpClientPublisherDatabase = TriggerMcpClientPublisherDatabase;
|
|
34
|
+
exports.TriggerMcpClientPublisherDatabase = TriggerMcpClientPublisherDatabase = __decorate([
|
|
35
|
+
(0, common_1.Injectable)(),
|
|
36
|
+
__metadata("design:paramtypes", [mq_message_service_1.MqMessageService,
|
|
37
|
+
mq_message_queue_service_1.MqMessageQueueService])
|
|
38
|
+
], TriggerMcpClientPublisherDatabase);
|
|
39
|
+
//# sourceMappingURL=trigger-mcp-client-publisher-database.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-mcp-client-publisher-database.service.js","sourceRoot":"","sources":["../../../src/jobs/database/trigger-mcp-client-publisher-database.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,sFAA8E;AAC9E,0EAAmE;AACnE,iGAAmF;AACnF,0GAA8E;AAGvE,IAAM,iCAAiC,GAAvC,MAAM,iCAAkC,SAAQ,8CAA0C;IAC7F,YACuB,gBAAkC,EAClC,qBAA4C;QAE/D,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAH5B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;IAGnE,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,0CAA4B;SAClC,CAAC;IACN,CAAC;CACJ,CAAA;AAbY,8EAAiC;4CAAjC,iCAAiC;IAD7C,IAAA,mBAAU,GAAE;qCAGgC,qCAAgB;QACX,gDAAqB;GAH1D,iCAAiC,CAa7C","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { QueuesModuleOptions, TriggerMcpClientOptions } from \"src/interfaces\";\nimport { MqMessageQueueService } from \"src/services/mq-message-queue.service\";\nimport { MqMessageService } from \"src/services/mq-message.service\";\nimport { DatabasePublisher } from \"src/services/queues/database-publisher.service\";\nimport triggerMcpClientQueueOptions from \"./trigger-mcp-client-queue-options\";\n\n@Injectable()\nexport class TriggerMcpClientPublisherDatabase extends DatabasePublisher<TriggerMcpClientOptions> {\n constructor(\n protected readonly mqMessageService: MqMessageService,\n protected readonly mqMessageQueueService: MqMessageQueueService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...triggerMcpClientQueueOptions\n };\n }\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-mcp-client-queue-options.d.ts","sourceRoot":"","sources":["../../../src/jobs/database/trigger-mcp-client-queue-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;;;;;;AAI5C,wBAIE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const interfaces_1 = require("../../interfaces");
|
|
4
|
+
const TRIGGER_MCP_CLIENT_QUEUE_NAME = 'trigger_mcp_client_queue';
|
|
5
|
+
exports.default = {
|
|
6
|
+
name: 'triggerMcpClientQueue',
|
|
7
|
+
type: interfaces_1.BrokerType.Database,
|
|
8
|
+
queueName: TRIGGER_MCP_CLIENT_QUEUE_NAME,
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=trigger-mcp-client-queue-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-mcp-client-queue-options.js","sourceRoot":"","sources":["../../../src/jobs/database/trigger-mcp-client-queue-options.ts"],"names":[],"mappings":";;AAAA,iDAA4C;AAE5C,MAAM,6BAA6B,GAAG,0BAA0B,CAAC;AAEjE,kBAAe;IACX,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAU,CAAC,QAAQ;IACzB,SAAS,EAAE,6BAA6B;CAC3C,CAAC","sourcesContent":["import { BrokerType } from \"src/interfaces\";\n\nconst TRIGGER_MCP_CLIENT_QUEUE_NAME = 'trigger_mcp_client_queue';\n\nexport default {\n name: 'triggerMcpClientQueue',\n type: BrokerType.Database,\n queueName: TRIGGER_MCP_CLIENT_QUEUE_NAME,\n};\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { QueueMessage } from 'src/interfaces/mq';
|
|
2
|
+
import { MqMessageService } from '../../services/mq-message.service';
|
|
3
|
+
import { MqMessageQueueService } from '../../services/mq-message-queue.service';
|
|
4
|
+
import { QueuesModuleOptions, TriggerMcpClientOptions } from "../../interfaces";
|
|
5
|
+
import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
|
|
6
|
+
import { AiInteractionService } from 'src/services/ai-interaction.service';
|
|
7
|
+
export declare class TriggerMcpClientSubscriberDatabase extends DatabaseSubscriber<TriggerMcpClientOptions> {
|
|
8
|
+
readonly mqMessageService: MqMessageService;
|
|
9
|
+
readonly mqMessageQueueService: MqMessageQueueService;
|
|
10
|
+
readonly aiInteractionService: AiInteractionService;
|
|
11
|
+
private readonly triggerMcpClientSubscriberLogger;
|
|
12
|
+
constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService, aiInteractionService: AiInteractionService);
|
|
13
|
+
options(): QueuesModuleOptions;
|
|
14
|
+
subscribe(message: QueueMessage<TriggerMcpClientOptions>): Promise<import("../../interfaces").McpResponse>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=trigger-mcp-client-subscriber-database.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-mcp-client-subscriber-database.service.d.ts","sourceRoot":"","sources":["../../../src/jobs/database/trigger-mcp-client-subscriber-database.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,qBACa,kCAAmC,SAAQ,kBAAkB,CAAC,uBAAuB,CAAC;IAI3F,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB;IALvD,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAuD;gBAG3F,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB;IAKvD,OAAO,IAAI,mBAAmB;IAMxB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,uBAAuB,CAAC;CA4DjE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
var TriggerMcpClientSubscriberDatabase_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.TriggerMcpClientSubscriberDatabase = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const mq_message_service_1 = require("../../services/mq-message.service");
|
|
19
|
+
const mq_message_queue_service_1 = require("../../services/mq-message-queue.service");
|
|
20
|
+
const database_subscriber_service_1 = require("../../services/queues/database-subscriber.service");
|
|
21
|
+
const trigger_mcp_client_queue_options_1 = __importDefault(require("./trigger-mcp-client-queue-options"));
|
|
22
|
+
const ai_interaction_service_1 = require("../../services/ai-interaction.service");
|
|
23
|
+
let TriggerMcpClientSubscriberDatabase = TriggerMcpClientSubscriberDatabase_1 = class TriggerMcpClientSubscriberDatabase extends database_subscriber_service_1.DatabaseSubscriber {
|
|
24
|
+
constructor(mqMessageService, mqMessageQueueService, aiInteractionService) {
|
|
25
|
+
super(mqMessageService, mqMessageQueueService);
|
|
26
|
+
this.mqMessageService = mqMessageService;
|
|
27
|
+
this.mqMessageQueueService = mqMessageQueueService;
|
|
28
|
+
this.aiInteractionService = aiInteractionService;
|
|
29
|
+
this.triggerMcpClientSubscriberLogger = new common_1.Logger(TriggerMcpClientSubscriberDatabase_1.name);
|
|
30
|
+
}
|
|
31
|
+
options() {
|
|
32
|
+
return {
|
|
33
|
+
...trigger_mcp_client_queue_options_1.default
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async subscribe(message) {
|
|
37
|
+
this.triggerMcpClientSubscriberLogger.debug(`Received message: ${JSON.stringify(message)}`);
|
|
38
|
+
const codeGnerationOptions = message.payload;
|
|
39
|
+
const aiInteraction = await this.aiInteractionService.findOne(codeGnerationOptions.aiInteractionId, {
|
|
40
|
+
populate: ['user']
|
|
41
|
+
});
|
|
42
|
+
if (!aiInteraction) {
|
|
43
|
+
const m = `Unable to identified the aiInteraction entry that triggered this job... using id: ${codeGnerationOptions.aiInteractionId}`;
|
|
44
|
+
this.triggerMcpClientSubscriberLogger.log(m);
|
|
45
|
+
throw new Error(m);
|
|
46
|
+
}
|
|
47
|
+
const prompt = aiInteraction.message;
|
|
48
|
+
const aiResponse = await this.aiInteractionService.runMcpPrompt(prompt);
|
|
49
|
+
this.triggerMcpClientSubscriberLogger.log(`aiResponse: `);
|
|
50
|
+
this.triggerMcpClientSubscriberLogger.log(JSON.stringify(aiResponse));
|
|
51
|
+
if (!aiResponse.success) {
|
|
52
|
+
this.triggerMcpClientSubscriberLogger.log(`Gen ai has returned with a false status code`);
|
|
53
|
+
const errorsStr = aiResponse.errors.join('; ');
|
|
54
|
+
await this.aiInteractionService.create({
|
|
55
|
+
userId: aiInteraction.user.id,
|
|
56
|
+
threadId: aiInteraction.threadId,
|
|
57
|
+
role: 'gen-ai',
|
|
58
|
+
message: '-',
|
|
59
|
+
contentType: aiResponse.content_type,
|
|
60
|
+
errorMessage: errorsStr,
|
|
61
|
+
modelUsed: aiResponse.model,
|
|
62
|
+
responseTimeMs: aiResponse.duration_ms,
|
|
63
|
+
metadata: JSON.stringify(aiResponse)
|
|
64
|
+
});
|
|
65
|
+
throw new Error(errorsStr);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
let nestedResponse = aiResponse.response.trim();
|
|
69
|
+
await this.aiInteractionService.create({
|
|
70
|
+
userId: aiInteraction.user.id,
|
|
71
|
+
threadId: aiInteraction.threadId,
|
|
72
|
+
role: 'gen-ai',
|
|
73
|
+
message: nestedResponse,
|
|
74
|
+
contentType: aiResponse.content_type,
|
|
75
|
+
errorMessage: '',
|
|
76
|
+
modelUsed: aiResponse.model,
|
|
77
|
+
responseTimeMs: aiResponse.duration_ms,
|
|
78
|
+
metadata: JSON.stringify(aiResponse)
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return aiResponse;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
exports.TriggerMcpClientSubscriberDatabase = TriggerMcpClientSubscriberDatabase;
|
|
85
|
+
exports.TriggerMcpClientSubscriberDatabase = TriggerMcpClientSubscriberDatabase = TriggerMcpClientSubscriberDatabase_1 = __decorate([
|
|
86
|
+
(0, common_1.Injectable)(),
|
|
87
|
+
__metadata("design:paramtypes", [mq_message_service_1.MqMessageService,
|
|
88
|
+
mq_message_queue_service_1.MqMessageQueueService,
|
|
89
|
+
ai_interaction_service_1.AiInteractionService])
|
|
90
|
+
], TriggerMcpClientSubscriberDatabase);
|
|
91
|
+
//# sourceMappingURL=trigger-mcp-client-subscriber-database.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-mcp-client-subscriber-database.service.js","sourceRoot":"","sources":["../../../src/jobs/database/trigger-mcp-client-subscriber-database.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\n\nimport { QueueMessage } from 'src/interfaces/mq';\nimport { MqMessageService } from '../../services/mq-message.service';\nimport { MqMessageQueueService } from '../../services/mq-message-queue.service';\nimport { QueuesModuleOptions, TriggerMcpClientOptions } from \"../../interfaces\";\nimport { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';\nimport triggerMcpClientQueueOptions from \"./trigger-mcp-client-queue-options\";\nimport { AiInteractionService } from 'src/services/ai-interaction.service';\n\n@Injectable()\nexport class TriggerMcpClientSubscriberDatabase extends DatabaseSubscriber<TriggerMcpClientOptions> {\n private readonly triggerMcpClientSubscriberLogger = new Logger(TriggerMcpClientSubscriberDatabase.name);\n\n constructor(\n readonly mqMessageService: MqMessageService,\n readonly mqMessageQueueService: MqMessageQueueService,\n readonly aiInteractionService: AiInteractionService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...triggerMcpClientQueueOptions\n }\n }\n\n async subscribe(message: QueueMessage<TriggerMcpClientOptions>) {\n this.triggerMcpClientSubscriberLogger.debug(`Received message: ${JSON.stringify(message)}`);\n\n const codeGnerationOptions = message.payload;\n\n const aiInteraction = await this.aiInteractionService.findOne(codeGnerationOptions.aiInteractionId, {\n populate: ['user']\n });\n if (!aiInteraction) {\n const m = `Unable to identified the aiInteraction entry that triggered this job... using id: ${codeGnerationOptions.aiInteractionId}`\n this.triggerMcpClientSubscriberLogger.log(m);\n throw new Error(m);\n }\n\n // The message contains the users prompt.\n const prompt = aiInteraction.message;\n\n // Use this to invoke our mcp client\n const aiResponse = await this.aiInteractionService.runMcpPrompt(prompt);\n this.triggerMcpClientSubscriberLogger.log(`aiResponse: `);\n this.triggerMcpClientSubscriberLogger.log(JSON.stringify(aiResponse));\n\n if (!aiResponse.success) {\n this.triggerMcpClientSubscriberLogger.log(`Gen ai has returned with a false status code`);\n\n const errorsStr = aiResponse.errors.join('; ');\n\n await this.aiInteractionService.create({\n userId: aiInteraction.user.id,\n threadId: aiInteraction.threadId,\n role: 'gen-ai',\n message: '-',\n contentType: aiResponse.content_type,\n errorMessage: errorsStr,\n modelUsed: aiResponse.model,\n responseTimeMs: aiResponse.duration_ms,\n metadata: JSON.stringify(aiResponse)\n });\n\n // update the job entry with failure... raising an error will lead the job to be marked as failed...\n throw new Error(errorsStr);\n }\n else {\n let nestedResponse = aiResponse.response.trim();\n\n await this.aiInteractionService.create({\n userId: aiInteraction.user.id,\n threadId: aiInteraction.threadId,\n role: 'gen-ai',\n message: nestedResponse,\n contentType: aiResponse.content_type,\n errorMessage: '',\n modelUsed: aiResponse.model,\n responseTimeMs: aiResponse.duration_ms,\n metadata: JSON.stringify(aiResponse)\n });\n }\n\n return aiResponse;\n }\n}\n"]}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { CreateDashboardDto } from "src/dtos/create-dashboard.dto";
|
|
2
1
|
import { Dashboard } from "src/entities/dashboard.entity";
|
|
3
2
|
import { DataSource, Repository } from "typeorm";
|
|
4
3
|
export declare class DashboardRepository extends Repository<Dashboard> {
|
|
5
4
|
private dataSource;
|
|
6
5
|
private readonly logger;
|
|
7
6
|
constructor(dataSource: DataSource);
|
|
8
|
-
upsertWithDto(createDto:
|
|
9
|
-
private cleanupRemovedRelations;
|
|
7
|
+
upsertWithDto(createDto: any): Promise<Dashboard | Dashboard[]>;
|
|
10
8
|
}
|
|
11
9
|
//# sourceMappingURL=dashboard.repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.repository.d.ts","sourceRoot":"","sources":["../../src/repository/dashboard.repository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dashboard.repository.d.ts","sourceRoot":"","sources":["../../src/repository/dashboard.repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjD,qBACa,mBAAoB,SAAQ,UAAU,CAAC,SAAS,CAAC;IAGtD,OAAO,CAAC,UAAU;IAFtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAEhD,UAAU,EAAE,UAAU;IAM5B,aAAa,CAAC,SAAS,EAAE,GAAG;CAiFrC"}
|
|
@@ -11,11 +11,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.DashboardRepository = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const dashboard_variable_entity_1 = require("../entities/dashboard-variable.entity");
|
|
15
14
|
const dashboard_entity_1 = require("../entities/dashboard.entity");
|
|
16
15
|
const module_metadata_entity_1 = require("../entities/module-metadata.entity");
|
|
17
|
-
const question_sql_dataset_config_entity_1 = require("../entities/question-sql-dataset-config.entity");
|
|
18
|
-
const question_entity_1 = require("../entities/question.entity");
|
|
19
16
|
const typeorm_1 = require("typeorm");
|
|
20
17
|
let DashboardRepository = class DashboardRepository extends typeorm_1.Repository {
|
|
21
18
|
constructor(dataSource) {
|
|
@@ -32,6 +29,46 @@ let DashboardRepository = class DashboardRepository extends typeorm_1.Repository
|
|
|
32
29
|
where: { name: createDto.name },
|
|
33
30
|
relations: ['dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],
|
|
34
31
|
});
|
|
32
|
+
if (existingDashboard) {
|
|
33
|
+
existingDashboard.layoutJson = JSON.stringify(createDto.layoutJson ?? {});
|
|
34
|
+
existingDashboard.module = module;
|
|
35
|
+
existingDashboard.dashboardVariables = createDto.dashboardVariables?.map(variable => {
|
|
36
|
+
const existingVar = existingDashboard.dashboardVariables.find(v => v.variableName === variable.variableName);
|
|
37
|
+
if (existingVar) {
|
|
38
|
+
return Object.assign(existingVar, {
|
|
39
|
+
...variable,
|
|
40
|
+
selectionStaticValues: JSON.stringify(variable.selectionStaticValues ?? []),
|
|
41
|
+
defaultValue: JSON.stringify(variable.defaultValue ?? []),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
...variable,
|
|
46
|
+
selectionStaticValues: JSON.stringify(variable.selectionStaticValues ?? []),
|
|
47
|
+
defaultValue: JSON.stringify(variable.defaultValue ?? []),
|
|
48
|
+
};
|
|
49
|
+
}) ?? [];
|
|
50
|
+
existingDashboard.questions = createDto.questions?.map(question => {
|
|
51
|
+
const existingQuestion = existingDashboard.questions.find(q => q.name === question.name);
|
|
52
|
+
const questionData = {
|
|
53
|
+
...question,
|
|
54
|
+
questionSqlDatasetConfigs: question.questionSqlDatasetConfigs?.map(cfg => {
|
|
55
|
+
const existingCfg = existingQuestion?.questionSqlDatasetConfigs.find(c => c.datasetName === cfg.datasetName);
|
|
56
|
+
if (existingCfg) {
|
|
57
|
+
return Object.assign(existingCfg, {
|
|
58
|
+
...cfg,
|
|
59
|
+
options: JSON.stringify(cfg.options ?? {}),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
...cfg,
|
|
64
|
+
options: JSON.stringify(cfg.options ?? {}),
|
|
65
|
+
};
|
|
66
|
+
}) ?? [],
|
|
67
|
+
};
|
|
68
|
+
return existingQuestion ? Object.assign(existingQuestion, questionData) : questionData;
|
|
69
|
+
}) ?? [];
|
|
70
|
+
return this.save(existingDashboard);
|
|
71
|
+
}
|
|
35
72
|
const dashboardData = {
|
|
36
73
|
...createDto,
|
|
37
74
|
module,
|
|
@@ -49,40 +86,8 @@ let DashboardRepository = class DashboardRepository extends typeorm_1.Repository
|
|
|
49
86
|
})),
|
|
50
87
|
})),
|
|
51
88
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.merge(existingDashboard, dashboardData);
|
|
55
|
-
return this.save(existingDashboard);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
const newDashboard = this.create(dashboardData);
|
|
59
|
-
return this.save(newDashboard);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
async cleanupRemovedRelations(existing, dto) {
|
|
63
|
-
const dashboardVariableRepo = this.dataSource.getRepository(dashboard_variable_entity_1.DashboardVariable);
|
|
64
|
-
const questionRepo = this.dataSource.getRepository(question_entity_1.Question);
|
|
65
|
-
const datasetConfigRepo = this.dataSource.getRepository(question_sql_dataset_config_entity_1.QuestionSqlDatasetConfig);
|
|
66
|
-
const dtoVariableNames = new Set(dto.dashboardVariables.map(v => v.variableName));
|
|
67
|
-
const variablesToRemove = existing.dashboardVariables.filter(v => !dtoVariableNames.has(v.variableName));
|
|
68
|
-
if (variablesToRemove.length > 0) {
|
|
69
|
-
await dashboardVariableRepo.remove(variablesToRemove);
|
|
70
|
-
}
|
|
71
|
-
const dtoQuestionNames = new Set(dto.questions.map(q => q.name));
|
|
72
|
-
const questionsToRemove = existing.questions.filter(q => !dtoQuestionNames.has(q.name));
|
|
73
|
-
if (questionsToRemove.length > 0) {
|
|
74
|
-
await questionRepo.remove(questionsToRemove);
|
|
75
|
-
}
|
|
76
|
-
for (const existingQuestion of existing.questions) {
|
|
77
|
-
const dtoQuestion = dto.questions.find(q => q.name === existingQuestion.name);
|
|
78
|
-
if (!dtoQuestion)
|
|
79
|
-
continue;
|
|
80
|
-
const dtoDatasetNames = new Set(dtoQuestion.questionSqlDatasetConfigs?.map(cfg => cfg.datasetName));
|
|
81
|
-
const configsToRemove = existingQuestion.questionSqlDatasetConfigs.filter(cfg => !dtoDatasetNames.has(cfg.datasetName));
|
|
82
|
-
if (configsToRemove.length > 0) {
|
|
83
|
-
await datasetConfigRepo.remove(configsToRemove);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
89
|
+
const newDashboard = this.create(dashboardData);
|
|
90
|
+
return this.save(newDashboard);
|
|
86
91
|
}
|
|
87
92
|
};
|
|
88
93
|
exports.DashboardRepository = DashboardRepository;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.repository.js","sourceRoot":"","sources":["../../src/repository/dashboard.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoD;
|
|
1
|
+
{"version":3,"file":"dashboard.repository.js","sourceRoot":"","sources":["../../src/repository/dashboard.repository.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from \"@nestjs/common\";\nimport { CreateDashboardDto } from \"src/dtos/create-dashboard.dto\";\nimport { DashboardVariable } from \"src/entities/dashboard-variable.entity\";\nimport { Dashboard } from \"src/entities/dashboard.entity\";\nimport { ModuleMetadata } from \"src/entities/module-metadata.entity\";\nimport { DashboardQuestionSqlDatasetConfig } from \"src/entities/dashboard-question-sql-dataset-config.entity\";\nimport { DashboardQuestion } from \"src/entities/dashboard-question.entity\";\nimport { DataSource, Repository } from \"typeorm\";\n\n@Injectable()\nexport class DashboardRepository extends Repository<Dashboard> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n private dataSource: DataSource,\n ) {\n super(Dashboard, dataSource.createEntityManager());\n }\n\n\n async upsertWithDto(createDto: any) {\n const moduleMetadataRepository = this.dataSource.getRepository(ModuleMetadata);\n const module = await moduleMetadataRepository.findOneBy({ name: createDto.moduleUserKey });\n\n if (!module) throw new Error(`Module with key ${createDto.moduleUserKey} not found`);\n\n const existingDashboard = await this.findOne({\n where: { name: createDto.name },\n relations: ['dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],\n });\n\n if (existingDashboard) {\n // Update basic fields\n existingDashboard.layoutJson = JSON.stringify(createDto.layoutJson ?? {});\n existingDashboard.module = module;\n\n // Upsert dashboard variables\n existingDashboard.dashboardVariables = createDto.dashboardVariables?.map(variable => {\n const existingVar = existingDashboard.dashboardVariables.find(v => v.variableName === variable.variableName);\n if (existingVar) {\n return Object.assign(existingVar, {\n ...variable,\n selectionStaticValues: JSON.stringify(variable.selectionStaticValues ?? []),\n defaultValue: JSON.stringify(variable.defaultValue ?? []),\n });\n }\n return {\n ...variable,\n selectionStaticValues: JSON.stringify(variable.selectionStaticValues ?? []),\n defaultValue: JSON.stringify(variable.defaultValue ?? []),\n };\n }) ?? [];\n\n // Upsert questions and their configs\n existingDashboard.questions = createDto.questions?.map(question => {\n const existingQuestion = existingDashboard.questions.find(q => q.name === question.name);\n const questionData: any = {\n ...question,\n questionSqlDatasetConfigs: question.questionSqlDatasetConfigs?.map(cfg => {\n const existingCfg = existingQuestion?.questionSqlDatasetConfigs.find(c => c.datasetName === cfg.datasetName);\n if (existingCfg) {\n return Object.assign(existingCfg, {\n ...cfg,\n options: JSON.stringify(cfg.options ?? {}),\n });\n }\n return {\n ...cfg,\n options: JSON.stringify(cfg.options ?? {}),\n };\n }) ?? [],\n };\n\n return existingQuestion ? Object.assign(existingQuestion, questionData) : questionData;\n }) ?? [];\n\n return this.save(existingDashboard);\n }\n\n // Else: new dashboard\n const dashboardData = {\n ...createDto,\n module,\n layoutJson: JSON.stringify(createDto.layoutJson ?? {}),\n dashboardVariables: createDto.dashboardVariables?.map(variable => ({\n ...variable,\n selectionStaticValues: JSON.stringify(variable.selectionStaticValues ?? []),\n defaultValue: JSON.stringify(variable.defaultValue ?? []),\n })),\n questions: createDto.questions?.map(question => ({\n ...question,\n questionSqlDatasetConfigs: question.questionSqlDatasetConfigs?.map(cfg => ({\n ...cfg,\n options: JSON.stringify(cfg.options ?? {}),\n })),\n })),\n };\n\n const newDashboard = this.create(dashboardData);\n return this.save(newDashboard);\n }\n}"]}
|