@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 CHANGED
@@ -35,7 +35,7 @@ export default defineGamePlugin({
35
35
  });
36
36
  ```
37
37
 
38
- - `commands/<name>/[action:string=].ts` 定义命令。
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` 用于清理超时会话。
@@ -13,7 +13,7 @@ export interface GameCommandAliasRoute {
13
13
  /** 首词命中即接管(不含前导 `/`),如 `['21点', 'bj']`。 */
14
14
  readonly aliases: readonly string[];
15
15
  /**
16
- * 与 `commands/<cmd>/[action:string=].ts` 的 execute 逻辑保持一致:
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>;
@@ -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: { adapter, target, sender?, metadata? }
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;AA8BD,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,eAAe,CAOlD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAoBvE"}
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"}
@@ -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 ('adapter' in m ||
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 adapter = String(input.adapter ?? meta.adapter ?? 'runtime');
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(input.target ?? meta.channelId ?? 'smoke');
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;IAMtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CACL,SAAS,IAAI,CAAC;QACd,QAAQ,IAAI,CAAC;QACb,QAAQ,IAAI,CAAC;QACb,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE;QAC1C,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;KACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1C,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;QACpE,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;YAC9C,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE;SAC5C,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC"}
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,yEA+E3D"}
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
- channelType: row.channel_type,
71
- channelId: row.channel_id,
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.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.0",
17
- "@zhin.js/html-renderer": "3.0.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.0",
26
- "@zhin.js/middleware": "1.0.4",
27
- "@zhin.js/plugin-runtime": "1.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.0"
32
+ "zhin.js": "6.0.2"
33
33
  },
34
34
  "files": [
35
35
  "lib",
@@ -15,7 +15,7 @@ export interface GameCommandAliasRoute {
15
15
  /** 首词命中即接管(不含前导 `/`),如 `['21点', 'bj']`。 */
16
16
  readonly aliases: readonly string[];
17
17
  /**
18
- * 与 `commands/<cmd>/[action:string=].ts` 的 execute 逻辑保持一致:
18
+ * 与 `commands/<cmd>/[[action]].ts` 的 execute 逻辑保持一致:
19
19
  * action 为别名后剩余文本(无参数时为 '');返回回复文本,null/undefined 表示放行。
20
20
  */
21
21
  run(
@@ -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: { adapter, target, sender?, metadata? }
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
- adapter?: string;
37
- target?: string;
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
- 'adapter' in m ||
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 adapter = String(input.adapter ?? meta.adapter ?? 'runtime');
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(input.target ?? meta.channelId ?? 'smoke');
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
- channelType: row.channel_type,
147
- channelId: row.channel_id,
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