@excitedjs/dreamux 0.3.3 → 0.4.0

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.
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Per-dispatcher peer-bot awareness/trust store.
3
+ *
4
+ * Two sets are tracked separately, per chat_id, and they must never be
5
+ * conflated (issue #62 hard contract):
6
+ *
7
+ * - `known` — bots passively observed sending messages in an authorized
8
+ * chat. Awareness only; observing a bot NEVER grants it trust.
9
+ * - `trusted` — bots introduced by an allowlisted sender running `/introduce`.
10
+ * The gate consults this set (and only this set) when deciding
11
+ * whether a peer bot's group message may be delivered.
12
+ *
13
+ * `baseline` bookkeeping records `im.chat.member.bot.added_v1` events so the
14
+ * host can later inject a one-shot "bots in this group" context; it is
15
+ * idempotent by Feishu event id. (The one-shot context injection itself is a
16
+ * follow-up; this store keeps the durable bookkeeping the contract needs.)
17
+ *
18
+ * One JSON file per dispatcher, keyed by chat_id, so no chat_id ever has to be
19
+ * sanitized into a path segment. Owner-only (0600); writes are atomic.
20
+ */
21
+ import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from 'node:fs';
22
+ import { dirname } from 'node:path';
23
+ import { dispatcherChatBotsPath } from '../runtime/paths.js';
24
+ /** Retain at most this many recent bot-added event ids per chat for dedupe. */
25
+ const MAX_SEEN_EVENT_IDS = 200;
26
+ /** Monotonic per-process counter so concurrent writes never share a temp path. */
27
+ let tmpCounter = 0;
28
+ export function defaultChatBotsState() {
29
+ return { version: 1, chats: {} };
30
+ }
31
+ function emptyEntry() {
32
+ return { known: [], trusted: [], names: {}, needsBaseline: false, seenEventIds: [] };
33
+ }
34
+ /**
35
+ * Load the store. Unlike the access store, a corrupt or unreadable chat-bots
36
+ * file is not security-critical — it only affects peer-bot discovery — so a
37
+ * load failure degrades to an empty store rather than throwing.
38
+ */
39
+ export function loadChatBots(dispatcherId) {
40
+ const path = dispatcherChatBotsPath(dispatcherId);
41
+ if (!existsSync(path))
42
+ return defaultChatBotsState();
43
+ try {
44
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
45
+ return normalizeChatBots(parsed);
46
+ }
47
+ catch {
48
+ return defaultChatBotsState();
49
+ }
50
+ }
51
+ export function saveChatBots(dispatcherId, state) {
52
+ const path = dispatcherChatBotsPath(dispatcherId);
53
+ mkdirSync(dirname(path), { recursive: true });
54
+ const tmp = `${path}.tmp-${process.pid}-${tmpCounter++}`;
55
+ writeFileSync(tmp, `${JSON.stringify(state, null, 2)}\n`, { mode: 0o600 });
56
+ chmodSync(tmp, 0o600);
57
+ renameSync(tmp, path);
58
+ }
59
+ function entryFor(state, chatId) {
60
+ const existing = state.chats[chatId];
61
+ if (existing !== undefined)
62
+ return existing;
63
+ const created = emptyEntry();
64
+ state.chats[chatId] = created;
65
+ return created;
66
+ }
67
+ /** Record a passively observed peer bot as *known* (awareness only). */
68
+ export function observeKnownBot(dispatcherId, chatId, bot) {
69
+ if (bot.openId === '')
70
+ return;
71
+ const state = loadChatBots(dispatcherId);
72
+ const entry = entryFor(state, chatId);
73
+ let changed = recordName(entry, bot);
74
+ if (!entry.known.includes(bot.openId)) {
75
+ entry.known.push(bot.openId);
76
+ changed = true;
77
+ }
78
+ if (changed)
79
+ saveChatBots(dispatcherId, state);
80
+ }
81
+ /**
82
+ * Record peer bots introduced by an allowlisted `/introduce` as *trusted*.
83
+ * Trusted bots are also known. Returns the open_ids newly added to trust.
84
+ */
85
+ export function trustIntroducedBots(dispatcherId, chatId, bots) {
86
+ const state = loadChatBots(dispatcherId);
87
+ const entry = entryFor(state, chatId);
88
+ const added = [];
89
+ let changed = false;
90
+ for (const bot of bots) {
91
+ if (bot.openId === '')
92
+ continue;
93
+ if (recordName(entry, bot))
94
+ changed = true;
95
+ if (!entry.known.includes(bot.openId)) {
96
+ entry.known.push(bot.openId);
97
+ changed = true;
98
+ }
99
+ if (!entry.trusted.includes(bot.openId)) {
100
+ entry.trusted.push(bot.openId);
101
+ added.push(bot.openId);
102
+ changed = true;
103
+ }
104
+ }
105
+ if (changed)
106
+ saveChatBots(dispatcherId, state);
107
+ return added;
108
+ }
109
+ /** The trust set the gate consults for one chat. */
110
+ export function trustedBotIds(dispatcherId, chatId) {
111
+ return new Set(loadChatBots(dispatcherId).chats[chatId]?.trusted ?? []);
112
+ }
113
+ /**
114
+ * Record an `im.chat.member.bot.added_v1` event: mark the chat as needing a
115
+ * baseline injection. Idempotent by event id — a redelivered event is a no-op.
116
+ * Returns true when the event was newly recorded.
117
+ */
118
+ export function recordBotAdded(dispatcherId, chatId, eventId) {
119
+ const state = loadChatBots(dispatcherId);
120
+ const entry = entryFor(state, chatId);
121
+ if (eventId !== '' && entry.seenEventIds.includes(eventId))
122
+ return false;
123
+ if (eventId !== '') {
124
+ entry.seenEventIds.push(eventId);
125
+ while (entry.seenEventIds.length > MAX_SEEN_EVENT_IDS)
126
+ entry.seenEventIds.shift();
127
+ }
128
+ entry.needsBaseline = true;
129
+ saveChatBots(dispatcherId, state);
130
+ return true;
131
+ }
132
+ function recordName(entry, bot) {
133
+ if (bot.name === undefined || bot.name === '')
134
+ return false;
135
+ if (entry.names[bot.openId] === bot.name)
136
+ return false;
137
+ entry.names[bot.openId] = bot.name;
138
+ return true;
139
+ }
140
+ function normalizeChatBots(raw) {
141
+ if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {
142
+ return defaultChatBotsState();
143
+ }
144
+ const chatsRaw = raw['chats'];
145
+ const chats = {};
146
+ if (chatsRaw !== null && typeof chatsRaw === 'object' && !Array.isArray(chatsRaw)) {
147
+ for (const [chatId, value] of Object.entries(chatsRaw)) {
148
+ chats[chatId] = normalizeEntry(value);
149
+ }
150
+ }
151
+ return { version: 1, chats };
152
+ }
153
+ function normalizeEntry(raw) {
154
+ const entry = emptyEntry();
155
+ if (raw === null || typeof raw !== 'object' || Array.isArray(raw))
156
+ return entry;
157
+ const obj = raw;
158
+ entry.known = stringArray(obj['known']);
159
+ entry.trusted = stringArray(obj['trusted']);
160
+ entry.seenEventIds = stringArray(obj['seenEventIds']);
161
+ entry.needsBaseline = obj['needsBaseline'] === true;
162
+ const names = obj['names'];
163
+ if (names !== null && typeof names === 'object' && !Array.isArray(names)) {
164
+ for (const [k, v] of Object.entries(names)) {
165
+ if (typeof v === 'string')
166
+ entry.names[k] = v;
167
+ }
168
+ }
169
+ return entry;
170
+ }
171
+ function stringArray(value) {
172
+ if (!Array.isArray(value))
173
+ return [];
174
+ return [...new Set(value.filter((item) => typeof item === 'string'))];
175
+ }
176
+ //# sourceMappingURL=chat-bots-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-bots-store.js","sourceRoot":"","sources":["../../src/channel/chat-bots-store.ts"],"names":[],"mappings":"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"}
@@ -53,10 +53,10 @@ export function dreamuxFeishuGate(input, access) {
53
53
  if (input.botOpenId !== undefined && input.senderId === input.botOpenId) {
54
54
  return drop('message sent by this bot');
55
55
  }
56
- if (isBotSenderType(input.senderType)) {
57
- return drop(`bot sender type: ${input.senderType}`);
58
- }
56
+ const senderIsBot = isBotSenderType(input.senderType);
59
57
  if (input.chatType === 'p2p') {
58
+ if (senderIsBot)
59
+ return drop(`bot sender type: ${input.senderType}`);
60
60
  if (!access.dm.allow_users.includes(input.senderId)) {
61
61
  return drop('direct sender not allowed');
62
62
  }
@@ -69,6 +69,15 @@ export function dreamuxFeishuGate(input, access) {
69
69
  !access.group.allow_chats.includes(input.chatId)) {
70
70
  return drop('group chat not allowed');
71
71
  }
72
+ if (senderIsBot) {
73
+ // A peer bot speaks only if it was introduced (trusted) for this chat by an
74
+ // allowlisted `/introduce`. Trusted bots bypass the mention gate because a
75
+ // bot cannot @-mention us; untrusted bots are dropped as before.
76
+ if (input.trustedBotIds?.has(input.senderId) ?? false) {
77
+ return deliver(access, input, now);
78
+ }
79
+ return drop(`bot sender type: ${input.senderType}`);
80
+ }
72
81
  if (access.group.follow_users.length > 0 &&
73
82
  !access.group.follow_users.includes(input.senderId)) {
74
83
  return drop('sender not allowed by follow-user gate');
@@ -1 +1 @@
1
- {"version":3,"file":"feishu-gate.js","sourceRoot":"","sources":["../../src/channel/feishu-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feishu-gate.js","sourceRoot":"","sources":["../../src/channel/feishu-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Group `/introduce` — peer-bot introduction, issue #62 hard contract.
3
+ *
4
+ * Trigger rule (deliberately different from claudemux):
5
+ *
6
+ * In a group, a `/introduce` message triggers **if and only if the sender is
7
+ * on the allowlist**. No `@`-mention of our bot is required, and the group's
8
+ * `require_mention` setting is ignored on this path.
9
+ *
10
+ * "Sender on the allowlist" is sender-scoped, NOT group-scoped: it is not
11
+ * enough for the chat to be authorized — the *sender* must be explicitly
12
+ * allowlisted for the chat. An open group (no per-sender allowlist) does NOT
13
+ * authorize introduce. `canRunIntroduce` therefore never reuses a broad
14
+ * group-authorization predicate that would trust the group without checking
15
+ * the sender's identity.
16
+ *
17
+ * The peer bots being introduced are the message's @-mentions (excluding our
18
+ * own bot); the host records them as *trusted* for the chat. Recording a human
19
+ * mention is harmless: the gate only lets a trusted entry bypass when the
20
+ * *sender* is a bot, so a human open_id in the trust set never widens access.
21
+ */
22
+ const INTRODUCE_RE = /^\/introduce(?:\s|$)/i;
23
+ /**
24
+ * True when `senderId` may run `/introduce` in this chat.
25
+ *
26
+ * Sender-scoped, not group-scoped (the issue #62 hard contract): the chat must
27
+ * be explicitly allowlisted AND the sender must be on the per-chat sender
28
+ * allowlist. Empty allowlists do not authorize anyone — there is no "any member
29
+ * of an allowlisted group" path.
30
+ */
31
+ export function canRunIntroduce(access, input) {
32
+ if (input.chatType !== 'group')
33
+ return false;
34
+ if (input.senderId === '')
35
+ return false;
36
+ // The chat must be explicitly allowlisted. An empty allow_chats means "every
37
+ // chat" for normal delivery, but for a trust-changing command we require the
38
+ // chat to be named, so introduce never fires in an incidental group.
39
+ if (!access.group.allow_chats.includes(input.chatId))
40
+ return false;
41
+ // The sender must be explicitly allowlisted. An empty follow_users authorizes
42
+ // nobody for introduce — this is the line that makes the rule sender-scoped
43
+ // rather than "any member of an allowlisted group".
44
+ if (!access.group.follow_users.includes(input.senderId))
45
+ return false;
46
+ return true;
47
+ }
48
+ /**
49
+ * Detect a `/introduce` command. Text messages only; leading Feishu mention
50
+ * placeholder tokens (e.g. `@_user_1 `) are stripped first so an `@`-prefixed
51
+ * `/introduce` still matches — the trigger does not depend on who, if anyone,
52
+ * was mentioned.
53
+ */
54
+ export function detectIntroduce(messageType, rawContent, mentions) {
55
+ if (messageType !== 'text')
56
+ return false;
57
+ let text;
58
+ try {
59
+ const parsed = JSON.parse(rawContent);
60
+ text =
61
+ parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
62
+ ? typeof parsed['text'] === 'string'
63
+ ? parsed['text']
64
+ : ''
65
+ : '';
66
+ }
67
+ catch {
68
+ return false;
69
+ }
70
+ // Strip leading Feishu mention keys longest-first: keys can be prefixes of
71
+ // one another (`@_user_1` vs `@_user_10`), so checking the shorter key first
72
+ // would consume a partial token and leave a stray suffix, false-negating an
73
+ // `@`-prefixed `/introduce`. (Same longest-key-first rule used for rendering.)
74
+ const keys = mentions
75
+ .map((m) => m.key)
76
+ .filter((key) => key !== '')
77
+ .sort((a, b) => b.length - a.length);
78
+ let remaining = text.trimStart();
79
+ let progress = true;
80
+ while (progress) {
81
+ progress = false;
82
+ for (const key of keys) {
83
+ if (remaining.startsWith(key)) {
84
+ remaining = remaining.slice(key.length).trimStart();
85
+ progress = true;
86
+ break;
87
+ }
88
+ }
89
+ }
90
+ return INTRODUCE_RE.test(remaining);
91
+ }
92
+ /**
93
+ * The peer bots an `/introduce` names — every @-mention except our own bot.
94
+ * The sender-type check in the gate is what actually scopes trust to bots, so
95
+ * a stray human mention recorded here can never widen access.
96
+ */
97
+ export function introducedPeers(mentions, selfOpenId) {
98
+ const peers = [];
99
+ const seen = new Set();
100
+ for (const m of mentions) {
101
+ const openId = m.id?.open_id ?? m.id?.union_id ?? '';
102
+ if (openId === '' || openId === selfOpenId || seen.has(openId))
103
+ continue;
104
+ seen.add(openId);
105
+ peers.push(m.name !== undefined ? { openId, name: m.name } : { openId });
106
+ }
107
+ return peers;
108
+ }
109
+ //# sourceMappingURL=introduce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introduce.js","sourceRoot":"","sources":["../../src/channel/introduce.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,12 @@
6
6
  * markdown→card render, content parse, the outbound message API — lives in the
7
7
  * core, the single importer of `@larksuiteoapi/node-sdk`. This file only shapes
8
8
  * the core's surface into the `FeishuBot` interface the server already wires:
9
- * - `start(handler)` registers the `im.message.receive_v1` route, normalizes
10
- * each raw event with the core's `parseInbound`, and forwards a
11
- * `FeishuInboundEvent`. The route handler awaits `handler`, so the server
12
- * gates and submits accepted inbound before the SDK acks.
9
+ * - `start(routes)` takes one handler per Feishu event type (issue #62 seam):
10
+ * `onMessage` for `im.message.receive_v1` (normalized via the core's
11
+ * `parseInbound` into a `FeishuInboundEvent`) and an optional
12
+ * `onBotMemberAdded` for `im.chat.member.bot.added_v1`. Each route awaits
13
+ * its handler, so the server gates and submits accepted inbound before the
14
+ * SDK acks.
13
15
  * - `send(target, text)` delegates to the core transport, preserving reply
14
16
  * threading / @-back metadata from the in-memory inbound batch.
15
17
  * - `botOpenId` surfaces the core transport's `selfId`.
@@ -17,7 +19,7 @@
17
19
  * Tests inject a `FakeFeishuBot` via `createFakeFeishuBot()` instead of opening
18
20
  * a live connection.
19
21
  */
20
- import { createFeishuTransport, narrowMetaFromEvent, parseInbound, toChannelInbound, } from '@excitedjs/feishu-transport';
22
+ import { BOT_MEMBER_ADDED_EVENT_TYPE, createFeishuTransport, narrowMetaFromEvent, normalizeBotMemberAddedEvent, parseInbound, toChannelInbound, } from '@excitedjs/feishu-transport';
21
23
  /** The Feishu event_type carrying inbound chat messages. */
22
24
  const IM_MESSAGE_EVENT_TYPE = 'im.message.receive_v1';
23
25
  export function createFeishuBot(opts, deps = {}) {
@@ -33,19 +35,29 @@ export function createFeishuBot(opts, deps = {}) {
33
35
  get botOpenId() {
34
36
  return transport.selfId;
35
37
  },
36
- async start(handler) {
37
- // The core opens the WebSocket and awaits this route handler before the
38
- // SDK acks; awaiting `handler` here keeps gate/submission work before ACK.
38
+ async start(routes) {
39
+ // The core opens the WebSocket and awaits each route handler before the
40
+ // SDK acks; awaiting here keeps gate/submission work before ACK.
39
41
  // `start` rejects if the connection does not come up, so the server's
40
42
  // try/catch can fail the dispatcher loudly rather than leave it dark.
41
- await transport.start({
43
+ const table = {
42
44
  [IM_MESSAGE_EVENT_TYPE]: async (raw) => {
43
45
  const event = normalizeInboundEvent(raw);
44
46
  if (event === null)
45
47
  return;
46
- await handler(event);
48
+ await routes.onMessage(event);
47
49
  },
48
- });
50
+ };
51
+ if (routes.onBotMemberAdded !== undefined) {
52
+ const onBotMemberAdded = routes.onBotMemberAdded;
53
+ table[BOT_MEMBER_ADDED_EVENT_TYPE] = async (raw) => {
54
+ const event = normalizeBotMemberAddedEvent(raw);
55
+ if (event === null)
56
+ return;
57
+ await onBotMemberAdded(event);
58
+ };
59
+ }
60
+ await transport.start(table);
49
61
  },
50
62
  async send(target, text) {
51
63
  const { messageIds } = await transport.send(target, text);
@@ -148,7 +160,7 @@ function asRecord(value) {
148
160
  }
149
161
  export function createFakeFeishuBot(appId = 'fake-bot') {
150
162
  const sent = [];
151
- let handler = null;
163
+ let routes = null;
152
164
  let nextMessageId = 1;
153
165
  let nextReactionId = 1;
154
166
  let sendError = null;
@@ -162,8 +174,8 @@ export function createFakeFeishuBot(appId = 'fake-bot') {
162
174
  get botOpenId() {
163
175
  return openId;
164
176
  },
165
- async start(h) {
166
- handler = h;
177
+ async start(r) {
178
+ routes = r;
167
179
  },
168
180
  async send(target, text) {
169
181
  if (sendError !== null) {
@@ -188,7 +200,7 @@ export function createFakeFeishuBot(appId = 'fake-bot') {
188
200
  removedReactions.push({ messageId, reactionId });
189
201
  },
190
202
  async close() {
191
- handler = null;
203
+ routes = null;
192
204
  },
193
205
  get sentMessages() {
194
206
  return sent;
@@ -200,9 +212,14 @@ export function createFakeFeishuBot(appId = 'fake-bot') {
200
212
  return removedReactions;
201
213
  },
202
214
  async inject(event) {
203
- if (handler === null)
215
+ if (routes === null)
216
+ throw new Error('fake bot not started');
217
+ await routes.onMessage(event);
218
+ },
219
+ async injectBotMemberAdded(event) {
220
+ if (routes === null)
204
221
  throw new Error('fake bot not started');
205
- await handler(event);
222
+ await routes.onBotMemberAdded?.(event);
206
223
  },
207
224
  setSendError(err) {
208
225
  sendError = err;
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/feishu/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/feishu/bot.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,15 @@ export function dispatcherStatusPath(id) {
116
116
  export function dispatcherAccessPath(id) {
117
117
  return join(dispatcherDir(id), 'access.json');
118
118
  }
119
+ /**
120
+ * Per-dispatcher peer-bot awareness/trust store. One file per dispatcher,
121
+ * keyed internally by chat_id, holds the *known* (passively observed) and
122
+ * *trusted* (introduced via an allowlisted `/introduce`) peer-bot open_ids
123
+ * plus the bot-added baseline bookkeeping. Server-owned state; safe to delete.
124
+ */
125
+ export function dispatcherChatBotsPath(id) {
126
+ return join(dispatcherDir(id), 'chat-bots.json');
127
+ }
119
128
  export function unixSocketPathFitsBudget(path) {
120
129
  return Buffer.byteLength(path, 'utf8') <= DREAMUX_UNIX_SOCKET_PATH_MAX_BYTES;
121
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/runtime/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/runtime/paths.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -13,7 +13,10 @@
13
13
  */
14
14
  import { DispatcherRuntime } from './dispatcher/runtime.js';
15
15
  import { channelOutboundToFeishuTarget, createFeishuBot, } from './feishu/bot.js';
16
+ import { isBotSenderType } from '@excitedjs/feishu-transport';
16
17
  import { dreamuxFeishuGate, loadDispatcherAccess, saveDispatcherAccess, } from './channel/feishu-gate.js';
18
+ import { canRunIntroduce, detectIntroduce, introducedPeers, } from './channel/introduce.js';
19
+ import { observeKnownBot, recordBotAdded, trustIntroducedBots, trustedBotIds, } from './channel/chat-bots-store.js';
17
20
  import { formatFeishuMessageForCodex } from './channel/feishu-message.js';
18
21
  import { parseCodexArgs, codexArgsToCli } from './runtime/codex-args.js';
19
22
  import { feishuMcpCodexArgs } from './codex/mcp-config.js';
@@ -147,41 +150,75 @@ export class Server {
147
150
  });
148
151
  try {
149
152
  await runtime.start();
150
- await bot.start(async (event) => {
151
- const access = loadDispatcherAccess(id);
152
- const gate = dreamuxFeishuGate({
153
- senderId: event.senderId,
154
- senderType: event.senderType,
155
- chatId: event.chatId,
156
- chatType: event.chatType,
157
- mentions: event.mentions,
158
- botOpenId: bot.botOpenId,
159
- }, access);
160
- saveDispatcherAccess(id, gate.access);
161
- if (gate.warning !== null) {
162
- console.error(`[server] trust-domain warning for dispatcher '${id}': ${gate.warning}`);
163
- }
164
- if (gate.action === 'drop') {
165
- console.error(`[server] dropped feishu inbound for dispatcher '${id}': ${gate.reason}`);
166
- return;
167
- }
168
- const input = {
169
- source_chat_id: event.chatId,
170
- source_message_id: event.messageId,
171
- sender_id: event.senderId,
172
- parsed_text: formatFeishuMessageForCodex(event),
173
- };
174
- const delivery = await runtime.enqueueInbound(input, {
175
- onAccepted: async (acceptedInput) => {
176
- await setInboundReaction(id, bot, channelState, acceptedInput, RECEIVED_REACTION_EMOJI, 'received');
177
- },
178
- });
179
- if (delivery.status === 'submitted') {
180
- await setInboundReaction(id, bot, channelState, input, IN_PROGRESS_REACTION_EMOJI, 'in_progress');
181
- }
182
- else if (delivery.status === 'failed') {
183
- console.error(`[server] failed to submit Feishu inbound for dispatcher '${id}': ${delivery.error.message}`);
184
- }
153
+ await bot.start({
154
+ onBotMemberAdded: (added) => {
155
+ // Issue #62 Phase 1/4: record that the bot joined a chat so a later
156
+ // baseline can be injected. Idempotent by event id; no notification.
157
+ recordBotAdded(id, added.chatId, added.eventId);
158
+ },
159
+ onMessage: async (event) => {
160
+ const access = loadDispatcherAccess(id);
161
+ // Issue #62: peer-bot awareness + `/introduce`, evaluated before the
162
+ // delivery gate. A bot seen in an authorized chat becomes *known*
163
+ // (awareness only, never trust). `/introduce` from an allowlisted
164
+ // sender records the named peer bots as *trusted* and is consumed —
165
+ // it never reaches Codex as a normal turn. No `@`-mention is required.
166
+ if (event.chatType === 'group' &&
167
+ isBotSenderType(event.senderType) &&
168
+ access.group.allow_chats.includes(event.chatId)) {
169
+ observeKnownBot(id, event.chatId, {
170
+ openId: event.senderId,
171
+ ...(event.senderName !== '' ? { name: event.senderName } : {}),
172
+ });
173
+ }
174
+ if (detectIntroduce(event.messageType, event.rawContent, event.mentions) &&
175
+ canRunIntroduce(access, {
176
+ chatType: event.chatType,
177
+ chatId: event.chatId,
178
+ senderId: event.senderId,
179
+ })) {
180
+ const peers = introducedPeers(event.mentions, bot.botOpenId);
181
+ if (peers.length > 0)
182
+ trustIntroducedBots(id, event.chatId, peers);
183
+ return;
184
+ }
185
+ const gate = dreamuxFeishuGate({
186
+ senderId: event.senderId,
187
+ senderType: event.senderType,
188
+ chatId: event.chatId,
189
+ chatType: event.chatType,
190
+ mentions: event.mentions,
191
+ botOpenId: bot.botOpenId,
192
+ ...(event.chatType === 'group'
193
+ ? { trustedBotIds: trustedBotIds(id, event.chatId) }
194
+ : {}),
195
+ }, access);
196
+ saveDispatcherAccess(id, gate.access);
197
+ if (gate.warning !== null) {
198
+ console.error(`[server] trust-domain warning for dispatcher '${id}': ${gate.warning}`);
199
+ }
200
+ if (gate.action === 'drop') {
201
+ console.error(`[server] dropped feishu inbound for dispatcher '${id}': ${gate.reason}`);
202
+ return;
203
+ }
204
+ const input = {
205
+ source_chat_id: event.chatId,
206
+ source_message_id: event.messageId,
207
+ sender_id: event.senderId,
208
+ parsed_text: formatFeishuMessageForCodex(event),
209
+ };
210
+ const delivery = await runtime.enqueueInbound(input, {
211
+ onAccepted: async (acceptedInput) => {
212
+ await setInboundReaction(id, bot, channelState, acceptedInput, RECEIVED_REACTION_EMOJI, 'received');
213
+ },
214
+ });
215
+ if (delivery.status === 'submitted') {
216
+ await setInboundReaction(id, bot, channelState, input, IN_PROGRESS_REACTION_EMOJI, 'in_progress');
217
+ }
218
+ else if (delivery.status === 'failed') {
219
+ console.error(`[server] failed to submit Feishu inbound for dispatcher '${id}': ${delivery.error.message}`);
220
+ }
221
+ },
185
222
  });
186
223
  }
187
224
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excitedjs/dreamux",
3
- "version": "0.3.3",
3
+ "version": "0.4.0",
4
4
  "description": "Codex-host server — single-session MVP. One node process hosts N dispatchers, each binding 1 Feishu bot + 1 Codex thread.",
5
5
  "license": "MIT",
6
6
  "repository": {