golembot 0.5.0 → 0.6.0
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 +17 -6
- package/README.zh-CN.md +17 -6
- package/dist/channel.d.ts +8 -1
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +8 -0
- package/dist/channel.js.map +1 -1
- package/dist/gateway.d.ts +8 -0
- package/dist/gateway.d.ts.map +1 -1
- package/dist/gateway.js +112 -10
- package/dist/gateway.js.map +1 -1
- package/dist/workspace.d.ts +17 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +5 -0
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
- package/skills/im-adapter/SKILL.md +25 -4
package/README.md
CHANGED
|
@@ -17,11 +17,15 @@
|
|
|
17
17
|
|
|
18
18
|
<p align="center"><strong>Your Coding Agent is trapped in a terminal. GolemBot sets it free.</strong></p>
|
|
19
19
|
|
|
20
|
+
<p align="center">
|
|
21
|
+
📖 <a href="https://0xranx.github.io/golembot/"><strong>Documentation & Guides → 0xranx.github.io/golembot</strong></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
20
24
|
---
|
|
21
25
|
|
|
22
26
|
Cursor, Claude Code, OpenCode, Codex — these Coding Agents can already write code, run scripts, analyze data, and reason through complex tasks. But they're stuck in an IDE or a terminal window.
|
|
23
27
|
|
|
24
|
-
**GolemBot gives them a body.** One command connects your Coding Agent to Slack, Telegram, Feishu, DingTalk, WeCom, or any HTTP client. Or embed
|
|
28
|
+
**GolemBot gives them a body.** One command connects your Coding Agent to Slack, Telegram, Feishu, DingTalk, WeCom, or any HTTP client. Write a custom adapter to plug in email, Discord, GitHub Issues, or any other message source. Or embed into your own product with 5 lines of code. No AI framework, no prompt engineering — the agent you already have *is* the brain.
|
|
25
29
|
|
|
26
30
|
## Run Your Coding Agent Everywhere
|
|
27
31
|
|
|
@@ -75,6 +79,7 @@ golembot gateway # start IM + HTTP service
|
|
|
75
79
|
|
|
76
80
|
```
|
|
77
81
|
Slack / Telegram / Feishu / DingTalk / WeCom / HTTP API
|
|
82
|
+
Custom Adapters (email, Discord, GitHub Issues, ...)
|
|
78
83
|
│
|
|
79
84
|
▼
|
|
80
85
|
┌─────────────────────────┐
|
|
@@ -110,19 +115,25 @@ name: my-assistant
|
|
|
110
115
|
engine: claude-code
|
|
111
116
|
|
|
112
117
|
channels:
|
|
118
|
+
slack:
|
|
119
|
+
botToken: ${SLACK_BOT_TOKEN}
|
|
120
|
+
appToken: ${SLACK_APP_TOKEN}
|
|
121
|
+
telegram:
|
|
122
|
+
botToken: ${TELEGRAM_BOT_TOKEN}
|
|
113
123
|
feishu:
|
|
114
124
|
appId: ${FEISHU_APP_ID}
|
|
115
125
|
appSecret: ${FEISHU_APP_SECRET}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
126
|
+
# Custom adapter — local file or npm package
|
|
127
|
+
my-email:
|
|
128
|
+
_adapter: ./adapters/email-adapter.js
|
|
129
|
+
token: ${EMAIL_TOKEN}
|
|
119
130
|
|
|
120
131
|
gateway:
|
|
121
132
|
port: 3000
|
|
122
133
|
token: ${GOLEM_TOKEN}
|
|
123
134
|
```
|
|
124
135
|
|
|
125
|
-
Sensitive fields support `${ENV_VAR}` references.
|
|
136
|
+
Sensitive fields support `${ENV_VAR}` references. Custom channel adapters can be local `.js`/`.mjs` files or npm packages — [see the adapter guide](https://0xranx.github.io/golembot/api/channel-adapter).
|
|
126
137
|
|
|
127
138
|
## Skill System
|
|
128
139
|
|
|
@@ -159,7 +170,7 @@ git clone https://github.com/0xranx/golembot.git
|
|
|
159
170
|
cd golembot
|
|
160
171
|
pnpm install
|
|
161
172
|
pnpm run build
|
|
162
|
-
pnpm run test # Unit tests (
|
|
173
|
+
pnpm run test # Unit tests (718+)
|
|
163
174
|
pnpm run e2e:opencode # End-to-end tests (OpenCode)
|
|
164
175
|
pnpm run e2e:codex # End-to-end tests (Codex)
|
|
165
176
|
```
|
package/README.zh-CN.md
CHANGED
|
@@ -17,11 +17,15 @@
|
|
|
17
17
|
|
|
18
18
|
<p align="center"><strong>你的 Coding Agent 被困在终端里。GolemBot 把它释放出来。</strong></p>
|
|
19
19
|
|
|
20
|
+
<p align="center">
|
|
21
|
+
📖 <a href="https://0xranx.github.io/golembot/"><strong>文档与指南 → 0xranx.github.io/golembot</strong></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
20
24
|
---
|
|
21
25
|
|
|
22
26
|
Cursor、Claude Code、OpenCode、Codex —— 这些 Coding Agent 已经能写代码、跑脚本、分析数据、进行复杂推理。但它们被困在 IDE 或终端窗口里。
|
|
23
27
|
|
|
24
|
-
**GolemBot 给它们一个身体。** 一条命令就能把你的 Coding Agent 接入 Slack、Telegram、飞书、钉钉、企业微信,或任何 HTTP
|
|
28
|
+
**GolemBot 给它们一个身体。** 一条命令就能把你的 Coding Agent 接入 Slack、Telegram、飞书、钉钉、企业微信,或任何 HTTP 客户端。写一个自定义 Adapter 即可接入邮件、Discord、GitHub Issue 等任意消息来源。也可以 5 行代码嵌入你自己的产品。不需要 AI 框架,不需要 prompt 工程 —— 你已有的 Agent 就是大脑。
|
|
25
29
|
|
|
26
30
|
## 让你的 Coding Agent 跑在任何地方
|
|
27
31
|
|
|
@@ -75,6 +79,7 @@ golembot gateway # 启动 IM + HTTP 服务
|
|
|
75
79
|
|
|
76
80
|
```
|
|
77
81
|
Slack / Telegram / 飞书 / 钉钉 / 企业微信 / HTTP API
|
|
82
|
+
自定义 Adapter(邮件、Discord、GitHub Issue……)
|
|
78
83
|
│
|
|
79
84
|
▼
|
|
80
85
|
┌─────────────────────────┐
|
|
@@ -110,19 +115,25 @@ name: my-assistant
|
|
|
110
115
|
engine: claude-code
|
|
111
116
|
|
|
112
117
|
channels:
|
|
118
|
+
slack:
|
|
119
|
+
botToken: ${SLACK_BOT_TOKEN}
|
|
120
|
+
appToken: ${SLACK_APP_TOKEN}
|
|
121
|
+
telegram:
|
|
122
|
+
botToken: ${TELEGRAM_BOT_TOKEN}
|
|
113
123
|
feishu:
|
|
114
124
|
appId: ${FEISHU_APP_ID}
|
|
115
125
|
appSecret: ${FEISHU_APP_SECRET}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
126
|
+
# 自定义 Adapter —— 本地文件或 npm 包
|
|
127
|
+
my-email:
|
|
128
|
+
_adapter: ./adapters/email-adapter.js
|
|
129
|
+
token: ${EMAIL_TOKEN}
|
|
119
130
|
|
|
120
131
|
gateway:
|
|
121
132
|
port: 3000
|
|
122
133
|
token: ${GOLEM_TOKEN}
|
|
123
134
|
```
|
|
124
135
|
|
|
125
|
-
敏感字段支持 `${ENV_VAR}`
|
|
136
|
+
敏感字段支持 `${ENV_VAR}` 引用环境变量。自定义通道 Adapter 可以是本地 `.js`/`.mjs` 文件或 npm 包 —— [查看 Adapter 指南](https://0xranx.github.io/golembot/zh/api/channel-adapter)。
|
|
126
137
|
|
|
127
138
|
## Skill 系统
|
|
128
139
|
|
|
@@ -159,7 +170,7 @@ git clone https://github.com/0xranx/golembot.git
|
|
|
159
170
|
cd golembot
|
|
160
171
|
pnpm install
|
|
161
172
|
pnpm run build
|
|
162
|
-
pnpm run test # 单元测试 (
|
|
173
|
+
pnpm run test # 单元测试 (718+)
|
|
163
174
|
pnpm run e2e:opencode # 端到端测试(OpenCode)
|
|
164
175
|
pnpm run e2e:codex # 端到端测试(Codex)
|
|
165
176
|
```
|
package/dist/channel.d.ts
CHANGED
|
@@ -9,7 +9,9 @@ export interface ChannelMessage {
|
|
|
9
9
|
}
|
|
10
10
|
export interface ChannelAdapter {
|
|
11
11
|
readonly name: string;
|
|
12
|
-
|
|
12
|
+
/** Optional: override the default 4000-char message split limit for this channel. */
|
|
13
|
+
readonly maxMessageLength?: number;
|
|
14
|
+
start(onMessage: (msg: ChannelMessage) => void | Promise<void>): Promise<void>;
|
|
13
15
|
reply(msg: ChannelMessage, text: string): Promise<void>;
|
|
14
16
|
stop(): Promise<void>;
|
|
15
17
|
}
|
|
@@ -19,4 +21,9 @@ export declare function buildSessionKey(msg: ChannelMessage): string;
|
|
|
19
21
|
* Handles common IM @mention formats: `@BotName`, `<at user_id="xxx">BotName</at>` etc.
|
|
20
22
|
*/
|
|
21
23
|
export declare function stripMention(text: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Detect whether `text` contains an @mention of `botName`.
|
|
26
|
+
* Handles `@BotName` and XML-style `<at ...>BotName</at>`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function detectMention(text: string, botName: string): boolean;
|
|
22
29
|
//# sourceMappingURL=channel.d.ts.map
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpE"}
|
package/dist/channel.js
CHANGED
|
@@ -11,4 +11,12 @@ export function stripMention(text) {
|
|
|
11
11
|
.replace(/@\S+/g, '')
|
|
12
12
|
.trim();
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Detect whether `text` contains an @mention of `botName`.
|
|
16
|
+
* Handles `@BotName` and XML-style `<at ...>BotName</at>`.
|
|
17
|
+
*/
|
|
18
|
+
export function detectMention(text, botName) {
|
|
19
|
+
const escaped = botName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
20
|
+
return new RegExp(`@${escaped}(?!\\w)|<at[^>]*>${escaped}<\\/at>`, 'i').test(text);
|
|
21
|
+
}
|
|
14
22
|
//# sourceMappingURL=channel.js.map
|
package/dist/channel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,eAAe,CAAC,GAAmB;IACjD,OAAO,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI;SACR,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC/D,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,oBAAoB,OAAO,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC"}
|
package/dist/gateway.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type GolemConfig, type GroupChatConfig } from './workspace.js';
|
|
1
2
|
export declare function splitMessage(text: string, maxLen: number): string[];
|
|
2
3
|
interface GatewayOpts {
|
|
3
4
|
dir?: string;
|
|
@@ -7,6 +8,13 @@ interface GatewayOpts {
|
|
|
7
8
|
apiKey?: string;
|
|
8
9
|
verbose?: boolean;
|
|
9
10
|
}
|
|
11
|
+
export interface GroupMessage {
|
|
12
|
+
senderName: string;
|
|
13
|
+
text: string;
|
|
14
|
+
isBot: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function resolveGroupChatConfig(config: GolemConfig): Required<GroupChatConfig>;
|
|
17
|
+
export declare function buildGroupPrompt(history: GroupMessage[], senderName: string, userText: string, injectPass: boolean, groupKey: string, dir: string): string;
|
|
10
18
|
export declare function startGateway(opts: GatewayOpts): Promise<void>;
|
|
11
19
|
export {};
|
|
12
20
|
//# sourceMappingURL=gateway.d.ts.map
|
package/dist/gateway.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,WAAW,EAAuB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAkBzG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBnE;AAED,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAQD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,CAOrF;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,MAAM,CA6BR;AAsDD,wBAAsB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmKnE"}
|
package/dist/gateway.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
1
|
+
import { resolve, join } from 'node:path';
|
|
2
|
+
import { mkdir } from 'node:fs/promises';
|
|
2
3
|
import { createAssistant } from './index.js';
|
|
3
4
|
import { createGolemServer } from './server.js';
|
|
4
5
|
import { loadConfig } from './workspace.js';
|
|
5
|
-
import { buildSessionKey, stripMention } from './channel.js';
|
|
6
|
+
import { buildSessionKey, detectMention, stripMention, } from './channel.js';
|
|
6
7
|
// ── IM channel message limits ───────────────────────────
|
|
7
8
|
const CHANNEL_LIMITS = {
|
|
8
9
|
feishu: 4000,
|
|
@@ -35,7 +36,43 @@ function log(verbose, ...args) {
|
|
|
35
36
|
if (verbose)
|
|
36
37
|
console.log(...args);
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
+
/** Recent message history per group (key: `channelType:chatId`). */
|
|
40
|
+
const groupHistories = new Map();
|
|
41
|
+
/** Total bot replies sent per group — used as a safety valve against runaway chains. */
|
|
42
|
+
const groupTurnCounters = new Map();
|
|
43
|
+
export function resolveGroupChatConfig(config) {
|
|
44
|
+
const gc = config.groupChat ?? {};
|
|
45
|
+
return {
|
|
46
|
+
groupPolicy: gc.groupPolicy ?? 'mention-only',
|
|
47
|
+
historyLimit: gc.historyLimit ?? 20,
|
|
48
|
+
maxTurns: gc.maxTurns ?? 10,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export function buildGroupPrompt(history, senderName, userText, injectPass, groupKey, dir) {
|
|
52
|
+
const parts = [];
|
|
53
|
+
if (injectPass) {
|
|
54
|
+
parts.push('[System: You are participating in a group chat and were NOT directly addressed. ' +
|
|
55
|
+
'Only respond if you have something important to add or correct. ' +
|
|
56
|
+
'If you have nothing essential to contribute, respond with exactly: [PASS]]');
|
|
57
|
+
}
|
|
58
|
+
// Inject group identity + memory file path so the agent can read/update group memory
|
|
59
|
+
const safeKey = groupKey.replace(/[^a-z0-9_-]/gi, '-');
|
|
60
|
+
const memoryPath = join('memory', 'groups', `${safeKey}.md`);
|
|
61
|
+
parts.push(`[Group: ${groupKey} | MemoryFile: ${memoryPath}]`);
|
|
62
|
+
if (history.length > 1) {
|
|
63
|
+
// history already includes the current message we just pushed; exclude the last entry
|
|
64
|
+
const recentHistory = history.slice(0, -1);
|
|
65
|
+
parts.push('--- Recent group conversation ---');
|
|
66
|
+
for (const m of recentHistory) {
|
|
67
|
+
const label = m.isBot ? '[bot]' : `[${m.senderName}]`;
|
|
68
|
+
parts.push(`${label} ${m.text}`);
|
|
69
|
+
}
|
|
70
|
+
parts.push('--- New message ---');
|
|
71
|
+
}
|
|
72
|
+
parts.push(`[${senderName}] ${userText}`);
|
|
73
|
+
return parts.join('\n');
|
|
74
|
+
}
|
|
75
|
+
async function createChannelAdapter(type, channelConfig, dir) {
|
|
39
76
|
switch (type) {
|
|
40
77
|
case 'feishu': {
|
|
41
78
|
const { FeishuAdapter } = await import('./channels/feishu.js');
|
|
@@ -57,8 +94,27 @@ async function createChannelAdapter(type, channelConfig) {
|
|
|
57
94
|
const { TelegramAdapter } = await import('./channels/telegram.js');
|
|
58
95
|
return new TelegramAdapter(channelConfig);
|
|
59
96
|
}
|
|
60
|
-
default:
|
|
61
|
-
|
|
97
|
+
default: {
|
|
98
|
+
const adapterPath = channelConfig._adapter;
|
|
99
|
+
if (typeof adapterPath !== 'string') {
|
|
100
|
+
throw new Error(`Unknown channel type "${type}". Add "_adapter: <path or package>" to use a custom adapter.`);
|
|
101
|
+
}
|
|
102
|
+
const resolvedPath = adapterPath.startsWith('.') || adapterPath.startsWith('/')
|
|
103
|
+
? resolve(dir, adapterPath)
|
|
104
|
+
: adapterPath;
|
|
105
|
+
let mod;
|
|
106
|
+
try {
|
|
107
|
+
mod = await import(resolvedPath);
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
throw new Error(`Failed to load custom adapter "${adapterPath}": ${e.message}`);
|
|
111
|
+
}
|
|
112
|
+
const AdapterClass = mod.default ?? mod[Object.keys(mod)[0]];
|
|
113
|
+
if (typeof AdapterClass !== 'function') {
|
|
114
|
+
throw new Error(`Custom adapter "${adapterPath}" must export a default class.`);
|
|
115
|
+
}
|
|
116
|
+
return new AdapterClass(channelConfig);
|
|
117
|
+
}
|
|
62
118
|
}
|
|
63
119
|
}
|
|
64
120
|
export async function startGateway(opts) {
|
|
@@ -91,14 +147,44 @@ export async function startGateway(opts) {
|
|
|
91
147
|
if (!channelConfig)
|
|
92
148
|
continue;
|
|
93
149
|
try {
|
|
94
|
-
const adapter = await createChannelAdapter(type, channelConfig);
|
|
150
|
+
const adapter = await createChannelAdapter(type, channelConfig, dir);
|
|
95
151
|
await adapter.start(async (msg) => {
|
|
96
|
-
const sessionKey = buildSessionKey(msg);
|
|
97
152
|
const userText = msg.chatType === 'group' ? stripMention(msg.text) : msg.text;
|
|
98
153
|
if (!userText)
|
|
99
154
|
return;
|
|
100
|
-
|
|
101
|
-
|
|
155
|
+
let sessionKey;
|
|
156
|
+
let fullText;
|
|
157
|
+
if (msg.chatType === 'group') {
|
|
158
|
+
const groupKey = `${msg.channelType}:${msg.chatId}`;
|
|
159
|
+
sessionKey = groupKey;
|
|
160
|
+
const gc = resolveGroupChatConfig(config);
|
|
161
|
+
// Skip messages sent by this bot itself (prevents feedback loops in broadcast adapters)
|
|
162
|
+
if (msg.senderName === config.name)
|
|
163
|
+
return;
|
|
164
|
+
// Always update history buffer, regardless of policy
|
|
165
|
+
const hist = groupHistories.get(groupKey) ?? [];
|
|
166
|
+
hist.push({ senderName: msg.senderName ?? msg.senderId, text: userText, isBot: false });
|
|
167
|
+
if (hist.length > gc.historyLimit)
|
|
168
|
+
hist.shift();
|
|
169
|
+
groupHistories.set(groupKey, hist);
|
|
170
|
+
// mention-only: skip if not @mentioned (zero agent cost)
|
|
171
|
+
const mentioned = detectMention(msg.text, config.name);
|
|
172
|
+
if (gc.groupPolicy === 'mention-only' && !mentioned)
|
|
173
|
+
return;
|
|
174
|
+
// maxTurns safety valve: stop if this bot has replied too many times in this group
|
|
175
|
+
if ((groupTurnCounters.get(groupKey) ?? 0) >= gc.maxTurns) {
|
|
176
|
+
log(verbose, `[${type}] maxTurns (${gc.maxTurns}) reached for group ${groupKey}, skipping`);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
// Ensure memory/groups/ directory exists (agent will read/write memory files here)
|
|
180
|
+
await mkdir(join(dir, 'memory', 'groups'), { recursive: true }).catch(() => { });
|
|
181
|
+
const injectPass = gc.groupPolicy === 'smart' && !mentioned;
|
|
182
|
+
fullText = buildGroupPrompt(hist, msg.senderName ?? msg.senderId, userText, injectPass, groupKey, dir);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
sessionKey = buildSessionKey(msg);
|
|
186
|
+
fullText = msg.text;
|
|
187
|
+
}
|
|
102
188
|
log(verbose, `[${type}] received from ${msg.senderName || msg.senderId}: "${userText}" → session ${sessionKey}`);
|
|
103
189
|
try {
|
|
104
190
|
let reply = '';
|
|
@@ -115,16 +201,32 @@ export async function startGateway(opts) {
|
|
|
115
201
|
console.error(`[${type}] Engine error: ${event.message}`);
|
|
116
202
|
}
|
|
117
203
|
}
|
|
204
|
+
// [PASS] sentinel: smart mode bot chose to stay silent
|
|
205
|
+
if (reply.trim() === '[PASS]') {
|
|
206
|
+
log(verbose, `[${type}] [PASS] — bot chose not to respond`);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
118
209
|
if (!reply.trim() && hasError) {
|
|
119
210
|
reply = 'Sorry, an error occurred while processing your message. Please try again later.';
|
|
120
211
|
}
|
|
121
212
|
if (reply.trim()) {
|
|
122
|
-
const maxLen = CHANNEL_LIMITS[type] ?? 4000;
|
|
213
|
+
const maxLen = adapter.maxMessageLength ?? CHANNEL_LIMITS[type] ?? 4000;
|
|
123
214
|
const chunks = splitMessage(reply.trim(), maxLen);
|
|
124
215
|
for (const chunk of chunks) {
|
|
125
216
|
await adapter.reply(msg, chunk);
|
|
126
217
|
}
|
|
127
218
|
log(verbose, `[${type}] replied to ${msg.senderName || msg.senderId}: "${reply.trim().slice(0, 80)}..." (${chunks.length} chunk(s))`);
|
|
219
|
+
// Update group history with bot reply + increment turn counter
|
|
220
|
+
if (msg.chatType === 'group') {
|
|
221
|
+
const groupKey = `${msg.channelType}:${msg.chatId}`;
|
|
222
|
+
const gc = resolveGroupChatConfig(config);
|
|
223
|
+
const hist = groupHistories.get(groupKey) ?? [];
|
|
224
|
+
hist.push({ senderName: config.name, text: reply.trim(), isBot: true });
|
|
225
|
+
if (hist.length > gc.historyLimit)
|
|
226
|
+
hist.shift();
|
|
227
|
+
groupHistories.set(groupKey, hist);
|
|
228
|
+
groupTurnCounters.set(groupKey, (groupTurnCounters.get(groupKey) ?? 0) + 1);
|
|
229
|
+
}
|
|
128
230
|
}
|
|
129
231
|
}
|
|
130
232
|
catch (e) {
|
package/dist/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -27,12 +27,27 @@ export interface ChannelsConfig {
|
|
|
27
27
|
wecom?: WecomChannelConfig;
|
|
28
28
|
slack?: SlackChannelConfig;
|
|
29
29
|
telegram?: TelegramChannelConfig;
|
|
30
|
+
/** Custom channel adapters: any key with `_adapter: <path>` in config. */
|
|
31
|
+
[key: string]: unknown;
|
|
30
32
|
}
|
|
31
33
|
export interface GatewayConfig {
|
|
32
34
|
port?: number;
|
|
33
35
|
host?: string;
|
|
34
36
|
token?: string;
|
|
35
37
|
}
|
|
38
|
+
export interface GroupChatConfig {
|
|
39
|
+
/**
|
|
40
|
+
* How the bot decides whether to respond in a group:
|
|
41
|
+
* - `mention-only` (default): only respond when @mentioned; agent not called otherwise (zero cost)
|
|
42
|
+
* - `smart`: agent is called for every message; outputs `[PASS]` to stay silent; can update group memory even when not responding
|
|
43
|
+
* - `always`: respond to every message unconditionally
|
|
44
|
+
*/
|
|
45
|
+
groupPolicy?: 'mention-only' | 'smart' | 'always';
|
|
46
|
+
/** Number of recent group messages to inject as context. Default: 20. */
|
|
47
|
+
historyLimit?: number;
|
|
48
|
+
/** Max total replies this bot will send per group before stopping (safety valve). Default: 10. */
|
|
49
|
+
maxTurns?: number;
|
|
50
|
+
}
|
|
36
51
|
export interface GolemConfig {
|
|
37
52
|
name: string;
|
|
38
53
|
engine: string;
|
|
@@ -50,6 +65,8 @@ export interface GolemConfig {
|
|
|
50
65
|
sessionTtlDays?: number;
|
|
51
66
|
/** System-level instructions prepended to every user message before engine invocation. */
|
|
52
67
|
systemPrompt?: string;
|
|
68
|
+
/** Group chat behaviour. Applies to all group messages across all channels. */
|
|
69
|
+
groupChat?: GroupChatConfig;
|
|
53
70
|
}
|
|
54
71
|
export interface SkillInfo {
|
|
55
72
|
name: string;
|
package/dist/workspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace.js
CHANGED
|
@@ -54,6 +54,9 @@ export async function loadConfig(dir) {
|
|
|
54
54
|
config.sessionTtlDays = doc.sessionTtlDays;
|
|
55
55
|
if (typeof doc.systemPrompt === 'string')
|
|
56
56
|
config.systemPrompt = doc.systemPrompt;
|
|
57
|
+
if (doc.groupChat && typeof doc.groupChat === 'object') {
|
|
58
|
+
config.groupChat = doc.groupChat;
|
|
59
|
+
}
|
|
57
60
|
return config;
|
|
58
61
|
}
|
|
59
62
|
export async function writeConfig(dir, config) {
|
|
@@ -70,6 +73,8 @@ export async function writeConfig(dir, config) {
|
|
|
70
73
|
content.channels = config.channels;
|
|
71
74
|
if (config.gateway)
|
|
72
75
|
content.gateway = config.gateway;
|
|
76
|
+
if (config.groupChat)
|
|
77
|
+
content.groupChat = config.groupChat;
|
|
73
78
|
await writeFile(configPath, yaml.dump(content, { lineWidth: -1 }), 'utf-8');
|
|
74
79
|
}
|
|
75
80
|
function extractFrontMatter(content) {
|
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,IAAI,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -29,10 +29,31 @@ When communicating with users through instant messaging tools (Lark, DingTalk, W
|
|
|
29
29
|
|
|
30
30
|
## Group Chat Guidelines
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
32
|
+
Group messages are prefixed with metadata like `[Group: slack-team | MemoryFile: memory/groups/slack-team.md]` and individual messages are labeled `[username] message text`.
|
|
33
|
+
|
|
34
|
+
**Participating in a group:**
|
|
35
|
+
- Address the specific user in your reply; @mention them at the beginning when helpful
|
|
36
|
+
- Be especially concise — avoid flooding the chat
|
|
37
|
+
- Do not repeat information already covered earlier in the conversation history
|
|
38
|
+
|
|
39
|
+
**Group memory (long-term context):**
|
|
40
|
+
- If `MemoryFile` is specified, read that file at the start of your response to recall who the group members are, the project context, and past decisions
|
|
41
|
+
- After responding, if this conversation introduced new important information (people, decisions, project facts), append it to the memory file in a structured format
|
|
42
|
+
- Memory file format:
|
|
43
|
+
```
|
|
44
|
+
# Group: <group-key>
|
|
45
|
+
## Members
|
|
46
|
+
- Name: role/context
|
|
47
|
+
## Project Context
|
|
48
|
+
- key facts
|
|
49
|
+
## Key Decisions
|
|
50
|
+
- YYYY-MM-DD: decision made
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**`[PASS]` in smart mode:**
|
|
54
|
+
- When the system instructs you that you were NOT directly addressed and asks whether to respond, evaluate honestly
|
|
55
|
+
- If you have nothing important to add or correct, respond with exactly: `[PASS]` (nothing else)
|
|
56
|
+
- Only respond if you see a factual error, security risk, or something directly relevant to your specialty
|
|
36
57
|
|
|
37
58
|
## Action Requests
|
|
38
59
|
|