@messenger-box/platform-server 10.0.3-alpha.202 → 10.0.3-alpha.209

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.
@@ -1,4 +1,4 @@
1
- import {ContainerModule}from'inversify';import {ChannelService}from'../services/channel-service.js';import {PostService}from'../services/post-service.js';import {PostThreadService}from'../services/post-thread-service.js';import {ReactionService}from'../services/reaction-service.js';import {MessengerNotificationService}from'../services/messenger-notification-service.js';import {ExtendedTokenAccountService}from'../services/extended-token-account-service.js';import {SERVER_TYPES}from'common/server';import {MessengerStreamService}from'../streaming/stream-service.js';import {ChannelRepository}from'../store/repositories/channel-repository.js';import {PostRepository}from'../store/repositories/post-repository.js';import {PostThreadRepository}from'../store/repositories/post-thread-repository.js';import {ReactionRepository}from'../store/repositories/reaction-repository.js';import {MessageNotificationTemplateMigration}from'../migrations/message-notification-template-migration.js';import'../migrations/mail-template-migration.js';import {AddPostsConfigurationsMigration}from'../migrations/dbMigrations/AddPostsConfigurationsMigration.js';import {AddChannelConfigurationsMigration}from'../migrations/dbMigrations/AddChannelConfigurationsMigration.js';import {AddChatConfigurationsMigration}from'../migrations/dbMigrations/AddChatConfigurationsMigration.js';import {ChannelProxyService}from'../services/proxy-services/ChannelProxyService.js';import {ExtendedTokenAccountProxyService}from'../services/proxy-services/ExtendedTokenAccountProxyService.js';import {PostProxyService}from'../services/proxy-services/PostProxyService.js';import {PostThreadProxyService}from'../services/proxy-services/PostThreadProxyService.js';import {ReactionProxyService}from'../services/proxy-services/ReactionProxyService.js';import {MessengerNotificationProxyService}from'../services/proxy-services/MessengerNotificationProxyService.js';/**
1
+ import {ContainerModule}from'inversify';import {ChannelService}from'../services/channel-service.js';import {PostService}from'../services/post-service.js';import {PostThreadService}from'../services/post-thread-service.js';import {ReactionService}from'../services/reaction-service.js';import {MessengerNotificationService}from'../services/messenger-notification-service.js';import {ExtendedTokenAccountService}from'../services/extended-token-account-service.js';import {SERVER_TYPES}from'common/server';import {RedisStreamStoreType,MessengerStreamService}from'../streaming/stream-service.js';import {RedisStreamStore}from'../streaming/redis-stream-store.js';import {ChannelRepository}from'../store/repositories/channel-repository.js';import {PostRepository}from'../store/repositories/post-repository.js';import {PostThreadRepository}from'../store/repositories/post-thread-repository.js';import {ReactionRepository}from'../store/repositories/reaction-repository.js';import {MessageNotificationTemplateMigration}from'../migrations/message-notification-template-migration.js';import'../migrations/mail-template-migration.js';import {AddPostsConfigurationsMigration}from'../migrations/dbMigrations/AddPostsConfigurationsMigration.js';import {AddChannelConfigurationsMigration}from'../migrations/dbMigrations/AddChannelConfigurationsMigration.js';import {AddChatConfigurationsMigration}from'../migrations/dbMigrations/AddChatConfigurationsMigration.js';import {ChannelProxyService}from'../services/proxy-services/ChannelProxyService.js';import {ExtendedTokenAccountProxyService}from'../services/proxy-services/ExtendedTokenAccountProxyService.js';import {PostProxyService}from'../services/proxy-services/PostProxyService.js';import {PostThreadProxyService}from'../services/proxy-services/PostThreadProxyService.js';import {ReactionProxyService}from'../services/proxy-services/ReactionProxyService.js';import {MessengerNotificationProxyService}from'../services/proxy-services/MessengerNotificationProxyService.js';/**
2
2
  * Local services and exposed microservices to serve remote connections.
3
3
  * Operates within in the Gateway.
4
4
  *
@@ -16,6 +16,7 @@ const proxyServiceContainerModule = settings => new ContainerModule(bind => {
16
16
  bind(SERVER_TYPES.PostThreadService).to(PostThreadProxyService).inSingletonScope().whenTargetIsDefault();
17
17
  bind(SERVER_TYPES.ReactionService).to(ReactionProxyService).inSingletonScope().whenTargetIsDefault();
18
18
  bind(SERVER_TYPES.MessengerNotificationService).to(MessengerNotificationProxyService).inSingletonScope();
19
+ bind(RedisStreamStoreType).to(RedisStreamStore).inSingletonScope();
19
20
  bind(SERVER_TYPES.MessengerStreamService).to(MessengerStreamService).inSingletonScope().whenTargetIsDefault();
20
21
  });
21
22
  /**
@@ -35,5 +36,6 @@ const serviceContainerModule = settings => new ContainerModule(bind => {
35
36
  bind(SERVER_TYPES.PostThreadService).to(PostThreadService).inSingletonScope().whenTargetIsDefault();
36
37
  bind(SERVER_TYPES.ReactionService).to(ReactionService).inSingletonScope().whenTargetIsDefault();
37
38
  bind(SERVER_TYPES.MessengerNotificationService).to(MessengerNotificationService).inSingletonScope().whenTargetIsDefault();
39
+ bind(RedisStreamStoreType).to(RedisStreamStore).inSingletonScope();
38
40
  bind(SERVER_TYPES.MessengerStreamService).to(MessengerStreamService).inSingletonScope().whenTargetIsDefault();
39
41
  });export{proxyServiceContainerModule,serviceContainerModule};//# sourceMappingURL=containers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sources":["../../src/containers/containers.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containers.js","sources":["../../src/containers/containers.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import {v4}from'uuid';import {streamBlockTopic,streamStatusTopic,streamDeltaTopic}from'../../streaming/types.js';import'../../streaming/stream-service.js';const streamingResolvers = options => ({
1
+ import {v4}from'uuid';import {streamBlockTopic,streamStatusTopic,streamDeltaTopic}from'../../streaming/types.js';import'../../streaming/stream-service.js';import'../../streaming/redis-stream-store.js';const streamingResolvers = options => ({
2
2
  Query: {
3
3
  messengerStreamState: (_, args, context) => {
4
4
  options.logger.trace('(Query.messengerStreamState) runId [%s]', args.runId);
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sources":["../../../src/graphql/resolvers/streaming.ts"],"sourcesContent":[null],"names":["uuidv4"],"mappings":"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"}
1
+ {"version":3,"file":"streaming.js","sources":["../../../src/graphql/resolvers/streaming.ts"],"sourcesContent":[null],"names":["uuidv4"],"mappings":"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"}
@@ -307,12 +307,12 @@ extend type Query {
307
307
  """
308
308
  List all registered channel providers
309
309
  """
310
- gatewayProviders: [GatewayChannelProvider!]!
310
+ messageGatewayProvider: [GatewayChannelProvider!]!
311
311
 
312
312
  """
313
313
  Get status for all connected channels/accounts
314
314
  """
315
- gatewayStatus: [GatewayChannelStatus!]!
315
+ messageGatewayStatus: [GatewayChannelStatus!]!
316
316
 
317
317
  """
318
318
  Get status for a specific channel type
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {Feature}from'@common-stack/server-core';import MessengerModule from'./module.js';export{DEFAULT_SORTING,PAGINATION_OPTIONS}from'./constants/query.constants.js';export{DEFAULT_NOTIFY_PROPS}from'./constants/default-notify-props.js';export{DEFAULT_CHANNEL_PROPS,DEFAULT_CHANNEL_SETTINGS}from'./constants/default-channel-props.js';export{PostTypes}from'./preferences/settings/post-settings.js';import'./preferences/settings/channel-settings.js';import'./preferences/settings/messenger-channels-contribution.js';import'./preferences/settings/chat-settings.js';import'./preferences/permissions/inbox-permission-contribution.js';import'./preferences/permissions/inbox-roles-permission-overwrite.js';import'./migrations/message-notification-template-migration.js';export{MailTemplateMigration}from'./migrations/mail-template-migration.js';import'./migrations/dbMigrations/AddPostsConfigurationsMigration.js';import'./migrations/dbMigrations/AddChannelConfigurationsMigration.js';import'./migrations/dbMigrations/AddChatConfigurationsMigration.js';export{buildMessagingTarget,normalizeChatType,normalizeTargetId}from'./channels/types.js';export{CHANNEL_TYPE_ALIASES,CHANNEL_TYPE_ORDER,DEFAULT_CHANNEL_TYPE,getChannelCapabilities,getChannelDock,getChannelTypeMeta,listChannelDocks,listChannelTypes,normalizeChannelTypeId}from'./channels/registry.js';export{DEFAULT_TYPING_PROPS,TYPING_SUBSCRIPTION_TOPIC,createTypingCallbacks}from'./channels/typing.js';export{DEFAULT_ACK_REACTION_PROPS,removeAckReactionAfterReply,shouldAckReaction}from'./channels/ack-reactions.js';export{resolveConversationLabel}from'./channels/conversation-label.js';export{validateSenderIdentity}from'./channels/sender-identity.js';export{DEFAULT_COMMAND_GATING_PROPS,resolveCommandAuthorized,resolveControlCommandGate}from'./channels/command-gating.js';export{DEFAULT_ALLOWLIST_PROPS,formatAllowlistMatchMeta,resolveAllowlistMatch}from'./channels/allowlist-match.js';export{DEFAULT_MENTION_GATING_PROPS,shouldProcessMessage,stripMentionsFromText,wasMentioned}from'./channels/mention-gating.js';export{DEFAULT_SESSION_PROPS,generateGroupSessionKey,generateSessionKey}from'./channels/session.js';export{DEFAULT_CHANNEL_CONFIG_PROPS,applyChannelMatchMeta,buildChannelKeyCandidates,normalizeChannelSlug,resolveChannelEntryMatch}from'./channels/channel-config.js';export{BlockChunker}from'./streaming/block-chunker.js';export{MessengerStreamService}from'./streaming/stream-service.js';export{DEFAULT_COALESCE_CONFIG,STREAM_BLOCK_TOPIC,STREAM_DELTA_TOPIC,STREAM_STATUS_TOPIC,streamBlockTopic,streamDeltaTopic,streamStatusTopic}from'./streaming/types.js';export{MessengerStreamStatus}from'common/server';/* eslint-disable import/no-extraneous-dependencies */
1
+ import {Feature}from'@common-stack/server-core';import MessengerModule from'./module.js';export{DEFAULT_SORTING,PAGINATION_OPTIONS}from'./constants/query.constants.js';export{DEFAULT_NOTIFY_PROPS}from'./constants/default-notify-props.js';export{DEFAULT_CHANNEL_PROPS,DEFAULT_CHANNEL_SETTINGS}from'./constants/default-channel-props.js';export{PostTypes}from'./preferences/settings/post-settings.js';import'./preferences/settings/channel-settings.js';import'./preferences/settings/messenger-channels-contribution.js';import'./preferences/settings/chat-settings.js';import'./preferences/permissions/inbox-permission-contribution.js';import'./preferences/permissions/inbox-roles-permission-overwrite.js';import'./migrations/message-notification-template-migration.js';export{MailTemplateMigration}from'./migrations/mail-template-migration.js';import'./migrations/dbMigrations/AddPostsConfigurationsMigration.js';import'./migrations/dbMigrations/AddChannelConfigurationsMigration.js';import'./migrations/dbMigrations/AddChatConfigurationsMigration.js';export{buildMessagingTarget,normalizeChatType,normalizeTargetId}from'./channels/types.js';export{CHANNEL_TYPE_ALIASES,CHANNEL_TYPE_ORDER,DEFAULT_CHANNEL_TYPE,getChannelCapabilities,getChannelDock,getChannelTypeMeta,listChannelDocks,listChannelTypes,normalizeChannelTypeId}from'./channels/registry.js';export{DEFAULT_TYPING_PROPS,TYPING_SUBSCRIPTION_TOPIC,createTypingCallbacks}from'./channels/typing.js';export{DEFAULT_ACK_REACTION_PROPS,removeAckReactionAfterReply,shouldAckReaction}from'./channels/ack-reactions.js';export{resolveConversationLabel}from'./channels/conversation-label.js';export{validateSenderIdentity}from'./channels/sender-identity.js';export{DEFAULT_COMMAND_GATING_PROPS,resolveCommandAuthorized,resolveControlCommandGate}from'./channels/command-gating.js';export{DEFAULT_ALLOWLIST_PROPS,formatAllowlistMatchMeta,resolveAllowlistMatch}from'./channels/allowlist-match.js';export{DEFAULT_MENTION_GATING_PROPS,shouldProcessMessage,stripMentionsFromText,wasMentioned}from'./channels/mention-gating.js';export{DEFAULT_SESSION_PROPS,generateGroupSessionKey,generateSessionKey}from'./channels/session.js';export{DEFAULT_CHANNEL_CONFIG_PROPS,applyChannelMatchMeta,buildChannelKeyCandidates,normalizeChannelSlug,resolveChannelEntryMatch}from'./channels/channel-config.js';export{BlockChunker}from'./streaming/block-chunker.js';export{MessengerStreamService,RedisStreamStoreType}from'./streaming/stream-service.js';export{RedisStreamStore}from'./streaming/redis-stream-store.js';export{DEFAULT_COALESCE_CONFIG,STREAM_BLOCK_TOPIC,STREAM_DELTA_TOPIC,STREAM_STATUS_TOPIC,streamBlockTopic,streamDeltaTopic,streamStatusTopic}from'./streaming/types.js';export{MessengerStreamStatus}from'common/server';/* eslint-disable import/no-extraneous-dependencies */
2
2
  var index = new Feature(MessengerModule);export{index as default};//# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"4mFAAA;AAIA,YAAe,IAAI,OAAO,CAAC,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"isFAAA;AAIA,YAAe,IAAI,OAAO,CAAC,eAAe,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { BlockChunker, type IBlockChunkerCallbacks } from './block-chunker';
2
- export { MessengerStreamService, type IStreamCompleteEvent, type StreamCompleteHandler } from './stream-service';
2
+ export { MessengerStreamService, RedisStreamStoreType, type IStreamCompleteEvent, type StreamCompleteHandler, } from './stream-service';
3
+ export { RedisStreamStore, type IRedisStreamStore } from './redis-stream-store';
3
4
  export { type IBlockCoalesceConfig, type StreamStatus, MessengerStreamStatus, STREAM_DELTA_TOPIC, STREAM_STATUS_TOPIC, STREAM_BLOCK_TOPIC, streamDeltaTopic, streamStatusTopic, streamBlockTopic, DEFAULT_COALESCE_CONFIG, } from './types';
4
5
  export type { IMessengerStreamDelta, IMessengerStreamStatusEvent, IMessengerStreamBlock, IMessengerStartStreamInput, IMessengerStreamStartResult, } from 'common/server';
@@ -0,0 +1,43 @@
1
+ import type { MessengerStreamStatus } from 'common/server';
2
+ import type { IStreamState } from 'common/server';
3
+ import type { CdmLogger } from '@cdm-logger/core';
4
+ export interface IRedisStreamStore {
5
+ /** Create a new stream entry with TTL. */
6
+ create(state: IStreamState): Promise<void>;
7
+ /** Get the full stream state. Returns null if not found or expired. */
8
+ get(runId: string): Promise<IStreamState | null>;
9
+ /** Append delta text, increment seq, refresh TTL. */
10
+ appendDelta(runId: string, delta: string): Promise<{
11
+ seq: number;
12
+ text: string;
13
+ } | null>;
14
+ /** Update the stream status. */
15
+ setStatus(runId: string, status: MessengerStreamStatus): Promise<void>;
16
+ /** Get and delete — atomically read final state and remove the key. */
17
+ getAndDelete(runId: string): Promise<IStreamState | null>;
18
+ /** Delete a stream entry. */
19
+ delete(runId: string): Promise<void>;
20
+ /** Check if a stream exists. */
21
+ exists(runId: string): Promise<boolean>;
22
+ }
23
+ export declare class RedisStreamStore implements IRedisStreamStore {
24
+ private redis;
25
+ private logger;
26
+ private ttl;
27
+ private appendDeltaSha;
28
+ private getAndDeleteSha;
29
+ constructor(redis: any, logger?: CdmLogger.ILogger);
30
+ create(state: IStreamState): Promise<void>;
31
+ get(runId: string): Promise<IStreamState | null>;
32
+ appendDelta(runId: string, delta: string): Promise<{
33
+ seq: number;
34
+ text: string;
35
+ } | null>;
36
+ setStatus(runId: string, status: MessengerStreamStatus): Promise<void>;
37
+ getAndDelete(runId: string): Promise<IStreamState | null>;
38
+ delete(runId: string): Promise<void>;
39
+ exists(runId: string): Promise<boolean>;
40
+ private key;
41
+ private toStreamState;
42
+ private ensureScript;
43
+ }
@@ -0,0 +1,138 @@
1
+ import {__decorate,__param,__metadata}from'tslib';import {injectable,inject,optional}from'inversify';import {SERVER_TYPES}from'common/server';// ---------------------------------------------------------------------------
2
+ // Constants
3
+ // ---------------------------------------------------------------------------
4
+ /** Redis key prefix for stream hashes. */
5
+ const KEY_PREFIX = 'mstream:';
6
+ /** Default TTL in seconds — auto-cleanup for abandoned streams. */
7
+ const DEFAULT_TTL_SECONDS = 300; // 5 minutes
8
+ /**
9
+ * Lua script: atomically append delta, increment seq, refresh TTL.
10
+ * Returns [newSeq, fullText] or nil if key doesn't exist.
11
+ */
12
+ const APPEND_DELTA_LUA = `
13
+ local key = KEYS[1]
14
+ if redis.call('EXISTS', key) == 0 then
15
+ return nil
16
+ end
17
+ local newSeq = redis.call('HINCRBY', key, 'seq', 1)
18
+ local newText = redis.call('HGET', key, 'text') or ''
19
+ newText = newText .. ARGV[1]
20
+ redis.call('HSET', key, 'text', newText, 'status', ARGV[2], 'updatedAt', ARGV[3])
21
+ redis.call('EXPIRE', key, ARGV[4])
22
+ return {newSeq, newText}
23
+ `;
24
+ /**
25
+ * Lua script: atomically get all fields and delete the key.
26
+ * Returns hash fields or nil.
27
+ */
28
+ const GET_AND_DELETE_LUA = `
29
+ local key = KEYS[1]
30
+ local data = redis.call('HGETALL', key)
31
+ if #data == 0 then
32
+ return nil
33
+ end
34
+ redis.call('DEL', key)
35
+ return data
36
+ `;
37
+ // ---------------------------------------------------------------------------
38
+ // RedisStreamStore
39
+ // ---------------------------------------------------------------------------
40
+ let RedisStreamStore = class RedisStreamStore {
41
+ redis; // ioredis instance
42
+ logger;
43
+ ttl;
44
+ appendDeltaSha = null;
45
+ getAndDeleteSha = null;
46
+ constructor(redis, logger) {
47
+ this.redis = redis;
48
+ this.logger = logger ?? console;
49
+ this.ttl = DEFAULT_TTL_SECONDS;
50
+ }
51
+ async create(state) {
52
+ const key = this.key(state.runId);
53
+ const fields = {
54
+ runId: state.runId,
55
+ channelId: state.channelId,
56
+ threadId: state.threadId ?? '',
57
+ postId: state.postId ?? '',
58
+ seq: String(state.seq),
59
+ text: state.text,
60
+ status: state.status,
61
+ updatedAt: String(Date.now())
62
+ };
63
+ await this.redis.hmset(key, fields);
64
+ await this.redis.expire(key, this.ttl);
65
+ }
66
+ async get(runId) {
67
+ const key = this.key(runId);
68
+ const data = await this.redis.hgetall(key);
69
+ if (!data || !data.runId) return null;
70
+ return this.toStreamState(data);
71
+ }
72
+ async appendDelta(runId, delta) {
73
+ const sha = await this.ensureScript('appendDelta', APPEND_DELTA_LUA);
74
+ const key = this.key(runId);
75
+ const result = await this.redis.evalsha(sha, 1, key, delta, 'streaming', String(Date.now()), String(this.ttl));
76
+ if (!result) return null;
77
+ return {
78
+ seq: Number(result[0]),
79
+ text: result[1]
80
+ };
81
+ }
82
+ async setStatus(runId, status) {
83
+ const key = this.key(runId);
84
+ await this.redis.hset(key, 'status', status, 'updatedAt', String(Date.now()));
85
+ await this.redis.expire(key, this.ttl);
86
+ }
87
+ async getAndDelete(runId) {
88
+ const sha = await this.ensureScript('getAndDelete', GET_AND_DELETE_LUA);
89
+ const key = this.key(runId);
90
+ const result = await this.redis.evalsha(sha, 1, key);
91
+ if (!result) return null;
92
+ // HGETALL returns flat array: [field1, val1, field2, val2, ...]
93
+ const data = {};
94
+ for (let i = 0; i < result.length; i += 2) {
95
+ data[result[i]] = result[i + 1];
96
+ }
97
+ if (!data.runId) return null;
98
+ return this.toStreamState(data);
99
+ }
100
+ async delete(runId) {
101
+ await this.redis.del(this.key(runId));
102
+ }
103
+ async exists(runId) {
104
+ const result = await this.redis.exists(this.key(runId));
105
+ return result === 1;
106
+ }
107
+ // -----------------------------------------------------------------------
108
+ // Private helpers
109
+ // -----------------------------------------------------------------------
110
+ key(runId) {
111
+ return `${KEY_PREFIX}${runId}`;
112
+ }
113
+ toStreamState(data) {
114
+ return {
115
+ runId: data.runId,
116
+ channelId: data.channelId,
117
+ threadId: data.threadId || undefined,
118
+ postId: data.postId || undefined,
119
+ seq: Number(data.seq) || 0,
120
+ text: data.text || '',
121
+ status: data.status
122
+ };
123
+ }
124
+ async ensureScript(name, lua) {
125
+ if (name === 'appendDelta' && this.appendDeltaSha) return this.appendDeltaSha;
126
+ if (name === 'getAndDelete' && this.getAndDeleteSha) return this.getAndDeleteSha;
127
+ try {
128
+ const sha = await this.redis.script('LOAD', lua);
129
+ if (name === 'appendDelta') this.appendDeltaSha = sha;
130
+ if (name === 'getAndDelete') this.getAndDeleteSha = sha;
131
+ return sha;
132
+ } catch (err) {
133
+ this.logger.error?.('Failed to load Lua script %s: %o', name, err);
134
+ throw err;
135
+ }
136
+ }
137
+ };
138
+ RedisStreamStore = __decorate([injectable(), __param(0, inject(SERVER_TYPES.RedisClient)), __param(1, inject('Logger')), __param(1, optional()), __metadata("design:paramtypes", [Object, Object])], RedisStreamStore);export{RedisStreamStore};//# sourceMappingURL=redis-stream-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-stream-store.js","sources":["../../src/streaming/redis-stream-store.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { CdmLogger } from '@cdm-logger/core';
2
2
  import type { IMessengerStreamService, IStartStreamParams, IStreamState } from 'common/server';
3
+ import type { IRedisStreamStore } from './redis-stream-store';
3
4
  /**
4
5
  * Callback invoked when a stream completes successfully (endStream).
5
6
  * This enables PostService (or any consumer) to create/update a Post
@@ -15,12 +16,17 @@ export interface IStreamCompleteEvent {
15
16
  text: string;
16
17
  }
17
18
  export type StreamCompleteHandler = (event: IStreamCompleteEvent) => Promise<void>;
19
+ /** DI symbol for RedisStreamStore injection. */
20
+ export declare const RedisStreamStoreType: unique symbol;
18
21
  export declare class MessengerStreamService implements IMessengerStreamService {
19
- private activeStreams;
22
+ /** Ephemeral state: timers, chunkers — local to this process only. */
23
+ private ephemeral;
24
+ /** Redis-backed persistent stream state store. */
25
+ private store;
20
26
  private pubsub;
21
27
  private logger;
22
28
  private onStreamCompleteHandlers;
23
- constructor(logger?: CdmLogger.ILogger);
29
+ constructor(store: IRedisStreamStore, logger?: CdmLogger.ILogger);
24
30
  /**
25
31
  * Register a handler called when a stream completes.
26
32
  * Used by PostService to finalize streamed content into a Post record.
@@ -55,15 +61,18 @@ export declare class MessengerStreamService implements IMessengerStreamService {
55
61
  errorStream(runId: string, error: string): Promise<void>;
56
62
  /**
57
63
  * Get the current state of an active stream (for query resolvers).
64
+ * Reads from Redis — works across instances.
58
65
  */
59
66
  getStreamState(runId: string): IStreamState | undefined;
67
+ /** Full Redis-backed stream state read — works across instances. */
68
+ getStreamStateAsync(runId: string): Promise<IStreamState | null>;
60
69
  private fireStreamComplete;
61
70
  private publishDelta;
62
71
  private publishStatus;
63
72
  private publishBlock;
64
73
  private throttledPublishDelta;
65
74
  private flushThrottledDelta;
66
- private cleanup;
75
+ private cleanupEphemeral;
67
76
  /**
68
77
  * Dispose / cleanup all active streams.
69
78
  */
@@ -1,11 +1,17 @@
1
- import {__decorate,__param,__metadata}from'tslib';import {injectable,inject}from'inversify';import {MessengerStreamStatus}from'common/server';import {BlockChunker}from'./block-chunker.js';import {DEFAULT_COALESCE_CONFIG,streamDeltaTopic,streamStatusTopic,streamBlockTopic}from'./types.js';/** Delta coalesce interval in ms (matches openclaw's 150ms throttle) */
1
+ import {__decorate,__param,__metadata}from'tslib';import {injectable,inject,optional}from'inversify';import {MessengerStreamStatus}from'common/server';import {BlockChunker}from'./block-chunker.js';import {DEFAULT_COALESCE_CONFIG,streamDeltaTopic,streamStatusTopic,streamBlockTopic}from'./types.js';/** Delta coalesce interval in ms (matches openclaw's 150ms throttle) */
2
2
  const DELTA_THROTTLE_MS = 150;
3
+ /** DI symbol for RedisStreamStore injection. */
4
+ const RedisStreamStoreType = Symbol.for('RedisStreamStore');
3
5
  let MessengerStreamService = class MessengerStreamService {
4
- activeStreams = new Map();
6
+ /** Ephemeral state: timers, chunkers — local to this process only. */
7
+ ephemeral = new Map();
8
+ /** Redis-backed persistent stream state store. */
9
+ store;
5
10
  pubsub = null;
6
11
  logger;
7
12
  onStreamCompleteHandlers = [];
8
- constructor(logger) {
13
+ constructor(store, logger) {
14
+ this.store = store;
9
15
  this.logger = logger?.child({
10
16
  className: 'MessengerStreamService'
11
17
  }) || console;
@@ -37,7 +43,8 @@ let MessengerStreamService = class MessengerStreamService {
37
43
  coalesceConfig
38
44
  } = params;
39
45
  this.logger.trace('startStream runId=%s channelId=%s', runId, channelId);
40
- const stream = {
46
+ // Persist authoritative state to Redis
47
+ await this.store.create({
41
48
  runId,
42
49
  channelId,
43
50
  threadId,
@@ -45,10 +52,16 @@ let MessengerStreamService = class MessengerStreamService {
45
52
  seq: 0,
46
53
  text: '',
47
54
  status: MessengerStreamStatus.Starting
55
+ });
56
+ // Ephemeral local state: chunker + throttle timer
57
+ const eph = {
58
+ runId,
59
+ channelId,
60
+ threadId,
61
+ postId
48
62
  };
49
- // Set up block chunker if needed
50
63
  if (enableBlockChunking) {
51
- stream.chunker = new BlockChunker({
64
+ eph.chunker = new BlockChunker({
52
65
  onBlock: (block, blockSeq, isFinal) => {
53
66
  this.publishBlock({
54
67
  runId,
@@ -64,7 +77,7 @@ let MessengerStreamService = class MessengerStreamService {
64
77
  ...coalesceConfig
65
78
  });
66
79
  }
67
- this.activeStreams.set(runId, stream);
80
+ this.ephemeral.set(runId, eph);
68
81
  await this.publishStatus({
69
82
  runId,
70
83
  channelId,
@@ -79,147 +92,161 @@ let MessengerStreamService = class MessengerStreamService {
79
92
  * openclaw equivalent: handleAssistantTextStream → emitAgentEvent
80
93
  */
81
94
  async pushDelta(runId, delta) {
82
- const stream = this.activeStreams.get(runId);
83
- if (!stream) {
95
+ const eph = this.ephemeral.get(runId);
96
+ if (!eph) {
84
97
  this.logger.error('pushDelta: no active stream for runId=%s', runId);
85
98
  return;
86
99
  }
87
- // Update status on first delta
88
- if (stream.status === MessengerStreamStatus.Starting) {
89
- stream.status = MessengerStreamStatus.Streaming;
100
+ // Atomically append delta to Redis and get back updated seq + full text
101
+ const result = await this.store.appendDelta(runId, delta);
102
+ if (!result) {
103
+ this.logger.error('pushDelta: Redis stream not found for runId=%s', runId);
104
+ return;
105
+ }
106
+ // Publish status change on first delta (seq was 0 before, now 1)
107
+ if (result.seq === 1) {
90
108
  await this.publishStatus({
91
109
  runId,
92
- channelId: stream.channelId,
93
- threadId: stream.threadId,
94
- postId: stream.postId,
110
+ channelId: eph.channelId,
111
+ threadId: eph.threadId,
112
+ postId: eph.postId,
95
113
  status: MessengerStreamStatus.Streaming
96
114
  });
97
115
  }
98
- // Accumulate text and increment seq
99
- stream.seq += 1;
100
- stream.text += delta;
101
116
  const event = {
102
117
  runId,
103
- seq: stream.seq,
104
- channelId: stream.channelId,
105
- threadId: stream.threadId,
106
- postId: stream.postId,
118
+ seq: result.seq,
119
+ channelId: eph.channelId,
120
+ threadId: eph.threadId,
121
+ postId: eph.postId,
107
122
  delta,
108
- text: stream.text,
123
+ text: result.text,
109
124
  isFinal: false,
110
125
  timestamp: Date.now()
111
126
  };
112
127
  // Feed the block chunker
113
- if (stream.chunker) {
114
- stream.chunker.push(delta);
128
+ if (eph.chunker) {
129
+ eph.chunker.push(delta);
115
130
  }
116
131
  // Throttled delta publishing (150ms coalesce like openclaw)
117
- this.throttledPublishDelta(stream, event);
132
+ this.throttledPublishDelta(eph, event);
118
133
  }
119
134
  /**
120
135
  * End a stream successfully. Flushes any pending data.
121
136
  */
122
137
  async endStream(runId) {
123
- const stream = this.activeStreams.get(runId);
124
- if (!stream) return;
125
- this.logger.trace('endStream runId=%s, totalChars=%d', runId, stream.text.length);
138
+ const eph = this.ephemeral.get(runId);
139
+ if (!eph) return;
140
+ // Atomically read final state from Redis and delete
141
+ const finalState = await this.store.getAndDelete(runId);
142
+ if (!finalState) {
143
+ this.cleanupEphemeral(runId);
144
+ return;
145
+ }
146
+ this.logger.trace('endStream runId=%s, totalChars=%d', runId, finalState.text.length);
126
147
  // Flush throttled delta
127
- this.flushThrottledDelta(stream);
148
+ this.flushThrottledDelta(eph);
128
149
  // End chunker
129
- if (stream.chunker) {
130
- stream.chunker.end();
150
+ if (eph.chunker) {
151
+ eph.chunker.end();
131
152
  }
132
- // Emit final delta
133
- stream.seq += 1;
153
+ // Emit final delta with accumulated text from Redis
134
154
  const finalDelta = {
135
155
  runId,
136
- seq: stream.seq,
137
- channelId: stream.channelId,
138
- threadId: stream.threadId,
139
- postId: stream.postId,
156
+ seq: finalState.seq + 1,
157
+ channelId: eph.channelId,
158
+ threadId: eph.threadId,
159
+ postId: eph.postId,
140
160
  delta: '',
141
- text: stream.text,
161
+ text: finalState.text,
142
162
  isFinal: true,
143
163
  timestamp: Date.now()
144
164
  };
145
165
  await this.publishDelta(finalDelta);
146
166
  // Status → completed
147
- stream.status = MessengerStreamStatus.Completed;
148
167
  await this.publishStatus({
149
168
  runId,
150
- channelId: stream.channelId,
151
- threadId: stream.threadId,
152
- postId: stream.postId,
169
+ channelId: eph.channelId,
170
+ threadId: eph.threadId,
171
+ postId: eph.postId,
153
172
  status: MessengerStreamStatus.Completed
154
173
  });
155
174
  // Notify handlers (PostService, analytics, etc.) about stream completion.
156
- // This is the bridge between ephemeral streaming and persistent post storage.
157
175
  await this.fireStreamComplete({
158
176
  runId,
159
- channelId: stream.channelId,
160
- threadId: stream.threadId,
161
- postId: stream.postId,
162
- text: stream.text
177
+ channelId: finalState.channelId,
178
+ threadId: finalState.threadId,
179
+ postId: finalState.postId,
180
+ text: finalState.text
163
181
  });
164
- this.cleanup(runId);
182
+ this.cleanupEphemeral(runId);
165
183
  }
166
184
  /**
167
185
  * Cancel a stream. Discards pending data.
168
186
  */
169
187
  async cancelStream(runId) {
170
- const stream = this.activeStreams.get(runId);
171
- if (!stream) return;
188
+ const eph = this.ephemeral.get(runId);
189
+ if (!eph) return;
172
190
  this.logger.trace('cancelStream runId=%s', runId);
173
- if (stream.chunker) {
174
- stream.chunker.cancel();
191
+ if (eph.chunker) {
192
+ eph.chunker.cancel();
175
193
  }
176
- stream.status = MessengerStreamStatus.Cancelled;
194
+ await this.store.delete(runId);
177
195
  await this.publishStatus({
178
196
  runId,
179
- channelId: stream.channelId,
180
- threadId: stream.threadId,
181
- postId: stream.postId,
197
+ channelId: eph.channelId,
198
+ threadId: eph.threadId,
199
+ postId: eph.postId,
182
200
  status: MessengerStreamStatus.Cancelled
183
201
  });
184
- this.cleanup(runId);
202
+ this.cleanupEphemeral(runId);
185
203
  }
186
204
  /**
187
205
  * Error a stream.
188
206
  */
189
207
  async errorStream(runId, error) {
190
- const stream = this.activeStreams.get(runId);
191
- if (!stream) return;
208
+ const eph = this.ephemeral.get(runId);
209
+ if (!eph) return;
192
210
  this.logger.trace('errorStream runId=%s error=%s', runId, error);
193
- if (stream.chunker) {
194
- stream.chunker.cancel();
211
+ if (eph.chunker) {
212
+ eph.chunker.cancel();
195
213
  }
196
- stream.status = MessengerStreamStatus.Error;
214
+ await this.store.delete(runId);
197
215
  await this.publishStatus({
198
216
  runId,
199
- channelId: stream.channelId,
200
- threadId: stream.threadId,
201
- postId: stream.postId,
217
+ channelId: eph.channelId,
218
+ threadId: eph.threadId,
219
+ postId: eph.postId,
202
220
  status: MessengerStreamStatus.Error,
203
221
  error
204
222
  });
205
- this.cleanup(runId);
223
+ this.cleanupEphemeral(runId);
206
224
  }
207
225
  /**
208
226
  * Get the current state of an active stream (for query resolvers).
227
+ * Reads from Redis — works across instances.
209
228
  */
210
229
  getStreamState(runId) {
211
- const stream = this.activeStreams.get(runId);
212
- if (!stream) return undefined;
230
+ // Note: this is now async-capable via Redis. For backward compatibility
231
+ // with the sync interface, we return undefined if not in local ephemeral map
232
+ // and provide getStreamStateAsync for full Redis-backed reads.
233
+ const eph = this.ephemeral.get(runId);
234
+ if (!eph) return undefined;
235
+ // Return a minimal state from ephemeral; full state requires async Redis read
213
236
  return {
214
- runId: stream.runId,
215
- channelId: stream.channelId,
216
- threadId: stream.threadId,
217
- postId: stream.postId,
218
- seq: stream.seq,
219
- text: stream.text,
220
- status: stream.status
237
+ runId: eph.runId,
238
+ channelId: eph.channelId,
239
+ threadId: eph.threadId,
240
+ postId: eph.postId,
241
+ seq: 0,
242
+ text: '',
243
+ status: MessengerStreamStatus.Streaming
221
244
  };
222
245
  }
246
+ /** Full Redis-backed stream state read — works across instances. */
247
+ async getStreamStateAsync(runId) {
248
+ return this.store.get(runId);
249
+ }
223
250
  // -----------------------------------------------------------------------
224
251
  // Private: PubSub publishing
225
252
  // -----------------------------------------------------------------------
@@ -273,53 +300,53 @@ let MessengerStreamService = class MessengerStreamService {
273
300
  // -----------------------------------------------------------------------
274
301
  // Private: Delta throttling (150ms coalesce like openclaw)
275
302
  // -----------------------------------------------------------------------
276
- throttledPublishDelta(stream, event) {
303
+ throttledPublishDelta(eph, event) {
277
304
  // Always keep the latest event as pending
278
- stream.pendingDelta = event;
305
+ eph.pendingDelta = event;
279
306
  // If no timer running, start one and emit immediately
280
- if (!stream.throttleTimer) {
307
+ if (!eph.throttleTimer) {
281
308
  this.publishDelta(event);
282
- stream.pendingDelta = undefined;
283
- stream.throttleTimer = setTimeout(() => {
284
- stream.throttleTimer = undefined;
309
+ eph.pendingDelta = undefined;
310
+ eph.throttleTimer = setTimeout(() => {
311
+ eph.throttleTimer = undefined;
285
312
  // Flush any delta that arrived during the throttle window
286
- if (stream.pendingDelta) {
287
- this.publishDelta(stream.pendingDelta);
288
- stream.pendingDelta = undefined;
313
+ if (eph.pendingDelta) {
314
+ this.publishDelta(eph.pendingDelta);
315
+ eph.pendingDelta = undefined;
289
316
  }
290
317
  }, DELTA_THROTTLE_MS);
291
318
  }
292
319
  }
293
- flushThrottledDelta(stream) {
294
- if (stream.throttleTimer) {
295
- clearTimeout(stream.throttleTimer);
296
- stream.throttleTimer = undefined;
320
+ flushThrottledDelta(eph) {
321
+ if (eph.throttleTimer) {
322
+ clearTimeout(eph.throttleTimer);
323
+ eph.throttleTimer = undefined;
297
324
  }
298
- if (stream.pendingDelta) {
299
- this.publishDelta(stream.pendingDelta);
300
- stream.pendingDelta = undefined;
325
+ if (eph.pendingDelta) {
326
+ this.publishDelta(eph.pendingDelta);
327
+ eph.pendingDelta = undefined;
301
328
  }
302
329
  }
303
- cleanup(runId) {
304
- const stream = this.activeStreams.get(runId);
305
- if (stream?.throttleTimer) {
306
- clearTimeout(stream.throttleTimer);
330
+ cleanupEphemeral(runId) {
331
+ const eph = this.ephemeral.get(runId);
332
+ if (eph?.throttleTimer) {
333
+ clearTimeout(eph.throttleTimer);
307
334
  }
308
- this.activeStreams.delete(runId);
335
+ this.ephemeral.delete(runId);
309
336
  }
310
337
  /**
311
338
  * Dispose / cleanup all active streams.
312
339
  */
313
340
  dispose() {
314
- for (const [runId, stream] of this.activeStreams) {
315
- if (stream.throttleTimer) {
316
- clearTimeout(stream.throttleTimer);
341
+ for (const [, eph] of this.ephemeral) {
342
+ if (eph.throttleTimer) {
343
+ clearTimeout(eph.throttleTimer);
317
344
  }
318
- if (stream.chunker) {
319
- stream.chunker.cancel();
345
+ if (eph.chunker) {
346
+ eph.chunker.cancel();
320
347
  }
321
348
  }
322
- this.activeStreams.clear();
349
+ this.ephemeral.clear();
323
350
  }
324
351
  };
325
- MessengerStreamService = __decorate([injectable(), __param(0, inject('Logger')), __metadata("design:paramtypes", [Object])], MessengerStreamService);export{MessengerStreamService};//# sourceMappingURL=stream-service.js.map
352
+ MessengerStreamService = __decorate([injectable(), __param(0, inject(RedisStreamStoreType)), __param(1, inject('Logger')), __param(1, optional()), __metadata("design:paramtypes", [Object, Object])], MessengerStreamService);export{MessengerStreamService,RedisStreamStoreType};//# sourceMappingURL=stream-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream-service.js","sources":["../../src/streaming/stream-service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-service.js","sources":["../../src/streaming/stream-service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messenger-box/platform-server",
3
- "version": "10.0.3-alpha.202",
3
+ "version": "10.0.3-alpha.209",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -19,7 +19,7 @@
19
19
  "watch": "yarn build:lib:watch"
20
20
  },
21
21
  "dependencies": {
22
- "@messenger-box/core": "10.0.3-alpha.202",
22
+ "@messenger-box/core": "10.0.3-alpha.204",
23
23
  "@skoropletov/moleculer-cron-tasks": "~0.0.8",
24
24
  "date-fns": "^4.1.0"
25
25
  },
@@ -73,5 +73,5 @@
73
73
  "typescript": {
74
74
  "definition": "lib/index.d.ts"
75
75
  },
76
- "gitHead": "a52f86b51a44fb8506bd2e2c43ce547f10ec3f4a"
76
+ "gitHead": "7e2166af1db8eac731c31dfbda88e44be7a88006"
77
77
  }