@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 +1 -1
- package/dist/bot.js +7 -7
- package/dist/bot.js.map +1 -1
- package/dist/subagents/openclaw-gateway.js +17 -2
- package/dist/subagents/openclaw-gateway.js.map +1 -1
- package/package.json +1 -1
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.
|
|
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
|
|
22
|
-
const
|
|
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
|
|
24
|
+
const slackWebApi =
|
|
25
25
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
-
(
|
|
27
|
-
?
|
|
26
|
+
(slackWebApiModule.WebClient
|
|
27
|
+
? slackWebApiModule
|
|
28
28
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
-
:
|
|
29
|
+
: slackWebApiModule.default) ?? slackWebApiModule;
|
|
30
30
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
-
const { WebClient } =
|
|
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,
|
|
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
|
|
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;
|
|
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