@messenger-box/platform-server 10.0.3-alpha.72 → 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 (98) 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 +6 -1
  5. package/lib/containers/containers.js.map +1 -1
  6. package/lib/containers/context-services-from-container.js +4 -2
  7. package/lib/containers/context-services-from-container.js.map +1 -1
  8. package/lib/graphql/resolvers/ai-fragment.d.ts +3 -0
  9. package/lib/graphql/resolvers/ai-fragment.js +276 -0
  10. package/lib/graphql/resolvers/ai-fragment.js.map +1 -0
  11. package/lib/graphql/resolvers/channel.js +29 -0
  12. package/lib/graphql/resolvers/channel.js.map +1 -1
  13. package/lib/graphql/resolvers/index.js +1 -1
  14. package/lib/graphql/resolvers/index.js.map +1 -1
  15. package/lib/graphql/resolvers/post.js +187 -14
  16. package/lib/graphql/resolvers/post.js.map +1 -1
  17. package/lib/graphql/schema/ai-fragment.graphql +311 -0
  18. package/lib/graphql/schema/ai-fragment.graphql.js +1 -0
  19. package/lib/graphql/schema/ai-fragment.graphql.js.map +1 -0
  20. package/lib/graphql/schema/channel.graphql +19 -0
  21. package/lib/graphql/schema/channel.graphql.js +1 -1
  22. package/lib/graphql/schema/index.js +2 -2
  23. package/lib/graphql/schema/index.js.map +1 -1
  24. package/lib/graphql/schema/post.graphql +76 -0
  25. package/lib/graphql/schema/post.graphql.js +1 -1
  26. package/lib/graphql/schema/services.graphql +19 -0
  27. package/lib/index.js.map +1 -1
  28. package/lib/inngest/factory.d.ts +20 -0
  29. package/lib/inngest/factory.js +4 -0
  30. package/lib/inngest/factory.js.map +1 -0
  31. package/lib/inngest/functions.d.ts +235 -0
  32. package/lib/inngest/functions.js +1385 -0
  33. package/lib/inngest/functions.js.map +1 -0
  34. package/lib/inngest/index.d.ts +3 -0
  35. package/lib/inngest/prompt.d.ts +6 -0
  36. package/lib/inngest/prompt.js +871 -0
  37. package/lib/inngest/prompt.js.map +1 -0
  38. package/lib/inngest/utils.d.ts +5 -0
  39. package/lib/inngest/utils.js +32 -0
  40. package/lib/inngest/utils.js.map +1 -0
  41. package/lib/module.js +10 -3
  42. package/lib/module.js.map +1 -1
  43. package/lib/plugins/ai-fragment-moleculer-service.d.ts +29 -0
  44. package/lib/plugins/ai-fragment-moleculer-service.js +516 -0
  45. package/lib/plugins/ai-fragment-moleculer-service.js.map +1 -0
  46. package/lib/plugins/channel-moleculer-service.js +9 -0
  47. package/lib/plugins/channel-moleculer-service.js.map +1 -1
  48. package/lib/plugins/index.d.ts +1 -0
  49. package/lib/plugins/post-moleculer-service.js +116 -0
  50. package/lib/plugins/post-moleculer-service.js.map +1 -1
  51. package/lib/services/ai-fragment-service.d.ts +195 -0
  52. package/lib/services/ai-fragment-service.js +631 -0
  53. package/lib/services/ai-fragment-service.js.map +1 -0
  54. package/lib/services/channel-service.d.ts +4 -2
  55. package/lib/services/channel-service.js +24 -2
  56. package/lib/services/channel-service.js.map +1 -1
  57. package/lib/services/index.d.ts +2 -0
  58. package/lib/services/post-service.d.ts +9 -2
  59. package/lib/services/post-service.js +225 -5
  60. package/lib/services/post-service.js.map +1 -1
  61. package/lib/services/proxy-services/ai-fragment-microservice.d.ts +23 -0
  62. package/lib/services/proxy-services/ai-fragment-microservice.js +78 -0
  63. package/lib/services/proxy-services/ai-fragment-microservice.js.map +1 -0
  64. package/lib/services/proxy-services/channel-microservice.d.ts +2 -1
  65. package/lib/services/proxy-services/channel-microservice.js +6 -0
  66. package/lib/services/proxy-services/channel-microservice.js.map +1 -1
  67. package/lib/services/proxy-services/index.d.ts +1 -0
  68. package/lib/services/proxy-services/post-microservice.d.ts +22 -1
  69. package/lib/services/proxy-services/post-microservice.js +80 -0
  70. package/lib/services/proxy-services/post-microservice.js.map +1 -1
  71. package/lib/services/sandbox-error-service.d.ts +23 -0
  72. package/lib/services/sandbox-error-service.js +422 -0
  73. package/lib/services/sandbox-error-service.js.map +1 -0
  74. package/lib/store/models/ai-fragment.d.ts +4 -0
  75. package/lib/store/models/ai-fragment.js +125 -0
  76. package/lib/store/models/ai-fragment.js.map +1 -0
  77. package/lib/store/models/channel.js +5 -0
  78. package/lib/store/models/channel.js.map +1 -1
  79. package/lib/store/models/index.d.ts +1 -0
  80. package/lib/store/repositories/ai-fragment-repository.d.ts +15 -0
  81. package/lib/store/repositories/ai-fragment-repository.js +69 -0
  82. package/lib/store/repositories/ai-fragment-repository.js.map +1 -0
  83. package/lib/store/repositories/channel-repository.js +1 -1
  84. package/lib/store/repositories/channel-repository.js.map +1 -1
  85. package/lib/store/repositories/index.d.ts +1 -0
  86. package/lib/store/repositories/post-repository.js +1 -1
  87. package/lib/store/repositories/post-repository.js.map +1 -1
  88. package/lib/store/repositories/post-thread-repository.js +1 -1
  89. package/lib/store/repositories/post-thread-repository.js.map +1 -1
  90. package/lib/store/repositories/reaction-repository.js +1 -1
  91. package/lib/store/repositories/reaction-repository.js.map +1 -1
  92. package/lib/templates/constants/SERVER_TYPES.ts.template +4 -1
  93. package/lib/templates/repositories/AiFragmentRepository.ts.template +4 -0
  94. package/lib/templates/services/AiFragmentService.ts.template +123 -0
  95. package/lib/templates/services/ChannelService.ts.template +11 -1
  96. package/lib/templates/services/PostService.ts.template +82 -1
  97. package/lib/templates/services/SandboxErrorService.ts.template +125 -0
  98. package/package.json +12 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sources":["../../src/inngest/prompt.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAa,MAAA,eAAe,GAAG;;;;;;;;AASlB,MAAA,qBAAqB,GAAG;;;;;;;;;;AAWxB,MAAA,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsNhB,MAAA,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqVpB,MAAA,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import { Sandbox } from '@e2b/code-interpreter';
2
+ import { AgentResult, Message } from '@inngest/agent-kit';
3
+ export declare function getSandbox(sandboxId: string): Promise<Sandbox>;
4
+ export declare function lastAssistantTextMessageContent(result: AgentResult): string;
5
+ export declare const parseAgentOutput: (value: Message[]) => string;
@@ -0,0 +1,32 @@
1
+ import {Sandbox}from'@e2b/code-interpreter';async function getSandbox(sandboxId) {
2
+ const sandbox = await Sandbox.connect(sandboxId);
3
+ return sandbox;
4
+ }
5
+ function lastAssistantTextMessageContent(result) {
6
+ // Find the last assistant message by iterating backwards
7
+ let lastAssistantTextMessageIndex = -1;
8
+ for (let i = result.output.length - 1; i >= 0; i--) {
9
+ if (result.output[i].role === 'assistant') {
10
+ lastAssistantTextMessageIndex = i;
11
+ break;
12
+ }
13
+ }
14
+ const message = lastAssistantTextMessageIndex >= 0 ? result.output[lastAssistantTextMessageIndex] : undefined;
15
+ return message?.content ? typeof message.content === 'string' ? message.content : message.content.map(c => c.text).join('') : undefined;
16
+ }
17
+ const parseAgentOutput = value => {
18
+ const output = value[0];
19
+ if (output.type !== 'text') {
20
+ return 'Fragment';
21
+ }
22
+ let content = '';
23
+ if (Array.isArray(output.content)) {
24
+ content = output.content.map(txt => txt).join('');
25
+ } else {
26
+ content = output.content;
27
+ }
28
+ // Clean the content by removing any remaining task_summary and canvas_layers tags
29
+ content = content.replace(/<task_summary>([\s\S]*?)<\/task_summary>/, '$1');
30
+ content = content.replace(/<canvas_layers>[\s\S]*?<\/canvas_layers>/g, '');
31
+ return content.trim() || 'Fragment';
32
+ };export{getSandbox,lastAssistantTextMessageContent,parseAgentOutput};//# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../src/inngest/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"4CAGO,eAAe,UAAU,CAAC,SAAiB,EAAA;QACxC,OAAA,SAAgB,OAAA,CAAA,OAAe,CAAA,SAAU,CAAA;AAC/C,EAAA,OAAA;AACJ;AAEM,SAAU,+BAA+B,CAAC,MAAmB,EAAA;;AAE/D,EAAA,IAAA,6BAAiC,GAAA,EAAG;AACpC,EAAA,KAAA,QAAU,aAAU,CAAA,MAAa,GAAA,CAAA,EAAI,CAAA,IAAO,CAAA,EAAC,GAAG,EAAE;QAC9C,MAAI,CAAA,MAAO,CAAA,CAAA,CAAA,CAAM,IAAI,KAAI,WAAgB,EAAA;mCACR,GAAA,CAAA;;;;AAKrC,EAAA,MAAA,OAAa,GAAA,6BACoB,IAAA,CAAA,GAAK,MAAA,CAAA,MAAA,CAAA,6BAAA,CAAA,GAAA,SAAA;AAC9B,EAAA,OAAC,OAAQ,EAAO,qCAA2D,QAAA,GAAA,OAAA,CAAA,OAAA,GAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,IAAA,CAAA,CAAA,IAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,GAAA,SAAA;;AAG5E,MAAA,gBAAgB,GAAA,KAAA,IAAA;AACnB,EAAA,MAAA,MAAS,GAAA,KAAA,CAAA,CAAO,CAAC;YACb,CAAC,IAAQ,KAAC,MAAO,EAAA;qBACR;;AAErB,EAAC,IAAA,OAAA,GAAA,EAAA;AAED,EAAA,IAAM,KAAO,CAAA,OAAA,CAAA,MAAA,CAAA,OAAoB,CAAA,EAAA;AAC7B,IAAA,gBAAe,CAAA,OAAS,CAAA,GAAA,CAAA,GAAA,IAAA,GAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAExB,GAAA;AACI,IAAA,OAAA,GAAA,cAAkB;;;SAIlB,GAAA,OAAa,CAAA,QAAO,0CAAY,EAAA,IAAA,CAAA;AAChC,EAAA,OAAA,GAAA,OAAgB,CAAA,mDAAoC,EAAA,EAAA,CAAA;SACvD,OAAA,CAAA,IAAA,EAAA,IAAA,UAAA;"}
package/lib/module.js CHANGED
@@ -1,4 +1,4 @@
1
- import {Feature}from'@common-stack/server-core';import {schema}from'./graphql/schema/index.js';import {messengerResolvers}from'./graphql/resolvers/index.js';import {serviceContainerModule,proxyServiceContainerModule}from'./containers/containers.js';import {contextServicesFromContainer}from'./containers/context-services-from-container.js';import {ChannelMoleculerService}from'./plugins/channel-moleculer-service.js';import {PostMoleculerService}from'./plugins/post-moleculer-service.js';import {PostThreadMoleculerService}from'./plugins/post-thread-moleculer-service.js';import {ReactionMoleculerService}from'./plugins/reaction-moleculer-service.js';import {ExtendedTokenAccountMoleculerService}from'./plugins/extended-token-account-moleculer-service.js';import {MessengerNotificationMoleculerService}from'./plugins/messenger-notification-moleculer-service.js';import'./preferences/settings/post-settings.js';import {InboxRolesContribution}from'./preferences/permissions/inbox-permission-contribution.js';import {InboxRolesPermissionOverwrite}from'./preferences/permissions/inbox-roles-permission-overwrite.js';var MessengerModule = new Feature({
1
+ import {Feature}from'@common-stack/server-core';import {schema}from'./graphql/schema/index.js';import {messengerResolvers}from'./graphql/resolvers/index.js';import {serviceContainerModule,proxyServiceContainerModule}from'./containers/containers.js';import {contextServicesFromContainer}from'./containers/context-services-from-container.js';import {ChannelMoleculerService}from'./plugins/channel-moleculer-service.js';import {PostMoleculerService}from'./plugins/post-moleculer-service.js';import {PostThreadMoleculerService}from'./plugins/post-thread-moleculer-service.js';import {ReactionMoleculerService}from'./plugins/reaction-moleculer-service.js';import {ExtendedTokenAccountMoleculerService}from'./plugins/extended-token-account-moleculer-service.js';import {AiFragmentMoleculerService}from'./plugins/ai-fragment-moleculer-service.js';import {MessengerNotificationMoleculerService}from'./plugins/messenger-notification-moleculer-service.js';import'./preferences/settings/post-settings.js';import {InboxRolesContribution}from'./preferences/permissions/inbox-permission-contribution.js';import {InboxRolesPermissionOverwrite}from'./preferences/permissions/inbox-roles-permission-overwrite.js';import {inngestFunctionsFactory}from'./inngest/factory.js';var MessengerModule = new Feature({
2
2
  schema,
3
3
  createContainerFunc: [proxyServiceContainerModule],
4
4
  createHemeraContainerFunc: [serviceContainerModule],
@@ -10,6 +10,13 @@ import {Feature}from'@common-stack/server-core';import {schema}from'./graphql/sc
10
10
  rolesUpdate: {
11
11
  overwriteRolesPermissions: InboxRolesPermissionOverwrite
12
12
  },
13
- addBrokerClientServiceClass: [ChannelMoleculerService, PostMoleculerService, PostThreadMoleculerService, ReactionMoleculerService, MessengerNotificationMoleculerService, ExtendedTokenAccountMoleculerService],
14
- addBrokerMainServiceClass: []
13
+ addBrokerClientServiceClass: [ChannelMoleculerService, PostMoleculerService, PostThreadMoleculerService, ReactionMoleculerService, MessengerNotificationMoleculerService, ExtendedTokenAccountMoleculerService, AiFragmentMoleculerService],
14
+ addBrokerMainServiceClass: [],
15
+ inngestFunctions: [({
16
+ container,
17
+ inngest
18
+ }) => inngestFunctionsFactory({
19
+ container,
20
+ inngest
21
+ })]
15
22
  });export{MessengerModule as default};//# sourceMappingURL=module.js.map
package/lib/module.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../src/module.ts"],"sourcesContent":[null],"names":[],"mappings":"wlCAaA,sBAAe,IAAI,OAAO,CAAC;QACjB;qBACa,EAAA,CAAA,2BAAG,CAAA;2BACG,EAAA,CAAA,sBAAG,CAAA;AAC5B,EAAA,mBAAA,EAAmB,kBAAoB;AACvC,EAAA,iBAAA,EAAiB,4BAA8B;AAC/C,EAAA,cAAA,EAAc;qBACO,EAAA,CAAA,sBAAG;AACvB,GAAA;AACD,EAAA,WAAA,EAAW;AACP,IAAA,yBAAA,EAAA;AACH,GAAA;AACD,EAAA,2BAAA,EAA2B,CAAE,uBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,qCAAA,EAAA,oCAAA,CAAA;2BACF,EAAA;"}
1
+ {"version":3,"file":"module.js","sources":["../src/module.ts"],"sourcesContent":[null],"names":[],"mappings":"uuCAeA,sBAAe,IAAI,OAAO,CAAC;QACjB;qBACa,EAAA,CAAA,2BAAG,CAAA;2BACG,EAAA,CAAA,sBAAG,CAAA;AAC5B,EAAA,mBAAA,EAAmB,kBAAoB;AACvC,EAAA,iBAAA,EAAiB,4BAA8B;AAC/C,EAAA,cAAA,EAAc;qBACO,EAAA,CAAA,sBAAG;AACvB,GAAA;AACD,EAAA,WAAA,EAAW;AACP,IAAA,yBAAA,EAAA;AACH,GAAA;AACD,EAAA,2BAAA,EAA2B,CAAE,uBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,qCAAA,EAAA,oCAAA,EAAA,0BAAA,CAAA;2BACF,EAAA,EAAA;kBACH,EAAA,CAAA,CAAA;aACM;;QAE1B,uBAAqC,CAAA;aACD;;AAEvC,GAAA,CAAA;AACD,CAAA,CAAA"}
@@ -0,0 +1,29 @@
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
+ }
@@ -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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"}
@@ -416,6 +416,15 @@ class ChannelMoleculerService extends Service {
416
416
  throw error;
417
417
  }
418
418
  }
419
+ },
420
+ [ChannelServiceCommands.CreateChannelWithProjectId]: {
421
+ params: {
422
+ projectId: 'string',
423
+ channelInput: 'object'
424
+ },
425
+ handler: async ctx => {
426
+ return await this.channelService.createChannelWithProjectId(ctx.params.projectId, ctx.params.channelInput);
427
+ }
419
428
  }
420
429
  }
421
430
  });