@messenger-box/platform-server 10.0.3-alpha.7 → 10.0.3-alpha.74

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 (202) hide show
  1. package/lib/config/env-config.d.ts +7 -0
  2. package/lib/config/env-config.js +20 -0
  3. package/lib/config/env-config.js.map +1 -1
  4. package/lib/containers/containers.js +9 -1
  5. package/lib/containers/containers.js.map +1 -1
  6. package/lib/containers/context-services-from-container.d.ts +1 -1
  7. package/lib/containers/context-services-from-container.js +4 -2
  8. package/lib/containers/context-services-from-container.js.map +1 -1
  9. package/lib/graphql/resolvers/ai-fragment.d.ts +3 -0
  10. package/lib/graphql/resolvers/ai-fragment.js +276 -0
  11. package/lib/graphql/resolvers/ai-fragment.js.map +1 -0
  12. package/lib/graphql/resolvers/channel-member.d.ts +3 -2
  13. package/lib/graphql/resolvers/channel-member.js +30 -5
  14. package/lib/graphql/resolvers/channel-member.js.map +1 -1
  15. package/lib/graphql/resolvers/channel.d.ts +3 -2
  16. package/lib/graphql/resolvers/channel.js +308 -53
  17. package/lib/graphql/resolvers/channel.js.map +1 -1
  18. package/lib/graphql/resolvers/extended-token-account.d.ts +3 -2
  19. package/lib/graphql/resolvers/extended-token-account.js +90 -23
  20. package/lib/graphql/resolvers/extended-token-account.js.map +1 -1
  21. package/lib/graphql/resolvers/index.d.ts +1 -1
  22. package/lib/graphql/resolvers/index.js +1 -1
  23. package/lib/graphql/resolvers/index.js.map +1 -1
  24. package/lib/graphql/resolvers/post-thread.d.ts +1 -1
  25. package/lib/graphql/resolvers/post-thread.js +294 -132
  26. package/lib/graphql/resolvers/post-thread.js.map +1 -1
  27. package/lib/graphql/resolvers/post.d.ts +2 -3
  28. package/lib/graphql/resolvers/post.js +874 -239
  29. package/lib/graphql/resolvers/post.js.map +1 -1
  30. package/lib/graphql/resolvers/reaction.d.ts +3 -2
  31. package/lib/graphql/resolvers/reaction.js +96 -14
  32. package/lib/graphql/resolvers/reaction.js.map +1 -1
  33. package/lib/graphql/schema/ai-fragment.graphql +311 -0
  34. package/lib/graphql/schema/ai-fragment.graphql.js +1 -0
  35. package/lib/graphql/schema/ai-fragment.graphql.js.map +1 -0
  36. package/lib/graphql/schema/channel-member.graphql +110 -21
  37. package/lib/graphql/schema/channel-member.graphql.js +1 -1
  38. package/lib/graphql/schema/channel.graphql +356 -38
  39. package/lib/graphql/schema/channel.graphql.js +1 -1
  40. package/lib/graphql/schema/index.js +2 -2
  41. package/lib/graphql/schema/index.js.map +1 -1
  42. package/lib/graphql/schema/post-thread.graphql +167 -21
  43. package/lib/graphql/schema/post-thread.graphql.js +1 -1
  44. package/lib/graphql/schema/post.graphql +360 -40
  45. package/lib/graphql/schema/post.graphql.js +1 -1
  46. package/lib/graphql/schema/reaction.graphql +71 -13
  47. package/lib/graphql/schema/reaction.graphql.js +1 -1
  48. package/lib/graphql/schema/services.graphql +21 -0
  49. package/lib/graphql/schema/users.graphql +76 -13
  50. package/lib/graphql/schema/users.graphql.js +1 -1
  51. package/lib/index.js +1 -1
  52. package/lib/index.js.map +1 -1
  53. package/lib/inngest/factory.d.ts +20 -0
  54. package/lib/inngest/factory.js +4 -0
  55. package/lib/inngest/factory.js.map +1 -0
  56. package/lib/inngest/functions.d.ts +235 -0
  57. package/lib/inngest/functions.js +1385 -0
  58. package/lib/inngest/functions.js.map +1 -0
  59. package/lib/inngest/index.d.ts +3 -0
  60. package/lib/inngest/prompt.d.ts +6 -0
  61. package/lib/inngest/prompt.js +871 -0
  62. package/lib/inngest/prompt.js.map +1 -0
  63. package/lib/inngest/utils.d.ts +5 -0
  64. package/lib/inngest/utils.js +32 -0
  65. package/lib/inngest/utils.js.map +1 -0
  66. package/lib/interfaces/index.d.ts +0 -1
  67. package/lib/interfaces/services.d.ts +1 -1
  68. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.d.ts +17 -0
  69. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.js +44 -0
  70. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.js.map +1 -0
  71. package/lib/migrations/dbMigrations/index.d.ts +1 -0
  72. package/lib/migrations/index.d.ts +1 -0
  73. package/lib/migrations/mail-template-migration.js +1 -1
  74. package/lib/migrations/message-notification-template-migration.d.ts +1 -1
  75. package/lib/migrations/message-notification-template-migration.js +1 -1
  76. package/lib/module.js +10 -3
  77. package/lib/module.js.map +1 -1
  78. package/lib/plugins/ai-fragment-moleculer-service.d.ts +29 -0
  79. package/lib/plugins/ai-fragment-moleculer-service.js +516 -0
  80. package/lib/plugins/ai-fragment-moleculer-service.js.map +1 -0
  81. package/lib/plugins/channel-moleculer-service.d.ts +21 -1
  82. package/lib/plugins/channel-moleculer-service.js +426 -115
  83. package/lib/plugins/channel-moleculer-service.js.map +1 -1
  84. package/lib/plugins/extended-token-account-moleculer-service.d.ts +25 -1
  85. package/lib/plugins/extended-token-account-moleculer-service.js +348 -22
  86. package/lib/plugins/extended-token-account-moleculer-service.js.map +1 -1
  87. package/lib/plugins/index.d.ts +1 -0
  88. package/lib/plugins/messenger-notification-moleculer-service.d.ts +27 -3
  89. package/lib/plugins/messenger-notification-moleculer-service.js +404 -58
  90. package/lib/plugins/messenger-notification-moleculer-service.js.map +1 -1
  91. package/lib/plugins/post-moleculer-service.d.ts +85 -21
  92. package/lib/plugins/post-moleculer-service.js +1102 -256
  93. package/lib/plugins/post-moleculer-service.js.map +1 -1
  94. package/lib/plugins/post-thread-moleculer-service.d.ts +33 -1
  95. package/lib/plugins/post-thread-moleculer-service.js +326 -8
  96. package/lib/plugins/post-thread-moleculer-service.js.map +1 -1
  97. package/lib/plugins/reaction-moleculer-service.js +1 -1
  98. package/lib/plugins/reaction-moleculer-service.js.map +1 -1
  99. package/lib/preferences/settings/post-settings.d.ts +2 -0
  100. package/lib/preferences/settings/post-settings.js +47 -9
  101. package/lib/preferences/settings/post-settings.js.map +1 -1
  102. package/lib/services/ai-fragment-service.d.ts +195 -0
  103. package/lib/services/ai-fragment-service.js +631 -0
  104. package/lib/services/ai-fragment-service.js.map +1 -0
  105. package/lib/services/channel-service.d.ts +181 -33
  106. package/lib/services/channel-service.js +842 -273
  107. package/lib/services/channel-service.js.map +1 -1
  108. package/lib/services/extended-token-account-service.d.ts +130 -14
  109. package/lib/services/extended-token-account-service.js +462 -52
  110. package/lib/services/extended-token-account-service.js.map +1 -1
  111. package/lib/services/index.d.ts +3 -0
  112. package/lib/services/messenger-notification-service.d.ts +106 -13
  113. package/lib/services/messenger-notification-service.js +824 -442
  114. package/lib/services/messenger-notification-service.js.map +1 -1
  115. package/lib/services/post-service.d.ts +189 -16
  116. package/lib/services/post-service.js +949 -113
  117. package/lib/services/post-service.js.map +1 -1
  118. package/lib/services/post-thread-service.d.ts +114 -5
  119. package/lib/services/post-thread-service.js +400 -13
  120. package/lib/services/post-thread-service.js.map +1 -1
  121. package/lib/services/proxy-services/ai-fragment-microservice.d.ts +23 -0
  122. package/lib/services/proxy-services/ai-fragment-microservice.js +78 -0
  123. package/lib/services/proxy-services/ai-fragment-microservice.js.map +1 -0
  124. package/lib/services/proxy-services/channel-microservice.d.ts +6 -3
  125. package/lib/services/proxy-services/channel-microservice.js +25 -10
  126. package/lib/services/proxy-services/channel-microservice.js.map +1 -1
  127. package/lib/services/proxy-services/index.d.ts +1 -0
  128. package/lib/services/proxy-services/messenger-notification-microservice.d.ts +128 -8
  129. package/lib/services/proxy-services/messenger-notification-microservice.js +324 -29
  130. package/lib/services/proxy-services/messenger-notification-microservice.js.map +1 -1
  131. package/lib/services/proxy-services/post-microservice.d.ts +207 -12
  132. package/lib/services/proxy-services/post-microservice.js +623 -54
  133. package/lib/services/proxy-services/post-microservice.js.map +1 -1
  134. package/lib/services/proxy-services/post-thread-microservice.d.ts +134 -3
  135. package/lib/services/proxy-services/post-thread-microservice.js +388 -6
  136. package/lib/services/proxy-services/post-thread-microservice.js.map +1 -1
  137. package/lib/services/proxy-services/reaction-microservice.d.ts +161 -3
  138. package/lib/services/proxy-services/reaction-microservice.js +474 -2
  139. package/lib/services/proxy-services/reaction-microservice.js.map +1 -1
  140. package/lib/services/reaction-service.d.ts +124 -4
  141. package/lib/services/reaction-service.js +415 -3
  142. package/lib/services/reaction-service.js.map +1 -1
  143. package/lib/services/redis-cache-manager.d.ts +18 -0
  144. package/lib/services/redis-cache-manager.js +83 -0
  145. package/lib/services/redis-cache-manager.js.map +1 -0
  146. package/lib/services/sandbox-error-service.d.ts +23 -0
  147. package/lib/services/sandbox-error-service.js +422 -0
  148. package/lib/services/sandbox-error-service.js.map +1 -0
  149. package/lib/store/models/account-token-store.d.ts +1 -1
  150. package/lib/store/models/account-token-store.js.map +1 -1
  151. package/lib/store/models/ai-fragment.d.ts +4 -0
  152. package/lib/store/models/ai-fragment.js +125 -0
  153. package/lib/store/models/ai-fragment.js.map +1 -0
  154. package/lib/store/models/channel.d.ts +2 -3
  155. package/lib/store/models/channel.js +185 -71
  156. package/lib/store/models/channel.js.map +1 -1
  157. package/lib/store/models/index.d.ts +1 -0
  158. package/lib/store/models/post-thread.d.ts +3 -3
  159. package/lib/store/models/post-thread.js +96 -14
  160. package/lib/store/models/post-thread.js.map +1 -1
  161. package/lib/store/models/post.d.ts +2 -3
  162. package/lib/store/models/post.js +143 -23
  163. package/lib/store/models/post.js.map +1 -1
  164. package/lib/store/models/reaction.d.ts +2 -3
  165. package/lib/store/models/reaction.js +67 -8
  166. package/lib/store/models/reaction.js.map +1 -1
  167. package/lib/store/repositories/__tests__/__fixtures__/team-repository.d.ts +3 -3
  168. package/lib/store/repositories/ai-fragment-repository.d.ts +15 -0
  169. package/lib/store/repositories/ai-fragment-repository.js +69 -0
  170. package/lib/store/repositories/ai-fragment-repository.js.map +1 -0
  171. package/lib/store/repositories/channel-repository.d.ts +6 -6
  172. package/lib/store/repositories/channel-repository.js +5 -2
  173. package/lib/store/repositories/channel-repository.js.map +1 -1
  174. package/lib/store/repositories/index.d.ts +1 -0
  175. package/lib/store/repositories/post-repository.d.ts +6 -6
  176. package/lib/store/repositories/post-repository.js +5 -2
  177. package/lib/store/repositories/post-repository.js.map +1 -1
  178. package/lib/store/repositories/post-thread-repository.d.ts +6 -6
  179. package/lib/store/repositories/post-thread-repository.js +5 -2
  180. package/lib/store/repositories/post-thread-repository.js.map +1 -1
  181. package/lib/store/repositories/reaction-repository.d.ts +6 -6
  182. package/lib/store/repositories/reaction-repository.js +5 -2
  183. package/lib/store/repositories/reaction-repository.js.map +1 -1
  184. package/lib/templates/constants/SERVER_TYPES.ts.template +4 -4
  185. package/lib/templates/repositories/AiFragmentRepository.ts.template +4 -0
  186. package/lib/templates/repositories/ChannelRepository.ts.template +3 -3
  187. package/lib/templates/repositories/PostRepository.ts.template +3 -3
  188. package/lib/templates/repositories/PostThreadRepository.ts.template +3 -3
  189. package/lib/templates/repositories/ReactionRepository.ts.template +3 -4
  190. package/lib/templates/services/AiFragmentService.ts.template +123 -0
  191. package/lib/templates/services/ChannelService.ts.template +290 -39
  192. package/lib/templates/services/ExtendedTokenAccountService.ts.template +104 -9
  193. package/lib/templates/services/MessengerNotificationService.ts.template +94 -19
  194. package/lib/templates/services/PostService.ts.template +265 -20
  195. package/lib/templates/services/PostThreadService.ts.template +151 -6
  196. package/lib/templates/services/ReactionService.ts.template +129 -3
  197. package/lib/templates/services/RedisCacheManager.ts.template +22 -0
  198. package/lib/templates/services/SandboxErrorService.ts.template +125 -0
  199. package/package.json +14 -7
  200. package/lib/interfaces/context.d.ts +0 -14
  201. package/lib/store/models/common-options.js +0 -20
  202. package/lib/store/models/common-options.js.map +0 -1
@@ -0,0 +1,516 @@
1
+ import {Service}from'moleculer';import {ApolloClientMixin}from'@adminide-stack/platform-server';import {MoleculerTopics,SERVER_TYPES,AiFragmentServiceCommands}from'common/server';import {BaseServiceMixin}from'@common-stack/store-mongo';import {logger}from'@common-stack/server-core';import {config}from'../config/env-config.js';/**
2
+ * AI Fragment Moleculer Service
3
+ *
4
+ * This service exposes AI fragment management functionality through the Moleculer microservice framework,
5
+ * providing distributed access to AI fragment operations across the messenger platform.
6
+ *
7
+ * Key capabilities:
8
+ * - AI fragment creation and lifecycle management
9
+ * - Sandbox URL management and synchronization
10
+ * - File version control and conflict resolution
11
+ * - Canvas layer support for visual components
12
+ * - Template-based fragment generation
13
+ * - Organization and user-based fragment retrieval
14
+ * - Real-time file synchronization status tracking
15
+ * - Batch operations for fragment management
16
+ * - Cross-platform fragment compatibility
17
+ * - Event-driven architecture for fragment changes
18
+ * - Comprehensive error handling and logging
19
+ * - Service integration through Apollo GraphQL
20
+ */
21
+ class AiFragmentMoleculerService extends Service {
22
+ aiFragmentService;
23
+ container;
24
+ constructor(broker, {
25
+ container,
26
+ ...settings
27
+ }) {
28
+ super(broker);
29
+ try {
30
+ this.container = container;
31
+ const topic = MoleculerTopics.AiFragmentService;
32
+ this.aiFragmentService = container.get(SERVER_TYPES.AiFragmentService);
33
+ logger.debug('Initializing AI Fragment Moleculer Service', {
34
+ topic
35
+ });
36
+ this.parseServiceSchema({
37
+ name: topic,
38
+ mixins: [ApolloClientMixin, BaseServiceMixin(this.aiFragmentService)],
39
+ settings: {
40
+ apolloClient: {
41
+ serverUri: config.GRAPHQL_URL
42
+ }
43
+ },
44
+ events: {
45
+ 'aiFragment.created': {
46
+ handler: async ctx => {
47
+ try {
48
+ const {
49
+ event
50
+ } = ctx?.params || {};
51
+ logger.debug('AI Fragment created event received', {
52
+ fragmentId: event?.fragment?.id,
53
+ userId: event?.userId,
54
+ messageId: event?.fragment?.messageId
55
+ });
56
+ // Emit to notification service for fragment creation notifications
57
+ await ctx.emit('notification.aiFragment.created', {
58
+ event: {
59
+ fragment: event?.fragment,
60
+ userId: event?.userId
61
+ }
62
+ });
63
+ // Update organization fragment statistics if applicable
64
+ if (event?.fragment?.orgName) {
65
+ await ctx.emit('organization.fragment.added', {
66
+ event: {
67
+ orgName: event.fragment.orgName,
68
+ fragmentId: event.fragment.id
69
+ }
70
+ });
71
+ }
72
+ } catch (error) {
73
+ logger.error('Error handling AI fragment created event: %o', error);
74
+ }
75
+ }
76
+ },
77
+ 'aiFragment.updated': {
78
+ handler: async ctx => {
79
+ try {
80
+ const {
81
+ event
82
+ } = ctx?.params || {};
83
+ logger.debug('AI Fragment updated event received', {
84
+ fragmentId: event?.fragmentId,
85
+ messageId: event?.messageId,
86
+ updatedBy: event?.updatedBy
87
+ });
88
+ // Emit fragment update notification events
89
+ await ctx.emit('notification.aiFragment.updated', {
90
+ event: {
91
+ fragmentId: event?.fragmentId,
92
+ messageId: event?.messageId,
93
+ updatedBy: event?.updatedBy
94
+ }
95
+ });
96
+ } catch (error) {
97
+ logger.error('Error handling AI fragment updated event: %o', error);
98
+ }
99
+ }
100
+ },
101
+ 'aiFragment.deleted': {
102
+ handler: async ctx => {
103
+ try {
104
+ const {
105
+ event
106
+ } = ctx?.params || {};
107
+ logger.debug('AI Fragment deleted event received', {
108
+ fragmentId: event?.fragmentId,
109
+ messageId: event?.messageId,
110
+ orgName: event?.orgName
111
+ });
112
+ // Clean up related data
113
+ await ctx.emit('cleanup.aiFragment.deleted', {
114
+ event: {
115
+ fragmentId: event?.fragmentId,
116
+ orgName: event?.orgName
117
+ }
118
+ });
119
+ } catch (error) {
120
+ logger.error('Error handling AI fragment deleted event: %o', error);
121
+ }
122
+ }
123
+ },
124
+ 'aiFragment.syncStatusChanged': {
125
+ handler: async ctx => {
126
+ try {
127
+ const {
128
+ event
129
+ } = ctx?.params || {};
130
+ logger.debug('AI Fragment sync status changed event received', {
131
+ fragmentId: event?.fragmentId,
132
+ syncStatus: event?.syncStatus,
133
+ messageId: event?.messageId
134
+ });
135
+ // Emit sync status change notification
136
+ await ctx.emit('notification.aiFragment.syncStatusChanged', {
137
+ event: {
138
+ fragmentId: event?.fragmentId,
139
+ syncStatus: event?.syncStatus,
140
+ messageId: event?.messageId
141
+ }
142
+ });
143
+ } catch (error) {
144
+ logger.error('Error handling AI fragment sync status changed event: %o', error);
145
+ }
146
+ }
147
+ }
148
+ },
149
+ actions: {
150
+ [AiFragmentServiceCommands.CreateFragment]: {
151
+ params: {
152
+ input: 'object'
153
+ },
154
+ handler: async ctx => {
155
+ try {
156
+ logger.debug('Creating AI fragment', {
157
+ messageId: ctx.params.input?.messageId,
158
+ title: ctx.params.input?.title,
159
+ owner: ctx.params.input?.owner,
160
+ orgName: ctx.params.input?.orgName
161
+ });
162
+ if (!ctx.params.input) {
163
+ throw new Error('Fragment input data is required');
164
+ }
165
+ const result = await this.aiFragmentService.createFragment(ctx.params.input);
166
+ if (result instanceof Error) {
167
+ logger.error('Failed to create AI fragment: %s', result.message);
168
+ throw result;
169
+ }
170
+ logger.debug('AI fragment created successfully', {
171
+ fragmentId: result.id,
172
+ messageId: ctx.params.input.messageId
173
+ });
174
+ // Emit fragment created event
175
+ await ctx.emit('aiFragment.created', {
176
+ event: {
177
+ fragment: result,
178
+ userId: ctx.params.input.owner
179
+ }
180
+ });
181
+ return result;
182
+ } catch (error) {
183
+ logger.error('Error in CreateFragment action: %o', error);
184
+ throw error;
185
+ }
186
+ }
187
+ },
188
+ [AiFragmentServiceCommands.GetFragmentByMessageId]: {
189
+ params: {
190
+ messageId: 'string'
191
+ },
192
+ handler: async ctx => {
193
+ try {
194
+ logger.debug('Getting AI fragment by message ID', {
195
+ messageId: ctx.params.messageId
196
+ });
197
+ if (!ctx.params.messageId) {
198
+ throw new Error('Message ID is required');
199
+ }
200
+ const result = await this.aiFragmentService.getFragmentByMessageId(ctx.params.messageId);
201
+ logger.debug('AI fragment retrieved by message ID', {
202
+ messageId: ctx.params.messageId,
203
+ found: !!result
204
+ });
205
+ return result;
206
+ } catch (error) {
207
+ logger.error('Error in GetFragmentByMessageId action: %o', error);
208
+ throw error;
209
+ }
210
+ }
211
+ },
212
+ [AiFragmentServiceCommands.GetFragmentsByUser]: {
213
+ params: {
214
+ orgName: 'string',
215
+ owner: 'string',
216
+ limit: 'number',
217
+ skip: 'number'
218
+ },
219
+ handler: async ctx => {
220
+ try {
221
+ logger.debug('Getting AI fragments by user', {
222
+ orgName: ctx.params.orgName,
223
+ owner: ctx.params.owner,
224
+ limit: ctx.params.limit,
225
+ skip: ctx.params.skip
226
+ });
227
+ if (!ctx.params.orgName || !ctx.params.owner) {
228
+ throw new Error('Organization name and owner are required');
229
+ }
230
+ const result = await this.aiFragmentService.getFragmentsByUser(ctx.params.orgName, ctx.params.owner, ctx.params.limit, ctx.params.skip);
231
+ logger.debug('AI fragments retrieved for user', {
232
+ orgName: ctx.params.orgName,
233
+ owner: ctx.params.owner,
234
+ count: result.length
235
+ });
236
+ return result;
237
+ } catch (error) {
238
+ logger.error('Error in GetFragmentsByUser action: %o', error);
239
+ throw error;
240
+ }
241
+ }
242
+ },
243
+ [AiFragmentServiceCommands.UpdateFragmentFiles]: {
244
+ params: {
245
+ messageId: 'string',
246
+ files: 'object'
247
+ },
248
+ handler: async ctx => {
249
+ try {
250
+ logger.debug('Updating AI fragment files', {
251
+ messageId: ctx.params.messageId,
252
+ fileCount: Object.keys(ctx.params.files).length
253
+ });
254
+ if (!ctx.params.messageId || !ctx.params.files) {
255
+ throw new Error('Message ID and files data are required');
256
+ }
257
+ const result = await this.aiFragmentService.updateFragmentFiles(ctx.params.messageId, ctx.params.files);
258
+ if (result) {
259
+ logger.debug('AI fragment files updated successfully', {
260
+ fragmentId: result.id,
261
+ messageId: ctx.params.messageId
262
+ });
263
+ // Emit fragment updated event
264
+ await ctx.emit('aiFragment.updated', {
265
+ event: {
266
+ fragmentId: result.id,
267
+ messageId: ctx.params.messageId
268
+ }
269
+ });
270
+ } else {
271
+ logger.debug('No AI fragment found to update files', {
272
+ messageId: ctx.params.messageId
273
+ });
274
+ }
275
+ return result;
276
+ } catch (error) {
277
+ logger.error('Error in UpdateFragmentFiles action: %o', error);
278
+ throw error;
279
+ }
280
+ }
281
+ },
282
+ [AiFragmentServiceCommands.DeleteFragment]: {
283
+ params: {
284
+ id: 'string'
285
+ },
286
+ handler: async ctx => {
287
+ try {
288
+ logger.debug('Deleting AI fragment', {
289
+ fragmentId: ctx.params.id
290
+ });
291
+ if (!ctx.params.id) {
292
+ throw new Error('Fragment ID is required');
293
+ }
294
+ const result = await this.aiFragmentService.deleteFragment(ctx.params.id);
295
+ if (result) {
296
+ logger.debug('AI fragment deleted successfully', {
297
+ fragmentId: ctx.params.id
298
+ });
299
+ // Emit fragment deleted event
300
+ await ctx.emit('aiFragment.deleted', {
301
+ event: {
302
+ fragmentId: ctx.params.id
303
+ }
304
+ });
305
+ } else {
306
+ logger.debug('No AI fragment found to delete', {
307
+ fragmentId: ctx.params.id
308
+ });
309
+ }
310
+ return result;
311
+ } catch (error) {
312
+ logger.error('Error in DeleteFragment action: %o', error);
313
+ throw error;
314
+ }
315
+ }
316
+ },
317
+ [AiFragmentServiceCommands.DeleteFragmentByMessageId]: {
318
+ params: {
319
+ messageId: 'string'
320
+ },
321
+ handler: async ctx => {
322
+ try {
323
+ logger.debug('Deleting AI fragment by message ID', {
324
+ messageId: ctx.params.messageId
325
+ });
326
+ if (!ctx.params.messageId) {
327
+ throw new Error('Message ID is required');
328
+ }
329
+ const result = await this.aiFragmentService.deleteFragmentByMessageId(ctx.params.messageId);
330
+ if (result) {
331
+ logger.debug('AI fragment deleted by message ID successfully', {
332
+ messageId: ctx.params.messageId
333
+ });
334
+ // Emit fragment deleted event
335
+ await ctx.emit('aiFragment.deleted', {
336
+ event: {
337
+ messageId: ctx.params.messageId
338
+ }
339
+ });
340
+ } else {
341
+ logger.debug('No AI fragment found to delete by message ID', {
342
+ messageId: ctx.params.messageId
343
+ });
344
+ }
345
+ return result;
346
+ } catch (error) {
347
+ logger.error('Error in DeleteFragmentByMessageId action: %o', error);
348
+ throw error;
349
+ }
350
+ }
351
+ },
352
+ [AiFragmentServiceCommands.GetFragmentById]: {
353
+ params: {
354
+ fragmentId: 'string'
355
+ },
356
+ handler: async ctx => {
357
+ try {
358
+ logger.debug('Getting AI fragment by ID', {
359
+ fragmentId: ctx.params.fragmentId
360
+ });
361
+ if (!ctx.params.fragmentId) {
362
+ throw new Error('Fragment ID is required');
363
+ }
364
+ const result = await this.aiFragmentService.getFragmentById(ctx.params.fragmentId);
365
+ logger.debug('AI fragment retrieved by ID', {
366
+ fragmentId: ctx.params.fragmentId,
367
+ found: !!result
368
+ });
369
+ return result;
370
+ } catch (error) {
371
+ logger.error('Error in GetFragmentById action: %o', error);
372
+ throw error;
373
+ }
374
+ }
375
+ },
376
+ [AiFragmentServiceCommands.UpdateSandboxUrl]: {
377
+ params: {
378
+ fragmentId: 'string',
379
+ newSandboxUrl: 'string'
380
+ },
381
+ handler: async ctx => {
382
+ try {
383
+ logger.debug('Updating AI fragment sandbox URL', {
384
+ fragmentId: ctx.params.fragmentId,
385
+ newSandboxUrl: ctx.params.newSandboxUrl
386
+ });
387
+ if (!ctx.params.fragmentId || !ctx.params.newSandboxUrl) {
388
+ throw new Error('Fragment ID and new sandbox URL are required');
389
+ }
390
+ const result = await this.aiFragmentService.updateSandboxUrl(ctx.params.fragmentId, ctx.params.newSandboxUrl);
391
+ if (result) {
392
+ logger.debug('AI fragment sandbox URL updated successfully', {
393
+ fragmentId: ctx.params.fragmentId,
394
+ newSandboxUrl: ctx.params.newSandboxUrl
395
+ });
396
+ // Emit fragment updated event
397
+ await ctx.emit('aiFragment.updated', {
398
+ event: {
399
+ fragmentId: ctx.params.fragmentId
400
+ }
401
+ });
402
+ } else {
403
+ logger.debug('No AI fragment found to update sandbox URL', {
404
+ fragmentId: ctx.params.fragmentId
405
+ });
406
+ }
407
+ return result;
408
+ } catch (error) {
409
+ logger.error('Error in UpdateSandboxUrl action: %o', error);
410
+ throw error;
411
+ }
412
+ }
413
+ },
414
+ [AiFragmentServiceCommands.UpdateFileSync]: {
415
+ params: {
416
+ fragmentId: 'string',
417
+ fileVersions: 'object',
418
+ syncStatus: 'string'
419
+ },
420
+ handler: async ctx => {
421
+ try {
422
+ logger.debug('Updating AI fragment file sync', {
423
+ fragmentId: ctx.params.fragmentId,
424
+ fileVersionCount: Object.keys(ctx.params.fileVersions).length,
425
+ syncStatus: ctx.params.syncStatus
426
+ });
427
+ if (!ctx.params.fragmentId || !ctx.params.fileVersions || !ctx.params.syncStatus) {
428
+ throw new Error('Fragment ID, file versions, and sync status are required');
429
+ }
430
+ const result = await this.aiFragmentService.updateFileSync(ctx.params.fragmentId, ctx.params.fileVersions, ctx.params.syncStatus);
431
+ if (result) {
432
+ logger.debug('AI fragment file sync updated successfully', {
433
+ fragmentId: ctx.params.fragmentId,
434
+ syncStatus: ctx.params.syncStatus
435
+ });
436
+ // Emit sync status changed event
437
+ await ctx.emit('aiFragment.syncStatusChanged', {
438
+ event: {
439
+ fragmentId: ctx.params.fragmentId,
440
+ syncStatus: ctx.params.syncStatus
441
+ }
442
+ });
443
+ } else {
444
+ logger.debug('No AI fragment found to update file sync', {
445
+ fragmentId: ctx.params.fragmentId
446
+ });
447
+ }
448
+ return result;
449
+ } catch (error) {
450
+ logger.error('Error in UpdateFileSync action: %o', error);
451
+ throw error;
452
+ }
453
+ }
454
+ },
455
+ [AiFragmentServiceCommands.UpdateFilesAndSync]: {
456
+ params: {
457
+ messageId: 'string',
458
+ files: 'object',
459
+ fileVersions: 'object',
460
+ syncStatus: 'string'
461
+ },
462
+ handler: async ctx => {
463
+ try {
464
+ logger.debug('Updating AI fragment files and sync', {
465
+ messageId: ctx.params.messageId,
466
+ fileCount: Object.keys(ctx.params.files).length,
467
+ fileVersionCount: Object.keys(ctx.params.fileVersions).length,
468
+ syncStatus: ctx.params.syncStatus
469
+ });
470
+ if (!ctx.params.messageId || !ctx.params.files || !ctx.params.fileVersions || !ctx.params.syncStatus) {
471
+ throw new Error('Message ID, files, file versions, and sync status are required');
472
+ }
473
+ const result = await this.aiFragmentService.updateFilesAndSync(ctx.params.messageId, ctx.params.files, ctx.params.fileVersions, ctx.params.syncStatus);
474
+ if (result) {
475
+ logger.debug('AI fragment files and sync updated successfully', {
476
+ fragmentId: result.id,
477
+ messageId: ctx.params.messageId,
478
+ syncStatus: ctx.params.syncStatus
479
+ });
480
+ // Emit fragment updated and sync status changed events
481
+ await ctx.emit('aiFragment.updated', {
482
+ event: {
483
+ fragmentId: result.id,
484
+ messageId: ctx.params.messageId
485
+ }
486
+ });
487
+ await ctx.emit('aiFragment.syncStatusChanged', {
488
+ event: {
489
+ fragmentId: result.id,
490
+ syncStatus: ctx.params.syncStatus,
491
+ messageId: ctx.params.messageId
492
+ }
493
+ });
494
+ } else {
495
+ logger.debug('No AI fragment found to update files and sync', {
496
+ messageId: ctx.params.messageId
497
+ });
498
+ }
499
+ return result;
500
+ } catch (error) {
501
+ logger.error('Error in UpdateFilesAndSync action: %o', error);
502
+ throw error;
503
+ }
504
+ }
505
+ }
506
+ }
507
+ });
508
+ logger.debug('AI Fragment Moleculer Service initialized successfully', {
509
+ topic
510
+ });
511
+ } catch (error) {
512
+ logger.error('Error initializing AI Fragment Moleculer Service: %o', error);
513
+ throw error;
514
+ }
515
+ }
516
+ }export{AiFragmentMoleculerService};//# sourceMappingURL=ai-fragment-moleculer-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-fragment-moleculer-service.js","sources":["../../src/plugins/ai-fragment-moleculer-service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,7 +1,27 @@
1
1
  import { Service, ServiceBroker } from 'moleculer';
2
2
  import { Container } from 'inversify';
3
+ /**
4
+ * Channel Moleculer Service
5
+ *
6
+ * This service exposes channel management functionality through the Moleculer microservice framework,
7
+ * providing distributed access to channel operations across the messenger platform.
8
+ *
9
+ * Key capabilities:
10
+ * - Channel lifecycle management (creation, updates, deletion)
11
+ * - Member management (adding, removing, role assignment)
12
+ * - Direct and public channel handling
13
+ * - Message and post management within channels
14
+ * - Channel visibility and access control
15
+ * - Notification and unread message tracking
16
+ * - Team-based channel organization
17
+ * - Channel discovery and filtering
18
+ * - Event-driven architecture for channel changes
19
+ * - Comprehensive error handling and logging
20
+ * - Service integration through Apollo GraphQL
21
+ */
3
22
  export declare class ChannelMoleculerService extends Service {
4
- private channelService;
23
+ private readonly channelService;
24
+ private readonly container;
5
25
  constructor(broker: ServiceBroker, { container, ...settings }: {
6
26
  container: Container;
7
27
  });