@zhin.js/game-kit 3.0.0 → 3.0.2
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 +1 -1
- package/lib/command-alias.d.ts +1 -1
- package/lib/command-message.d.ts +1 -1
- package/lib/command-message.d.ts.map +1 -1
- package/lib/command-message.js +11 -5
- package/lib/command-message.js.map +1 -1
- package/lib/define-game-plugin.d.ts.map +1 -1
- package/lib/define-game-plugin.js +4 -2
- package/lib/define-game-plugin.js.map +1 -1
- package/package.json +7 -7
- package/src/command-alias.ts +1 -1
- package/src/command-message.ts +17 -8
- package/src/define-game-plugin.ts +4 -2
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ export default defineGamePlugin({
|
|
|
35
35
|
});
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
- `commands/<name>/[action
|
|
38
|
+
- `commands/<name>/[[action]].ts` 定义命令(可选参数;在 `defineCommand({ params })` 中声明 `action` 的类型与默认值)。
|
|
39
39
|
- `middlewares/` 处理按钮 payload、裸文本答案和旧命令别名。
|
|
40
40
|
- `registerRuntimeGame()` / `getRuntimeGames()` 是大厅 SSOT,dispose 时对称移除。
|
|
41
41
|
- `DEFAULT_GAME_STALE_CRON` 与 `scheduleHostToken` 用于清理超时会话。
|
package/lib/command-alias.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface GameCommandAliasRoute {
|
|
|
13
13
|
/** 首词命中即接管(不含前导 `/`),如 `['21点', 'bj']`。 */
|
|
14
14
|
readonly aliases: readonly string[];
|
|
15
15
|
/**
|
|
16
|
-
* 与 `commands/<cmd>/[action
|
|
16
|
+
* 与 `commands/<cmd>/[[action]].ts` 的 execute 逻辑保持一致:
|
|
17
17
|
* action 为别名后剩余文本(无参数时为 '');返回回复文本,null/undefined 表示放行。
|
|
18
18
|
*/
|
|
19
19
|
run(action: string, input: unknown, context: MiddlewareContext<Message>): Promise<AliasReply | null | undefined>;
|
package/lib/command-message.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Map Plugin Runtime CommandContext.input → classic Message-like shape used by game SessionService.
|
|
3
3
|
*
|
|
4
|
-
* Runtime Message: {
|
|
4
|
+
* Runtime Message: { conversation, sender?, metadata? }
|
|
5
5
|
* Classic Message: { $adapter, $endpoint, $channel, $sender }
|
|
6
6
|
*/
|
|
7
7
|
import type { SendContent } from '@zhin.js/core';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-message.d.ts","sourceRoot":"","sources":["../src/command-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,wFAAwF;AACxF,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAKvC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"command-message.d.ts","sourceRoot":"","sources":["../src/command-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,wFAAwF;AACxF,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAKvC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAgCD,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,eAAe,CAOlD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CA2BvE"}
|
package/lib/command-message.js
CHANGED
|
@@ -12,8 +12,7 @@ function isRuntimeMessage(input) {
|
|
|
12
12
|
if (!input || typeof input !== 'object')
|
|
13
13
|
return false;
|
|
14
14
|
const m = input;
|
|
15
|
-
return ('
|
|
16
|
-
'target' in m ||
|
|
15
|
+
return ('conversation' in m ||
|
|
17
16
|
'sender' in m ||
|
|
18
17
|
(m.metadata != null && typeof m.metadata === 'object'));
|
|
19
18
|
}
|
|
@@ -34,10 +33,17 @@ export function messageFromCommandInput(input) {
|
|
|
34
33
|
return input;
|
|
35
34
|
if (isRuntimeMessage(input)) {
|
|
36
35
|
const meta = input.metadata ?? {};
|
|
37
|
-
const
|
|
36
|
+
const conversation = input.conversation;
|
|
37
|
+
const endpointCapabilityId = typeof conversation?.endpoint?.id === 'string'
|
|
38
|
+
? conversation.endpoint.id
|
|
39
|
+
: undefined;
|
|
40
|
+
const adapterName = endpointCapabilityId
|
|
41
|
+
? (endpointCapabilityId.split('\0').pop() ?? endpointCapabilityId).split('~')[0]
|
|
42
|
+
: undefined;
|
|
43
|
+
const adapter = String(adapterName ?? meta.adapter ?? 'runtime');
|
|
38
44
|
const endpoint = String(meta.endpoint ?? meta.endpointId ?? 'default');
|
|
39
|
-
const channelType = String(meta.type ?? meta.channelType ?? 'private');
|
|
40
|
-
const channelId = String(
|
|
45
|
+
const channelType = String(meta.type ?? meta.channelType ?? conversation?.kind ?? 'private');
|
|
46
|
+
const channelId = String(meta.channelId ?? conversation?.id ?? 'smoke');
|
|
41
47
|
const senderId = String(input.sender ?? meta.senderId ?? 'smoke');
|
|
42
48
|
const senderName = String(meta.senderName ?? meta.name ?? senderId);
|
|
43
49
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-message.js","sourceRoot":"","sources":["../src/command-message.ts"],"names":[],"mappings":"AAsBA,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CACL,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,CAAC,CAAC,QAAQ,IAAI,IAAI;QAClB,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,CAAC,CAAC,OAAO,IAAI,IAAI;QACjB,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAC9B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;
|
|
1
|
+
{"version":3,"file":"command-message.js","sourceRoot":"","sources":["../src/command-message.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-game-plugin.d.ts","sourceRoot":"","sources":["../src/define-game-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,iBAAiB,CAChC,IAAI,SAAS,kBAAkB,GAAG,kBAAkB;IAEpD,UAAU,CACR,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,mBAAmB,CAAC,IAAI,MAAM,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB,CACtC,SAAS,EACT,IAAI,SAAS,kBAAkB,GAAG,kBAAkB,EACpD,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,2FAA2F;IAC3F,QAAQ,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,SAAS,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,CAChB,QAAQ,EAAE,SAAS,KAChB,iBAAiB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC;QACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,CACnB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,KACjC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3B,GAAG,KAAK,CAAC;IACV,QAAQ,CAAC,KAAK,CAAC,EAAE,CACf,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACpC,QAAQ,EAAE,SAAS,KAChB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;CACzD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EACT,IAAI,SAAS,kBAAkB,GAAG,kBAAkB,EACpD,OAAO,GAAG,OAAO,EAEjB,OAAO,EAAE,uBAAuB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"define-game-plugin.d.ts","sourceRoot":"","sources":["../src/define-game-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,iBAAiB,CAChC,IAAI,SAAS,kBAAkB,GAAG,kBAAkB;IAEpD,UAAU,CACR,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,mBAAmB,CAAC,IAAI,MAAM,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB,CACtC,SAAS,EACT,IAAI,SAAS,kBAAkB,GAAG,kBAAkB,EACpD,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,2FAA2F;IAC3F,QAAQ,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,SAAS,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,CAChB,QAAQ,EAAE,SAAS,KAChB,iBAAiB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC;QACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,CACnB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,KACjC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3B,GAAG,KAAK,CAAC;IACV,QAAQ,CAAC,KAAK,CAAC,EAAE,CACf,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACpC,QAAQ,EAAE,SAAS,KAChB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;CACzD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EACT,IAAI,SAAS,kBAAkB,GAAG,kBAAkB,EACpD,OAAO,GAAG,OAAO,EAEjB,OAAO,EAAE,uBAAuB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,yEAiF3D"}
|
|
@@ -67,8 +67,10 @@ export function defineGamePlugin(options) {
|
|
|
67
67
|
await outbound.send({
|
|
68
68
|
adapter: row.adapter,
|
|
69
69
|
endpointId: row.endpoint,
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
conversation: {
|
|
71
|
+
kind: row.channel_type,
|
|
72
|
+
id: row.channel_id,
|
|
73
|
+
},
|
|
72
74
|
content: typeof stale.message === 'function'
|
|
73
75
|
? stale.message(row)
|
|
74
76
|
: stale.message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-game-plugin.js","sourceRoot":"","sources":["../src/define-game-plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"define-game-plugin.js","sourceRoot":"","sources":["../src/define-game-plugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/game-kit",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"description": "Zhin.js 游戏插件通用工具包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"zhin.js": "^6.0.
|
|
17
|
-
"@zhin.js/html-renderer": "3.0.
|
|
16
|
+
"zhin.js": "^6.0.2",
|
|
17
|
+
"@zhin.js/html-renderer": "3.0.2"
|
|
18
18
|
},
|
|
19
19
|
"peerDependenciesMeta": {
|
|
20
20
|
"@zhin.js/html-renderer": {
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@zhin.js/core": "1.5.
|
|
26
|
-
"@zhin.js/middleware": "1.0.
|
|
27
|
-
"@zhin.js/plugin-runtime": "1.1.
|
|
25
|
+
"@zhin.js/core": "1.5.2",
|
|
26
|
+
"@zhin.js/middleware": "1.0.6",
|
|
27
|
+
"@zhin.js/plugin-runtime": "1.1.3",
|
|
28
28
|
"@zhin.js/satori": "1.0.17"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "^6.0.3",
|
|
32
|
-
"zhin.js": "6.0.
|
|
32
|
+
"zhin.js": "6.0.2"
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"lib",
|
package/src/command-alias.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface GameCommandAliasRoute {
|
|
|
15
15
|
/** 首词命中即接管(不含前导 `/`),如 `['21点', 'bj']`。 */
|
|
16
16
|
readonly aliases: readonly string[];
|
|
17
17
|
/**
|
|
18
|
-
* 与 `commands/<cmd>/[action
|
|
18
|
+
* 与 `commands/<cmd>/[[action]].ts` 的 execute 逻辑保持一致:
|
|
19
19
|
* action 为别名后剩余文本(无参数时为 '');返回回复文本,null/undefined 表示放行。
|
|
20
20
|
*/
|
|
21
21
|
run(
|
package/src/command-message.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Map Plugin Runtime CommandContext.input → classic Message-like shape used by game SessionService.
|
|
3
3
|
*
|
|
4
|
-
* Runtime Message: {
|
|
4
|
+
* Runtime Message: { conversation, sender?, metadata? }
|
|
5
5
|
* Classic Message: { $adapter, $endpoint, $channel, $sender }
|
|
6
6
|
*/
|
|
7
7
|
import type { SendContent } from '@zhin.js/core';
|
|
@@ -33,16 +33,18 @@ function isClassicMessage(input: unknown): input is GameMessageLike {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
function isRuntimeMessage(input: unknown): input is {
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
conversation?: {
|
|
37
|
+
endpoint?: { id?: string; adapter?: string };
|
|
38
|
+
kind?: string;
|
|
39
|
+
id?: string;
|
|
40
|
+
};
|
|
38
41
|
sender?: string;
|
|
39
42
|
metadata?: Readonly<Record<string, unknown>>;
|
|
40
43
|
} {
|
|
41
44
|
if (!input || typeof input !== 'object') return false;
|
|
42
45
|
const m = input as Record<string, unknown>;
|
|
43
46
|
return (
|
|
44
|
-
'
|
|
45
|
-
'target' in m ||
|
|
47
|
+
'conversation' in m ||
|
|
46
48
|
'sender' in m ||
|
|
47
49
|
(m.metadata != null && typeof m.metadata === 'object')
|
|
48
50
|
);
|
|
@@ -66,10 +68,17 @@ export function messageFromCommandInput(input: unknown): GameMessageLike {
|
|
|
66
68
|
|
|
67
69
|
if (isRuntimeMessage(input)) {
|
|
68
70
|
const meta = input.metadata ?? {};
|
|
69
|
-
const
|
|
71
|
+
const conversation = input.conversation;
|
|
72
|
+
const endpointCapabilityId = typeof conversation?.endpoint?.id === 'string'
|
|
73
|
+
? conversation.endpoint.id
|
|
74
|
+
: undefined;
|
|
75
|
+
const adapterName = endpointCapabilityId
|
|
76
|
+
? (endpointCapabilityId.split('\0').pop() ?? endpointCapabilityId).split('~')[0]
|
|
77
|
+
: undefined;
|
|
78
|
+
const adapter = String(adapterName ?? meta.adapter ?? 'runtime');
|
|
70
79
|
const endpoint = String(meta.endpoint ?? meta.endpointId ?? 'default');
|
|
71
|
-
const channelType = String(meta.type ?? meta.channelType ?? 'private');
|
|
72
|
-
const channelId = String(
|
|
80
|
+
const channelType = String(meta.type ?? meta.channelType ?? conversation?.kind ?? 'private');
|
|
81
|
+
const channelId = String(meta.channelId ?? conversation?.id ?? 'smoke');
|
|
73
82
|
const senderId = String(input.sender ?? meta.senderId ?? 'smoke');
|
|
74
83
|
const senderName = String(meta.senderName ?? meta.name ?? senderId);
|
|
75
84
|
return {
|
|
@@ -143,8 +143,10 @@ export function defineGamePlugin<
|
|
|
143
143
|
await outbound.send({
|
|
144
144
|
adapter: row.adapter,
|
|
145
145
|
endpointId: row.endpoint,
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
conversation: {
|
|
147
|
+
kind: row.channel_type as 'private' | 'group' | 'channel',
|
|
148
|
+
id: row.channel_id,
|
|
149
|
+
},
|
|
148
150
|
content: typeof stale.message === 'function'
|
|
149
151
|
? stale.message(row)
|
|
150
152
|
: stale.message
|