@datanovallc/openclaw-slack-router 0.1.24 → 0.1.26

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
@@ -22,7 +22,7 @@ In the [Slack app console](https://api.slack.com/apps), create a new app and con
22
22
  ### 2. Install the plugin
23
23
 
24
24
  ```
25
- openclaw plugins install @datanovallc/openclaw-slack-router@0.1.24
25
+ openclaw plugins install @datanovallc/openclaw-slack-router@0.1.26
26
26
  ```
27
27
 
28
28
  ### 3. Configure your tokens
package/dist/bot.js CHANGED
@@ -18,17 +18,17 @@ export async function startSlackBot(options) {
18
18
  const subagentConfig = loadSubagentConfig(configPath ?? DEFAULT_CONFIG_PATH);
19
19
  // Resolve bot's own user ID at startup for assistant message tagging.
20
20
  // Uses WebClient directly (before creating the Bolt app) since createApp needs botUserId.
21
- const SlackBolt = await import("@slack/bolt");
22
- const slackBoltModule = SlackBolt;
21
+ const SlackWebApi = await import("@slack/web-api");
22
+ const slackWebApiModule = SlackWebApi;
23
23
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
- const slackBolt =
24
+ const slackWebApi =
25
25
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
- (slackBoltModule.App
27
- ? slackBoltModule
26
+ (slackWebApiModule.WebClient
27
+ ? slackWebApiModule
28
28
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
- : slackBoltModule.default) ?? slackBoltModule;
29
+ : slackWebApiModule.default) ?? slackWebApiModule;
30
30
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
- const { WebClient } = slackBolt;
31
+ const { WebClient } = slackWebApi;
32
32
  const client = new WebClient(botToken);
33
33
  const authResult = await client.auth.test();
34
34
  const botUserId = authResult.user_id;
package/dist/bot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAiB/C,8DAA8D;AAC9D,IAAI,UAAU,GAAQ,IAAI,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAwB;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,sBAAsB,CAAC;IACpG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAChF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE/B,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,kGAAkG,CAAC,CAAC;QAC9G,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAmB,kBAAkB,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC;IAE7F,sEAAsE;IACtE,0FAA0F;IAC1F,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,SAEvB,CAAC;IACF,8DAA8D;IAC9D,MAAM,SAAS;IACb,8DAA8D;IAC9D,CAAE,eAAuB,CAAC,GAAG;QAC3B,CAAC,CAAC,eAAe;QACjB,8DAA8D;QAC9D,CAAC,CAAE,eAAuB,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC;IAC3D,8DAA8D;IAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,SAAgB,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAiB,CAAC;IAE/C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IAE7E,sFAAsF;IACtF,MAAM,SAAS,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;IAE3E,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC9E,UAAU,GAAG,GAAG,CAAC;IACjB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,yCAAyC,SAAS,GAAG,CAAC,CAAC;IAEzF,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAiB/C,8DAA8D;AAC9D,IAAI,UAAU,GAAQ,IAAI,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAwB;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,sBAAsB,CAAC;IACpG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAChF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE/B,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,kGAAkG,CAAC,CAAC;QAC9G,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAmB,kBAAkB,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC;IAE7F,sEAAsE;IACtE,0FAA0F;IAC1F,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAAG,WAEzB,CAAC;IACF,8DAA8D;IAC9D,MAAM,WAAW;IACf,8DAA8D;IAC9D,CAAE,iBAAyB,CAAC,SAAS;QACnC,CAAC,CAAC,iBAAiB;QACnB,8DAA8D;QAC9D,CAAC,CAAE,iBAAyB,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC;IAC/D,8DAA8D;IAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,WAAkB,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAiB,CAAC;IAE/C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IAE7E,sFAAsF;IACtF,MAAM,SAAS,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;IAE3E,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC9E,UAAU,GAAG,GAAG,CAAC;IACjB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,yCAAyC,SAAS,GAAG,CAAC,CAAC;IAEzF,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -1,5 +1,20 @@
1
1
  import { gatewayChatSend } from "../gateway/chat-client.js";
2
2
  import { randomUUID } from "node:crypto";
3
+ function formatGatewayMessage(ctx) {
4
+ const history = (ctx.threadHistory ?? [])
5
+ .slice(-12)
6
+ .map((m) => `${m.role === "assistant" ? "Assistant" : "User"}: ${m.content}`)
7
+ .join("\n");
8
+ if (!history)
9
+ return ctx.currentMessage;
10
+ return [
11
+ "Recent conversation context:",
12
+ history,
13
+ "",
14
+ "Latest user message:",
15
+ ctx.currentMessage,
16
+ ].join("\n");
17
+ }
3
18
  export function createOpenclawGatewaySubagent(options) {
4
19
  const { gatewayUrl, gatewayToken, timeoutMs } = options;
5
20
  return {
@@ -14,8 +29,8 @@ export function createOpenclawGatewaySubagent(options) {
14
29
  const idempotencyKey = randomUUID();
15
30
  try {
16
31
  const result = await gatewayChatSend(chatOptions, {
17
- sessionKey: ctx.channelId,
18
- message: ctx.currentMessage,
32
+ sessionKey: `slack:${ctx.channelId}`,
33
+ message: formatGatewayMessage(ctx),
19
34
  idempotencyKey,
20
35
  });
21
36
  return result.text;
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw-gateway.js","sourceRoot":"","sources":["../../src/subagents/openclaw-gateway.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC,MAAM,UAAU,6BAA6B,CAC3C,OAAuC;IAEvC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAExD,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,oDAAoD;QACjE,KAAK,CAAC,MAAM,CAAC,GAAoB;YAC/B,MAAM,WAAW,GAAuB;gBACtC,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,YAAY;gBACnB,SAAS;aACV,CAAC;YAEF,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;YAEpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE;oBAChD,UAAU,EAAE,GAAG,CAAC,SAAS;oBACzB,OAAO,EAAE,GAAG,CAAC,cAAc;oBAC3B,cAAc;iBACf,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClE,OAAO,4BAA4B,QAAQ,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"openclaw-gateway.js","sourceRoot":"","sources":["../../src/subagents/openclaw-gateway.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,SAAS,oBAAoB,CAAC,GAAoB;IAChD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;SACtC,KAAK,CAAC,CAAC,EAAE,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SAC5E,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,cAAc,CAAC;IAExC,OAAO;QACL,8BAA8B;QAC9B,OAAO;QACP,EAAE;QACF,sBAAsB;QACtB,GAAG,CAAC,cAAc;KACnB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAQD,MAAM,UAAU,6BAA6B,CAC3C,OAAuC;IAEvC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAExD,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,oDAAoD;QACjE,KAAK,CAAC,MAAM,CAAC,GAAoB;YAC/B,MAAM,WAAW,GAAuB;gBACtC,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,YAAY;gBACnB,SAAS;aACV,CAAC;YAEF,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;YAEpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE;oBAChD,UAAU,EAAE,SAAS,GAAG,CAAC,SAAS,EAAE;oBACpC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC;oBAClC,cAAc;iBACf,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClE,OAAO,4BAA4B,QAAQ,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datanovallc/openclaw-slack-router",
3
- "version": "0.1.24",
3
+ "version": "0.1.26",
4
4
  "description": "Slack router plugin for openclaw — connect your agent to Slack with per-channel context isolation",
5
5
  "keywords": [
6
6
  "openclaw",