@zhin.js/plugin-content-moderation 1.1.18 → 1.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/group-moderation.js +1 -1
- package/lib/group-moderation.js.map +1 -1
- package/lib/group-review-queue.d.ts +17 -1
- package/lib/group-review-queue.d.ts.map +1 -1
- package/lib/group-review-queue.js +16 -1
- package/lib/group-review-queue.js.map +1 -1
- package/middlewares/inbound/index.js +42 -24
- package/middlewares/inbound/index.ts +35 -24
- package/package.json +5 -5
- package/plugin.js +7 -0
- package/src/group-moderation.ts +1 -1
- package/src/group-review-queue.ts +28 -2
package/lib/group-moderation.js
CHANGED
|
@@ -119,7 +119,7 @@ export class GroupModerator {
|
|
|
119
119
|
}
|
|
120
120
|
messageClaimed = true;
|
|
121
121
|
signal.throwIfAborted();
|
|
122
|
-
const member = await management.inspectGroupMember(input.group, input.sender, signal);
|
|
122
|
+
const member = await management.inspectGroupMember({ groupId: input.group, userId: input.sender, signal });
|
|
123
123
|
if (!member.canModerate)
|
|
124
124
|
return;
|
|
125
125
|
signal.throwIfAborted();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-moderation.js","sourceRoot":"","sources":["../src/group-moderation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"group-moderation.js","sourceRoot":"","sources":["../src/group-moderation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,30 @@
|
|
|
1
|
-
import { generationAdmissionSource } from 'zhin.js/plugin-runtime';
|
|
1
|
+
import { generationAdmissionSource, type PluginId } from 'zhin.js/plugin-runtime';
|
|
2
2
|
import type { GroupModerationInput, GroupModerator } from './group-moderation.js';
|
|
3
|
+
/** Exact source ownership captured while the inbound operation is still live. */
|
|
4
|
+
interface GroupReviewSourceInput {
|
|
5
|
+
readonly owner: PluginId;
|
|
6
|
+
/** Carries caller cancellation, account epoch retirement and explicit Root stop. */
|
|
7
|
+
readonly signal: AbortSignal;
|
|
8
|
+
}
|
|
9
|
+
interface CapturedGroupReviewSource {
|
|
10
|
+
readonly signal: AbortSignal;
|
|
11
|
+
/** Ends only this registration; it never resumes or replays detached work. */
|
|
12
|
+
release(): void;
|
|
13
|
+
}
|
|
3
14
|
/** One generation-owned worker; per-scene bounded buffers, no persisted/replayed punishment jobs. */
|
|
4
15
|
export declare class GroupReviewQueue {
|
|
5
16
|
#private;
|
|
6
17
|
get [generationAdmissionSource](): import("zhin.js").GenerationAdmissionGate[];
|
|
7
18
|
constructor(moderator: GroupModerator);
|
|
19
|
+
/** Bind detached review work to its actual Adapter owner, not a replaceable generation gate. */
|
|
20
|
+
captureSource(input: GroupReviewSourceInput): CapturedGroupReviewSource;
|
|
21
|
+
/** Existing cancellation policy, applied only to the actual committed replacement set. */
|
|
22
|
+
cancelReplacedSources(owners: readonly PluginId[]): void;
|
|
8
23
|
stop(): void;
|
|
9
24
|
/** Resolves on admission, not classification. Full buffers explicitly audit skipped reviews. */
|
|
10
25
|
enqueue(input: GroupModerationInput): Promise<{
|
|
11
26
|
done: Promise<boolean>;
|
|
12
27
|
}>;
|
|
13
28
|
}
|
|
29
|
+
export {};
|
|
14
30
|
//# sourceMappingURL=group-review-queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-review-queue.d.ts","sourceRoot":"","sources":["../src/group-review-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"group-review-queue.d.ts","sourceRoot":"","sources":["../src/group-review-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,yBAAyB,EAAE,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACjH,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASlF,iFAAiF;AACjF,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AACD,UAAU,yBAAyB;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,8EAA8E;IAC9E,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,qGAAqG;AACrG,qBAAa,gBAAgB;;IAS3B,IAAI,CAAC,yBAAyB,CAAC,gDAA2B;gBAE9C,SAAS,EAAE,cAAc;IAIrC,gGAAgG;IAChG,aAAa,CAAC,KAAK,EAAE,sBAAsB,GAAG,yBAAyB;IAMvE,0FAA0F;IAC1F,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI;IAMxD,IAAI,IAAI,IAAI;IAWZ,gGAAgG;IAC1F,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAgGhF"}
|
|
@@ -9,16 +9,31 @@ export class GroupReviewQueue {
|
|
|
9
9
|
#gate = createGenerationAdmissionGate();
|
|
10
10
|
#abort = new AbortController();
|
|
11
11
|
#scenes = new Map();
|
|
12
|
+
#sources = new Set();
|
|
12
13
|
#timer;
|
|
13
14
|
#running = false;
|
|
14
15
|
#order = 0;
|
|
15
16
|
get [generationAdmissionSource]() { return [this.#gate]; }
|
|
16
17
|
constructor(moderator) {
|
|
17
18
|
this.#moderator = moderator;
|
|
18
|
-
|
|
19
|
+
}
|
|
20
|
+
/** Bind detached review work to its actual Adapter owner, not a replaceable generation gate. */
|
|
21
|
+
captureSource(input) {
|
|
22
|
+
const source = { owner: input.owner, abort: new AbortController() };
|
|
23
|
+
this.#sources.add(source);
|
|
24
|
+
return { signal: AbortSignal.any([input.signal, source.abort.signal]), release: () => { this.#sources.delete(source); } };
|
|
25
|
+
}
|
|
26
|
+
/** Existing cancellation policy, applied only to the actual committed replacement set. */
|
|
27
|
+
cancelReplacedSources(owners) {
|
|
28
|
+
for (const source of this.#sources) {
|
|
29
|
+
if (owners.includes(source.owner))
|
|
30
|
+
source.abort.abort(new Error('Moderation source Adapter was replaced'));
|
|
31
|
+
}
|
|
19
32
|
}
|
|
20
33
|
stop() {
|
|
21
34
|
this.#abort.abort(new Error('Group review generation retired'));
|
|
35
|
+
for (const source of this.#sources)
|
|
36
|
+
source.abort.abort(this.#abort.signal.reason);
|
|
22
37
|
clearTimeout(this.#timer);
|
|
23
38
|
this.#timer = undefined;
|
|
24
39
|
for (const scene of this.#scenes.values()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-review-queue.js","sourceRoot":"","sources":["../src/group-review-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"group-review-queue.js","sourceRoot":"","sources":["../src/group-review-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { defineMiddleware } from 'zhin.js/middleware';
|
|
|
3
3
|
import { aiCompletionToken, createDeliveryTarget, databaseHostToken, getLogger, hasResource, outboundHostToken, usageSubjectFromMessage } from 'zhin.js';
|
|
4
4
|
import { adapterFeatureId } from 'zhin.js/adapter';
|
|
5
5
|
import { groupRuleViolationToken } from '@zhin.js/core/runtime';
|
|
6
|
-
import {
|
|
6
|
+
import {} from 'zhin.js/plugin-runtime';
|
|
7
7
|
import { resolveLocale } from 'zhin.js/i18n';
|
|
8
8
|
import { buildScanContext, extractFromTextAndSegments, resolveModerationConfig, shouldBypassInbound, } from "../../lib/index.js";
|
|
9
9
|
import { moderationEngineToken } from "../../lib/runtime.js";
|
|
@@ -77,8 +77,6 @@ export default defineMiddleware({
|
|
|
77
77
|
return false;
|
|
78
78
|
const conv = message.conversation;
|
|
79
79
|
await host.recall({
|
|
80
|
-
adapter: conv.endpoint.adapter,
|
|
81
|
-
endpointKey: conv.endpoint.id,
|
|
82
80
|
message: {
|
|
83
81
|
conversation: {
|
|
84
82
|
kind: conv.kind,
|
|
@@ -142,35 +140,56 @@ async function enqueueGroupModeration(context, config, bypass) {
|
|
|
142
140
|
&& hasResource(context, aiCompletionToken) && hasResource(context, databaseHostToken)
|
|
143
141
|
&& hasResource(context, outboundHostToken)) {
|
|
144
142
|
const host = context.use(outboundHostToken);
|
|
145
|
-
if (!host.
|
|
143
|
+
if (!host.captureOperation)
|
|
146
144
|
return;
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
145
|
+
const client = context.$client;
|
|
146
|
+
if (client === undefined)
|
|
147
|
+
throw new Error('Moderation source Client is unavailable');
|
|
148
|
+
// This work outlives the Message. Its own lease keeps the captured incarnation's
|
|
149
|
+
// cancellation wired after the inbound operation releases its child lease.
|
|
150
|
+
const sourceOwner = adapters.owner(conversation.endpoint.id);
|
|
151
|
+
const child = adapters.acquire(conversation.endpoint.id, context.signal, client);
|
|
152
|
+
const source = engine.groupReviewQueue.captureSource({ owner: sourceOwner,
|
|
153
|
+
signal: AbortSignal.any([context.signal, child.signal]) });
|
|
154
|
+
let operation;
|
|
155
|
+
const finish = () => { try {
|
|
156
|
+
operation?.release();
|
|
157
|
+
}
|
|
158
|
+
finally {
|
|
159
|
+
source.release();
|
|
160
|
+
child.release();
|
|
161
|
+
} };
|
|
159
162
|
try {
|
|
163
|
+
const signal = source.signal;
|
|
164
|
+
operation = host.captureOperation({ target: destination, client, signal });
|
|
165
|
+
const captured = operation;
|
|
166
|
+
const messageId = message.id ?? '';
|
|
167
|
+
const management = adapters.management(conversation.endpoint.id, {
|
|
168
|
+
signal, assertActive: () => child.assertActive(),
|
|
169
|
+
});
|
|
170
|
+
const assertTarget = () => {
|
|
171
|
+
signal.throwIfAborted();
|
|
172
|
+
child.assertActive();
|
|
173
|
+
if (endpoint.identity.id !== conversation.endpoint.id || endpoint.selfUserId !== target.account
|
|
174
|
+
|| endpoint.identity.adapter !== target.adapter) {
|
|
175
|
+
throw new Error('Moderation target account is no longer active');
|
|
176
|
+
}
|
|
177
|
+
};
|
|
160
178
|
const queued = await engine.groupReviewQueue.enqueue({
|
|
161
179
|
scope, group: conversation.id, sender: message.sender.id, locale,
|
|
162
180
|
messageId, sentAt: Number(message.metadata?.platformSentAt), text, ...remembered,
|
|
163
181
|
signal,
|
|
164
182
|
state: context.use(databaseHostToken).state.forConversation(destination),
|
|
165
183
|
completion: context.use(aiCompletionToken), management: {
|
|
166
|
-
inspectGroupMember:
|
|
184
|
+
inspectGroupMember: management?.inspectGroupMember ? async (request) => {
|
|
167
185
|
assertTarget();
|
|
168
|
-
return
|
|
186
|
+
return management.inspectGroupMember(request);
|
|
169
187
|
} : undefined,
|
|
170
188
|
},
|
|
171
189
|
...(rules ? { rules: async (hit) => {
|
|
172
190
|
assertTarget();
|
|
173
191
|
return rules.report({
|
|
192
|
+
source: { client, signal },
|
|
174
193
|
conversation, memberId: message.sender.id, trigger: hit.category, newcomer: hit.newcomer,
|
|
175
194
|
sentAt: Number(message.metadata?.platformSentAt), evidence: hit.evidence,
|
|
176
195
|
...(message.sender?.name ? { memberName: message.sender.name } : {}),
|
|
@@ -182,7 +201,7 @@ async function enqueueGroupModeration(context, config, bypass) {
|
|
|
182
201
|
onBehalfOf: usageSubjectFromMessage(message),
|
|
183
202
|
reply: async (content, mention) => {
|
|
184
203
|
assertTarget();
|
|
185
|
-
const receipt = await
|
|
204
|
+
const receipt = await captured.send(mention ? [
|
|
186
205
|
{ type: 'mention', data: { target: mention } },
|
|
187
206
|
{ type: 'text', data: { text: ` ${content}` } },
|
|
188
207
|
] : content, { locale });
|
|
@@ -191,17 +210,16 @@ async function enqueueGroupModeration(context, config, bypass) {
|
|
|
191
210
|
},
|
|
192
211
|
recall: async () => {
|
|
193
212
|
assertTarget();
|
|
194
|
-
if (!
|
|
213
|
+
if (!captured.recall || !messageId)
|
|
195
214
|
throw new Error('Original message cannot be recalled');
|
|
196
|
-
await
|
|
197
|
-
message: { conversation, id: messageId } });
|
|
215
|
+
await captured.recall({ conversation, id: messageId });
|
|
198
216
|
},
|
|
199
217
|
audit: (event) => logger.info({ ...event, endpoint: conversation.endpoint.id, group: conversation.id }),
|
|
200
218
|
});
|
|
201
|
-
return { done: queued.done.finally(
|
|
219
|
+
return { done: queued.done.finally(finish) };
|
|
202
220
|
}
|
|
203
221
|
catch (error) {
|
|
204
|
-
|
|
222
|
+
finish();
|
|
205
223
|
throw error;
|
|
206
224
|
}
|
|
207
225
|
}
|
|
@@ -4,7 +4,7 @@ import { aiCompletionToken, createDeliveryTarget, databaseHostToken, getLogger,
|
|
|
4
4
|
outboundHostToken, usageSubjectFromMessage } from 'zhin.js';
|
|
5
5
|
import { adapterFeatureId, type AdapterIndex } from 'zhin.js/adapter';
|
|
6
6
|
import { groupRuleViolationToken, type GroupRuleViolationSink } from '@zhin.js/core/runtime';
|
|
7
|
-
import {
|
|
7
|
+
import { type CapabilityId } from 'zhin.js/plugin-runtime';
|
|
8
8
|
import { resolveLocale } from 'zhin.js/i18n';
|
|
9
9
|
import {
|
|
10
10
|
buildScanContext,
|
|
@@ -89,8 +89,6 @@ export default defineMiddleware<Message, ModerationConfig>({
|
|
|
89
89
|
if (!host.recall) return false;
|
|
90
90
|
const conv = message.conversation;
|
|
91
91
|
await host.recall({
|
|
92
|
-
adapter: conv.endpoint.adapter,
|
|
93
|
-
endpointKey: conv.endpoint.id,
|
|
94
92
|
message: {
|
|
95
93
|
conversation: {
|
|
96
94
|
kind: conv.kind,
|
|
@@ -154,33 +152,47 @@ async function enqueueGroupModeration(
|
|
|
154
152
|
&& hasResource(context, aiCompletionToken) && hasResource(context, databaseHostToken)
|
|
155
153
|
&& hasResource(context, outboundHostToken)) {
|
|
156
154
|
const host = context.use(outboundHostToken);
|
|
157
|
-
if (!host.
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
};
|
|
155
|
+
if (!host.captureOperation) return;
|
|
156
|
+
const client = context.$client;
|
|
157
|
+
if (client === undefined) throw new Error('Moderation source Client is unavailable');
|
|
158
|
+
// This work outlives the Message. Its own lease keeps the captured incarnation's
|
|
159
|
+
// cancellation wired after the inbound operation releases its child lease.
|
|
160
|
+
const sourceOwner = adapters.owner(conversation.endpoint.id as CapabilityId);
|
|
161
|
+
const child = adapters.acquire(conversation.endpoint.id as CapabilityId, context.signal, client);
|
|
162
|
+
const source = engine.groupReviewQueue.captureSource({ owner: sourceOwner,
|
|
163
|
+
signal: AbortSignal.any([context.signal, child.signal]) });
|
|
164
|
+
let operation: ReturnType<NonNullable<typeof host.captureOperation>> | undefined;
|
|
165
|
+
const finish = () => { try { operation?.release(); } finally { source.release(); child.release(); } };
|
|
170
166
|
try {
|
|
167
|
+
const signal = source.signal;
|
|
168
|
+
operation = host.captureOperation({ target: destination, client, signal });
|
|
169
|
+
const captured = operation;
|
|
170
|
+
const messageId = message.id ?? '';
|
|
171
|
+
const management = adapters.management(conversation.endpoint.id as CapabilityId, {
|
|
172
|
+
signal, assertActive: () => child.assertActive(),
|
|
173
|
+
});
|
|
174
|
+
const assertTarget = () => {
|
|
175
|
+
signal.throwIfAborted();
|
|
176
|
+
child.assertActive();
|
|
177
|
+
if (endpoint.identity.id !== conversation.endpoint.id || endpoint.selfUserId !== target.account
|
|
178
|
+
|| endpoint.identity.adapter !== target.adapter) {
|
|
179
|
+
throw new Error('Moderation target account is no longer active');
|
|
180
|
+
}
|
|
181
|
+
};
|
|
171
182
|
const queued = await engine.groupReviewQueue.enqueue({
|
|
172
183
|
scope, group: conversation.id, sender: message.sender.id, locale,
|
|
173
184
|
messageId, sentAt: Number(message.metadata?.platformSentAt), text, ...remembered,
|
|
174
185
|
signal,
|
|
175
186
|
state: context.use(databaseHostToken).state.forConversation(destination),
|
|
176
187
|
completion: context.use(aiCompletionToken), management: {
|
|
177
|
-
inspectGroupMember:
|
|
178
|
-
assertTarget(); return
|
|
188
|
+
inspectGroupMember: management?.inspectGroupMember ? async request => {
|
|
189
|
+
assertTarget(); return management.inspectGroupMember!(request);
|
|
179
190
|
} : undefined,
|
|
180
191
|
},
|
|
181
192
|
...(rules ? { rules: async (hit) => {
|
|
182
193
|
assertTarget();
|
|
183
194
|
return rules.report({
|
|
195
|
+
source: { client, signal },
|
|
184
196
|
conversation, memberId: message.sender!.id, trigger: hit.category, newcomer: hit.newcomer,
|
|
185
197
|
sentAt: Number(message.metadata?.platformSentAt), evidence: hit.evidence,
|
|
186
198
|
...(message.sender?.name ? { memberName: message.sender.name } : {}),
|
|
@@ -192,7 +204,7 @@ async function enqueueGroupModeration(
|
|
|
192
204
|
onBehalfOf: usageSubjectFromMessage(message),
|
|
193
205
|
reply: async (content, mention) => {
|
|
194
206
|
assertTarget();
|
|
195
|
-
const receipt = await
|
|
207
|
+
const receipt = await captured.send(mention ? [
|
|
196
208
|
{ type: 'mention', data: { target: mention } },
|
|
197
209
|
{ type: 'text', data: { text: ` ${content}` } },
|
|
198
210
|
] : content, { locale });
|
|
@@ -200,15 +212,14 @@ async function enqueueGroupModeration(
|
|
|
200
212
|
},
|
|
201
213
|
recall: async () => {
|
|
202
214
|
assertTarget();
|
|
203
|
-
if (!
|
|
204
|
-
await
|
|
205
|
-
message: { conversation, id: messageId } });
|
|
215
|
+
if (!captured.recall || !messageId) throw new Error('Original message cannot be recalled');
|
|
216
|
+
await captured.recall({ conversation, id: messageId });
|
|
206
217
|
},
|
|
207
218
|
audit: (event) => logger.info({ ...event, endpoint: conversation.endpoint.id, group: conversation.id }),
|
|
208
219
|
});
|
|
209
|
-
return { done: queued.done.finally(
|
|
220
|
+
return { done: queued.done.finally(finish) };
|
|
210
221
|
} catch (error) {
|
|
211
|
-
|
|
222
|
+
finish(); throw error;
|
|
212
223
|
}
|
|
213
224
|
}
|
|
214
225
|
} catch (error) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/plugin-content-moderation",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.20",
|
|
4
4
|
"description": "Content moderation plugin for Zhin.js — inbound/outbound multi-source scanning (Plugin Runtime)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
},
|
|
38
38
|
"license": "MIT",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@zhin.js/core": "1.1.
|
|
40
|
+
"@zhin.js/core": "1.1.55",
|
|
41
41
|
"@zhin.js/logger": "1.1.2"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"typescript": "^6.0.3",
|
|
45
45
|
"vitest": "^4.1.10",
|
|
46
|
-
"zhin.js": "1.1.
|
|
46
|
+
"zhin.js": "1.1.20"
|
|
47
47
|
},
|
|
48
48
|
"repository": {
|
|
49
49
|
"type": "git",
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
"plugins": []
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
|
-
"@zhin.js/middleware": "^1.1.
|
|
76
|
-
"zhin.js": "^1.1.
|
|
75
|
+
"@zhin.js/middleware": "^1.1.12",
|
|
76
|
+
"zhin.js": "^1.1.20"
|
|
77
77
|
},
|
|
78
78
|
"peerDependenciesMeta": {
|
|
79
79
|
"@zhin.js/middleware": {
|
package/plugin.js
CHANGED
|
@@ -14,6 +14,13 @@ export default definePlugin({
|
|
|
14
14
|
const engine = new ModerationEngine();
|
|
15
15
|
engine.configure(context.config.get());
|
|
16
16
|
context.resources.provide(moderationEngineToken, engine);
|
|
17
|
+
context.events.on('hmr.resume', ({ details }) => {
|
|
18
|
+
if (details.outcome !== 'committed')
|
|
19
|
+
return;
|
|
20
|
+
engine.groupReviewQueue.cancelReplacedSources(details.replaced);
|
|
21
|
+
if (details.receiver.state === 'replaced')
|
|
22
|
+
engine.groupReviewQueue.stop();
|
|
23
|
+
});
|
|
17
24
|
return () => engine.groupReviewQueue.stop();
|
|
18
25
|
},
|
|
19
26
|
});
|
package/src/group-moderation.ts
CHANGED
|
@@ -172,7 +172,7 @@ export class GroupModerator {
|
|
|
172
172
|
}
|
|
173
173
|
messageClaimed = true;
|
|
174
174
|
signal.throwIfAborted();
|
|
175
|
-
const member = await management.inspectGroupMember(input.group, input.sender, signal);
|
|
175
|
+
const member = await management.inspectGroupMember({ groupId: input.group, userId: input.sender, signal });
|
|
176
176
|
if (!member.canModerate) return;
|
|
177
177
|
signal.throwIfAborted();
|
|
178
178
|
const result = classify ? await classify(signal) : await input.completion.completeText({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createGenerationAdmissionGate, generationAdmissionSource } from 'zhin.js/plugin-runtime';
|
|
1
|
+
import { createGenerationAdmissionGate, generationAdmissionSource, type PluginId } from 'zhin.js/plugin-runtime';
|
|
2
2
|
import type { GroupModerationInput, GroupModerator } from './group-moderation.js';
|
|
3
3
|
import { deferred, REQUEST_BATCHES, reviewGroupBatch, takeGroupBatch } from './group-review-batch.js';
|
|
4
4
|
|
|
@@ -8,6 +8,17 @@ const MAX_PENDING_BYTES = 256 * 1024;
|
|
|
8
8
|
type Entry = { input: GroupModerationInput; sender: string; bytes: number; order: number;
|
|
9
9
|
done: ReturnType<typeof deferred<boolean>>; ownsRecall: boolean; detach(): void };
|
|
10
10
|
type Scene = { pending: Entry[]; bytes: number; active: Map<string, Entry> };
|
|
11
|
+
/** Exact source ownership captured while the inbound operation is still live. */
|
|
12
|
+
interface GroupReviewSourceInput {
|
|
13
|
+
readonly owner: PluginId;
|
|
14
|
+
/** Carries caller cancellation, account epoch retirement and explicit Root stop. */
|
|
15
|
+
readonly signal: AbortSignal;
|
|
16
|
+
}
|
|
17
|
+
interface CapturedGroupReviewSource {
|
|
18
|
+
readonly signal: AbortSignal;
|
|
19
|
+
/** Ends only this registration; it never resumes or replays detached work. */
|
|
20
|
+
release(): void;
|
|
21
|
+
}
|
|
11
22
|
|
|
12
23
|
/** One generation-owned worker; per-scene bounded buffers, no persisted/replayed punishment jobs. */
|
|
13
24
|
export class GroupReviewQueue {
|
|
@@ -15,6 +26,7 @@ export class GroupReviewQueue {
|
|
|
15
26
|
readonly #gate = createGenerationAdmissionGate();
|
|
16
27
|
readonly #abort = new AbortController();
|
|
17
28
|
readonly #scenes = new Map<string, Scene>();
|
|
29
|
+
readonly #sources = new Set<{ readonly owner: PluginId; readonly abort: AbortController }>();
|
|
18
30
|
#timer?: ReturnType<typeof setTimeout>;
|
|
19
31
|
#running = false;
|
|
20
32
|
#order = 0;
|
|
@@ -22,11 +34,25 @@ export class GroupReviewQueue {
|
|
|
22
34
|
|
|
23
35
|
constructor(moderator: GroupModerator) {
|
|
24
36
|
this.#moderator = moderator;
|
|
25
|
-
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Bind detached review work to its actual Adapter owner, not a replaceable generation gate. */
|
|
40
|
+
captureSource(input: GroupReviewSourceInput): CapturedGroupReviewSource {
|
|
41
|
+
const source = { owner: input.owner, abort: new AbortController() };
|
|
42
|
+
this.#sources.add(source);
|
|
43
|
+
return { signal: AbortSignal.any([input.signal, source.abort.signal]), release: () => { this.#sources.delete(source); } };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Existing cancellation policy, applied only to the actual committed replacement set. */
|
|
47
|
+
cancelReplacedSources(owners: readonly PluginId[]): void {
|
|
48
|
+
for (const source of this.#sources) {
|
|
49
|
+
if (owners.includes(source.owner)) source.abort.abort(new Error('Moderation source Adapter was replaced'));
|
|
50
|
+
}
|
|
26
51
|
}
|
|
27
52
|
|
|
28
53
|
stop(): void {
|
|
29
54
|
this.#abort.abort(new Error('Group review generation retired'));
|
|
55
|
+
for (const source of this.#sources) source.abort.abort(this.#abort.signal.reason);
|
|
30
56
|
clearTimeout(this.#timer); this.#timer = undefined;
|
|
31
57
|
for (const scene of this.#scenes.values()) {
|
|
32
58
|
for (const entry of scene.pending) this.#finish(entry);
|