koishi-plugin-onebot-group-manage 0.0.4 → 0.0.6

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/index.js CHANGED
@@ -31,10 +31,13 @@ var import_koishi = require("koishi");
31
31
  var import_tools = require("@langchain/core/tools");
32
32
  var import_zod = require("zod");
33
33
  var GroupMuteTool = class extends import_tools.StructuredTool {
34
- constructor(runMute, verbose) {
34
+ constructor(ctx, handlers, config, logger, logVerbose) {
35
35
  super();
36
- this.runMute = runMute;
37
- this.verbose = verbose;
36
+ this.ctx = ctx;
37
+ this.handlers = handlers;
38
+ this.config = config;
39
+ this.logger = logger;
40
+ this.logVerbose = logVerbose;
38
41
  }
39
42
  static {
40
43
  __name(this, "GroupMuteTool");
@@ -44,24 +47,35 @@ var GroupMuteTool = class extends import_tools.StructuredTool {
44
47
  schema = import_zod.z.object({
45
48
  groupId: import_zod.z.string().trim().min(1).describe("目标群号,不填则使用当前会话群").optional(),
46
49
  userId: import_zod.z.string().trim().min(1).describe("要禁言的成员 QQ 号"),
47
- duration: import_zod.z.number().int().positive().describe("禁言时长(秒),0秒为解除禁言")
50
+ duration: import_zod.z.number().int().positive().describe("禁言时长(秒)")
48
51
  });
49
52
  async _call(input, _runManager, runnableConfig) {
50
53
  const session = runnableConfig?.configurable?.session;
51
54
  if (!session) return "缺少 session,无法执行禁言";
52
- const result = await this.runMute(session, {
53
- targetId: input.userId,
54
- duration: input.duration,
55
- guildId: input.groupId
56
- });
57
- return typeof result === "string" ? result : JSON.stringify(result);
55
+ try {
56
+ const result = await this.handlers.performMute(
57
+ this.ctx,
58
+ session,
59
+ { targetId: input.userId, duration: input.duration, guildId: input.groupId },
60
+ this.config,
61
+ this.logger,
62
+ this.logVerbose
63
+ );
64
+ return typeof result === "string" ? result : JSON.stringify(result);
65
+ } catch (error) {
66
+ this.logger.warn(error);
67
+ return `禁言失败:${error?.message || String(error)}`;
68
+ }
58
69
  }
59
70
  };
60
71
  var GroupTitleTool = class extends import_tools.StructuredTool {
61
- constructor(runTitle, verbose) {
72
+ constructor(ctx, handlers, config, logger, logVerbose) {
62
73
  super();
63
- this.runTitle = runTitle;
64
- this.verbose = verbose;
74
+ this.ctx = ctx;
75
+ this.handlers = handlers;
76
+ this.config = config;
77
+ this.logger = logger;
78
+ this.logVerbose = logVerbose;
65
79
  }
66
80
  static {
67
81
  __name(this, "GroupTitleTool");
@@ -76,12 +90,20 @@ var GroupTitleTool = class extends import_tools.StructuredTool {
76
90
  async _call(input, _runManager, runnableConfig) {
77
91
  const session = runnableConfig?.configurable?.session;
78
92
  if (!session) return "缺少 session,无法设置头衔";
79
- const result = await this.runTitle(session, {
80
- targetId: input.userId,
81
- title: input.title,
82
- guildId: input.groupId
83
- });
84
- return typeof result === "string" ? result : JSON.stringify(result);
93
+ try {
94
+ const result = await this.handlers.performTitle(
95
+ this.ctx,
96
+ session,
97
+ { targetId: input.userId, title: input.title, guildId: input.groupId },
98
+ this.config,
99
+ this.logger,
100
+ this.logVerbose
101
+ );
102
+ return typeof result === "string" ? result : JSON.stringify(result);
103
+ } catch (error) {
104
+ this.logger.warn(error);
105
+ return `设置头衔失败:${error?.message || String(error)}`;
106
+ }
85
107
  }
86
108
  };
87
109
  function registerChatlunaTools(ctx, config, logger, verbose, handlers) {
@@ -92,19 +114,13 @@ function registerChatlunaTools(ctx, config, logger, verbose, handlers) {
92
114
  }
93
115
  ctx.effect(
94
116
  () => platform.registerTool("group_mute", {
95
- createTool: /* @__PURE__ */ __name(() => new GroupMuteTool(
96
- (session, params) => handlers.performMute(ctx, session, params, config, logger, verbose),
97
- verbose
98
- ), "createTool"),
117
+ createTool: /* @__PURE__ */ __name(() => new GroupMuteTool(ctx, handlers, config, logger, verbose), "createTool"),
99
118
  selector: /* @__PURE__ */ __name(() => true, "selector")
100
119
  })
101
120
  );
102
121
  ctx.effect(
103
122
  () => platform.registerTool("group_set_title", {
104
- createTool: /* @__PURE__ */ __name(() => new GroupTitleTool(
105
- (session, params) => handlers.performTitle(ctx, session, params, config, logger, verbose),
106
- verbose
107
- ), "createTool"),
123
+ createTool: /* @__PURE__ */ __name(() => new GroupTitleTool(ctx, handlers, config, logger, verbose), "createTool"),
108
124
  selector: /* @__PURE__ */ __name(() => true, "selector")
109
125
  })
110
126
  );
package/lib/tools.d.ts CHANGED
@@ -1,17 +1,16 @@
1
1
  import { Context, Session } from 'koishi';
2
+ import type { Config } from '.';
2
3
  interface Handlers {
3
4
  performMute: (ctx: Context, session: Session, params: {
4
5
  targetId: string;
5
6
  duration: number;
6
7
  guildId?: string;
7
- }, ...rest: any[]) => Promise<string>;
8
+ }, config: Config, logger: ReturnType<Context['logger']>, verbose?: boolean) => Promise<string>;
8
9
  performTitle: (ctx: Context, session: Session, params: {
9
10
  targetId: string;
10
11
  title: string;
11
12
  guildId?: string;
12
- }, ...rest: any[]) => Promise<string>;
13
+ }, config: Config, logger: ReturnType<Context['logger']>, verbose?: boolean) => Promise<string>;
13
14
  }
14
- export declare function registerChatlunaTools(ctx: Context, config: {
15
- chatlunaTools?: boolean;
16
- }, logger: ReturnType<Context['logger']>, verbose: boolean | undefined, handlers: Handlers): void;
15
+ export declare function registerChatlunaTools(ctx: Context, config: Config, logger: ReturnType<Context['logger']>, verbose: boolean | undefined, handlers: Handlers): void;
17
16
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-onebot-group-manage",
3
3
  "description": "主要针对多bot环境的群管插件,自动使用有权限的bot",
4
- "version": "0.0.4",
4
+ "version": "0.0.6",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [