@messenger-box/platform-server 10.0.3-alpha.94 → 10.0.3-alpha.96

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 (69) hide show
  1. package/lib/containers/containers.js +1 -4
  2. package/lib/containers/containers.js.map +1 -1
  3. package/lib/containers/context-services-from-container.js +1 -2
  4. package/lib/containers/context-services-from-container.js.map +1 -1
  5. package/lib/graphql/resolvers/channel.js +2 -10
  6. package/lib/graphql/resolvers/channel.js.map +1 -1
  7. package/lib/graphql/resolvers/index.js +1 -1
  8. package/lib/graphql/resolvers/index.js.map +1 -1
  9. package/lib/graphql/resolvers/post.js +3 -30
  10. package/lib/graphql/resolvers/post.js.map +1 -1
  11. package/lib/graphql/schema/channel.graphql +17 -2
  12. package/lib/graphql/schema/channel.graphql.js +1 -1
  13. package/lib/graphql/schema/index.js +2 -2
  14. package/lib/graphql/schema/index.js.map +1 -1
  15. package/lib/graphql/schema/post.graphql +16 -2
  16. package/lib/graphql/schema/post.graphql.js +1 -1
  17. package/lib/inngest/factory.d.ts +3 -3
  18. package/lib/inngest/factory.js +2 -2
  19. package/lib/inngest/factory.js.map +1 -1
  20. package/lib/inngest/functions.d.ts +15 -111
  21. package/lib/inngest/functions.js +88 -815
  22. package/lib/inngest/functions.js.map +1 -1
  23. package/lib/module.js +2 -2
  24. package/lib/module.js.map +1 -1
  25. package/lib/plugins/index.d.ts +0 -1
  26. package/lib/services/channel-service.js +2 -2
  27. package/lib/services/channel-service.js.map +1 -1
  28. package/lib/services/index.d.ts +0 -1
  29. package/lib/services/post-service.d.ts +2 -3
  30. package/lib/services/post-service.js +8 -10
  31. package/lib/services/post-service.js.map +1 -1
  32. package/lib/services/proxy-services/index.d.ts +0 -1
  33. package/lib/store/models/index.d.ts +0 -1
  34. package/lib/store/repositories/channel-repository.js +1 -1
  35. package/lib/store/repositories/channel-repository.js.map +1 -1
  36. package/lib/store/repositories/index.d.ts +0 -1
  37. package/lib/store/repositories/post-repository.js +1 -1
  38. package/lib/store/repositories/post-repository.js.map +1 -1
  39. package/lib/store/repositories/post-thread-repository.js +1 -1
  40. package/lib/store/repositories/post-thread-repository.js.map +1 -1
  41. package/lib/store/repositories/reaction-repository.js +1 -1
  42. package/lib/store/repositories/reaction-repository.js.map +1 -1
  43. package/lib/templates/constants/SERVER_TYPES.ts.template +0 -3
  44. package/lib/templates/constants/WorkflowNamespace.ts.template +10 -0
  45. package/lib/templates/services/PostService.ts.template +8 -8
  46. package/package.json +6 -7
  47. package/lib/graphql/resolvers/ai-fragment.d.ts +0 -3
  48. package/lib/graphql/resolvers/ai-fragment.js +0 -276
  49. package/lib/graphql/resolvers/ai-fragment.js.map +0 -1
  50. package/lib/graphql/schema/ai-fragment.graphql +0 -311
  51. package/lib/graphql/schema/ai-fragment.graphql.js +0 -1
  52. package/lib/graphql/schema/ai-fragment.graphql.js.map +0 -1
  53. package/lib/plugins/ai-fragment-moleculer-service.d.ts +0 -29
  54. package/lib/plugins/ai-fragment-moleculer-service.js +0 -516
  55. package/lib/plugins/ai-fragment-moleculer-service.js.map +0 -1
  56. package/lib/services/ai-fragment-service.d.ts +0 -195
  57. package/lib/services/ai-fragment-service.js +0 -631
  58. package/lib/services/ai-fragment-service.js.map +0 -1
  59. package/lib/services/proxy-services/ai-fragment-microservice.d.ts +0 -23
  60. package/lib/services/proxy-services/ai-fragment-microservice.js +0 -75
  61. package/lib/services/proxy-services/ai-fragment-microservice.js.map +0 -1
  62. package/lib/store/models/ai-fragment.d.ts +0 -4
  63. package/lib/store/models/ai-fragment.js +0 -125
  64. package/lib/store/models/ai-fragment.js.map +0 -1
  65. package/lib/store/repositories/ai-fragment-repository.d.ts +0 -15
  66. package/lib/store/repositories/ai-fragment-repository.js +0 -69
  67. package/lib/store/repositories/ai-fragment-repository.js.map +0 -1
  68. package/lib/templates/repositories/AiFragmentRepository.ts.template +0 -4
  69. package/lib/templates/services/AiFragmentService.ts.template +0 -123
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messenger-box/platform-server",
3
- "version": "10.0.3-alpha.94",
3
+ "version": "10.0.3-alpha.96",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -22,7 +22,7 @@
22
22
  "@container-stack/mailing-api": "5.4.1-alpha.26",
23
23
  "@e2b/code-interpreter": "^1.5.1",
24
24
  "@inngest/agent-kit": "^0.8.3",
25
- "@messenger-box/core": "10.0.3-alpha.94",
25
+ "@messenger-box/core": "10.0.3-alpha.96",
26
26
  "@skoropletov/moleculer-cron-tasks": "~0.0.8",
27
27
  "date-fns": "^4.1.0",
28
28
  "inngest": "^3.39.2"
@@ -51,6 +51,7 @@
51
51
  "cdecode": {
52
52
  "common": {
53
53
  "constants": [
54
+ "./${libDir}/templates/constants/WorkflowNamespace.ts.template",
54
55
  "./${libDir}/templates/constants/SERVER_TYPES.ts.template"
55
56
  ],
56
57
  "services": [
@@ -61,20 +62,18 @@
61
62
  "./${libDir}/templates/services/PostThreadService.ts.template",
62
63
  "./${libDir}/templates/services/ReactionService.ts.template",
63
64
  "./${libDir}/templates/services/RedisCacheManager.ts.template",
64
- "./${libDir}/templates/services/SandboxErrorService.ts.template",
65
- "./${libDir}/templates/services/AiFragmentService.ts.template"
65
+ "./${libDir}/templates/services/SandboxErrorService.ts.template"
66
66
  ],
67
67
  "repositories": [
68
68
  "./${libDir}/templates/repositories/ChannelRepository.ts.template",
69
69
  "./${libDir}/templates/repositories/PostRepository.ts.template",
70
70
  "./${libDir}/templates/repositories/PostThreadRepository.ts.template",
71
- "./${libDir}/templates/repositories/ReactionRepository.ts.template",
72
- "./${libDir}/templates/repositories/AiFragmentRepository.ts.template"
71
+ "./${libDir}/templates/repositories/ReactionRepository.ts.template"
73
72
  ]
74
73
  }
75
74
  },
76
75
  "typescript": {
77
76
  "definition": "lib/index.d.ts"
78
77
  },
79
- "gitHead": "278191b834fdc39a64b85c588e0effbad983a1d0"
78
+ "gitHead": "c81dbd1ea39f8083024d0575e0c2c19bf08ea431"
80
79
  }
@@ -1,3 +0,0 @@
1
- import { IResolverOptions } from '@common-stack/server-core';
2
- import { IResolvers } from 'common/server';
3
- export declare const aiFragmentResolvers: (options: IResolverOptions) => IResolvers;
@@ -1,276 +0,0 @@
1
- import {withFilter}from'graphql-subscriptions';const aiFragmentResolvers = options => ({
2
- Query: {
3
- async aiFragment(_src, {
4
- id
5
- }, {
6
- aiFragmentService
7
- }) {
8
- options.logger.trace('(Query.aiFragment) id [%s]', id);
9
- if (!id) {
10
- options.logger.warn('Missing fragment id');
11
- return null;
12
- }
13
- try {
14
- return await aiFragmentService.getFragmentById(id);
15
- } catch (error) {
16
- options.logger.error('Error in aiFragment: %o', error);
17
- return null;
18
- }
19
- },
20
- async aiFragmentByMessageId(_src, {
21
- messageId
22
- }, {
23
- aiFragmentService
24
- }) {
25
- options.logger.trace('(Query.aiFragmentByMessageId) messageId [%s]', messageId);
26
- if (!messageId) {
27
- options.logger.warn('Missing messageId');
28
- return null;
29
- }
30
- try {
31
- return await aiFragmentService.getFragmentByMessageId(messageId);
32
- } catch (error) {
33
- options.logger.error('Error in aiFragmentByMessageId: %o', error);
34
- return null;
35
- }
36
- },
37
- async aiFragmentsByOwner(_src, {
38
- owner,
39
- limit,
40
- skip,
41
- sort
42
- }, {
43
- aiFragmentService,
44
- userContext,
45
- orgName
46
- }) {
47
- const resolvedOwner = owner || userContext?.accountId;
48
- const resolvedOrg = orgName || userContext?.orgId;
49
- options.logger.trace('(Query.aiFragmentsByOwner) owner [%s] org [%s]', resolvedOwner, resolvedOrg);
50
- if (!resolvedOwner || !resolvedOrg) {
51
- options.logger.warn('Missing owner or organization');
52
- return [];
53
- }
54
- try {
55
- return await aiFragmentService.getFragmentsByUser(resolvedOrg, resolvedOwner, limit, skip);
56
- } catch (error) {
57
- options.logger.error('Error in aiFragmentsByOwner: %o', error);
58
- return [];
59
- }
60
- },
61
- async aiFragmentsByOrg(_src, {
62
- orgName: org,
63
- limit,
64
- skip,
65
- sort
66
- }, {
67
- aiFragmentService,
68
- orgName,
69
- userContext
70
- }) {
71
- const resolvedOrg = org || orgName || userContext?.orgId;
72
- options.logger.trace('(Query.aiFragmentsByOrg) org [%s]', resolvedOrg);
73
- if (!resolvedOrg) {
74
- options.logger.warn('Missing organization');
75
- return [];
76
- }
77
- try {
78
- return await aiFragmentService.getAll({
79
- criteria: {
80
- orgName: resolvedOrg
81
- },
82
- limit,
83
- skip,
84
- sort
85
- });
86
- } catch (error) {
87
- options.logger.error('Error in aiFragmentsByOrg: %o', error);
88
- return [];
89
- }
90
- },
91
- async aiFragments(_src, args, {
92
- aiFragmentService,
93
- userContext,
94
- orgName
95
- }) {
96
- const {
97
- criteria = {},
98
- limit,
99
- skip,
100
- sort
101
- } = args || {};
102
- options.logger.trace('(Query.aiFragments) criteria [%j]', criteria);
103
- try {
104
- return await aiFragmentService.getAll({
105
- criteria,
106
- limit,
107
- skip,
108
- sort
109
- });
110
- } catch (error) {
111
- options.logger.error('Error in aiFragments: %o', error);
112
- return [];
113
- }
114
- }
115
- },
116
- Mutation: {
117
- async createAiFragment(_src, {
118
- input
119
- }, {
120
- aiFragmentService,
121
- userContext,
122
- orgName
123
- }) {
124
- options.logger.trace('(Mutation.createAiFragment) input.title [%s]', input?.title);
125
- try {
126
- const owner = userContext?.accountId;
127
- const org = orgName || userContext?.orgId;
128
- if (!owner || !org) {
129
- options.logger.warn('Missing owner or organization in context');
130
- throw new Error('User context required');
131
- }
132
- return await aiFragmentService.createFragment({
133
- ...input,
134
- owner,
135
- orgName: org
136
- });
137
- } catch (error) {
138
- options.logger.error('Error creating aiFragment: %o', error);
139
- throw error;
140
- }
141
- },
142
- async updateAiFragment(_src, {
143
- input
144
- }, {
145
- aiFragmentService
146
- }) {
147
- options.logger.trace('(Mutation.updateAiFragment) id [%s]', input?.id);
148
- try {
149
- if (!input?.id) {
150
- options.logger.warn('Missing fragment id');
151
- throw new Error('Fragment ID is required');
152
- }
153
- return await aiFragmentService.update(input.id, {
154
- ...input,
155
- id: undefined
156
- });
157
- } catch (error) {
158
- options.logger.error('Error updating aiFragment: %o', error);
159
- throw error;
160
- }
161
- },
162
- async deleteAiFragment(_src, {
163
- id
164
- }, {
165
- aiFragmentService
166
- }) {
167
- options.logger.trace('(Mutation.deleteAiFragment) id [%s]', id);
168
- try {
169
- if (!id) {
170
- options.logger.warn('Missing fragment id');
171
- throw new Error('Fragment ID is required');
172
- }
173
- return await aiFragmentService.deleteFragment(id);
174
- } catch (error) {
175
- options.logger.error('Error deleting aiFragment: %o', error);
176
- throw error;
177
- }
178
- },
179
- async updateAiFragmentSyncStatus(_src, {
180
- id,
181
- syncStatus,
182
- lastSyncAt
183
- }, {
184
- aiFragmentService
185
- }) {
186
- options.logger.trace('(Mutation.updateAiFragmentSyncStatus) id [%s] status [%s]', id, syncStatus);
187
- try {
188
- if (!id || !syncStatus) {
189
- options.logger.warn('Missing id or syncStatus');
190
- throw new Error('Fragment ID and sync status are required');
191
- }
192
- return await aiFragmentService.updateFileSync(id, {}, syncStatus);
193
- } catch (error) {
194
- options.logger.error('Error updating aiFragment sync status: %o', error);
195
- throw error;
196
- }
197
- },
198
- async syncAiFragmentFiles(_src, {
199
- id,
200
- files,
201
- fileVersions
202
- }, {
203
- aiFragmentService
204
- }) {
205
- options.logger.trace('(Mutation.syncAiFragmentFiles) id [%s] files [%d]', id, Object.keys(files || {}).length);
206
- try {
207
- if (!id || !files) {
208
- options.logger.warn('Missing id or files');
209
- throw new Error('Fragment ID and files are required');
210
- }
211
- return await aiFragmentService.update(id, {
212
- files,
213
- fileVersions
214
- });
215
- } catch (error) {
216
- options.logger.error('Error syncing aiFragment files: %o', error);
217
- throw error;
218
- }
219
- },
220
- async generateCode(_src, {
221
- value,
222
- modelConfig
223
- }, context) {
224
- try {
225
- const {
226
- orgName,
227
- userContext,
228
- inngestClient
229
- } = context;
230
- const owner = userContext?.accountId;
231
- if (!orgName || !owner) {
232
- return {
233
- success: false,
234
- message: 'Missing organization or user context',
235
- eventId: null
236
- };
237
- }
238
- const result = await inngestClient.send({
239
- name: 'code-agent/run',
240
- data: {
241
- value,
242
- owner,
243
- orgName,
244
- modelConfig
245
- }
246
- });
247
- return {
248
- success: true,
249
- message: 'Code generation initiated successfully',
250
- eventId: result.ids[0]
251
- };
252
- } catch (error) {
253
- return {
254
- success: false,
255
- message: `Failed to generate code: ${error.message}`,
256
- eventId: null
257
- };
258
- }
259
- }
260
- },
261
- Subscription: {
262
- fragmentUpdated: {
263
- subscribe: withFilter((_, __, context) => context.pubsub.asyncIterator(['FRAGMENT_UPDATED']), (payload, variables) => payload.fragmentUpdated.projectId === variables.projectId),
264
- resolve: (payload, _args, context) => {
265
- try {
266
- if (!context.userContext) context.userContext = {};
267
- if (!context.req) context.req = {};
268
- return payload.fragmentUpdated;
269
- } catch (error) {
270
- options.logger.error('Fragment update subscription resolve error: %o', error);
271
- return payload.fragmentUpdated;
272
- }
273
- }
274
- }
275
- }
276
- });export{aiFragmentResolvers};//# sourceMappingURL=ai-fragment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-fragment.js","sources":["../../../src/graphql/resolvers/ai-fragment.ts"],"sourcesContent":[null],"names":[],"mappings":"qDAIa,mBAAmB,GAAG,OAAC,KAAyC;AAErE,EAAA,KAAA,EAAK;UACD,UAAM,CAAA,IAAW,EAAA;;;AAGT,MAAA;AACA,KAAA,EAAA;aACH,CAAA,MAAA,CAAA,KAAA,CAAA,4BAAA,EAAA,EAAA,CAAA;AACD,MAAA,IAAA,CAAA,EAAA,EAAA;AACI,QAAA,OAAA,CAAA,MAAA,CAAO;eACV,IAAA;;;AAEG,QAAA,OAAA,MAAA,iBAAY,CAAA,eAAA,CAAA,EAAA,CAAA;eACf,KAAA,EAAA;QACL,OAAC,CAAA,MAAA,CAAA,KAAA,CAAA,yBAAA,EAAA,KAAA,CAAA;QACD,OAAM,IAAA;;;AAGE,IAAA,MAAA,qBAAe,KAAK,EAAA;AACpB,MAAA;;AAEJ,MAAA;AACI,KAAA,EAAA;aACH,CAAA,MAAA,CAAA,KAAA,CAAA,8CAAA,EAAA,SAAA,CAAA;oBAAQ,EAAA;gBACL,MAAA,CAAO,wBAAc,CAAA;AACrB,QAAA,OAAA,IAAA;;UAEP;QACD,+BAA+B,sBAAsB,CAAA,SAAU;AAC3D,MAAA,CAAA,CAAA,OAAA;AACA,QAAA,OAAA,CAAA,aAAiB,oCAAiC,EAAA,KAAA,CAAA;eAClD,IAAO;AACP,MAAA;AACI,IAAA,CAAA;AACA,IAAA,MAAA,kBAAU,CAAA,IAAA,EAAA;;AAEd,MAAA,KAAA;AACI,MAAA,IAAA;;;uBAEO;AACP,MAAA,WAAA;;;YAGR,qBACI,IACA,WAAW,EAAA;YAGX,WAAM,GAAA,OAAc,IAAG,WAAW,EAAI,KAAA;aACtC,CAAA,MAAQ,MAAM,CAAC,gDAA2C,EAAA,aAAa,EAAA,WAAA,CAAA;wBAClE,IAAW,CAAA,WAAG,EAAA;AACf,QAAA,OAAA,CAAA,MAAA,CAAO,IAAC,CAAA,+BAAmC,CAAC;AAC5C,QAAA,OAAA,EAAA;;AAEJ,MAAA,IAAA;qBACI,oCAAwC,CAAA,WAAY,EAAA,aAAS,EAAA,OAAe,IAAK,CAAA;eACpF,KAAA,EAAA;eAAC,CAAA,MAAO,CAAA,KAAQ,CAAA,iCAAA,EAAA,KAAA,CAAA;iBACb;AACA,MAAA;;UAEP,gBAAA,CAAA,IAAA,EAAA;AACD,MAAA,OAAK,EAAC,GAAA;AACF,MAAA,KAAA;;AAEA,MAAA;AACI,KAAA,EAAA;uBACH;aAAC;;AAEE,KAAA,EAAA;YACJ,WAAC,GAAA,GAAA,IAAA,OAAA,IAAA,WAAA,EAAA,KAAA;aACJ,CAAA,MAAA,CAAA,KAAA,CAAA,mCAAA,EAAA,WAAA,CAAA;AACJ,MAAA,IAAA,CAAA,WAAA,EAAA;AACD,QAAA,OAAU,CAAA,MAAA,CAAA,IAAA,CAAA,sBAAA,CAAA;AACN,QAAA,OAAM,EAAA;;AAEF,MAAA,IAAA;AACI,QAAA,OAAA,MAAA,iBAAc,CAAA;AACd,UAAA,QAAA,EAAA;AACA,YAAA,OAAA,EAAK;AACD,WAAA;AACA,UAAA,KAAA;;AAEJ,UAAA;;eACF,KAAO,EAAA;gBACL,MAAA,CAAO,qCAAc,EAAA,KAAA,CAA+B;AACpD,QAAA,OAAA,EAAA;;;UAGR,WAAM,CAAA,IAAA,EAAA,IAAiB,EAAA;uBACX;AACR,MAAA,WAAK;AACD,MAAA;AACI,KAAA,EAAA;AACA,MAAA,MAAA;gBACJ,GAAC,EAAA;AACD,QAAA,KAAA;YACJ;;kBACI,EAAA;AACA,MAAA,OAAA,CAAA,MAAA,CAAA,MAAW,mCAAC,EAAA,QAAA,CAAA;;QAEpB,OAAC,MAAA,iBAAA,CAAA,MAAA,CAAA;UACD,QAAM;eACF;AACA,UAAA,IAAA;;AAEQ,SAAA,CAAA;AACA,MAAA,CAAA,CAAA,OAAA,KAAA,EAAA;gBACJ,MAAC,CAAA,KAAA,CAAA,0BAAA,EAAA,KAAA,CAAA;AACD,QAAA,OAAA,EAAA;;;;AAGA,EAAA,QAAA,EAAA;0BACH,CAAA,IAAA,EAAA;;AAEL,KAAA,EAAA;uBACY;AACR,MAAA,WAAK;AACD,MAAA;AACI,KAAA,EAAA;AACA,MAAA,OAAA,CAAA,MAAA,CAAA,KAAM,CAAA,8CAAU,EAAA,KAA4C,EAAA,KAAA,CAAA;;mBAEhE,GAAA,WAAa,EAAA,SAAA;cAChB,GAAA,GAAA,OAAA,IAAA,WAAA,EAAA,KAAA;YAAC,CAAA,KAAA,IAAO,CAAA,GAAO,EAAC;iBACb,CAAA,MAAQ,MAAM,0CAAO,CAAA;AACrB,UAAA,MAAA,IAAA,6BAAY,CAAA;;QAEpB,OAAC,MAAA,iBAAA,CAAA,cAAA,CAAA;AACD,UAAA,GAAK,KAAC;eACF;AAKA,UAAA,OAAK,EAAA;AACD,SAAA,CAAA;AACI,MAAA,CAAA,CAAA,OAAA,KAAA,EAAA;AACA,QAAA,OAAA,CAAA,MAAA,CAAA,KAAM,CAAA,+BAAU,EAAA,KAAA,CAAA;mBACnB;AACD,MAAA;;0BACY,CAAC,IAAA,EAAA;;AAEb,KAAA,EAAA;;;aAGH,CAAC,MAAA,CAAA,KAAY,CAAC,qCAAqC,EAAA,KAAA,EAAA,EAAA,CAAA;AACpD,MAAA,IAAA;kBACI,EAAA,EAAM,EAAE;AACR,UAAA,OAAA,CAAA,MAAM,CAAA,IAAK,CAAG,sBAAsB;AACpC,UAAA,MAAA,IAAI,KAAC,CAAA,yBAAoB,CAAA;AACrB,QAAA;qBACH,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAA,EAAA,EAAA;AACD,UAAA,GAAA,KAAA;AACI,UAAA,EAAA,EAAA;;AAEH,MAAA,CAAA,CAAA,OAAA,KAAE,EAAA;AACH,QAAA,OAAA,CAAA,MAAA,CAAO,KAAE,CAAA,+BAAwB,EAAA,KAAA,CAAA;cACpC,KAAA;;AACG,IAAA,CAAA;0BACH,CAAA,IAAA,EAAA;;AAER,KAAA,EAAA;AACD,MAAA;AACI,KAAA,EAAA;AACI,MAAA,OAAA,CAAA,MAAA,CAAS,KAAE,CAAA,qCACoC,EAAA,EAAM,CAAC;;AAIlD,QAAA,IAAA,CAAA,EAAA,EAAA;wBACQ,CAAC,IAAA,CAAA,qBAAmB,CAAA;AAAE,UAAA,MAAA,IAAA,KAAA,CAAA,yBAAyB,CAAA;;AACjC,QAAA,OAAA,MAAA,iBAAc,CAAA,cAAG,CAAA,EAAA,CAAA;oBACnC,EAAA;gBACJ,MAAC,CAAA,KAAA,CAAA,+BAAA,EAAA,KAAA,CAAA;mBAAC;;;oCAGD,CAAA,IAAA,EAAA;;AAER,MAAA,UAAA;AACJ,MAAA;AACI,KAAC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,311 +0,0 @@
1
- """
2
- AiFragment: A code fragment with sandbox URL and file management
3
- """
4
- type AiFragment implements IBaseRepo @entity {
5
- """
6
- Unique identifier for the fragment
7
- """
8
- id: String! @id
9
-
10
- """
11
- Associated message ID
12
- """
13
- messageId: String! @column
14
-
15
- """
16
- Sandbox URL for the aiFragment
17
- """
18
- sandboxUrl: String! @column
19
-
20
- """
21
- AiFragment title
22
- """
23
- title: String! @column
24
-
25
- """
26
- Files associated with the aiFragment
27
- """
28
- files: AnyObject! @column
29
-
30
- """
31
- Template used for the aiFragment
32
- """
33
- template: AiFragmentTemplate @column
34
-
35
- """
36
- Canvas layers data
37
- """
38
- canvasLayers: [AnyObject] @column
39
-
40
- """
41
- File versions tracking
42
- """
43
- fileVersions: AnyObject @column
44
-
45
- """
46
- Last synchronization timestamp
47
- """
48
- lastSyncAt: DateTime @column(overrideType: "Date")
49
-
50
- """
51
- Synchronization status
52
- """
53
- syncStatus: AiFragmentSyncStatus @column
54
-
55
- """
56
- AiFragment owner
57
- """
58
- owner: String @column
59
-
60
- """
61
- Organization name
62
- """
63
- orgName: String @column
64
-
65
- """
66
- Creation timestamp
67
- """
68
- createdAt: DateTime @column(overrideType: "Date")
69
-
70
- """
71
- Last update timestamp
72
- """
73
- updatedAt: DateTime @column(overrideType: "Date")
74
-
75
- """
76
- Deletion timestamp
77
- """
78
- deletedAt: DateTime @column(overrideType: "Date")
79
- }
80
-
81
- """
82
- AiFragment template types
83
- """
84
- enum AiFragmentTemplate {
85
- """
86
- Next.js template
87
- """
88
- NEXTJS
89
-
90
- """
91
- Vue template
92
- """
93
- VUE
94
-
95
- """
96
- Vite React template
97
- """
98
- VITE_REACT
99
- }
100
-
101
- """
102
- AiFragment synchronization status
103
- """
104
- enum AiFragmentSyncStatus {
105
- """
106
- AiFragment is synced
107
- """
108
- SYNCED
109
-
110
- """
111
- AiFragment sync is pending
112
- """
113
- PENDING
114
-
115
- """
116
- AiFragment has sync conflicts
117
- """
118
- CONFLICT
119
-
120
- """
121
- AiFragment sync error
122
- """
123
- ERROR
124
- }
125
-
126
- """
127
- AiFragment create input
128
- """
129
- input AiFragmentCreateInput {
130
- """
131
- Associated message ID
132
- """
133
- messageId: String!
134
-
135
- """
136
- Sandbox URL
137
- """
138
- sandboxUrl: String!
139
-
140
- """
141
- AiFragment title
142
- """
143
- title: String!
144
-
145
- """
146
- Files data
147
- """
148
- files: AnyObject!
149
-
150
- """
151
- Template type
152
- """
153
- template: AiFragmentTemplate
154
-
155
- """
156
- Canvas layers
157
- """
158
- canvasLayers: [AnyObject]
159
-
160
- """
161
- File versions
162
- """
163
- fileVersions: AnyObject
164
- }
165
-
166
- """
167
- AiFragment update input
168
- """
169
- input AiFragmentUpdateInput {
170
- """
171
- AiFragment ID
172
- """
173
- id: ID!
174
-
175
- """
176
- Sandbox URL
177
- """
178
- sandboxUrl: String
179
-
180
- """
181
- AiFragment title
182
- """
183
- title: String
184
-
185
- """
186
- Files data
187
- """
188
- files: AnyObject
189
-
190
- """
191
- Template type
192
- """
193
- template: AiFragmentTemplate
194
-
195
- """
196
- Canvas layers
197
- """
198
- canvasLayers: [AnyObject]
199
-
200
- """
201
- File versions
202
- """
203
- fileVersions: AnyObject
204
-
205
- """
206
- Synchronization status
207
- """
208
- syncStatus: AiFragmentSyncStatus
209
- }
210
-
211
- type FragmentUpdatePayload {
212
- projectId: String!
213
- fragmentId: String!
214
- newSandboxUrl: String!
215
- }
216
-
217
- input ModelConfigInput {
218
- provider: String!
219
- model: String!
220
- apiKey: String!
221
- template: String!
222
- }
223
-
224
- type InngestEventResponse {
225
- success: Boolean!
226
- message: String!
227
- eventId: String
228
- }
229
-
230
- extend type Query {
231
- """
232
- Get aiFragment by ID
233
- """
234
- aiFragment(id: ID!): AiFragment @addAccountContext @isAuthenticated
235
-
236
- """
237
- Get aiFragment by message ID
238
- """
239
- aiFragmentByMessageId(messageId: String!): AiFragment @addAccountContext @isAuthenticated
240
-
241
- """
242
- Get aiFragments by owner
243
- """
244
- aiFragmentsByOwner(
245
- owner: String
246
- limit: Int
247
- skip: Int
248
- sort: Sort
249
- ): [AiFragment] @addAccountContext @isAuthenticated
250
-
251
- """
252
- Get aiFragments by organization
253
- """
254
- aiFragmentsByOrg(
255
- orgName: String
256
- limit: Int
257
- skip: Int
258
- sort: Sort
259
- ): [AiFragment] @addAccountContext @isAuthenticated
260
-
261
- """
262
- Get aiFragments with filtering
263
- """
264
- aiFragments(
265
- criteria: AnyObject
266
- limit: Int
267
- skip: Int
268
- sort: Sort
269
- ): [AiFragment] @addAccountContext @isAuthenticated
270
- }
271
-
272
- extend type Mutation {
273
- """
274
- Create a new aiFragment
275
- """
276
- createAiFragment(input: AiFragmentCreateInput!): AiFragment @addAccountContext @isAuthenticated
277
-
278
- """
279
- Update an existing aiFragment
280
- """
281
- updateAiFragment(input: AiFragmentUpdateInput!): AiFragment @addAccountContext @isAuthenticated
282
-
283
- """
284
- Delete an aiFragment
285
- """
286
- deleteAiFragment(id: ID!): Boolean @isAuthenticated
287
-
288
- """
289
- Update aiFragment sync status
290
- """
291
- updateAiFragmentSyncStatus(
292
- id: ID!
293
- syncStatus: AiFragmentSyncStatus!
294
- lastSyncAt: DateTime
295
- ): AiFragment @addAccountContext @isAuthenticated
296
-
297
- """
298
- Sync aiFragment files
299
- """
300
- syncAiFragmentFiles(
301
- id: ID!
302
- files: AnyObject!
303
- fileVersions: AnyObject
304
- ): AiFragment @addAccountContext @isAuthenticated
305
-
306
- generateCode(value: String!, modelConfig: ModelConfigInput): InngestEventResponse! @addAccountContext @isAuthenticated
307
- }
308
-
309
- extend type Subscription {
310
- fragmentUpdated(projectId: String!): FragmentUpdatePayload!
311
- }
@@ -1 +0,0 @@
1
- var aiFragmentSchema = "\"\"\"\nAiFragment: A code fragment with sandbox URL and file management\n\"\"\"\ntype AiFragment implements IBaseRepo @entity {\n \"\"\"\n Unique identifier for the fragment\n \"\"\"\n id: String! @id\n \n \"\"\"\n Associated message ID\n \"\"\"\n messageId: String! @column\n \n \"\"\"\n Sandbox URL for the aiFragment\n \"\"\"\n sandboxUrl: String! @column\n \n \"\"\"\n AiFragment title\n \"\"\"\n title: String! @column\n \n \"\"\"\n Files associated with the aiFragment\n \"\"\"\n files: AnyObject! @column\n \n \"\"\"\n Template used for the aiFragment\n \"\"\"\n template: AiFragmentTemplate @column\n \n \"\"\"\n Canvas layers data\n \"\"\"\n canvasLayers: [AnyObject] @column\n \n \"\"\"\n File versions tracking\n \"\"\"\n fileVersions: AnyObject @column\n \n \"\"\"\n Last synchronization timestamp\n \"\"\"\n lastSyncAt: DateTime @column(overrideType: \"Date\")\n \n \"\"\"\n Synchronization status\n \"\"\"\n syncStatus: AiFragmentSyncStatus @column\n \n \"\"\"\n AiFragment owner\n \"\"\"\n owner: String @column\n \n \"\"\"\n Organization name\n \"\"\"\n orgName: String @column\n \n \"\"\"\n Creation timestamp\n \"\"\"\n createdAt: DateTime @column(overrideType: \"Date\")\n \n \"\"\"\n Last update timestamp\n \"\"\"\n updatedAt: DateTime @column(overrideType: \"Date\")\n \n \"\"\"\n Deletion timestamp\n \"\"\"\n deletedAt: DateTime @column(overrideType: \"Date\")\n}\n\n\"\"\"\nAiFragment template types\n\"\"\"\nenum AiFragmentTemplate {\n \"\"\"\n Next.js template\n \"\"\"\n NEXTJS\n \n \"\"\"\n Vue template\n \"\"\"\n VUE\n \n \"\"\"\n Vite React template\n \"\"\"\n VITE_REACT\n}\n\n\"\"\"\nAiFragment synchronization status\n\"\"\"\nenum AiFragmentSyncStatus {\n \"\"\"\n AiFragment is synced\n \"\"\"\n SYNCED\n \n \"\"\"\n AiFragment sync is pending\n \"\"\"\n PENDING\n \n \"\"\"\n AiFragment has sync conflicts\n \"\"\"\n CONFLICT\n \n \"\"\"\n AiFragment sync error\n \"\"\"\n ERROR\n}\n\n\"\"\"\nAiFragment create input\n\"\"\"\ninput AiFragmentCreateInput {\n \"\"\"\n Associated message ID\n \"\"\"\n messageId: String!\n \n \"\"\"\n Sandbox URL\n \"\"\"\n sandboxUrl: String!\n \n \"\"\"\n AiFragment title\n \"\"\"\n title: String!\n \n \"\"\"\n Files data\n \"\"\"\n files: AnyObject!\n \n \"\"\"\n Template type\n \"\"\"\n template: AiFragmentTemplate\n \n \"\"\"\n Canvas layers\n \"\"\"\n canvasLayers: [AnyObject]\n \n \"\"\"\n File versions\n \"\"\"\n fileVersions: AnyObject\n}\n\n\"\"\"\nAiFragment update input\n\"\"\"\ninput AiFragmentUpdateInput {\n \"\"\"\n AiFragment ID\n \"\"\"\n id: ID!\n \n \"\"\"\n Sandbox URL\n \"\"\"\n sandboxUrl: String\n \n \"\"\"\n AiFragment title\n \"\"\"\n title: String\n \n \"\"\"\n Files data\n \"\"\"\n files: AnyObject\n \n \"\"\"\n Template type\n \"\"\"\n template: AiFragmentTemplate\n \n \"\"\"\n Canvas layers\n \"\"\"\n canvasLayers: [AnyObject]\n \n \"\"\"\n File versions\n \"\"\"\n fileVersions: AnyObject\n \n \"\"\"\n Synchronization status\n \"\"\"\n syncStatus: AiFragmentSyncStatus\n}\n\ntype FragmentUpdatePayload {\n projectId: String!\n fragmentId: String!\n newSandboxUrl: String!\n}\n\ninput ModelConfigInput {\n provider: String!\n model: String!\n apiKey: String!\n template: String!\n}\n\n type InngestEventResponse {\n success: Boolean!\n message: String!\n eventId: String\n }\n\nextend type Query {\n \"\"\"\n Get aiFragment by ID\n \"\"\"\n aiFragment(id: ID!): AiFragment @addAccountContext @isAuthenticated\n \n \"\"\"\n Get aiFragment by message ID\n \"\"\"\n aiFragmentByMessageId(messageId: String!): AiFragment @addAccountContext @isAuthenticated\n \n \"\"\"\n Get aiFragments by owner\n \"\"\"\n aiFragmentsByOwner(\n owner: String\n limit: Int\n skip: Int\n sort: Sort\n ): [AiFragment] @addAccountContext @isAuthenticated\n \n \"\"\"\n Get aiFragments by organization\n \"\"\"\n aiFragmentsByOrg(\n orgName: String\n limit: Int\n skip: Int\n sort: Sort\n ): [AiFragment] @addAccountContext @isAuthenticated\n \n \"\"\"\n Get aiFragments with filtering\n \"\"\"\n aiFragments(\n criteria: AnyObject\n limit: Int\n skip: Int\n sort: Sort\n ): [AiFragment] @addAccountContext @isAuthenticated\n}\n\nextend type Mutation {\n \"\"\"\n Create a new aiFragment\n \"\"\"\n createAiFragment(input: AiFragmentCreateInput!): AiFragment @addAccountContext @isAuthenticated\n\n \"\"\"\n Update an existing aiFragment\n \"\"\"\n updateAiFragment(input: AiFragmentUpdateInput!): AiFragment @addAccountContext @isAuthenticated\n\n \"\"\"\n Delete an aiFragment\n \"\"\"\n deleteAiFragment(id: ID!): Boolean @isAuthenticated\n\n \"\"\"\n Update aiFragment sync status\n \"\"\"\n updateAiFragmentSyncStatus(\n id: ID!\n syncStatus: AiFragmentSyncStatus!\n lastSyncAt: DateTime\n ): AiFragment @addAccountContext @isAuthenticated\n\n \"\"\"\n Sync aiFragment files\n \"\"\"\n syncAiFragmentFiles(\n id: ID!\n files: AnyObject!\n fileVersions: AnyObject\n ): AiFragment @addAccountContext @isAuthenticated\n\n generateCode(value: String!, modelConfig: ModelConfigInput): InngestEventResponse! @addAccountContext @isAuthenticated\n}\n\nextend type Subscription {\n fragmentUpdated(projectId: String!): FragmentUpdatePayload!\n}";export{aiFragmentSchema as default};//# sourceMappingURL=ai-fragment.graphql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-fragment.graphql.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,29 +0,0 @@
1
- import { Service, ServiceBroker } from 'moleculer';
2
- import { Container } from 'inversify';
3
- /**
4
- * AI Fragment Moleculer Service
5
- *
6
- * This service exposes AI fragment management functionality through the Moleculer microservice framework,
7
- * providing distributed access to AI fragment operations across the messenger platform.
8
- *
9
- * Key capabilities:
10
- * - AI fragment creation and lifecycle management
11
- * - Sandbox URL management and synchronization
12
- * - File version control and conflict resolution
13
- * - Canvas layer support for visual components
14
- * - Template-based fragment generation
15
- * - Organization and user-based fragment retrieval
16
- * - Real-time file synchronization status tracking
17
- * - Batch operations for fragment management
18
- * - Cross-platform fragment compatibility
19
- * - Event-driven architecture for fragment changes
20
- * - Comprehensive error handling and logging
21
- * - Service integration through Apollo GraphQL
22
- */
23
- export declare class AiFragmentMoleculerService extends Service {
24
- private readonly aiFragmentService;
25
- private readonly container;
26
- constructor(broker: ServiceBroker, { container, ...settings }: {
27
- container: Container;
28
- });
29
- }