@solidstarters/solid-core 1.2.161 → 1.2.165

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/dist/commands/ingest.command.d.ts +16 -0
  2. package/dist/commands/ingest.command.d.ts.map +1 -0
  3. package/dist/commands/ingest.command.js +50 -0
  4. package/dist/commands/ingest.command.js.map +1 -0
  5. package/dist/commands/refresh-module.command.d.ts.map +1 -1
  6. package/dist/commands/refresh-module.command.js.map +1 -1
  7. package/dist/controllers/service.controller.d.ts +16 -1
  8. package/dist/controllers/service.controller.d.ts.map +1 -1
  9. package/dist/controllers/service.controller.js +55 -2
  10. package/dist/controllers/service.controller.js.map +1 -1
  11. package/dist/controllers/test-queue.controller.d.ts +1 -1
  12. package/dist/controllers/test-queue.controller.d.ts.map +1 -1
  13. package/dist/controllers/test-queue.controller.js +6 -4
  14. package/dist/controllers/test-queue.controller.js.map +1 -1
  15. package/dist/controllers/test.controller.d.ts +6 -1
  16. package/dist/controllers/test.controller.d.ts.map +1 -1
  17. package/dist/controllers/test.controller.js +21 -3
  18. package/dist/controllers/test.controller.js.map +1 -1
  19. package/dist/entities/common.entity.d.ts.map +1 -1
  20. package/dist/entities/common.entity.js +14 -2
  21. package/dist/entities/common.entity.js.map +1 -1
  22. package/dist/entities/user.entity.d.ts.map +1 -1
  23. package/dist/entities/user.entity.js +11 -1
  24. package/dist/entities/user.entity.js.map +1 -1
  25. package/dist/helpers/error-mapper.service.d.ts +8 -0
  26. package/dist/helpers/error-mapper.service.d.ts.map +1 -0
  27. package/dist/helpers/error-mapper.service.js +108 -0
  28. package/dist/helpers/error-mapper.service.js.map +1 -0
  29. package/dist/jobs/chatter-queue-options.d.ts +8 -0
  30. package/dist/jobs/chatter-queue-options.d.ts.map +1 -0
  31. package/dist/jobs/chatter-queue-options.js +10 -0
  32. package/dist/jobs/chatter-queue-options.js.map +1 -0
  33. package/dist/jobs/chatter-queue-publisher.service.d.ts +22 -0
  34. package/dist/jobs/chatter-queue-publisher.service.d.ts.map +1 -0
  35. package/dist/jobs/chatter-queue-publisher.service.js +39 -0
  36. package/dist/jobs/chatter-queue-publisher.service.js.map +1 -0
  37. package/dist/jobs/chatter-queue-subscriber.service.d.ts +17 -0
  38. package/dist/jobs/chatter-queue-subscriber.service.d.ts.map +1 -0
  39. package/dist/jobs/chatter-queue-subscriber.service.js +59 -0
  40. package/dist/jobs/chatter-queue-subscriber.service.js.map +1 -0
  41. package/dist/jobs/{database/computed-field-evaluation-publisher.service.d.ts → computed-field-evaluation-publisher.service.d.ts} +2 -2
  42. package/dist/jobs/computed-field-evaluation-publisher.service.d.ts.map +1 -0
  43. package/dist/jobs/{database/computed-field-evaluation-publisher.service.js → computed-field-evaluation-publisher.service.js} +8 -8
  44. package/dist/jobs/computed-field-evaluation-publisher.service.js.map +1 -0
  45. package/dist/jobs/{database/computed-field-evaluation-queue-options.d.ts → computed-field-evaluation-queue-options.d.ts} +1 -1
  46. package/dist/jobs/computed-field-evaluation-queue-options.d.ts.map +1 -0
  47. package/dist/jobs/{database/computed-field-evaluation-queue-options.js → computed-field-evaluation-queue-options.js} +2 -2
  48. package/dist/jobs/computed-field-evaluation-queue-options.js.map +1 -0
  49. package/dist/jobs/{database/computed-field-evaluation-subscriber.service.d.ts → computed-field-evaluation-subscriber.service.d.ts} +3 -3
  50. package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts.map +1 -0
  51. package/dist/jobs/computed-field-evaluation-subscriber.service.js +51 -0
  52. package/dist/jobs/computed-field-evaluation-subscriber.service.js.map +1 -0
  53. package/dist/jobs/database/computed-field-evaluation-publisher-database.service.d.ts +12 -0
  54. package/dist/jobs/database/computed-field-evaluation-publisher-database.service.d.ts.map +1 -0
  55. package/dist/jobs/database/computed-field-evaluation-publisher-database.service.js +39 -0
  56. package/dist/jobs/database/computed-field-evaluation-publisher-database.service.js.map +1 -0
  57. package/dist/jobs/database/computed-field-evaluation-queue-options-database.d.ts +8 -0
  58. package/dist/jobs/database/computed-field-evaluation-queue-options-database.d.ts.map +1 -0
  59. package/dist/jobs/database/computed-field-evaluation-queue-options-database.js +10 -0
  60. package/dist/jobs/database/computed-field-evaluation-queue-options-database.js.map +1 -0
  61. package/dist/jobs/database/computed-field-evaluation-subscriber-database.service.d.ts +18 -0
  62. package/dist/jobs/database/computed-field-evaluation-subscriber-database.service.d.ts.map +1 -0
  63. package/dist/jobs/database/{computed-field-evaluation-subscriber.service.js → computed-field-evaluation-subscriber-database.service.js} +8 -8
  64. package/dist/jobs/database/computed-field-evaluation-subscriber-database.service.js.map +1 -0
  65. package/dist/jobs/database/generate-code-queue-options-database.js +2 -2
  66. package/dist/jobs/database/generate-code-queue-options-database.js.map +1 -1
  67. package/dist/jobs/database/test-queue-subscriber-database.service.d.ts.map +1 -1
  68. package/dist/jobs/database/test-queue-subscriber-database.service.js +7 -1
  69. package/dist/jobs/database/test-queue-subscriber-database.service.js.map +1 -1
  70. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  71. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +4 -2
  72. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  73. package/dist/jobs/generate-code-publisher.service.d.ts +11 -0
  74. package/dist/jobs/generate-code-publisher.service.d.ts.map +1 -0
  75. package/dist/jobs/generate-code-publisher.service.js +39 -0
  76. package/dist/jobs/generate-code-publisher.service.js.map +1 -0
  77. package/dist/jobs/generate-code-queue-options.d.ts +8 -0
  78. package/dist/jobs/generate-code-queue-options.d.ts.map +1 -0
  79. package/dist/jobs/generate-code-queue-options.js +10 -0
  80. package/dist/jobs/generate-code-queue-options.js.map +1 -0
  81. package/dist/jobs/generate-code-subscriber.service.d.ts +18 -0
  82. package/dist/jobs/generate-code-subscriber.service.d.ts.map +1 -0
  83. package/dist/jobs/generate-code-subscriber.service.js +70 -0
  84. package/dist/jobs/generate-code-subscriber.service.js.map +1 -0
  85. package/dist/jobs/test-queue-subscriber.service.d.ts +1 -1
  86. package/dist/jobs/test-queue-subscriber.service.d.ts.map +1 -1
  87. package/dist/jobs/test-queue-subscriber.service.js +9 -6
  88. package/dist/jobs/test-queue-subscriber.service.js.map +1 -1
  89. package/dist/jobs/trigger-mcp-client-publisher.service.d.ts +11 -0
  90. package/dist/jobs/trigger-mcp-client-publisher.service.d.ts.map +1 -0
  91. package/dist/jobs/trigger-mcp-client-publisher.service.js +39 -0
  92. package/dist/jobs/trigger-mcp-client-publisher.service.js.map +1 -0
  93. package/dist/jobs/trigger-mcp-client-queue-options.d.ts +8 -0
  94. package/dist/jobs/trigger-mcp-client-queue-options.d.ts.map +1 -0
  95. package/dist/jobs/trigger-mcp-client-queue-options.js +10 -0
  96. package/dist/jobs/trigger-mcp-client-queue-options.js.map +1 -0
  97. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts +18 -0
  98. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts.map +1 -0
  99. package/dist/jobs/trigger-mcp-client-subscriber.service.js +103 -0
  100. package/dist/jobs/trigger-mcp-client-subscriber.service.js.map +1 -0
  101. package/dist/jobs/twilio-sms-publisher.service.d.ts +11 -0
  102. package/dist/jobs/twilio-sms-publisher.service.d.ts.map +1 -0
  103. package/dist/jobs/twilio-sms-publisher.service.js +39 -0
  104. package/dist/jobs/twilio-sms-publisher.service.js.map +1 -0
  105. package/dist/jobs/twilio-sms-queue-options.d.ts +8 -0
  106. package/dist/jobs/twilio-sms-queue-options.d.ts.map +1 -0
  107. package/dist/jobs/twilio-sms-queue-options.js +10 -0
  108. package/dist/jobs/twilio-sms-queue-options.js.map +1 -0
  109. package/dist/jobs/twilio-sms-subscriber.service.d.ts +17 -0
  110. package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -0
  111. package/dist/jobs/twilio-sms-subscriber.service.js +48 -0
  112. package/dist/jobs/twilio-sms-subscriber.service.js.map +1 -0
  113. package/dist/seeders/seed-data/solid-core-metadata.json +21 -0
  114. package/dist/services/genai/ingest-metadata.service.d.ts +38 -0
  115. package/dist/services/genai/ingest-metadata.service.d.ts.map +1 -0
  116. package/dist/services/genai/ingest-metadata.service.js +530 -0
  117. package/dist/services/genai/ingest-metadata.service.js.map +1 -0
  118. package/dist/services/genai/r2r-helper.service.d.ts +7 -0
  119. package/dist/services/genai/r2r-helper.service.d.ts.map +1 -0
  120. package/dist/services/genai/r2r-helper.service.js +36 -0
  121. package/dist/services/genai/r2r-helper.service.js.map +1 -0
  122. package/dist/services/queues/database-publisher.service.js +2 -2
  123. package/dist/services/queues/database-publisher.service.js.map +1 -1
  124. package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
  125. package/dist/services/queues/database-subscriber.service.js +2 -1
  126. package/dist/services/queues/database-subscriber.service.js.map +1 -1
  127. package/dist/services/queues/publisher-factory.service.js +1 -1
  128. package/dist/services/queues/publisher-factory.service.js.map +1 -1
  129. package/dist/services/setting.service.d.ts.map +1 -1
  130. package/dist/services/setting.service.js +38 -20
  131. package/dist/services/setting.service.js.map +1 -1
  132. package/dist/solid-core.module.d.ts.map +1 -1
  133. package/dist/solid-core.module.js +29 -4
  134. package/dist/solid-core.module.js.map +1 -1
  135. package/dist/subscribers/audit.subscriber.d.ts +8 -0
  136. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  137. package/dist/subscribers/audit.subscriber.js +52 -3
  138. package/dist/subscribers/audit.subscriber.js.map +1 -1
  139. package/dist/subscribers/computed-entity-field.subscriber.d.ts +3 -3
  140. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
  141. package/dist/subscribers/computed-entity-field.subscriber.js +5 -7
  142. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  143. package/dist/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +2 -1
  145. package/src/commands/ingest-rag-chunking-strategy-for.md +224 -0
  146. package/src/commands/ingest.command.ts +36 -0
  147. package/src/commands/refresh-module.command.ts +0 -1
  148. package/src/controllers/service.controller.ts +66 -3
  149. package/src/controllers/test-queue.controller.ts +4 -3
  150. package/src/controllers/test.controller.ts +15 -3
  151. package/src/entities/common.entity.ts +10 -0
  152. package/src/entities/user.entity.ts +33 -1
  153. package/src/helpers/error-mapper.service.ts +214 -0
  154. package/src/jobs/chatter-queue-options.ts +9 -0
  155. package/src/jobs/chatter-queue-publisher.service.ts +37 -0
  156. package/src/jobs/chatter-queue-subscriber.service.ts +46 -0
  157. package/src/jobs/computed-field-evaluation-publisher.service.ts +23 -0
  158. package/src/jobs/{database/computed-field-evaluation-queue-options.ts → computed-field-evaluation-queue-options.ts} +2 -2
  159. package/src/jobs/computed-field-evaluation-subscriber.service.ts +38 -0
  160. package/src/jobs/database/{computed-field-evaluation-publisher.service.ts → computed-field-evaluation-publisher-database.service.ts} +2 -2
  161. package/src/jobs/database/computed-field-evaluation-queue-options-database.ts +9 -0
  162. package/src/jobs/database/{computed-field-evaluation-subscriber.service.ts → computed-field-evaluation-subscriber-database.service.ts} +2 -2
  163. package/src/jobs/database/generate-code-queue-options-database.ts +2 -2
  164. package/src/jobs/database/test-queue-subscriber-database.service.ts +10 -2
  165. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +4 -2
  166. package/src/jobs/generate-code-publisher.service.ts +23 -0
  167. package/src/jobs/generate-code-queue-options.ts +9 -0
  168. package/src/jobs/generate-code-subscriber.service.ts +59 -0
  169. package/src/jobs/test-queue-subscriber.service.ts +15 -7
  170. package/src/jobs/trigger-mcp-client-publisher.service.ts +22 -0
  171. package/src/jobs/trigger-mcp-client-queue-options.ts +9 -0
  172. package/src/jobs/trigger-mcp-client-subscriber.service.ts +104 -0
  173. package/src/jobs/twilio-sms-publisher.service.ts +23 -0
  174. package/src/jobs/twilio-sms-queue-options.ts +9 -0
  175. package/src/jobs/twilio-sms-subscriber.service.ts +32 -0
  176. package/src/seeders/seed-data/solid-core-metadata.json +21 -0
  177. package/src/services/genai/ingest-metadata.service.ts +695 -0
  178. package/src/services/genai/r2r-helper.service.ts +33 -0
  179. package/src/services/queues/database-publisher.service.ts +2 -2
  180. package/src/services/queues/database-subscriber.service.ts +2 -1
  181. package/src/services/queues/publisher-factory.service.ts +1 -1
  182. package/src/services/setting.service.ts +46 -22
  183. package/src/solid-core.module.ts +41 -8
  184. package/src/subscribers/audit.subscriber.ts +235 -5
  185. package/src/subscribers/computed-entity-field.subscriber.ts +7 -5
  186. package/dist/jobs/database/computed-field-evaluation-publisher.service.d.ts.map +0 -1
  187. package/dist/jobs/database/computed-field-evaluation-publisher.service.js.map +0 -1
  188. package/dist/jobs/database/computed-field-evaluation-queue-options.d.ts.map +0 -1
  189. package/dist/jobs/database/computed-field-evaluation-queue-options.js.map +0 -1
  190. package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts.map +0 -1
  191. package/dist/jobs/database/computed-field-evaluation-subscriber.service.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import { BrokerType } from "src/interfaces";
2
+
3
+ const TRIGGER_MCP_CLIENT_QUEUE_NAME = 'trigger_mcp_client_queue_rabbitmq';
4
+
5
+ export default {
6
+ name: 'triggerMcpClientQueueRabbitmq',
7
+ type: BrokerType.RabbitMQ,
8
+ queueName: TRIGGER_MCP_CLIENT_QUEUE_NAME,
9
+ };
@@ -0,0 +1,104 @@
1
+ import { Injectable, Logger } from '@nestjs/common';
2
+
3
+ import { QueueMessage } from 'src/interfaces/mq';
4
+ import triggerMcpClientQueueOptions from "./trigger-mcp-client-queue-options";
5
+ import { AiInteractionService } from 'src/services/ai-interaction.service';
6
+ import { PollerService } from 'src/services/poller.service';
7
+ import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
8
+ import { TriggerMcpClientOptions, QueuesModuleOptions } from 'src/interfaces';
9
+ import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
10
+ import { MqMessageService } from 'src/services/mq-message.service';
11
+
12
+ @Injectable()
13
+ export class TriggerMcpClientSubscriberRabbitmq extends RabbitMqPublisher<TriggerMcpClientOptions> {
14
+ private readonly triggerMcpClientSubscriberLogger = new Logger(TriggerMcpClientSubscriberRabbitmq.name);
15
+
16
+ constructor(
17
+ readonly mqMessageService: MqMessageService,
18
+ readonly mqMessageQueueService: MqMessageQueueService,
19
+ readonly poller: PollerService,
20
+ readonly aiInteractionService: AiInteractionService,
21
+ ) {
22
+ super(mqMessageService, mqMessageQueueService);
23
+ }
24
+
25
+ options(): QueuesModuleOptions {
26
+ return {
27
+ ...triggerMcpClientQueueOptions
28
+ }
29
+ }
30
+
31
+ async subscribe(message: QueueMessage<TriggerMcpClientOptions>) {
32
+ this.triggerMcpClientSubscriberLogger.debug(`Received message: ${JSON.stringify(message)}`);
33
+
34
+ const codeGnerationOptions = message.payload;
35
+
36
+ const aiInteraction = await this.aiInteractionService.findOne(codeGnerationOptions.aiInteractionId, {
37
+ populate: ['user']
38
+ });
39
+ if (!aiInteraction) {
40
+ const m = `Unable to identified the aiInteraction entry that triggered this job... using id: ${codeGnerationOptions.aiInteractionId}`
41
+ this.triggerMcpClientSubscriberLogger.log(m);
42
+ throw new Error(m);
43
+ }
44
+
45
+ // The message contains the users prompt.
46
+ const prompt = aiInteraction.message;
47
+
48
+ // Use this to invoke our mcp client
49
+ // TODO: try / catch ...
50
+ // Handle the rejection gracefully...
51
+ const aiResponse = await this.aiInteractionService.runMcpPrompt(prompt);
52
+ this.triggerMcpClientSubscriberLogger.log(`aiResponse: `);
53
+ this.triggerMcpClientSubscriberLogger.log(JSON.stringify(aiResponse));
54
+
55
+ if (!aiResponse.success) {
56
+ this.triggerMcpClientSubscriberLogger.log(`Gen ai has returned with a false status code`);
57
+
58
+ const errorsStr = aiResponse.errors.join('; ');
59
+
60
+ await this.aiInteractionService.create({
61
+ userId: aiInteraction.user.id,
62
+ threadId: aiInteraction.threadId,
63
+ parentInteractionId: aiInteraction.id,
64
+ role: 'gen-ai',
65
+ message: '-',
66
+ contentType: aiResponse.content_type,
67
+ errorMessage: errorsStr,
68
+ modelUsed: aiResponse.model,
69
+ responseTimeMs: aiResponse.duration_ms,
70
+ metadata: JSON.stringify(aiResponse),
71
+ isApplied: aiInteraction.isApplied,
72
+ status: aiResponse.success ? 'succeeded' : 'failed'
73
+ });
74
+
75
+ // update the job entry with failure... raising an error will lead the job to be marked as failed...
76
+ throw new Error(errorsStr);
77
+ }
78
+ else {
79
+ let nestedResponse = aiResponse.response.trim();
80
+
81
+ const genAiInteraction = await this.aiInteractionService.create({
82
+ userId: aiInteraction.user.id,
83
+ threadId: aiInteraction.threadId,
84
+ parentInteractionId: aiInteraction.id,
85
+ role: 'gen-ai',
86
+ message: nestedResponse,
87
+ contentType: aiResponse.content_type,
88
+ errorMessage: '',
89
+ modelUsed: aiResponse.model,
90
+ responseTimeMs: aiResponse.duration_ms,
91
+ metadata: JSON.stringify(aiResponse),
92
+ isApplied: aiInteraction.isApplied,
93
+ status: aiResponse.success ? 'succeeded' : 'failed'
94
+ });
95
+
96
+ // If the human interaction was with isAutoApply=true, then we can go ahead and autoApply.
97
+ if (aiInteraction.isAutoApply) {
98
+ this.aiInteractionService.applySolidAiInteraction(genAiInteraction.id);
99
+ }
100
+ }
101
+
102
+ return aiResponse;
103
+ }
104
+ }
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@nestjs/common';
2
+
3
+ import { QueuesModuleOptions } from 'src/interfaces';
4
+ import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
5
+ import { MqMessageService } from 'src/services/mq-message.service';
6
+ import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
7
+ import smsQueueOptions from './twilio-sms-queue-options';
8
+
9
+ @Injectable()
10
+ export class TwilioSmsQueuePublisherRabbitmq extends RabbitMqPublisher<any> {
11
+ constructor(
12
+ protected readonly mqMessageService: MqMessageService,
13
+ protected readonly mqMessageQueueService: MqMessageQueueService,
14
+ ) {
15
+ super(mqMessageService, mqMessageQueueService);
16
+ }
17
+
18
+ options(): QueuesModuleOptions {
19
+ return {
20
+ ...smsQueueOptions
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,9 @@
1
+ import { BrokerType } from "src/interfaces";
2
+
3
+ const SMS_QUEUE_NAME = 'twilio_sms_queue_rabbitmq';
4
+
5
+ export default {
6
+ name: 'twilioSmsInstanceRabbitmq',
7
+ type: BrokerType.RabbitMQ,
8
+ queueName: SMS_QUEUE_NAME,
9
+ };
@@ -0,0 +1,32 @@
1
+ import { Injectable } from '@nestjs/common';
2
+
3
+ import { QueuesModuleOptions } from 'src/interfaces';
4
+ import { QueueMessage } from 'src/interfaces/mq';
5
+ import { MqMessageQueueService } from 'src/services/mq-message-queue.service';
6
+ import { MqMessageService } from 'src/services/mq-message.service';
7
+ import { PollerService } from 'src/services/poller.service';
8
+ import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
9
+ import { TwilioSMSService } from 'src/services/sms/TwilioSMSService';
10
+ import smsQueueOptions from './twilio-sms-queue-options';
11
+
12
+ @Injectable()
13
+ export class TwilioSmsQueueSubscriberRabbitmq extends RabbitMqPublisher<any> {
14
+ constructor(
15
+ private readonly smsService: TwilioSMSService,
16
+ readonly mqMessageService: MqMessageService,
17
+ readonly mqMessageQueueService: MqMessageQueueService,
18
+ readonly poller: PollerService,
19
+ ) {
20
+ super(mqMessageService, mqMessageQueueService);
21
+ }
22
+
23
+ options(): QueuesModuleOptions {
24
+ return {
25
+ ...smsQueueOptions
26
+ }
27
+ }
28
+
29
+ subscribe(message: QueueMessage<any>) {
30
+ return this.smsService.sendSMSSynchronously(message);
31
+ }
32
+ }
@@ -5583,6 +5583,19 @@
5583
5583
  "viewUserKey": "",
5584
5584
  "moduleUserKey": "solid-core",
5585
5585
  "modelUserKey": "setting"
5586
+ },
5587
+ {
5588
+ "displayName": "Ai settings",
5589
+ "name": "ai-settings-action",
5590
+ "type": "custom",
5591
+ "domain": "",
5592
+ "context": "",
5593
+ "customComponent": "/admin/core/solid-core/settings/ai-settings",
5594
+ "customIsModal": true,
5595
+ "serverEndpoint": "",
5596
+ "viewUserKey": "",
5597
+ "moduleUserKey": "solid-core",
5598
+ "modelUserKey": "setting"
5586
5599
  },
5587
5600
  {
5588
5601
  "displayName": "Misc",
@@ -5951,6 +5964,14 @@
5951
5964
  "actionUserKey": "authentication-settings-action",
5952
5965
  "moduleUserKey": "solid-core",
5953
5966
  "parentMenuItemUserKey": "settings-menu-item"
5967
+ },
5968
+ {
5969
+ "displayName": "Ai Settings",
5970
+ "name": "ai-settings-menu-item",
5971
+ "sequenceNumber": 3,
5972
+ "actionUserKey": "ai-settings-action",
5973
+ "moduleUserKey": "solid-core",
5974
+ "parentMenuItemUserKey": "settings-menu-item"
5954
5975
  },
5955
5976
  {
5956
5977
  "displayName": "Misc",