@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.
- package/lib/containers/containers.js +1 -4
- package/lib/containers/containers.js.map +1 -1
- package/lib/containers/context-services-from-container.js +1 -2
- package/lib/containers/context-services-from-container.js.map +1 -1
- package/lib/graphql/resolvers/channel.js +2 -10
- package/lib/graphql/resolvers/channel.js.map +1 -1
- package/lib/graphql/resolvers/index.js +1 -1
- package/lib/graphql/resolvers/index.js.map +1 -1
- package/lib/graphql/resolvers/post.js +3 -30
- package/lib/graphql/resolvers/post.js.map +1 -1
- package/lib/graphql/schema/channel.graphql +17 -2
- package/lib/graphql/schema/channel.graphql.js +1 -1
- package/lib/graphql/schema/index.js +2 -2
- package/lib/graphql/schema/index.js.map +1 -1
- package/lib/graphql/schema/post.graphql +16 -2
- package/lib/graphql/schema/post.graphql.js +1 -1
- package/lib/inngest/factory.d.ts +3 -3
- package/lib/inngest/factory.js +2 -2
- package/lib/inngest/factory.js.map +1 -1
- package/lib/inngest/functions.d.ts +15 -111
- package/lib/inngest/functions.js +88 -815
- package/lib/inngest/functions.js.map +1 -1
- package/lib/module.js +2 -2
- package/lib/module.js.map +1 -1
- package/lib/plugins/index.d.ts +0 -1
- package/lib/services/channel-service.js +2 -2
- package/lib/services/channel-service.js.map +1 -1
- package/lib/services/index.d.ts +0 -1
- package/lib/services/post-service.d.ts +2 -3
- package/lib/services/post-service.js +8 -10
- package/lib/services/post-service.js.map +1 -1
- package/lib/services/proxy-services/index.d.ts +0 -1
- package/lib/store/models/index.d.ts +0 -1
- package/lib/store/repositories/channel-repository.js +1 -1
- package/lib/store/repositories/channel-repository.js.map +1 -1
- package/lib/store/repositories/index.d.ts +0 -1
- package/lib/store/repositories/post-repository.js +1 -1
- package/lib/store/repositories/post-repository.js.map +1 -1
- package/lib/store/repositories/post-thread-repository.js +1 -1
- package/lib/store/repositories/post-thread-repository.js.map +1 -1
- package/lib/store/repositories/reaction-repository.js +1 -1
- package/lib/store/repositories/reaction-repository.js.map +1 -1
- package/lib/templates/constants/SERVER_TYPES.ts.template +0 -3
- package/lib/templates/constants/WorkflowNamespace.ts.template +10 -0
- package/lib/templates/services/PostService.ts.template +8 -8
- package/package.json +6 -7
- package/lib/graphql/resolvers/ai-fragment.d.ts +0 -3
- package/lib/graphql/resolvers/ai-fragment.js +0 -276
- package/lib/graphql/resolvers/ai-fragment.js.map +0 -1
- package/lib/graphql/schema/ai-fragment.graphql +0 -311
- package/lib/graphql/schema/ai-fragment.graphql.js +0 -1
- package/lib/graphql/schema/ai-fragment.graphql.js.map +0 -1
- package/lib/plugins/ai-fragment-moleculer-service.d.ts +0 -29
- package/lib/plugins/ai-fragment-moleculer-service.js +0 -516
- package/lib/plugins/ai-fragment-moleculer-service.js.map +0 -1
- package/lib/services/ai-fragment-service.d.ts +0 -195
- package/lib/services/ai-fragment-service.js +0 -631
- package/lib/services/ai-fragment-service.js.map +0 -1
- package/lib/services/proxy-services/ai-fragment-microservice.d.ts +0 -23
- package/lib/services/proxy-services/ai-fragment-microservice.js +0 -75
- package/lib/services/proxy-services/ai-fragment-microservice.js.map +0 -1
- package/lib/store/models/ai-fragment.d.ts +0 -4
- package/lib/store/models/ai-fragment.js +0 -125
- package/lib/store/models/ai-fragment.js.map +0 -1
- package/lib/store/repositories/ai-fragment-repository.d.ts +0 -15
- package/lib/store/repositories/ai-fragment-repository.js +0 -69
- package/lib/store/repositories/ai-fragment-repository.js.map +0 -1
- package/lib/templates/repositories/AiFragmentRepository.ts.template +0 -4
- 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.
|
|
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.
|
|
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": "
|
|
78
|
+
"gitHead": "c81dbd1ea39f8083024d0575e0c2c19bf08ea431"
|
|
80
79
|
}
|
|
@@ -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":"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"}
|
|
@@ -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
|
-
}
|