@solidstarters/solid-core 1.2.203 → 1.2.206
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/commands/info.command.d.ts +19 -0
- package/dist/commands/info.command.d.ts.map +1 -0
- package/dist/commands/info.command.js +98 -0
- package/dist/commands/info.command.js.map +1 -0
- package/dist/commands/mcp.command.d.ts.map +1 -1
- package/dist/commands/mcp.command.js +2 -10
- package/dist/commands/mcp.command.js.map +1 -1
- package/dist/commands/seed.command.d.ts.map +1 -1
- package/dist/commands/seed.command.js +2 -11
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/controllers/email-template.controller.d.ts +3 -1
- package/dist/controllers/email-template.controller.d.ts.map +1 -1
- package/dist/controllers/email-template.controller.js +7 -4
- package/dist/controllers/email-template.controller.js.map +1 -1
- package/dist/controllers/google-authentication.controller.d.ts +4 -5
- package/dist/controllers/google-authentication.controller.d.ts.map +1 -1
- package/dist/controllers/google-authentication.controller.js +21 -14
- package/dist/controllers/google-authentication.controller.js.map +1 -1
- package/dist/controllers/otp-authentication.controller.d.ts +10 -0
- package/dist/controllers/otp-authentication.controller.d.ts.map +1 -1
- package/dist/controllers/otp-authentication.controller.js +1 -1
- package/dist/controllers/setting.controller.d.ts +2 -34
- package/dist/controllers/setting.controller.d.ts.map +1 -1
- package/dist/controllers/setting.controller.js +4 -130
- package/dist/controllers/setting.controller.js.map +1 -1
- package/dist/decorators/settings-provider.decorator.d.ts +3 -0
- package/dist/decorators/settings-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/settings-provider.decorator.js +8 -0
- package/dist/decorators/settings-provider.decorator.js.map +1 -0
- package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
- package/dist/decorators/solid-password.decorator.js +3 -3
- package/dist/decorators/solid-password.decorator.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts +3 -4
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +4 -51
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/create-setting.dto.d.ts +3 -0
- package/dist/dtos/create-setting.dto.d.ts.map +1 -1
- package/dist/dtos/create-setting.dto.js +20 -2
- package/dist/dtos/create-setting.dto.js.map +1 -1
- package/dist/dtos/update-setting.dto.d.ts +3 -0
- package/dist/dtos/update-setting.dto.d.ts.map +1 -1
- package/dist/dtos/update-setting.dto.js +19 -1
- package/dist/dtos/update-setting.dto.js.map +1 -1
- package/dist/entities/setting.entity.d.ts +3 -0
- package/dist/entities/setting.entity.d.ts.map +1 -1
- package/dist/entities/setting.entity.js +13 -1
- package/dist/entities/setting.entity.js.map +1 -1
- package/dist/factories/mail.factory.d.ts +3 -4
- package/dist/factories/mail.factory.d.ts.map +1 -1
- package/dist/factories/mail.factory.js +6 -12
- package/dist/factories/mail.factory.js.map +1 -1
- package/dist/factories/sms.factory.d.ts +3 -4
- package/dist/factories/sms.factory.d.ts.map +1 -1
- package/dist/factories/sms.factory.js +6 -12
- package/dist/factories/sms.factory.js.map +1 -1
- package/dist/factories/whatsapp.factory.d.ts +3 -4
- package/dist/factories/whatsapp.factory.d.ts.map +1 -1
- package/dist/factories/whatsapp.factory.js +6 -12
- package/dist/factories/whatsapp.factory.js.map +1 -1
- package/dist/guards/access-token.guard.d.ts +3 -4
- package/dist/guards/access-token.guard.d.ts.map +1 -1
- package/dist/guards/access-token.guard.js +14 -9
- package/dist/guards/access-token.guard.js.map +1 -1
- package/dist/helpers/cors.helper.d.ts +1 -2
- package/dist/helpers/cors.helper.d.ts.map +1 -1
- package/dist/helpers/cors.helper.js +2 -2
- package/dist/helpers/cors.helper.js.map +1 -1
- package/dist/helpers/error-mapper.service.d.ts.map +1 -1
- package/dist/helpers/error-mapper.service.js.map +1 -1
- package/dist/helpers/google-oauth.helper.d.ts +7 -3
- package/dist/helpers/google-oauth.helper.d.ts.map +1 -1
- package/dist/helpers/google-oauth.helper.js +1 -2
- package/dist/helpers/google-oauth.helper.js.map +1 -1
- package/dist/helpers/module.helper.js +0 -2
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +8 -3
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +32 -9
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +21 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +8 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/passport-strategies/google-oauth.strategy.d.ts +1 -4
- package/dist/passport-strategies/google-oauth.strategy.d.ts.map +1 -1
- package/dist/passport-strategies/google-oauth.strategy.js +12 -12
- package/dist/passport-strategies/google-oauth.strategy.js.map +1 -1
- package/dist/seeders/email-template-seeder.service.d.ts +3 -4
- package/dist/seeders/email-template-seeder.service.d.ts.map +1 -1
- package/dist/seeders/email-template-seeder.service.js +7 -12
- package/dist/seeders/email-template-seeder.service.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +1 -5
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +23 -23
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +98 -4
- package/dist/seeders/sms-template-seeder.service.d.ts +3 -4
- package/dist/seeders/sms-template-seeder.service.d.ts.map +1 -1
- package/dist/seeders/sms-template-seeder.service.js +7 -12
- package/dist/seeders/sms-template-seeder.service.js.map +1 -1
- package/dist/services/action-metadata.service.d.ts +2 -13
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +4 -22
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/ai-interaction.service.d.ts +2 -13
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +6 -24
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +14 -10
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +159 -114
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/bcrypt.service.d.ts +3 -5
- package/dist/services/bcrypt.service.d.ts.map +1 -1
- package/dist/services/bcrypt.service.js +10 -14
- package/dist/services/bcrypt.service.js.map +1 -1
- package/dist/services/chatter-message-details.service.d.ts +2 -13
- package/dist/services/chatter-message-details.service.d.ts.map +1 -1
- package/dist/services/chatter-message-details.service.js +4 -22
- package/dist/services/chatter-message-details.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +2 -13
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +5 -23
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +12 -12
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +25 -17
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +2 -13
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.js +4 -21
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
- package/dist/services/dashboard-question.service.d.ts +2 -13
- package/dist/services/dashboard-question.service.d.ts.map +1 -1
- package/dist/services/dashboard-question.service.js +4 -21
- package/dist/services/dashboard-question.service.js.map +1 -1
- package/dist/services/dashboard-variable.service.d.ts +2 -13
- package/dist/services/dashboard-variable.service.d.ts.map +1 -1
- package/dist/services/dashboard-variable.service.js +4 -21
- package/dist/services/dashboard-variable.service.js.map +1 -1
- package/dist/services/dashboard.service.d.ts +2 -13
- package/dist/services/dashboard.service.d.ts.map +1 -1
- package/dist/services/dashboard.service.js +4 -21
- package/dist/services/dashboard.service.js.map +1 -1
- package/dist/services/email-template.service.d.ts +2 -13
- package/dist/services/email-template.service.d.ts.map +1 -1
- package/dist/services/email-template.service.js +4 -22
- package/dist/services/email-template.service.js.map +1 -1
- package/dist/services/export-template.service.d.ts +2 -13
- package/dist/services/export-template.service.d.ts.map +1 -1
- package/dist/services/export-template.service.js +4 -21
- package/dist/services/export-template.service.js.map +1 -1
- package/dist/services/export-transaction.service.d.ts +2 -13
- package/dist/services/export-transaction.service.d.ts.map +1 -1
- package/dist/services/export-transaction.service.js +4 -21
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +11 -0
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +3 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/file/file-service.interface.d.ts +22 -0
- package/dist/services/file/file-service.interface.d.ts.map +1 -0
- package/dist/services/file/file-service.interface.js +5 -0
- package/dist/services/file/file-service.interface.js.map +1 -0
- package/dist/services/file.service.d.ts +1 -4
- package/dist/services/file.service.d.ts.map +1 -1
- package/dist/services/file.service.js +11 -12
- package/dist/services/file.service.js.map +1 -1
- package/dist/services/genai/r2r-helper.service.d.ts +3 -1
- package/dist/services/genai/r2r-helper.service.d.ts.map +1 -1
- package/dist/services/genai/r2r-helper.service.js +11 -7
- package/dist/services/genai/r2r-helper.service.js.map +1 -1
- package/dist/services/import-transaction-error-log.service.d.ts +2 -13
- package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
- package/dist/services/import-transaction-error-log.service.js +4 -22
- package/dist/services/import-transaction-error-log.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +2 -13
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +4 -22
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +2 -13
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +4 -22
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/locale.service.d.ts +2 -13
- package/dist/services/locale.service.d.ts.map +1 -1
- package/dist/services/locale.service.js +4 -22
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/mail/elastic-email.service.d.ts +4 -5
- package/dist/services/mail/elastic-email.service.d.ts.map +1 -1
- package/dist/services/mail/elastic-email.service.js +10 -13
- package/dist/services/mail/elastic-email.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.d.ts +3 -4
- package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
- package/dist/services/mail/smtp-email.service.js +19 -17
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.d.ts +11 -0
- package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.js +3 -0
- package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
- package/dist/services/media.service.d.ts +2 -9
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +17 -28
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +2 -4
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +2 -11
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +3 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +16 -12
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/index.d.ts +1 -1
- package/dist/services/mediaStorageProviders/index.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/index.js +1 -1
- package/dist/services/mediaStorageProviders/index.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts +2 -13
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +4 -22
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +11 -0
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +3 -0
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/model-sequence.service.d.ts +2 -13
- package/dist/services/model-sequence.service.d.ts.map +1 -1
- package/dist/services/model-sequence.service.js +4 -21
- package/dist/services/model-sequence.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts +14 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +13 -6
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.d.ts +2 -13
- package/dist/services/mq-message-queue.service.d.ts.map +1 -1
- package/dist/services/mq-message-queue.service.js +4 -22
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +2 -13
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +4 -22
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/permission-metadata.service.d.ts +2 -13
- package/dist/services/permission-metadata.service.d.ts.map +1 -1
- package/dist/services/permission-metadata.service.js +4 -22
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +2 -13
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +4 -23
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/saved-filters.service.d.ts +2 -13
- package/dist/services/saved-filters.service.d.ts.map +1 -1
- package/dist/services/saved-filters.service.js +4 -21
- package/dist/services/saved-filters.service.js.map +1 -1
- package/dist/services/scheduled-job.service.d.ts +2 -13
- package/dist/services/scheduled-job.service.d.ts.map +1 -1
- package/dist/services/scheduled-job.service.js +4 -22
- package/dist/services/scheduled-job.service.js.map +1 -1
- package/dist/services/security-rule.service.d.ts +2 -13
- package/dist/services/security-rule.service.d.ts.map +1 -1
- package/dist/services/security-rule.service.js +5 -23
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/selection-providers/list-of-roles-selectionproviders.service.d.ts +15 -0
- package/dist/services/selection-providers/list-of-roles-selectionproviders.service.d.ts.map +1 -0
- package/dist/services/selection-providers/list-of-roles-selectionproviders.service.js +59 -0
- package/dist/services/selection-providers/list-of-roles-selectionproviders.service.js.map +1 -0
- package/dist/services/setting.service.d.ts +23 -30
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +147 -196
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +1058 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -0
- package/dist/services/settings/default-settings-provider.service.js +139 -0
- package/dist/services/settings/default-settings-provider.service.js.map +1 -0
- package/dist/services/short-url/tiny-url.service.d.ts +3 -4
- package/dist/services/short-url/tiny-url.service.d.ts.map +1 -1
- package/dist/services/short-url/tiny-url.service.js +10 -13
- package/dist/services/short-url/tiny-url.service.js.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts +3 -4
- package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.js +3 -3
- package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts +2 -3
- package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
- package/dist/services/sms/Msg91OTPService.js +7 -13
- package/dist/services/sms/Msg91OTPService.js.map +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts +2 -3
- package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91SMSService.js +7 -13
- package/dist/services/sms/Msg91SMSService.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.d.ts +3 -4
- package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
- package/dist/services/sms/TwilioSMSService.js +13 -16
- package/dist/services/sms/TwilioSMSService.js.map +1 -1
- package/dist/services/sms-template.service.d.ts +2 -13
- package/dist/services/sms-template.service.d.ts.map +1 -1
- package/dist/services/sms-template.service.js +4 -22
- package/dist/services/sms-template.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +4 -1
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +33 -47
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/textract.service.d.ts +1 -4
- package/dist/services/textract.service.d.ts.map +1 -1
- package/dist/services/textract.service.js +14 -18
- package/dist/services/textract.service.js.map +1 -1
- package/dist/services/user-activity-history.service.d.ts +2 -13
- package/dist/services/user-activity-history.service.d.ts.map +1 -1
- package/dist/services/user-activity-history.service.js +4 -22
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user-view-metadata.service.d.ts +2 -13
- package/dist/services/user-view-metadata.service.d.ts.map +1 -1
- package/dist/services/user-view-metadata.service.js +4 -22
- package/dist/services/user-view-metadata.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -15
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +7 -28
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +2 -13
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +5 -23
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts +3 -4
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
- package/dist/services/whatsapp/Msg91WhatsappService.js +12 -18
- package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
- package/dist/services/whatsapp/Three60WhatsappService.d.ts +1 -4
- package/dist/services/whatsapp/Three60WhatsappService.d.ts.map +1 -1
- package/dist/services/whatsapp/Three60WhatsappService.js +2 -11
- package/dist/services/whatsapp/Three60WhatsappService.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +11 -47
- package/dist/solid-core.module.js.map +1 -1
- package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
- package/dist/transformers/typeorm/local-date-time-transformer.js +4 -2
- package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/commands/info.command.ts +101 -0
- package/src/commands/mcp.command.ts +3 -17
- package/src/commands/seed.command.ts +4 -16
- package/src/controllers/email-template.controller.ts +9 -4
- package/src/controllers/google-authentication.controller.ts +19 -12
- package/src/controllers/setting.controller.ts +6 -81
- package/src/decorators/settings-provider.decorator.ts +7 -0
- package/src/decorators/solid-password.decorator.ts +43 -43
- package/src/dtos/create-role-metadata.dto.ts +4 -81
- package/src/dtos/create-setting.dto.ts +14 -1
- package/src/dtos/update-setting.dto.ts +14 -0
- package/src/entities/setting.entity.ts +15 -1
- package/src/factories/mail.factory.ts +4 -4
- package/src/factories/sms.factory.ts +9 -7
- package/src/factories/whatsapp.factory.ts +4 -4
- package/src/guards/access-token.guard.ts +12 -5
- package/src/helpers/cors.helper.ts +3 -3
- package/src/helpers/error-mapper.service.ts +0 -1
- package/src/helpers/google-oauth.helper.ts +11 -7
- package/src/helpers/module.helper.ts +2 -2
- package/src/helpers/solid-registry.ts +45 -16
- package/src/index.ts +2 -4
- package/src/interfaces.ts +29 -0
- package/src/passport-strategies/google-oauth.strategy.ts +11 -8
- package/src/seeders/email-template-seeder.service.ts +6 -4
- package/src/seeders/module-metadata-seeder.service.ts +40 -28
- package/src/seeders/seed-data/solid-core-metadata.json +99 -5
- package/src/seeders/sms-template-seeder.service.ts +6 -4
- package/src/services/action-metadata.service.ts +4 -16
- package/src/services/ai-interaction.service.ts +6 -17
- package/src/services/authentication.service.ts +173 -111
- package/src/services/bcrypt.service.ts +9 -9
- package/src/services/chatter-message-details.service.ts +5 -17
- package/src/services/chatter-message.service.ts +2 -14
- package/src/services/crud.service.ts +36 -28
- package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -15
- package/src/services/dashboard-question.service.ts +4 -17
- package/src/services/dashboard-variable.service.ts +4 -16
- package/src/services/dashboard.service.ts +2 -13
- package/src/services/email-template.service.ts +3 -15
- package/src/services/export-template.service.ts +4 -18
- package/src/services/export-transaction.service.ts +4 -19
- package/src/services/field-metadata.service.ts +5 -1
- package/src/services/file/file-service.interface.ts +74 -0
- package/src/services/file.service.ts +10 -7
- package/src/services/genai/r2r-helper.service.ts +10 -6
- package/src/services/import-transaction-error-log.service.ts +5 -17
- package/src/services/import-transaction.service.ts +3 -15
- package/src/services/list-of-values.service.ts +3 -16
- package/src/services/locale.service.ts +3 -15
- package/src/services/mail/elastic-email.service.ts +7 -7
- package/src/services/mail/smtp-email.service.ts +19 -11
- package/src/services/media-storage-provider-metadata.service.ts +4 -0
- package/src/services/media.service.ts +39 -22
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +0 -3
- package/src/services/mediaStorageProviders/file-storage-provider.ts +24 -12
- package/src/services/mediaStorageProviders/index.ts +1 -1
- package/src/services/menu-item-metadata.service.ts +5 -17
- package/src/services/model-metadata.service.ts +4 -0
- package/src/services/model-sequence.service.ts +4 -15
- package/src/services/module-metadata.service.ts +13 -4
- package/src/services/mq-message-queue.service.ts +5 -17
- package/src/services/mq-message.service.ts +5 -17
- package/src/services/permission-metadata.service.ts +4 -16
- package/src/services/role-metadata.service.ts +3 -16
- package/src/services/saved-filters.service.ts +2 -13
- package/src/services/scheduled-job.service.ts +3 -15
- package/src/services/security-rule.service.ts +4 -16
- package/src/services/selection-providers/list-of-roles-selectionproviders.service.ts +69 -0
- package/src/services/setting.service.ts +223 -212
- package/src/services/settings/default-settings-provider.service.ts +157 -0
- package/src/services/short-url/tiny-url.service.ts +9 -7
- package/src/services/sms/Msg91BaseSMSService.ts +6 -4
- package/src/services/sms/Msg91OTPService.ts +7 -7
- package/src/services/sms/Msg91SMSService.ts +7 -6
- package/src/services/sms/TwilioSMSService.ts +18 -19
- package/src/services/sms-template.service.ts +3 -15
- package/src/services/solid-introspect.service.ts +45 -66
- package/src/services/textract.service.ts +13 -10
- package/src/services/user-activity-history.service.ts +5 -17
- package/src/services/user-view-metadata.service.ts +5 -17
- package/src/services/user.service.ts +7 -22
- package/src/services/view-metadata.service.ts +3 -15
- package/src/services/whatsapp/Msg91WhatsappService.ts +10 -11
- package/src/services/whatsapp/Three60WhatsappService.ts +0 -3
- package/src/solid-core.module.ts +19 -49
- package/src/transformers/typeorm/local-date-time-transformer.ts +10 -5
- package/dist/config/app-builder.config.d.ts +0 -11
- package/dist/config/app-builder.config.d.ts.map +0 -1
- package/dist/config/app-builder.config.js +0 -13
- package/dist/config/app-builder.config.js.map +0 -1
- package/dist/config/common.config.d.ts +0 -96
- package/dist/config/common.config.d.ts.map +0 -1
- package/dist/config/common.config.js +0 -51
- package/dist/config/common.config.js.map +0 -1
- package/dist/config/iam.config.d.ts +0 -56
- package/dist/config/iam.config.d.ts.map +0 -1
- package/dist/config/iam.config.js +0 -35
- package/dist/config/iam.config.js.map +0 -1
- package/dist/config/jwt.config.d.ts +0 -14
- package/dist/config/jwt.config.d.ts.map +0 -1
- package/dist/config/jwt.config.js +0 -15
- package/dist/config/jwt.config.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js +0 -151
- package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts +0 -17
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js +0 -80
- package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js +0 -74
- package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js +0 -47
- package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js +0 -151
- package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +0 -16
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +0 -75
- package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js +0 -73
- package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js +0 -45
- package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts +0 -14
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js +0 -51
- package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts +0 -12
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +0 -1
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js +0 -38
- package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +0 -1
- package/dist/services/media-storage-provider-metadata-seeder.service.d.ts +0 -8
- package/dist/services/media-storage-provider-metadata-seeder.service.d.ts.map +0 -1
- package/dist/services/media-storage-provider-metadata-seeder.service.js +0 -43
- package/dist/services/media-storage-provider-metadata-seeder.service.js.map +0 -1
- package/src/config/app-builder.config.ts +0 -12
- package/src/config/common.config.ts +0 -55
- package/src/config/iam.config.ts +0 -32
- package/src/config/jwt.config.ts +0 -13
- package/src/services/export_issues.txt +0 -10
- package/src/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.ts +0 -137
- package/src/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.ts +0 -81
- package/src/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.ts +0 -69
- package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +0 -68
- package/src/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.ts +0 -141
- package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +0 -71
- package/src/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.ts +0 -72
- package/src/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts +0 -45
- package/src/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.ts +0 -58
- package/src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts +0 -40
- package/src/services/groupBy.json +0 -92
- package/src/services/media-storage-provider-metadata-seeder.service.ts +0 -33
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
-
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;
|
|
22
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
-
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
-
var ownKeys = function(o) {
|
|
26
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
-
var ar = [];
|
|
28
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
-
return ar;
|
|
30
|
-
};
|
|
31
|
-
return ownKeys(o);
|
|
32
|
-
};
|
|
33
|
-
return function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
})();
|
|
41
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
-
};
|
|
44
|
-
var SolidAddHeaderButtonOrRowButtonToListViewMcpHandler_1;
|
|
45
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
exports.SolidAddHeaderButtonOrRowButtonToListViewMcpHandler = void 0;
|
|
47
|
-
const common_1 = require("@nestjs/common");
|
|
48
|
-
const solid_ts_morph_service_1 = require("../../solid-ts-morph.service");
|
|
49
|
-
const module_metadata_helper_service_1 = require("../../../helpers/module-metadata-helper.service");
|
|
50
|
-
const fs = __importStar(require("fs/promises"));
|
|
51
|
-
const RESTART_TOUCH_FILE = process.env.MCP_RESTART_TOUCH_FILE || "tmp/restart.touch";
|
|
52
|
-
let SolidAddHeaderButtonOrRowButtonToListViewMcpHandler = SolidAddHeaderButtonOrRowButtonToListViewMcpHandler_1 = class SolidAddHeaderButtonOrRowButtonToListViewMcpHandler {
|
|
53
|
-
constructor(tsMorph, moduleMetadataHelperService) {
|
|
54
|
-
this.tsMorph = tsMorph;
|
|
55
|
-
this.moduleMetadataHelperService = moduleMetadataHelperService;
|
|
56
|
-
this.logger = new common_1.Logger(SolidAddHeaderButtonOrRowButtonToListViewMcpHandler_1.name);
|
|
57
|
-
}
|
|
58
|
-
async apply(aiInteraction) {
|
|
59
|
-
const raw = this.safeParse(aiInteraction.message);
|
|
60
|
-
const payload = (raw?.data?.plan ? raw.data : raw);
|
|
61
|
-
if (!payload || !Array.isArray(payload.plan)) {
|
|
62
|
-
throw new Error("SolidAddHeaderButtonOrRowButtonToListViewMcpHandler: invalid MCP response; missing plan[]");
|
|
63
|
-
}
|
|
64
|
-
this.tsMorph.begin();
|
|
65
|
-
try {
|
|
66
|
-
for (const step of payload.plan) {
|
|
67
|
-
switch (step.type) {
|
|
68
|
-
case "createNewFile": {
|
|
69
|
-
const overwrite = step.overwrite ?? false;
|
|
70
|
-
this.tsMorph.createNewFile(step.path, step.content, overwrite);
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
case "registerSolidXExtensionComponent": {
|
|
74
|
-
this.tsMorph.registerSolidUiExtension(step.path, step.content);
|
|
75
|
-
this.tsMorph.addImport(step.path, step.importExtensionComponent);
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
case "addListViewButton": {
|
|
79
|
-
const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(step.moduleName);
|
|
80
|
-
try {
|
|
81
|
-
await fs.access(filePath);
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
this.logger.error(`Metadata file not found: ${filePath}`);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
|
|
88
|
-
const existingViewIndex = metaData.views.findIndex((view) => view.type === "list" &&
|
|
89
|
-
view.moduleUserKey === step.moduleName &&
|
|
90
|
-
view.modelUserKey === step.modelName);
|
|
91
|
-
if (existingViewIndex !== -1) {
|
|
92
|
-
const view = metaData.views[existingViewIndex];
|
|
93
|
-
view.layout = view.layout || {};
|
|
94
|
-
view.layout.attrs = view.layout.attrs || {};
|
|
95
|
-
if (!Array.isArray(view.layout.attrs[step.buttonType])) {
|
|
96
|
-
view.layout.attrs[step.buttonType] = [];
|
|
97
|
-
}
|
|
98
|
-
let buttonContent = step.content;
|
|
99
|
-
if (typeof buttonContent === "string") {
|
|
100
|
-
try {
|
|
101
|
-
buttonContent = JSON.parse(buttonContent);
|
|
102
|
-
}
|
|
103
|
-
catch (err) {
|
|
104
|
-
this.logger.error("❌ Failed to parse step.content JSON:", err);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
view.layout.attrs[step.buttonType].push(buttonContent);
|
|
109
|
-
console.log(`✅ Added ${step.buttonType} to view: ${view.name}`);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
console.warn(`⚠️ No matching list view found for module=${step.moduleName} and model=${step.modelName}`);
|
|
113
|
-
}
|
|
114
|
-
const updatedContent = JSON.stringify(metaData, null, 2);
|
|
115
|
-
await fs.writeFile(filePath, updatedContent);
|
|
116
|
-
this.logger.log(`Updated list view in ${filePath}`);
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
default:
|
|
120
|
-
throw new Error(`Unsupported plan step type: ${step.type}`);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
const result = await this.tsMorph.commit();
|
|
124
|
-
return {
|
|
125
|
-
seedingRequired: true,
|
|
126
|
-
serverRebooting: false,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
this.logger.error(`Apply failed; rolling back. ${String(err)}`);
|
|
131
|
-
this.tsMorph.rollback();
|
|
132
|
-
throw err;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
safeParse(str) {
|
|
136
|
-
try {
|
|
137
|
-
return JSON.parse(str);
|
|
138
|
-
}
|
|
139
|
-
catch {
|
|
140
|
-
const unescaped = str.replace(/\\'/g, "'");
|
|
141
|
-
return JSON.parse(unescaped);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
exports.SolidAddHeaderButtonOrRowButtonToListViewMcpHandler = SolidAddHeaderButtonOrRowButtonToListViewMcpHandler;
|
|
146
|
-
exports.SolidAddHeaderButtonOrRowButtonToListViewMcpHandler = SolidAddHeaderButtonOrRowButtonToListViewMcpHandler = SolidAddHeaderButtonOrRowButtonToListViewMcpHandler_1 = __decorate([
|
|
147
|
-
(0, common_1.Injectable)(),
|
|
148
|
-
__metadata("design:paramtypes", [solid_ts_morph_service_1.SolidTsMorphService,
|
|
149
|
-
module_metadata_helper_service_1.ModuleMetadataHelperService])
|
|
150
|
-
], SolidAddHeaderButtonOrRowButtonToListViewMcpHandler);
|
|
151
|
-
//# sourceMappingURL=solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-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\";\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport * as fs from \"fs/promises\";\n\nconst RESTART_TOUCH_FILE = process.env.MCP_RESTART_TOUCH_FILE || \"tmp/restart.touch\";\n\n@Injectable()\nexport class SolidAddHeaderButtonOrRowButtonToListViewMcpHandler implements IMcpToolResponseHandler {\n private readonly logger = new Logger(SolidAddHeaderButtonOrRowButtonToListViewMcpHandler.name);\n\n constructor(\n private readonly tsMorph: SolidTsMorphService,\n private readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n\n ) { }\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(\"SolidAddHeaderButtonOrRowButtonToListViewMcpHandler: 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 \"registerSolidXExtensionComponent\": {\n this.tsMorph.registerSolidUiExtension(\n step.path,\n step.content,\n );\n this.tsMorph.addImport(\n step.path,\n step.importExtensionComponent,\n );\n break;\n }\n case \"addListViewButton\": {\n\n const filePath =\n await this.moduleMetadataHelperService.getModuleMetadataFilePath(\n step.moduleName\n );\n try {\n await fs.access(filePath);\n } catch {\n this.logger.error(`Metadata file not found: ${filePath}`);\n return;\n }\n const metaData =\n await this.moduleMetadataHelperService.getModuleMetadataConfiguration(\n filePath\n );\n // Remove, update or insert logic\n\n\n // Find the existing view of type \"list\" for the given module & model\n const existingViewIndex = metaData.views.findIndex(\n (view: any) =>\n view.type === \"list\" &&\n view.moduleUserKey === step.moduleName &&\n view.modelUserKey === step.modelName\n );\n\n if (existingViewIndex !== -1) {\n const view = metaData.views[existingViewIndex];\n\n // Ensure layout & attrs exist\n view.layout = view.layout || {};\n view.layout.attrs = view.layout.attrs || {};\n\n // Initialize rowButtons or headerButtons if not present\n if (!Array.isArray(view.layout.attrs[step.buttonType])) {\n view.layout.attrs[step.buttonType] = [];\n }\n\n let buttonContent = step.content;\n\n // Parse only if it’s a string\n if (typeof buttonContent === \"string\") {\n try {\n buttonContent = JSON.parse(buttonContent);\n } catch (err) {\n this.logger.error(\"❌ Failed to parse step.content JSON:\", err);\n return;\n }\n }\n\n\n // Push the new button content\n view.layout.attrs[step.buttonType].push(buttonContent);\n\n console.log(`✅ Added ${step.buttonType} to view: ${view.name}`);\n } else {\n console.warn(`⚠️ No matching list view found for module=${step.moduleName} and model=${step.modelName}`);\n }\n\n const updatedContent = JSON.stringify(metaData, null, 2);\n await fs.writeFile(filePath, updatedContent);\n this.logger.log(`Updated list view in ${filePath}`);\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: true,\n serverRebooting: false,\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}"]}
|
package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { AiInteraction } from "src/entities/ai-interaction.entity";
|
|
2
|
-
import { IMcpToolResponseHandler } from "../../../interfaces";
|
|
3
|
-
import { SolidTsMorphService } from "src/services/solid-ts-morph.service";
|
|
4
|
-
export declare class SolidCreateComputedProviderMcpHandler implements IMcpToolResponseHandler {
|
|
5
|
-
private readonly tsMorph;
|
|
6
|
-
private readonly logger;
|
|
7
|
-
constructor(tsMorph: SolidTsMorphService);
|
|
8
|
-
apply(aiInteraction: AiInteraction): Promise<{
|
|
9
|
-
seedingRequired: boolean;
|
|
10
|
-
serverRebooting: boolean;
|
|
11
|
-
appliedSteps: number;
|
|
12
|
-
wroteFiles: number;
|
|
13
|
-
}>;
|
|
14
|
-
private safeParse;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=solid-create-computed-provider-mcp-handler.service.d.ts.map
|
package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"solid-create-computed-provider-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAyC,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E,qBACa,qCAAsC,YAAW,uBAAuB;IAGvE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0D;gBAEpD,OAAO,EAAE,mBAAmB;IAEnD,KAAK,CAAC,aAAa,EAAE,aAAa;;;;;;IAiDxC,OAAO,CAAC,SAAS;CAQlB"}
|
package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
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
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":";;;;;;;;;;;;;AAAA,2CAAoD;AAGpD,yEAA0E;AAE1E,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,mBAAmB,CAAC;AAG9E,IAAM,qCAAqC,6CAA3C,MAAM,qCAAqC;IAGhD,YAA6B,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAFxC,WAAM,GAAG,IAAI,eAAM,CAAC,uCAAqC,CAAC,IAAI,CAAC,CAAC;IAEpB,CAAC;IAE9D,KAAK,CAAC,KAAK,CAAC,aAA4B;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,OAAO,GAA4C,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAgC,CAAC;QAE3H,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QAGD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAkB,EAAE,CAAC;gBAC9C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;oBAClB,KAAK,eAAe,CAAC,CAAC,CAAC;wBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;wBAC1C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBAC/D,MAAM;oBACR,CAAC;oBACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;wBAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;wBAC7C,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAC/B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,EACf,WAAW,CACZ,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD;wBACE,MAAM,IAAI,KAAK,CAAC,+BAAgC,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAE3C,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;gBACjC,UAAU,EAAE,MAAM,CAAC,KAAK;aACzB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF,CAAA;AA9DY,sFAAqC;gDAArC,qCAAqC;IADjD,IAAA,mBAAU,GAAE;qCAI2B,4CAAmB;GAH9C,qCAAqC,CA8DjD","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,14 +0,0 @@
|
|
|
1
|
-
import { AiInteraction } from "src/entities/ai-interaction.entity";
|
|
2
|
-
import { IMcpToolResponseHandler } from "../../../interfaces";
|
|
3
|
-
import { SolidTsMorphService } from "src/services/solid-ts-morph.service";
|
|
4
|
-
export declare class SolidCreateCustomFormViewWidgetMcpHandler implements IMcpToolResponseHandler {
|
|
5
|
-
private readonly tsMorph;
|
|
6
|
-
private readonly logger;
|
|
7
|
-
constructor(tsMorph: SolidTsMorphService);
|
|
8
|
-
apply(aiInteraction: AiInteraction): Promise<{
|
|
9
|
-
seedingRequired: boolean;
|
|
10
|
-
serverRebooting: boolean;
|
|
11
|
-
}>;
|
|
12
|
-
private safeParse;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=solid-create-custom-form-view-widget-mcp-handler.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"solid-create-custom-form-view-widget-mcp-handler.service.d.ts","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAyC,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E,qBACa,yCAA0C,YAAW,uBAAuB;IAIjF,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8D;gBAGhE,OAAO,EAAE,mBAAmB;IAI3C,KAAK,CAAC,aAAa,EAAE,aAAa;;;;IA+CxC,OAAO,CAAC,SAAS;CAQpB"}
|
package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
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 SolidCreateCustomFormViewWidgetMcpHandler_1;
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.SolidCreateCustomFormViewWidgetMcpHandler = 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 SolidCreateCustomFormViewWidgetMcpHandler = SolidCreateCustomFormViewWidgetMcpHandler_1 = class SolidCreateCustomFormViewWidgetMcpHandler {
|
|
18
|
-
constructor(tsMorph) {
|
|
19
|
-
this.tsMorph = tsMorph;
|
|
20
|
-
this.logger = new common_1.Logger(SolidCreateCustomFormViewWidgetMcpHandler_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("SolidCreateCustomFormViewWidgetMcpHandler: 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 "registerSolidXExtensionComponent": {
|
|
38
|
-
this.tsMorph.registerSolidUiExtension(step.path, step.content);
|
|
39
|
-
this.tsMorph.addImport(step.path, step.importExtensionComponent);
|
|
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: true,
|
|
49
|
-
serverRebooting: false,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
catch (err) {
|
|
53
|
-
this.logger.error(`Apply failed; rolling back. ${String(err)}`);
|
|
54
|
-
this.tsMorph.rollback();
|
|
55
|
-
throw err;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
safeParse(str) {
|
|
59
|
-
try {
|
|
60
|
-
return JSON.parse(str);
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
const unescaped = str.replace(/\\'/g, "'");
|
|
64
|
-
return JSON.parse(unescaped);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
exports.SolidCreateCustomFormViewWidgetMcpHandler = SolidCreateCustomFormViewWidgetMcpHandler;
|
|
69
|
-
exports.SolidCreateCustomFormViewWidgetMcpHandler = SolidCreateCustomFormViewWidgetMcpHandler = SolidCreateCustomFormViewWidgetMcpHandler_1 = __decorate([
|
|
70
|
-
(0, common_1.Injectable)(),
|
|
71
|
-
__metadata("design:paramtypes", [solid_ts_morph_service_1.SolidTsMorphService])
|
|
72
|
-
], SolidCreateCustomFormViewWidgetMcpHandler);
|
|
73
|
-
//# sourceMappingURL=solid-create-custom-form-view-widget-mcp-handler.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"solid-create-custom-form-view-widget-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAGpD,yEAA0E;AAE1E,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,mBAAmB,CAAC;AAG9E,IAAM,yCAAyC,iDAA/C,MAAM,yCAAyC;IAGlD,YACqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAHhC,WAAM,GAAG,IAAI,eAAM,CAAC,2CAAyC,CAAC,IAAI,CAAC,CAAC;IAKjF,CAAC;IAEL,KAAK,CAAC,KAAK,CAAC,aAA4B;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,OAAO,GAA4C,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAgC,CAAC;QAE3H,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACvG,CAAC;QAGD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAkB,EAAE,CAAC;gBAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;oBAChB,KAAK,eAAe,CAAC,CAAC,CAAC;wBACnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;wBAC1C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBAC/D,MAAM;oBACV,CAAC;oBACD,KAAK,kCAAkC,CAAC,CAAC,CAAC;wBACtC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CACjC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,CACf,CAAC;wBACF,IAAI,CAAC,OAAO,CAAC,SAAS,CAClB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,wBAAwB,CAChC,CAAC;wBACF,MAAM;oBACV,CAAC;oBACD;wBACI,MAAM,IAAI,KAAK,CAAC,+BAAgC,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAE3C,OAAO;gBACH,eAAe,EAAE,IAAI;gBACrB,eAAe,EAAE,KAAK;aACzB,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,GAAW;QACzB,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;CACJ,CAAA;AA/DY,8FAAyC;oDAAzC,yCAAyC;IADrD,IAAA,mBAAU,GAAE;qCAKqB,4CAAmB;GAJxC,yCAAyC,CA+DrD","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 SolidCreateCustomFormViewWidgetMcpHandler implements IMcpToolResponseHandler {\n private readonly logger = new Logger(SolidCreateCustomFormViewWidgetMcpHandler.name);\n\n constructor(\n private readonly tsMorph: SolidTsMorphService,\n\n ) { }\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(\"SolidCreateCustomFormViewWidgetMcpHandler: 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 \"registerSolidXExtensionComponent\": {\n this.tsMorph.registerSolidUiExtension(\n step.path,\n step.content,\n );\n this.tsMorph.addImport(\n step.path,\n step.importExtensionComponent,\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: true,\n serverRebooting: false,\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}"]}
|
package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
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
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SolidCreateModelWithFieldsMcpHandler = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
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) {
|
|
18
|
-
this.moduleMetadataService = moduleMetadataService;
|
|
19
|
-
this.modelMetadataService = modelMetadataService;
|
|
20
|
-
}
|
|
21
|
-
async apply(aiInteraction) {
|
|
22
|
-
const escapedMessage = aiInteraction.message.replace(/\\'/g, "'");
|
|
23
|
-
const aiResponseMessage = JSON.parse(escapedMessage);
|
|
24
|
-
const { generation_status, instructions, data } = aiResponseMessage;
|
|
25
|
-
const { moduleUserKey, schema } = data;
|
|
26
|
-
const moduleMetadata = await this.moduleMetadataService.findOneByUserKey(moduleUserKey);
|
|
27
|
-
if (!moduleMetadata) {
|
|
28
|
-
throw new Error(`Module with user key ${moduleUserKey} not found.`);
|
|
29
|
-
}
|
|
30
|
-
schema['moduleId'] = moduleMetadata.id;
|
|
31
|
-
const modelObj = await this.modelMetadataService.create(schema);
|
|
32
|
-
await this.modelMetadataService.handleGenerateCode({ modelId: modelObj.id });
|
|
33
|
-
return {
|
|
34
|
-
seedingRequired: true,
|
|
35
|
-
serverRebooting: true,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
exports.SolidCreateModelWithFieldsMcpHandler = SolidCreateModelWithFieldsMcpHandler;
|
|
40
|
-
exports.SolidCreateModelWithFieldsMcpHandler = SolidCreateModelWithFieldsMcpHandler = __decorate([
|
|
41
|
-
(0, common_1.Injectable)(),
|
|
42
|
-
__metadata("design:paramtypes", [module_metadata_service_1.ModuleMetadataService,
|
|
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
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,14 +0,0 @@
|
|
|
1
|
-
import { IMcpToolResponseHandler } from "../../../interfaces";
|
|
2
|
-
import { AiInteraction } from "src/entities/ai-interaction.entity";
|
|
3
|
-
import { ModuleMetadataService } from "../../module-metadata.service";
|
|
4
|
-
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
5
|
-
export declare class SolidCreateModuleMcpHandler implements IMcpToolResponseHandler {
|
|
6
|
-
private readonly moduleMetadataService;
|
|
7
|
-
private readonly solidRegistry;
|
|
8
|
-
constructor(moduleMetadataService: ModuleMetadataService, solidRegistry: SolidRegistry);
|
|
9
|
-
apply(aiInteraction: AiInteraction): Promise<{
|
|
10
|
-
seedingRequired: boolean;
|
|
11
|
-
serverRebooting: boolean;
|
|
12
|
-
}>;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=solid-create-module-mcp-handler.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SolidCreateModuleMcpHandler = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const module_metadata_service_1 = require("../../module-metadata.service");
|
|
15
|
-
const solid_registry_1 = require("../../../helpers/solid-registry");
|
|
16
|
-
let SolidCreateModuleMcpHandler = class SolidCreateModuleMcpHandler {
|
|
17
|
-
constructor(moduleMetadataService, solidRegistry) {
|
|
18
|
-
this.moduleMetadataService = moduleMetadataService;
|
|
19
|
-
this.solidRegistry = solidRegistry;
|
|
20
|
-
}
|
|
21
|
-
async apply(aiInteraction) {
|
|
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;
|
|
27
|
-
const createDto = {
|
|
28
|
-
defaultDataSource: 'default',
|
|
29
|
-
description: moduleMetadata['description'],
|
|
30
|
-
displayName: moduleMetadata['displayName'],
|
|
31
|
-
isSystem: false,
|
|
32
|
-
menuIconUrl: '',
|
|
33
|
-
models: [],
|
|
34
|
-
name: moduleMetadata['name'],
|
|
35
|
-
menuSequenceNumber: 1
|
|
36
|
-
};
|
|
37
|
-
const moduleObj = await this.moduleMetadataService.create(createDto);
|
|
38
|
-
await this.moduleMetadataService.generateCode({ moduleId: moduleObj.id });
|
|
39
|
-
return {
|
|
40
|
-
seedingRequired: true,
|
|
41
|
-
serverRebooting: true,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
exports.SolidCreateModuleMcpHandler = SolidCreateModuleMcpHandler;
|
|
46
|
-
exports.SolidCreateModuleMcpHandler = SolidCreateModuleMcpHandler = __decorate([
|
|
47
|
-
(0, common_1.Injectable)(),
|
|
48
|
-
__metadata("design:paramtypes", [module_metadata_service_1.ModuleMetadataService,
|
|
49
|
-
solid_registry_1.SolidRegistry])
|
|
50
|
-
], SolidCreateModuleMcpHandler);
|
|
51
|
-
//# sourceMappingURL=solid-create-module-mcp-handler.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,12 +0,0 @@
|
|
|
1
|
-
import { AiInteraction } from "src/entities/ai-interaction.entity";
|
|
2
|
-
import { ViewMetadataRepository } from "src/repository/view-metadata.repository";
|
|
3
|
-
import { IMcpToolResponseHandler } from "../../../interfaces";
|
|
4
|
-
export declare class SolidUpdateLayoutMcpHandler implements IMcpToolResponseHandler {
|
|
5
|
-
private readonly viewMetadataRepository;
|
|
6
|
-
constructor(viewMetadataRepository: ViewMetadataRepository);
|
|
7
|
-
apply(aiInteraction: AiInteraction): Promise<{
|
|
8
|
-
seedingRequired: boolean;
|
|
9
|
-
serverRebooting: boolean;
|
|
10
|
-
}>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=solid-update-layout-mcp-handler.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SolidUpdateLayoutMcpHandler = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const view_metadata_repository_1 = require("../../../repository/view-metadata.repository");
|
|
15
|
-
let SolidUpdateLayoutMcpHandler = class SolidUpdateLayoutMcpHandler {
|
|
16
|
-
constructor(viewMetadataRepository) {
|
|
17
|
-
this.viewMetadataRepository = viewMetadataRepository;
|
|
18
|
-
}
|
|
19
|
-
async apply(aiInteraction) {
|
|
20
|
-
const escapedMessage = aiInteraction.message.replace(/\\'/g, "'");
|
|
21
|
-
const aiResponseMessage = JSON.parse(escapedMessage);
|
|
22
|
-
const { data } = aiResponseMessage;
|
|
23
|
-
const { moduleUserKey, modelUserKey, view, schema: layout } = data;
|
|
24
|
-
const viewMetadata = await this.viewMetadataRepository.findByTypeModelNameAndModuleName(view, modelUserKey, moduleUserKey);
|
|
25
|
-
viewMetadata.layout = JSON.stringify(layout);
|
|
26
|
-
await this.viewMetadataRepository.save(viewMetadata);
|
|
27
|
-
return {
|
|
28
|
-
seedingRequired: false,
|
|
29
|
-
serverRebooting: false,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
exports.SolidUpdateLayoutMcpHandler = SolidUpdateLayoutMcpHandler;
|
|
34
|
-
exports.SolidUpdateLayoutMcpHandler = SolidUpdateLayoutMcpHandler = __decorate([
|
|
35
|
-
(0, common_1.Injectable)(),
|
|
36
|
-
__metadata("design:paramtypes", [view_metadata_repository_1.ViewMetadataRepository])
|
|
37
|
-
], SolidUpdateLayoutMcpHandler);
|
|
38
|
-
//# sourceMappingURL=solid-update-layout-mcp-handler.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"solid-update-layout-mcp-handler.service.js","sourceRoot":"","sources":["../../../../src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,2FAAiF;AAI1E,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEpC,YACqB,sBAA8C;QAA9C,2BAAsB,GAAtB,sBAAsB,CAAwB;IAEnE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,aAA4B;QAEpC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAGrD,MAAM,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;QACnC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAGnE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAI3H,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAG7C,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAGrD,OAAO;YACH,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;SACzB,CAAA;IACL,CAAC;CAEJ,CAAA;AAjCY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAIoC,iDAAsB;GAH1D,2BAA2B,CAiCvC","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { AiInteraction } from \"src/entities/ai-interaction.entity\";\nimport { ViewMetadataRepository } from \"src/repository/view-metadata.repository\";\nimport { IMcpToolResponseHandler } from \"../../../interfaces\";\n\n@Injectable()\nexport class SolidUpdateLayoutMcpHandler implements IMcpToolResponseHandler {\n\n constructor(\n private readonly viewMetadataRepository: ViewMetadataRepository,\n ) {\n }\n\n async apply(aiInteraction: AiInteraction) {\n // const aiResponse = JSON.parse(aiInteraction.message);\n const escapedMessage = aiInteraction.message.replace(/\\\\'/g, \"'\");\n const aiResponseMessage = JSON.parse(escapedMessage);\n\n // Get the data for resolving the view metadata\n const { data } = aiResponseMessage;\n const { moduleUserKey, modelUserKey, view, schema: layout } = data;\n\n // Fetch the view metadata for the given model and module and the view name\n const viewMetadata = await this.viewMetadataRepository.findByTypeModelNameAndModuleName(view, modelUserKey, moduleUserKey);\n\n // TODO: Validation to check if we were able to resolve the right view.\n\n viewMetadata.layout = JSON.stringify(layout);\n\n // Save the updated view metadata\n await this.viewMetadataRepository.save(viewMetadata);\n\n // TODO: decide on some shape to return hre...\n return {\n seedingRequired: false,\n serverRebooting: false,\n }\n }\n\n}"]}
|