@excitedjs/feishu-channel 3.0.0 → 4.0.0-alpha.g005cc2603aba
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/README.md +5 -3
- package/dist/bot.d.ts +15 -4
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +24 -0
- package/dist/bot.js.map +1 -1
- package/dist/feishu-channel.d.ts +5 -1
- package/dist/feishu-channel.d.ts.map +1 -1
- package/dist/feishu-channel.js +68 -14
- package/dist/feishu-channel.js.map +1 -1
- package/dist/feishu-inbound-enrichment.d.ts +5 -0
- package/dist/feishu-inbound-enrichment.d.ts.map +1 -0
- package/dist/feishu-inbound-enrichment.js +259 -0
- package/dist/feishu-inbound-enrichment.js.map +1 -0
- package/dist/feishu-inbound-work.d.ts +43 -0
- package/dist/feishu-inbound-work.d.ts.map +1 -0
- package/dist/feishu-inbound-work.js +130 -0
- package/dist/feishu-inbound-work.js.map +1 -0
- package/dist/feishu-message-render.d.ts +11 -0
- package/dist/feishu-message-render.d.ts.map +1 -0
- package/dist/feishu-message-render.js +282 -0
- package/dist/feishu-message-render.js.map +1 -0
- package/dist/feishu-message.d.ts +14 -6
- package/dist/feishu-message.d.ts.map +1 -1
- package/dist/feishu-message.js +186 -164
- package/dist/feishu-message.js.map +1 -1
- package/dist/feishu-reply-ancestry.d.ts +6 -0
- package/dist/feishu-reply-ancestry.d.ts.map +1 -0
- package/dist/feishu-reply-ancestry.js +19 -0
- package/dist/feishu-reply-ancestry.js.map +1 -0
- package/dist/feishu-session-inbound.d.ts.map +1 -1
- package/dist/feishu-session-inbound.js +155 -75
- package/dist/feishu-session-inbound.js.map +1 -1
- package/dist/feishu-session-ops.d.ts +9 -6
- package/dist/feishu-session-ops.d.ts.map +1 -1
- package/dist/feishu-session-ops.js +84 -16
- package/dist/feishu-session-ops.js.map +1 -1
- package/dist/feishu-target-router.d.ts +1 -1
- package/dist/feishu-target-router.d.ts.map +1 -1
- package/dist/feishu-target-router.js +56 -11
- package/dist/feishu-target-router.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -16,14 +16,16 @@ of the Lark SDK.
|
|
|
16
16
|
- **Access / trust** behavior: the @-mention/allowlist gate and the chat-bots
|
|
17
17
|
store, read and written under a host-supplied state directory.
|
|
18
18
|
- **Inbound normalization**: turning Feishu events into agent-facing channel
|
|
19
|
-
results, including the
|
|
20
|
-
`<
|
|
19
|
+
results, including the Channel-owned inner body and inline `<attachment>`
|
|
20
|
+
blocks. Agent runtimes own the outer `<channel source="feishu" …>` envelope.
|
|
21
21
|
- **Topic routing**: verifying `chat_mode=topic`, projecting `thread_id` as a
|
|
22
22
|
neutral collaboration target, and recording exact per-message targets for
|
|
23
23
|
scoped TeamLeader replies.
|
|
24
24
|
- **Attachment handling**: downloading inbound attachments after the host access
|
|
25
25
|
gate allows delivery, plus cache layout, path sanitization, permissions, and
|
|
26
|
-
honest fallback references when a resource is not downloaded.
|
|
26
|
+
honest fallback references when a resource is not downloaded. Inline XML is
|
|
27
|
+
path-only for a downloaded resource and status/key-only for a non-downloaded
|
|
28
|
+
resource; structured formatter results retain the detailed metadata.
|
|
27
29
|
- The Feishu MCP **tool backing**: the `reply` / `react` / `list_chat_bots`
|
|
28
30
|
tool parsing and handlers.
|
|
29
31
|
|
package/dist/bot.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* Tests supply package-local `FeishuBot` doubles through the provider's
|
|
21
21
|
* `botFactory` seam instead of opening a live connection.
|
|
22
22
|
*/
|
|
23
|
-
import { type FeishuBotMemberAddedEvent, type FeishuMessageResourceFetcher, type FeishuMessageResourceRequest, type FeishuMessageResourceResponse, type FeishuAppOwnerIdentity, type FeishuChatMode, type FeishuTransport, type InboundResource, type Mention, type OutboundTarget, type TransportLogger } from '@excitedjs/feishu-transport';
|
|
23
|
+
import { type FeishuBotMemberAddedEvent, type FeishuMessageResourceFetcher, type FeishuMessageResourceRequest, type FeishuMessageResourceResponse, type FeishuMessageReadRequest, type FeishuMessageReadResponse, type FeishuAppOwnerIdentity, type FeishuChatMode, type FeishuTransport, type FeishuUserNameEntry, type FeishuUserNameLookupOptions, type InboundContentPart, type InboundResource, type Mention, type OutboundTarget, type TransportLogger } from '@excitedjs/feishu-transport';
|
|
24
24
|
import type { FeishuInviteMembersInput, FeishuInviteMembersResult } from '@excitedjs/feishu-transport';
|
|
25
25
|
export type { FeishuInviteMembersInput, FeishuInviteMembersResult, } from '@excitedjs/feishu-transport';
|
|
26
26
|
export interface FeishuInboundEvent {
|
|
@@ -32,6 +32,8 @@ export interface FeishuInboundEvent {
|
|
|
32
32
|
/** Diagnostic reply ancestry; never used as a topic identity fallback. */
|
|
33
33
|
rootId?: string;
|
|
34
34
|
parentId?: string;
|
|
35
|
+
/** Post-gate, best-effort type of the actionable reply/quote parent. */
|
|
36
|
+
parentMessageType?: string;
|
|
35
37
|
senderId: string;
|
|
36
38
|
/**
|
|
37
39
|
* The sender's `union_id`, when Feishu provides it. Diagnostic only — it is
|
|
@@ -42,9 +44,8 @@ export interface FeishuInboundEvent {
|
|
|
42
44
|
senderUnionId?: string;
|
|
43
45
|
senderType: string;
|
|
44
46
|
/**
|
|
45
|
-
* Best-effort display name
|
|
46
|
-
*
|
|
47
|
-
* so the normal value is intentionally an empty string.
|
|
47
|
+
* Best-effort event display name. Feishu normally omits it, so the accepted
|
|
48
|
+
* inbound path may later enrich an empty value through the transport seam.
|
|
48
49
|
*/
|
|
49
50
|
senderName: string;
|
|
50
51
|
messageType: string;
|
|
@@ -52,8 +53,12 @@ export interface FeishuInboundEvent {
|
|
|
52
53
|
rawContent: string;
|
|
53
54
|
/** Parsed text after the core's content flattening / mention substitution. */
|
|
54
55
|
parsedText: string;
|
|
56
|
+
/** Untrusted visible content in Feishu source order. */
|
|
57
|
+
contentParts?: InboundContentPart[];
|
|
55
58
|
/** Structured Feishu resources discovered in the message content. */
|
|
56
59
|
resources?: InboundResource[];
|
|
60
|
+
/** The local projection omitted or could not resolve visible content. */
|
|
61
|
+
contentIncomplete?: boolean;
|
|
57
62
|
mentions: Mention[];
|
|
58
63
|
createTime: string;
|
|
59
64
|
/** The full original Feishu event payload (for storage / audit). */
|
|
@@ -103,6 +108,12 @@ export interface FeishuBot extends FeishuMessageResourceFetcher {
|
|
|
103
108
|
addReaction(messageId: string, emoji: string): Promise<string>;
|
|
104
109
|
removeReaction(messageId: string, reactionId: string): Promise<void>;
|
|
105
110
|
fetchMessageResource(request: FeishuMessageResourceRequest): Promise<FeishuMessageResourceResponse>;
|
|
111
|
+
/** Optional for externally supplied bots; absence keeps event-only content. */
|
|
112
|
+
readMessage?(request: FeishuMessageReadRequest): Promise<FeishuMessageReadResponse>;
|
|
113
|
+
/** Optional cache seed for accepted mention names. */
|
|
114
|
+
observeUserNames?(entries: FeishuUserNameEntry[]): void;
|
|
115
|
+
/** Optional contact lookup for an accepted human sender. */
|
|
116
|
+
resolveUserName?(openId: string, options?: FeishuUserNameLookupOptions): Promise<string | undefined>;
|
|
106
117
|
resolveAppOwner(): Promise<FeishuAppOwnerIdentity>;
|
|
107
118
|
close(): Promise<void>;
|
|
108
119
|
}
|
package/dist/bot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAOL,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AAKrC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|
package/dist/bot.js
CHANGED
|
@@ -95,6 +95,28 @@ export function createFeishuBot(opts, deps = {}) {
|
|
|
95
95
|
fetchMessageResource(request) {
|
|
96
96
|
return transport.fetchMessageResource(request);
|
|
97
97
|
},
|
|
98
|
+
...(transport.readMessage !== undefined
|
|
99
|
+
? {
|
|
100
|
+
readMessage(request) {
|
|
101
|
+
return transport.readMessage?.(request) ?? Promise.resolve({ items: [] });
|
|
102
|
+
},
|
|
103
|
+
}
|
|
104
|
+
: {}),
|
|
105
|
+
...(transport.observeUserNames !== undefined
|
|
106
|
+
? {
|
|
107
|
+
observeUserNames(entries) {
|
|
108
|
+
transport.observeUserNames?.(entries);
|
|
109
|
+
},
|
|
110
|
+
}
|
|
111
|
+
: {}),
|
|
112
|
+
...(transport.resolveUserName !== undefined
|
|
113
|
+
? {
|
|
114
|
+
resolveUserName(openId, options) {
|
|
115
|
+
return transport.resolveUserName?.(openId, options) ??
|
|
116
|
+
Promise.resolve(undefined);
|
|
117
|
+
},
|
|
118
|
+
}
|
|
119
|
+
: {}),
|
|
98
120
|
resolveAppOwner() {
|
|
99
121
|
return transport.resolveAppOwner();
|
|
100
122
|
},
|
|
@@ -168,7 +190,9 @@ function normalizeInboundEvent(raw) {
|
|
|
168
190
|
messageType,
|
|
169
191
|
rawContent,
|
|
170
192
|
parsedText: payload.text,
|
|
193
|
+
...(parsed.parts !== undefined ? { contentParts: parsed.parts } : {}),
|
|
171
194
|
resources: parsed.resources ?? [],
|
|
195
|
+
...(parsed.incomplete === true ? { contentIncomplete: true } : {}),
|
|
172
196
|
mentions,
|
|
173
197
|
createTime,
|
|
174
198
|
raw,
|
package/dist/bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|
package/dist/feishu-channel.d.ts
CHANGED
|
@@ -74,6 +74,9 @@ export declare class FeishuChannelSession {
|
|
|
74
74
|
readonly state: FeishuChannelState;
|
|
75
75
|
private readonly targetRouter;
|
|
76
76
|
private readonly _accessMutex;
|
|
77
|
+
private readonly inactiveFence;
|
|
78
|
+
private sessionGeneration;
|
|
79
|
+
private lifecycle;
|
|
77
80
|
constructor(opts: FeishuChannelSessionOptions);
|
|
78
81
|
/**
|
|
79
82
|
* Build a package-private handle the session helpers operate on. Keeps the
|
|
@@ -82,6 +85,8 @@ export declare class FeishuChannelSession {
|
|
|
82
85
|
* this cost-free.
|
|
83
86
|
*/
|
|
84
87
|
private get handle();
|
|
88
|
+
private handleForFence;
|
|
89
|
+
private trackLifecycleTask;
|
|
85
90
|
start(submitter: FeishuInboundSubmitter): Promise<void>;
|
|
86
91
|
close(): Promise<void>;
|
|
87
92
|
handleMcpTool(toolName: FeishuToolName, rawArguments: unknown): Promise<Record<string, unknown> | FeishuMcpListChatBotsResult>;
|
|
@@ -98,7 +103,6 @@ export declare class FeishuChannelSession {
|
|
|
98
103
|
private readChatBots;
|
|
99
104
|
private sendReply;
|
|
100
105
|
private addReaction;
|
|
101
|
-
private onMessage;
|
|
102
106
|
private onCardAction;
|
|
103
107
|
}
|
|
104
108
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu-channel.d.ts","sourceRoot":"","sources":["../src/feishu-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAEV,SAAS,
|
|
1
|
+
{"version":3,"file":"feishu-channel.d.ts","sourceRoot":"","sources":["../src/feishu-channel.ts"],"names":[],"mappings":"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"}
|
package/dist/feishu-channel.js
CHANGED
|
@@ -2,6 +2,7 @@ import { createFeishuBot } from './bot.js';
|
|
|
2
2
|
import { listChatBots, recordBotAdded, } from './chat-bots-store.js';
|
|
3
3
|
import { BUILTIN_FEISHU_PROVIDER_REF } from './provider-ref.js';
|
|
4
4
|
import { AsyncMutex } from './lib/mutex.js';
|
|
5
|
+
import { alwaysActiveSessionFence, } from './feishu-inbound-work.js';
|
|
5
6
|
import { FEISHU_TOOLS, } from './feishu-mcp-tools.js';
|
|
6
7
|
import { handleCardAction as sessionHandleCardAction, sendReply as sessionSendReply, addReaction as sessionAddReaction, sessionHandle, } from './feishu-session-ops.js';
|
|
7
8
|
import { onMessage as sessionOnMessage } from './feishu-session-inbound.js';
|
|
@@ -31,6 +32,9 @@ export class FeishuChannelSession {
|
|
|
31
32
|
};
|
|
32
33
|
targetRouter;
|
|
33
34
|
_accessMutex = new AsyncMutex();
|
|
35
|
+
inactiveFence = alwaysActiveSessionFence();
|
|
36
|
+
sessionGeneration = 0;
|
|
37
|
+
lifecycle;
|
|
34
38
|
constructor(opts) {
|
|
35
39
|
this.opts = opts;
|
|
36
40
|
this.bot = opts.botFactory !== undefined
|
|
@@ -54,23 +58,76 @@ export class FeishuChannelSession {
|
|
|
54
58
|
* this cost-free.
|
|
55
59
|
*/
|
|
56
60
|
get handle() {
|
|
57
|
-
return
|
|
61
|
+
return this.handleForFence(this.lifecycle?.fence ?? this.inactiveFence);
|
|
62
|
+
}
|
|
63
|
+
handleForFence(fence) {
|
|
64
|
+
return sessionHandle(this.opts, this.state, this.bot, this._accessMutex, this.bot.botDisplayName ?? 'Dreamux bot', this.targetRouter, fence);
|
|
65
|
+
}
|
|
66
|
+
async trackLifecycleTask(lifecycle, task) {
|
|
67
|
+
lifecycle.inFlight.add(task);
|
|
68
|
+
try {
|
|
69
|
+
return await task;
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
lifecycle.inFlight.delete(task);
|
|
73
|
+
}
|
|
58
74
|
}
|
|
59
75
|
async start(submitter) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
76
|
+
if (this.lifecycle !== undefined && !this.lifecycle.controller.signal.aborted) {
|
|
77
|
+
throw new Error('Feishu channel session is already started');
|
|
78
|
+
}
|
|
79
|
+
const controller = new AbortController();
|
|
80
|
+
const generation = ++this.sessionGeneration;
|
|
81
|
+
const lifecycle = {
|
|
82
|
+
controller,
|
|
83
|
+
inFlight: new Set(),
|
|
84
|
+
fence: {
|
|
85
|
+
signal: controller.signal,
|
|
86
|
+
isCurrent: () => this.lifecycle === lifecycle &&
|
|
87
|
+
this.sessionGeneration === generation &&
|
|
88
|
+
!controller.signal.aborted,
|
|
69
89
|
},
|
|
70
|
-
}
|
|
90
|
+
};
|
|
91
|
+
this.lifecycle = lifecycle;
|
|
92
|
+
try {
|
|
93
|
+
await this.bot.start({
|
|
94
|
+
onBotMemberAdded: async (added) => {
|
|
95
|
+
if (!lifecycle.fence.isCurrent())
|
|
96
|
+
return;
|
|
97
|
+
await this.trackLifecycleTask(lifecycle, recordBotAdded(this.opts.stateDir, added.chatId, added.eventId));
|
|
98
|
+
},
|
|
99
|
+
onMessage: async (event) => {
|
|
100
|
+
if (!lifecycle.fence.isCurrent())
|
|
101
|
+
return;
|
|
102
|
+
await this.trackLifecycleTask(lifecycle, sessionOnMessage(this.handleForFence(lifecycle.fence), event, submitter));
|
|
103
|
+
},
|
|
104
|
+
onCardAction: async (event) => {
|
|
105
|
+
if (!lifecycle.fence.isCurrent())
|
|
106
|
+
return {};
|
|
107
|
+
return this.trackLifecycleTask(lifecycle, this.onCardAction(event));
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
if (!lifecycle.fence.isCurrent()) {
|
|
111
|
+
await this.bot.close();
|
|
112
|
+
throw new Error('Feishu channel session was closed during startup');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
controller.abort();
|
|
117
|
+
if (this.lifecycle === lifecycle)
|
|
118
|
+
this.lifecycle = undefined;
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
71
121
|
}
|
|
72
122
|
async close() {
|
|
123
|
+
const lifecycle = this.lifecycle;
|
|
124
|
+
lifecycle?.controller.abort();
|
|
73
125
|
await this.bot.close();
|
|
126
|
+
if (lifecycle !== undefined) {
|
|
127
|
+
await Promise.allSettled([...lifecycle.inFlight]);
|
|
128
|
+
if (this.lifecycle === lifecycle)
|
|
129
|
+
this.lifecycle = undefined;
|
|
130
|
+
}
|
|
74
131
|
}
|
|
75
132
|
async handleMcpTool(toolName, rawArguments) {
|
|
76
133
|
const def = FEISHU_TOOLS.find((t) => t.name === toolName);
|
|
@@ -164,9 +221,6 @@ export class FeishuChannelSession {
|
|
|
164
221
|
const r = await sessionAddReaction(this.handle, input);
|
|
165
222
|
return { reaction_id: r };
|
|
166
223
|
}
|
|
167
|
-
async onMessage(event, submitter) {
|
|
168
|
-
return sessionOnMessage(this.handle, event, submitter);
|
|
169
|
-
}
|
|
170
224
|
async onCardAction(event) {
|
|
171
225
|
return sessionHandleCardAction(this.handle, event);
|
|
172
226
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu-channel.js","sourceRoot":"","sources":["../src/feishu-channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"feishu-channel.js","sourceRoot":"","sources":["../src/feishu-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DreamuxLogger } from '@excitedjs/dreamux-types';
|
|
2
|
+
import type { FeishuBot, FeishuInboundEvent } from './bot.js';
|
|
3
|
+
import { type FeishuInboundWorkContext } from './feishu-inbound-work.js';
|
|
4
|
+
export declare function enrichFeishuInbound(event: FeishuInboundEvent, bot: FeishuBot, work: FeishuInboundWorkContext, log: DreamuxLogger): Promise<FeishuInboundEvent>;
|
|
5
|
+
//# sourceMappingURL=feishu-inbound-enrichment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feishu-inbound-enrichment.d.ts","sourceRoot":"","sources":["../src/feishu-inbound-enrichment.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,0BAA0B,CAAC;AAQlC,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,wBAAwB,EAC9B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAI7B"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { parseInbound, } from '@excitedjs/feishu-transport';
|
|
2
|
+
import { FeishuSessionRevokedError, FEISHU_RESOURCE_TIMEOUT_MS, runFeishuInboundWork, } from './feishu-inbound-work.js';
|
|
3
|
+
import { normalizeFeishuMessageTypeToken, replyAncestryParentId, } from './feishu-reply-ancestry.js';
|
|
4
|
+
const PARENT_TYPE_PROBE_TIMEOUT_MS = 2_000;
|
|
5
|
+
export async function enrichFeishuInbound(event, bot, work, log) {
|
|
6
|
+
const current = await enrichCurrentMessage(event, bot, work, log);
|
|
7
|
+
work.assertSessionActive();
|
|
8
|
+
return enrichParentMessageType(current, bot, work, log);
|
|
9
|
+
}
|
|
10
|
+
async function enrichCurrentMessage(event, bot, work, log) {
|
|
11
|
+
if (event.messageType === 'merge_forward') {
|
|
12
|
+
return asLazyMergedForward(event);
|
|
13
|
+
}
|
|
14
|
+
if (bot.readMessage === undefined) {
|
|
15
|
+
return needsMessageRead(event.messageType)
|
|
16
|
+
? { ...event, contentIncomplete: true }
|
|
17
|
+
: event;
|
|
18
|
+
}
|
|
19
|
+
if (event.messageType === 'interactive') {
|
|
20
|
+
return enrichInteractive(event, bot, work, log);
|
|
21
|
+
}
|
|
22
|
+
if (event.messageType === 'nonsupport') {
|
|
23
|
+
return resolveUnsupported(event, bot, work, log);
|
|
24
|
+
}
|
|
25
|
+
return event;
|
|
26
|
+
}
|
|
27
|
+
function needsMessageRead(messageType) {
|
|
28
|
+
return ['interactive', 'nonsupport'].includes(messageType);
|
|
29
|
+
}
|
|
30
|
+
async function enrichInteractive(event, bot, work, log) {
|
|
31
|
+
const [structured, simplified] = await Promise.all([
|
|
32
|
+
readRoot(event, bot, work, log, 'user_card_content'),
|
|
33
|
+
readRoot(event, bot, work, log, 'default'),
|
|
34
|
+
]);
|
|
35
|
+
work.assertSessionActive();
|
|
36
|
+
const structuredParsed = parseInteractiveRoot(structured);
|
|
37
|
+
const simplifiedParsed = parseInteractiveRoot(simplified);
|
|
38
|
+
if (structuredParsed === undefined && simplifiedParsed === undefined) {
|
|
39
|
+
return { ...event, contentIncomplete: true };
|
|
40
|
+
}
|
|
41
|
+
const primary = structuredParsed ?? simplifiedParsed;
|
|
42
|
+
if (primary === undefined)
|
|
43
|
+
return { ...event, contentIncomplete: true };
|
|
44
|
+
const supplemental = structuredParsed === undefined
|
|
45
|
+
? undefined
|
|
46
|
+
: simplifiedParsed;
|
|
47
|
+
const text = mergeCardText(primary.parsed.text, supplemental?.parsed.text);
|
|
48
|
+
const contentParts = mergeCardParts(primary.parsed.parts ?? [{ kind: 'text', text: primary.parsed.text }], supplemental?.parsed);
|
|
49
|
+
const resources = mergeResources(primary.parsed.resources ?? [], supplemental?.parsed.resources ?? []);
|
|
50
|
+
return {
|
|
51
|
+
...event,
|
|
52
|
+
messageType: 'interactive',
|
|
53
|
+
rawContent: primary.item.content,
|
|
54
|
+
parsedText: text,
|
|
55
|
+
contentParts,
|
|
56
|
+
mentions: primary.item.mentions,
|
|
57
|
+
resources,
|
|
58
|
+
...(primary.parsed.incomplete === true ||
|
|
59
|
+
supplemental?.parsed.incomplete === true ||
|
|
60
|
+
structuredParsed === undefined ||
|
|
61
|
+
simplifiedParsed === undefined
|
|
62
|
+
? { contentIncomplete: true }
|
|
63
|
+
: { contentIncomplete: false }),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function parseInteractiveRoot(item) {
|
|
67
|
+
if (item === undefined || item.messageType !== 'interactive')
|
|
68
|
+
return undefined;
|
|
69
|
+
return {
|
|
70
|
+
item,
|
|
71
|
+
parsed: parseInbound({
|
|
72
|
+
message_type: item.messageType,
|
|
73
|
+
content: item.content,
|
|
74
|
+
mentions: item.mentions,
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function mergeCardText(primary, supplemental) {
|
|
79
|
+
const normalizedPrimary = normalizeCardLines(primary);
|
|
80
|
+
if (supplemental === undefined ||
|
|
81
|
+
supplemental === '(interactive card with no readable content)') {
|
|
82
|
+
return normalizedPrimary.join('\n');
|
|
83
|
+
}
|
|
84
|
+
const seen = new Set(normalizedPrimary.map(normalizeCardLineForComparison));
|
|
85
|
+
const extra = normalizeCardLines(supplemental).filter((line) => {
|
|
86
|
+
const normalized = normalizeCardLineForComparison(line);
|
|
87
|
+
if (normalized === '' || seen.has(normalized))
|
|
88
|
+
return false;
|
|
89
|
+
seen.add(normalized);
|
|
90
|
+
return true;
|
|
91
|
+
});
|
|
92
|
+
if (extra.length === 0)
|
|
93
|
+
return normalizedPrimary.join('\n');
|
|
94
|
+
return [
|
|
95
|
+
...normalizedPrimary,
|
|
96
|
+
'',
|
|
97
|
+
'Additional rendered card content:',
|
|
98
|
+
...extra,
|
|
99
|
+
].join('\n');
|
|
100
|
+
}
|
|
101
|
+
function normalizeCardLines(value) {
|
|
102
|
+
return value.replaceAll('\r\n', '\n').replaceAll('\r', '\n').split('\n');
|
|
103
|
+
}
|
|
104
|
+
function normalizeCardLineForComparison(value) {
|
|
105
|
+
return value.trim();
|
|
106
|
+
}
|
|
107
|
+
async function resolveUnsupported(event, bot, work, log) {
|
|
108
|
+
const response = await readMessage(event.messageId, bot, work, log, 'default');
|
|
109
|
+
const root = validRoot(response, event.messageId);
|
|
110
|
+
work.assertSessionActive();
|
|
111
|
+
if (root === undefined || root.messageType === 'nonsupport') {
|
|
112
|
+
return { ...event, contentIncomplete: true };
|
|
113
|
+
}
|
|
114
|
+
if (root.messageType === 'merge_forward') {
|
|
115
|
+
return asLazyMergedForward({ ...event, messageType: 'merge_forward' });
|
|
116
|
+
}
|
|
117
|
+
const parsed = parseReadItem(root);
|
|
118
|
+
return {
|
|
119
|
+
...event,
|
|
120
|
+
messageType: root.messageType,
|
|
121
|
+
rawContent: root.content,
|
|
122
|
+
parsedText: parsed.text,
|
|
123
|
+
...(parsed.parts !== undefined ? { contentParts: parsed.parts } : {}),
|
|
124
|
+
mentions: root.mentions,
|
|
125
|
+
resources: parsed.resources ?? [],
|
|
126
|
+
...(parsed.incomplete === true
|
|
127
|
+
? { contentIncomplete: true }
|
|
128
|
+
: { contentIncomplete: false }),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function asLazyMergedForward(event) {
|
|
132
|
+
return {
|
|
133
|
+
...event,
|
|
134
|
+
messageType: 'merge_forward',
|
|
135
|
+
parsedText: '(merged-forward message not expanded)',
|
|
136
|
+
contentParts: [],
|
|
137
|
+
resources: [],
|
|
138
|
+
contentIncomplete: false,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
async function enrichParentMessageType(event, bot, work, log) {
|
|
142
|
+
const parentId = replyAncestryParentId(event);
|
|
143
|
+
if (parentId === undefined || bot.readMessage === undefined)
|
|
144
|
+
return event;
|
|
145
|
+
const probeBudget = work.remainingTimeMs() - FEISHU_RESOURCE_TIMEOUT_MS;
|
|
146
|
+
if (probeBudget <= 0)
|
|
147
|
+
return event;
|
|
148
|
+
const deadlineAt = Date.now() + Math.min(PARENT_TYPE_PROBE_TIMEOUT_MS, probeBudget);
|
|
149
|
+
const response = await readMessage(parentId, bot, work, log, 'default', deadlineAt);
|
|
150
|
+
work.assertSessionActive();
|
|
151
|
+
const parent = validRoot(response, parentId);
|
|
152
|
+
const parentMessageType = parent === undefined
|
|
153
|
+
? undefined
|
|
154
|
+
: normalizeFeishuMessageTypeToken(parent.messageType);
|
|
155
|
+
return parentMessageType === undefined
|
|
156
|
+
? event
|
|
157
|
+
: { ...event, parentMessageType };
|
|
158
|
+
}
|
|
159
|
+
async function readRoot(event, bot, work, log, mode) {
|
|
160
|
+
return validRoot(await readMessage(event.messageId, bot, work, log, mode), event.messageId);
|
|
161
|
+
}
|
|
162
|
+
async function readMessage(messageId, bot, work, log, mode, deadlineAt = work.deadlineAt) {
|
|
163
|
+
if (bot.readMessage === undefined)
|
|
164
|
+
return undefined;
|
|
165
|
+
try {
|
|
166
|
+
return await runFeishuInboundWork(work, () => bot.readMessage?.({
|
|
167
|
+
messageId,
|
|
168
|
+
cardContent: mode,
|
|
169
|
+
}) ?? Promise.resolve({ items: [] }), deadlineAt);
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
if (error instanceof FeishuSessionRevokedError)
|
|
173
|
+
throw error;
|
|
174
|
+
log.debug({
|
|
175
|
+
message_id: messageId,
|
|
176
|
+
mode,
|
|
177
|
+
reason: 'message_read_unavailable',
|
|
178
|
+
}, 'feishu inbound message enrichment read was unavailable');
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function validRoot(response, messageId) {
|
|
183
|
+
const root = response?.items.find((item) => item.messageId === messageId);
|
|
184
|
+
return root !== undefined && !root.deleted && !root.malformed
|
|
185
|
+
? root
|
|
186
|
+
: undefined;
|
|
187
|
+
}
|
|
188
|
+
function parseReadItem(item) {
|
|
189
|
+
return parseInbound({
|
|
190
|
+
message_type: item.messageType,
|
|
191
|
+
content: item.content,
|
|
192
|
+
mentions: item.mentions,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
function mergeResources(...groups) {
|
|
196
|
+
const out = [];
|
|
197
|
+
const seen = new Set();
|
|
198
|
+
for (const resource of groups.flat()) {
|
|
199
|
+
const identity = resource.key === undefined
|
|
200
|
+
? undefined
|
|
201
|
+
: `${resource.type}:${resource.key}`;
|
|
202
|
+
if (identity !== undefined && seen.has(identity))
|
|
203
|
+
continue;
|
|
204
|
+
if (identity !== undefined)
|
|
205
|
+
seen.add(identity);
|
|
206
|
+
out.push(resource);
|
|
207
|
+
}
|
|
208
|
+
return out;
|
|
209
|
+
}
|
|
210
|
+
function mergeCardParts(primary, supplemental) {
|
|
211
|
+
if (supplemental === undefined ||
|
|
212
|
+
supplemental.text === '(interactive card with no readable content)') {
|
|
213
|
+
return primary;
|
|
214
|
+
}
|
|
215
|
+
const primaryText = cardTextLines(primary);
|
|
216
|
+
const seenLines = new Set(primaryText.map(normalizeCardLineForComparison));
|
|
217
|
+
const extraLines = cardTextLines(supplemental.parts ?? [{ kind: 'text', text: supplemental.text }]).filter((line) => {
|
|
218
|
+
const normalized = normalizeCardLineForComparison(line);
|
|
219
|
+
if (normalized === '' || seenLines.has(normalized))
|
|
220
|
+
return false;
|
|
221
|
+
seenLines.add(normalized);
|
|
222
|
+
return true;
|
|
223
|
+
});
|
|
224
|
+
const primaryResources = new Set(primary
|
|
225
|
+
.filter((part) => part.kind === 'resource')
|
|
226
|
+
.flatMap((part) => resourceIdentity(part.resource) ?? []));
|
|
227
|
+
const supplementalResources = (supplemental.parts ?? [])
|
|
228
|
+
.filter((part) => part.kind === 'resource')
|
|
229
|
+
.filter((part) => {
|
|
230
|
+
const identity = resourceIdentity(part.resource);
|
|
231
|
+
if (identity === undefined)
|
|
232
|
+
return true;
|
|
233
|
+
if (primaryResources.has(identity))
|
|
234
|
+
return false;
|
|
235
|
+
primaryResources.add(identity);
|
|
236
|
+
return true;
|
|
237
|
+
});
|
|
238
|
+
if (extraLines.length === 0 && supplementalResources.length === 0)
|
|
239
|
+
return primary;
|
|
240
|
+
return [
|
|
241
|
+
...primary,
|
|
242
|
+
...(extraLines.length === 0
|
|
243
|
+
? []
|
|
244
|
+
: [{
|
|
245
|
+
kind: 'text',
|
|
246
|
+
text: `\n\nAdditional rendered card content:\n${extraLines.join('\n')}`,
|
|
247
|
+
}]),
|
|
248
|
+
...supplementalResources,
|
|
249
|
+
];
|
|
250
|
+
}
|
|
251
|
+
function cardTextLines(parts) {
|
|
252
|
+
return parts
|
|
253
|
+
.filter((part) => part.kind === 'text')
|
|
254
|
+
.flatMap((part) => normalizeCardLines(part.text));
|
|
255
|
+
}
|
|
256
|
+
function resourceIdentity(resource) {
|
|
257
|
+
return resource.key === undefined ? undefined : `${resource.type}:${resource.key}`;
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=feishu-inbound-enrichment.js.map
|