golembot 0.5.0 → 0.6.0-beta.1

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
@@ -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 it into your own product with 5 lines of code. No AI framework, no prompt engineering — the agent you already have *is* the brain.
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
- dingtalk:
117
- clientId: ${DINGTALK_CLIENT_ID}
118
- clientSecret: ${DINGTALK_CLIENT_SECRET}
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 (676+)
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 客户端。也可以 5 行代码嵌入你自己的产品。不需要 AI 框架,不需要 prompt 工程 —— 你已有的 Agent 就是大脑。
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
- dingtalk:
117
- clientId: ${DINGTALK_CLIENT_ID}
118
- clientSecret: ${DINGTALK_CLIENT_SECRET}
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 # 单元测试 (676+)
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
- start(onMessage: (msg: ChannelMessage) => void): Promise<void>;
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
@@ -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/D,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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAiBA,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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAeA,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;AAoCD,wBAAsB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkHnE"}
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
- async function createChannelAdapter(type, channelConfig) {
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
- throw new Error(`Unknown channel type: ${type}`);
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
- const prefix = msg.senderName ? `[user:${msg.senderName}] ` : '';
101
- const fullText = msg.chatType === 'group' ? `${prefix}${userText}` : userText;
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) {
@@ -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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"}
@@ -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;
@@ -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;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAiBnD;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA8BlE;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAWjF;AAYD,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA6BlE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB7G;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC,CAKD;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,EACnB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "golembot",
3
- "version": "0.5.0",
3
+ "version": "0.6.0-beta.1",
4
4
  "description": "GolemBot - Local-first AI assistant powered by Coding Agent CLI engines",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -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
- - When a message contains a `[User:xxx]` prefix, it indicates a group chat scenario
33
- - Address the specific user in your reply; you may @mention them at the beginning
34
- - Do not reply to unrelated conversations
35
- - Be especially concise in group chats to avoid flooding the chat
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