openclaw-telegram-manager 2.3.0 → 2.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE;IACpC,MAAM,EAAE;QAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACzG,YAAY,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACvG,GAAG,IAAI,CAAC;IACT,eAAe,CAAC,CAAC,GAAG,EAAE;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,GAAG,EAAE;YACX,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEjC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;SACnC,GAAG,OAAO,CAAC;YACV,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE;gBAAE,QAAQ,CAAC,EAAE;oBAAE,OAAO,CAAC,EAAE,OAAO,CAAA;iBAAE,CAAA;aAAE,CAAC;SACpD,CAAC,CAAC;KACJ,GAAG,IAAI,CAAC;CACV,GAAG,IAAI,CA2IP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE;IACpC,MAAM,EAAE;QAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACzG,YAAY,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACvG,GAAG,IAAI,CAAC;IACT,eAAe,CAAC,CAAC,GAAG,EAAE;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,GAAG,EAAE;YACX,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEjC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;SACnC,GAAG,OAAO,CAAC;YACV,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE;gBAAE,QAAQ,CAAC,EAAE;oBAAE,OAAO,CAAC,EAAE,OAAO,CAAA;iBAAE,CAAA;aAAE,CAAC;SACpD,CAAC,CAAC;KACJ,GAAG,IAAI,CAAC;CACV,GAAG,IAAI,CA4IP"}
package/dist/index.js CHANGED
@@ -39,46 +39,34 @@ export default function register(api) {
39
39
  api.logger.error('telegram-manager: configDir or workspaceDir not available. Plugin cannot initialize.');
40
40
  return;
41
41
  }
42
- let resolvedPostFn; // null = tried & unavailable
43
- const lazyPostFn = async (groupId, threadId, text, keyboard) => {
44
- if (resolvedPostFn === null)
45
- throw new Error('openclaw SDK unavailable – cannot post');
46
- if (resolvedPostFn === undefined) {
47
- try {
48
- // Dynamic path prevents Vite/tsc from resolving at build time
49
- const sdkPath = ['openclaw', 'dist', 'plugin-sdk', 'index.js'].join('/');
50
- const sdk = (await import(/* @vite-ignore */ sdkPath));
51
- if (typeof sdk['sendMessageTelegram'] === 'function') {
52
- const sendMsg = sdk['sendMessageTelegram'];
53
- resolvedPostFn = async (gId, tId, txt, kb) => {
54
- const opts = {
55
- messageThreadId: Number(tId),
56
- textMode: 'html',
57
- };
58
- if (kb)
59
- opts.buttons = kb.inline_keyboard;
60
- await sendMsg(gId, txt, opts);
61
- };
62
- api.logger.info('telegram-manager: postFn wired via plugin-sdk');
63
- }
64
- else {
65
- resolvedPostFn = null;
66
- }
67
- }
68
- catch {
69
- resolvedPostFn = null;
70
- }
71
- }
72
- if (!resolvedPostFn)
73
- throw new Error('openclaw SDK unavailable – cannot post');
74
- await resolvedPostFn(groupId, threadId, text, keyboard);
75
- };
42
+ let resolvedPostFn = null;
43
+ // Try wiring via runtime (available immediately, no dynamic import needed)
44
+ const rt = api.runtime;
45
+ const tgChannel = rt?.channel?.telegram;
46
+ const sendFn = tgChannel?.sendMessageTelegram;
47
+ if (typeof sendFn === 'function') {
48
+ const sendMsg = sendFn;
49
+ resolvedPostFn = async (gId, tId, txt, kb) => {
50
+ const opts = {
51
+ messageThreadId: Number(tId),
52
+ textMode: 'html',
53
+ };
54
+ if (kb)
55
+ opts.buttons = kb.inline_keyboard;
56
+ await sendMsg(gId, txt, opts);
57
+ };
58
+ api.logger.info('telegram-manager: postFn wired via runtime.channel.telegram');
59
+ }
60
+ else {
61
+ api.logger.warn('telegram-manager: runtime.channel.telegram.sendMessageTelegram not available — direct posting disabled');
62
+ }
63
+ const postFn = resolvedPostFn ?? undefined;
76
64
  const tool = createTopicManagerTool({
77
65
  logger: api.logger,
78
66
  configDir,
79
67
  workspaceDir,
80
68
  rpc: api.rpc,
81
- postFn: lazyPostFn,
69
+ postFn,
82
70
  });
83
71
  api.registerTool({
84
72
  name: 'topic_manager',
@@ -92,9 +80,17 @@ export default function register(api) {
92
80
  const result = await tool.execute(id, params, context);
93
81
  // Wrap in AgentToolResult format so the gateway's extractTextFromToolResult
94
82
  // can find the text (it looks for .content, not .text).
95
- return {
83
+ // Also forward inlineKeyboard via channelData so callback responses
84
+ // (which bypass registerCommand) can still render buttons.
85
+ const response = {
96
86
  content: [{ type: 'text', text: result.text }],
97
87
  };
88
+ if (result.inlineKeyboard) {
89
+ response.channelData = {
90
+ telegram: { buttons: result.inlineKeyboard.inline_keyboard },
91
+ };
92
+ }
93
+ return response;
98
94
  },
99
95
  });
100
96
  // Register a plugin command so the gateway passes full message context
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -11561,43 +11561,31 @@ function register(api) {
11561
11561
  );
11562
11562
  return;
11563
11563
  }
11564
- let resolvedPostFn;
11565
- const lazyPostFn = async (groupId, threadId, text, keyboard) => {
11566
- if (resolvedPostFn === null) throw new Error("openclaw SDK unavailable \u2013 cannot post");
11567
- if (resolvedPostFn === void 0) {
11568
- try {
11569
- const sdkPath = ["openclaw", "dist", "plugin-sdk", "index.js"].join("/");
11570
- const sdk = await import(
11571
- /* @vite-ignore */
11572
- sdkPath
11573
- );
11574
- if (typeof sdk["sendMessageTelegram"] === "function") {
11575
- const sendMsg = sdk["sendMessageTelegram"];
11576
- resolvedPostFn = async (gId, tId, txt, kb) => {
11577
- const opts = {
11578
- messageThreadId: Number(tId),
11579
- textMode: "html"
11580
- };
11581
- if (kb) opts.buttons = kb.inline_keyboard;
11582
- await sendMsg(gId, txt, opts);
11583
- };
11584
- api.logger.info("telegram-manager: postFn wired via plugin-sdk");
11585
- } else {
11586
- resolvedPostFn = null;
11587
- }
11588
- } catch {
11589
- resolvedPostFn = null;
11590
- }
11591
- }
11592
- if (!resolvedPostFn) throw new Error("openclaw SDK unavailable \u2013 cannot post");
11593
- await resolvedPostFn(groupId, threadId, text, keyboard);
11594
- };
11564
+ let resolvedPostFn = null;
11565
+ const rt = api.runtime;
11566
+ const tgChannel = rt?.channel?.telegram;
11567
+ const sendFn = tgChannel?.sendMessageTelegram;
11568
+ if (typeof sendFn === "function") {
11569
+ const sendMsg = sendFn;
11570
+ resolvedPostFn = async (gId, tId, txt, kb) => {
11571
+ const opts = {
11572
+ messageThreadId: Number(tId),
11573
+ textMode: "html"
11574
+ };
11575
+ if (kb) opts.buttons = kb.inline_keyboard;
11576
+ await sendMsg(gId, txt, opts);
11577
+ };
11578
+ api.logger.info("telegram-manager: postFn wired via runtime.channel.telegram");
11579
+ } else {
11580
+ api.logger.warn("telegram-manager: runtime.channel.telegram.sendMessageTelegram not available \u2014 direct posting disabled");
11581
+ }
11582
+ const postFn = resolvedPostFn ?? void 0;
11595
11583
  const tool = createTopicManagerTool({
11596
11584
  logger: api.logger,
11597
11585
  configDir,
11598
11586
  workspaceDir,
11599
11587
  rpc: api.rpc,
11600
- postFn: lazyPostFn
11588
+ postFn
11601
11589
  });
11602
11590
  api.registerTool({
11603
11591
  name: "topic_manager",
@@ -11609,9 +11597,15 @@ function register(api) {
11609
11597
  }),
11610
11598
  async execute(id, params, context) {
11611
11599
  const result = await tool.execute(id, params, context);
11612
- return {
11600
+ const response = {
11613
11601
  content: [{ type: "text", text: result.text }]
11614
11602
  };
11603
+ if (result.inlineKeyboard) {
11604
+ response.channelData = {
11605
+ telegram: { buttons: result.inlineKeyboard.inline_keyboard }
11606
+ };
11607
+ }
11608
+ return response;
11615
11609
  }
11616
11610
  });
11617
11611
  if (api.registerCommand) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-telegram-manager",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "type": "module",
5
5
  "description": "Deterministic Telegram forum topic management for OpenClaw",
6
6
  "license": "MIT",