openbotgate 1.0.3 → 1.0.4
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/config/config.d.ts.map +1 -1
- package/dist/config/config.js +10 -2
- package/dist/config/config.js.map +1 -1
- package/dist/handler/commands/help.d.ts.map +1 -1
- package/dist/handler/commands/help.js +6 -2
- package/dist/handler/commands/help.js.map +1 -1
- package/dist/runtime/sessionManager.d.ts.map +1 -1
- package/dist/runtime/sessionManager.js +21 -11
- package/dist/runtime/sessionManager.js.map +1 -1
- package/dist/runtime/tools/codebuddy.d.ts +16 -0
- package/dist/runtime/tools/codebuddy.d.ts.map +1 -0
- package/dist/runtime/tools/codebuddy.js +34 -0
- package/dist/runtime/tools/codebuddy.js.map +1 -0
- package/dist/runtime/tools/index.d.ts.map +1 -1
- package/dist/runtime/tools/index.js +2 -0
- package/dist/runtime/tools/index.js.map +1 -1
- package/dist/runtime/tools/qodercode.d.ts +17 -0
- package/dist/runtime/tools/qodercode.d.ts.map +1 -0
- package/dist/runtime/tools/qodercode.js +35 -0
- package/dist/runtime/tools/qodercode.js.map +1 -0
- package/dist/runtime/tools/registry.d.ts +1 -1
- package/dist/runtime/tools/registry.d.ts.map +1 -1
- package/dist/runtime/tools/registry.js +8 -2
- package/dist/runtime/tools/registry.js.map +1 -1
- package/openbotgate.example.yml +8 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -170,7 +170,7 @@ npm run build && npm start # 生产模式
|
|
|
170
170
|
| `execution.maxOutputLength` | 单次输出最大长度 | 10000 |
|
|
171
171
|
| `execution.shellOutputEncoding` | Shell 输出编码(如 Windows 下 gbk,可选) | 系统编码 |
|
|
172
172
|
| **白名单** | | |
|
|
173
|
-
| `allowedCodeTools` | 允许的 Code 工具(适配器名列表) | opencode, cursorcode, claudecode, openaicodex, qwencode, kimicode, geminicode, openclaw, nanobot |
|
|
173
|
+
| `allowedCodeTools` | 允许的 Code 工具(适配器名列表) | opencode, cursorcode, claudecode, openaicodex, qwencode, kimicode, geminicode, openclaw, nanobot, codebuddy |
|
|
174
174
|
| `allowedShellCommands` | 允许的 Shell 命令首词列表 | git, pwd |
|
|
175
175
|
| **覆盖** | | |
|
|
176
176
|
| `codeToolOverrides` | Code 适配器 → 实际可执行名(如 claudecode: claude.ps1) | {} |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAIA,mBAAmB;AACnB,eAAO,MAAM,wBAAwB,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAIA,mBAAmB;AACnB,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAiB/C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,2DAA2D;IAC3D,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,WAAW;IACX,GAAG,EAAE;QACH,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,iCAAiC;QACjC,GAAG,EAAE,MAAM,CAAC;QACZ,2BAA2B;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,wBAAwB;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,mDAAmD;QACnD,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAsGD,wBAAgB,UAAU,IAAI,SAAS,CAItC;AAED,eAAO,MAAM,MAAM,WAAe,CAAC"}
|
package/dist/config/config.js
CHANGED
|
@@ -41,8 +41,16 @@ const yaml = __importStar(require("js-yaml"));
|
|
|
41
41
|
/** 最大允许执行超时(毫秒) */
|
|
42
42
|
exports.MAX_EXECUTION_TIMEOUT_MS = 180000;
|
|
43
43
|
const DEFAULT_ALLOWED_CODE_TOOLS = [
|
|
44
|
-
'opencode',
|
|
45
|
-
'
|
|
44
|
+
'opencode',
|
|
45
|
+
'claudecode',
|
|
46
|
+
'openaicodex',
|
|
47
|
+
'geminicode',
|
|
48
|
+
'cursorcode',
|
|
49
|
+
'qwencode',
|
|
50
|
+
'kimicode',
|
|
51
|
+
'openclaw',
|
|
52
|
+
'nanobot',
|
|
53
|
+
'codebuddy',
|
|
46
54
|
];
|
|
47
55
|
const DEFAULT_ALLOWED_SHELL_COMMANDS = ['git', 'pwd'];
|
|
48
56
|
function defaultConfig() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/handler/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/handler/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAmD/C,wBAAsB,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D"}
|
|
@@ -5,10 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.run = run;
|
|
7
7
|
const config_1 = require("../../config/config");
|
|
8
|
+
const registry_1 = require("../../runtime/tools/registry");
|
|
8
9
|
const logger_1 = __importDefault(require("../../utils/logger"));
|
|
9
10
|
const HELP_CODE = `*Code* (tool + session)
|
|
10
11
|
• \`/code\` - Show current tool / list available tools
|
|
11
|
-
• \`/code <tool>\` - Switch default tool (
|
|
12
|
+
• \`/code <tool>\` - Switch default tool (<allowed code tools>)
|
|
12
13
|
• \`/code <tool> "prompt"\` - One-shot execute with specified tool
|
|
13
14
|
• \`/new\` - Start new session (clear history)
|
|
14
15
|
• \`/session\` - List sessions | \`/session <id>\` - Switch to session
|
|
@@ -22,8 +23,11 @@ const HELP_TASK = `*Task*
|
|
|
22
23
|
• \`/status\` - Show system status
|
|
23
24
|
• \`/tasks\` - List running tasks
|
|
24
25
|
• \`/cancel <task_id>\` - Cancel a task`;
|
|
26
|
+
const PLACEHOLDER_CODE_TOOLS = '<allowed code tools>';
|
|
25
27
|
const PLACEHOLDER_SHELL = '<allowed shell commands>';
|
|
26
28
|
function buildHelpText() {
|
|
29
|
+
const codeToolList = registry_1.toolRegistry.getEnabled().map((t) => t.commandName).join(', ') || '(none)';
|
|
30
|
+
const helpCode = HELP_CODE.replace(PLACEHOLDER_CODE_TOOLS, codeToolList);
|
|
27
31
|
const shellLines = config_1.config.allowedShellCommands.length
|
|
28
32
|
? config_1.config.allowedShellCommands
|
|
29
33
|
.map((name) => `• \`/${name} <args>\` - Execute ${name} command`)
|
|
@@ -33,7 +37,7 @@ function buildHelpText() {
|
|
|
33
37
|
return [
|
|
34
38
|
'*AI Code Gateway - Help*',
|
|
35
39
|
'',
|
|
36
|
-
|
|
40
|
+
helpCode,
|
|
37
41
|
'',
|
|
38
42
|
helpShell,
|
|
39
43
|
'',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/handler/commands/help.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/handler/commands/help.ts"],"names":[],"mappings":";;;;;AAmDA,kBAGC;AArDD,gDAA6C;AAC7C,2DAA4D;AAC5D,gEAAwC;AAExC,MAAM,SAAS,GAAG;;;;;;;;4EAQ0D,CAAC;AAE7E,MAAM,UAAU,GAAG;;CAElB,CAAC;AAEF,MAAM,SAAS,GAAG;;;wCAGsB,CAAC;AAEzC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AACtD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD,SAAS,aAAa;IACpB,MAAM,YAAY,GAAG,uBAAY,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;IAChG,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;IAEzE,MAAM,UAAU,GAAG,eAAM,CAAC,oBAAoB,CAAC,MAAM;QACnD,CAAC,CAAC,eAAM,CAAC,oBAAoB;aACxB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,uBAAuB,IAAI,UAAU,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,kCAAkC,CAAC;IACvC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAEpE,OAAO;QACL,0BAA0B;QAC1B,EAAE;QACF,QAAQ;QACR,EAAE;QACF,SAAS;QACT,EAAE;QACF,SAAS;QACT,EAAE;QACF,oEAAoE;KACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,GAAG,CAAC,GAAmB;IAC3C,gBAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC9C,MAAM,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,aAAa,EAAE,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionManager.d.ts","sourceRoot":"","sources":["../../src/runtime/sessionManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessionManager.d.ts","sourceRoot":"","sources":["../../src/runtime/sessionManager.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,uGAAuG;IACvG,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAqBD;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;gBAE5B,QAAQ,CAAC,EAAE,MAAM;IAK7B,2DAA2D;IAC3D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IASvC,oCAAoC;IACpC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAOlE,qDAAqD;IACrD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUlC,qGAAqG;IACrG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUvC,sEAAsE;IACtE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO5C,wCAAwC;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B,OAAO,CAAC,IAAI;IAsBZ,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,IAAI;CAmBb;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
|
@@ -40,14 +40,24 @@ exports.sessionManager = exports.SessionManager = void 0;
|
|
|
40
40
|
const fs = __importStar(require("fs"));
|
|
41
41
|
const path = __importStar(require("path"));
|
|
42
42
|
const logger_1 = __importDefault(require("../utils/logger"));
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
43
|
+
const config_1 = require("../config/config");
|
|
44
|
+
/**
|
|
45
|
+
* Get default tool from config (first in allowedCodeTools).
|
|
46
|
+
* Falls back to 'opencode' if config is empty.
|
|
47
|
+
*/
|
|
48
|
+
function getDefaultTool() {
|
|
49
|
+
return config_1.config.allowedCodeTools[0] || 'opencode';
|
|
50
|
+
}
|
|
51
|
+
function createDefaultSession() {
|
|
52
|
+
return {
|
|
53
|
+
tool: getDefaultTool(),
|
|
54
|
+
sessionId: null,
|
|
55
|
+
model: null,
|
|
56
|
+
agent: null,
|
|
57
|
+
cwd: null,
|
|
58
|
+
newSessionRequested: false,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
51
61
|
/**
|
|
52
62
|
* Manages per-user session state with JSON file persistence.
|
|
53
63
|
* - In-memory Map for fast access
|
|
@@ -67,7 +77,7 @@ class SessionManager {
|
|
|
67
77
|
const existing = this.sessions.get(userId);
|
|
68
78
|
if (existing)
|
|
69
79
|
return existing;
|
|
70
|
-
const session =
|
|
80
|
+
const session = createDefaultSession();
|
|
71
81
|
this.sessions.set(userId, session);
|
|
72
82
|
return session;
|
|
73
83
|
}
|
|
@@ -107,7 +117,7 @@ class SessionManager {
|
|
|
107
117
|
}
|
|
108
118
|
/** Full reset including tool and cwd */
|
|
109
119
|
fullReset(userId) {
|
|
110
|
-
this.sessions.set(userId,
|
|
120
|
+
this.sessions.set(userId, createDefaultSession());
|
|
111
121
|
this.scheduleSave();
|
|
112
122
|
}
|
|
113
123
|
load() {
|
|
@@ -120,7 +130,7 @@ class SessionManager {
|
|
|
120
130
|
const data = JSON.parse(raw);
|
|
121
131
|
for (const [userId, session] of Object.entries(data)) {
|
|
122
132
|
// Merge with defaults to handle schema changes
|
|
123
|
-
this.sessions.set(userId, { ...
|
|
133
|
+
this.sessions.set(userId, { ...createDefaultSession(), ...session });
|
|
124
134
|
}
|
|
125
135
|
logger_1.default.info(`📁 Loaded ${this.sessions.size} user sessions from ${this.filePath}`);
|
|
126
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../src/runtime/sessionManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,6DAAqC;
|
|
1
|
+
{"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../src/runtime/sessionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseToolAdapter } from './base';
|
|
2
|
+
import type { RunOptions, ToolCapabilities } from './base';
|
|
3
|
+
/**
|
|
4
|
+
* Adapter for CodeBuddy Code CLI (腾讯云).
|
|
5
|
+
* - Execute: codebuddy -p "prompt" [-y]
|
|
6
|
+
* - Non-interactive: -p/--print; -y skips permission prompts for automation.
|
|
7
|
+
* @see https://www.codebuddy.ai/docs/zh/cli/quickstart
|
|
8
|
+
*/
|
|
9
|
+
export declare class CodeBuddyAdapter extends BaseToolAdapter {
|
|
10
|
+
readonly name = "codebuddy";
|
|
11
|
+
readonly commandName = "codebuddy";
|
|
12
|
+
readonly displayName = "CodeBuddy";
|
|
13
|
+
readonly capabilities: ToolCapabilities;
|
|
14
|
+
buildCommand(prompt: string, _options: RunOptions): string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=codebuddy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebuddy.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/codebuddy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE3D;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAQrC;IAEF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM;CAK3D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodeBuddyAdapter = void 0;
|
|
4
|
+
const base_1 = require("./base");
|
|
5
|
+
/**
|
|
6
|
+
* Adapter for CodeBuddy Code CLI (腾讯云).
|
|
7
|
+
* - Execute: codebuddy -p "prompt" [-y]
|
|
8
|
+
* - Non-interactive: -p/--print; -y skips permission prompts for automation.
|
|
9
|
+
* @see https://www.codebuddy.ai/docs/zh/cli/quickstart
|
|
10
|
+
*/
|
|
11
|
+
class CodeBuddyAdapter extends base_1.BaseToolAdapter {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.name = 'codebuddy';
|
|
15
|
+
this.commandName = 'codebuddy';
|
|
16
|
+
this.displayName = 'CodeBuddy';
|
|
17
|
+
this.capabilities = {
|
|
18
|
+
session: false,
|
|
19
|
+
model: false,
|
|
20
|
+
agent: false,
|
|
21
|
+
compact: false,
|
|
22
|
+
listModels: false,
|
|
23
|
+
listSessions: false,
|
|
24
|
+
listAgents: false,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
buildCommand(prompt, _options) {
|
|
28
|
+
const exe = this.getExecutable();
|
|
29
|
+
// -y: skip permission prompts in headless/gateway usage
|
|
30
|
+
return `${exe} -p "${this.escapePrompt(prompt)}" -y`;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.CodeBuddyAdapter = CodeBuddyAdapter;
|
|
34
|
+
//# sourceMappingURL=codebuddy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebuddy.js","sourceRoot":"","sources":["../../../src/runtime/tools/codebuddy.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAGzC;;;;;GAKG;AACH,MAAa,gBAAiB,SAAQ,sBAAe;IAArD;;QACW,SAAI,GAAG,WAAW,CAAC;QACnB,gBAAW,GAAG,WAAW,CAAC;QAC1B,gBAAW,GAAG,WAAW,CAAC;QAC1B,iBAAY,GAAqB;YACxC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;IAOJ,CAAC;IALC,YAAY,CAAC,MAAc,EAAE,QAAoB;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,wDAAwD;QACxD,OAAO,GAAG,GAAG,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;IACvD,CAAC;CACF;AAnBD,4CAmBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAyB1C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAIpF;AAED,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -11,6 +11,7 @@ const openclaw_1 = require("./openclaw");
|
|
|
11
11
|
const nanobot_1 = require("./nanobot");
|
|
12
12
|
const cursorcode_1 = require("./cursorcode");
|
|
13
13
|
const geminicode_1 = require("./geminicode");
|
|
14
|
+
const codebuddy_1 = require("./codebuddy");
|
|
14
15
|
const ALL_ADAPTERS = [
|
|
15
16
|
new opencode_1.OpenCodeAdapter(),
|
|
16
17
|
new claudecode_1.ClaudeCodeAdapter(),
|
|
@@ -21,6 +22,7 @@ const ALL_ADAPTERS = [
|
|
|
21
22
|
new nanobot_1.NanobotAdapter(),
|
|
22
23
|
new cursorcode_1.CursorCodeAdapter(),
|
|
23
24
|
new geminicode_1.GeminiCodeAdapter(),
|
|
25
|
+
new codebuddy_1.CodeBuddyAdapter(),
|
|
24
26
|
];
|
|
25
27
|
/**
|
|
26
28
|
* Register all built-in tool adapters with the registry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/tools/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/tools/index.ts"],"names":[],"mappings":";;;AA6BA,kCAIC;AAhCD,yCAA6C;AAC7C,6CAAiD;AACjD,+CAA6C;AAC7C,yCAA6C;AAC7C,yCAAyC;AACzC,yCAA6C;AAC7C,uCAA2C;AAC3C,6CAAiD;AACjD,6CAAiD;AACjD,2CAA+C;AAE/C,MAAM,YAAY,GAAkB;IAClC,IAAI,0BAAe,EAAE;IACrB,IAAI,8BAAiB,EAAE;IACvB,IAAI,0BAAY,EAAE;IAClB,IAAI,0BAAe,EAAE;IACrB,IAAI,sBAAW,EAAE;IACjB,IAAI,0BAAe,EAAE;IACrB,IAAI,wBAAc,EAAE;IACpB,IAAI,8BAAiB,EAAE;IACvB,IAAI,8BAAiB,EAAE;IACvB,IAAI,4BAAgB,EAAE;CACvB,CAAC;AAEF;;;GAGG;AACH,SAAgB,WAAW,CAAC,QAAkD;IAC5E,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAGD,uCAA0C;AAAjC,wGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseToolAdapter } from './base';
|
|
2
|
+
import type { RunOptions, ToolCapabilities } from './base';
|
|
3
|
+
/**
|
|
4
|
+
* Adapter for Qoder CLI.
|
|
5
|
+
* - Execute: qodercli -p "prompt" (Print mode, non-interactive)
|
|
6
|
+
* @see https://docs.qoder.com/cli/using-cli
|
|
7
|
+
*/
|
|
8
|
+
export declare class QoderCodeAdapter extends BaseToolAdapter {
|
|
9
|
+
readonly name = "qodercode";
|
|
10
|
+
readonly commandName = "qoder";
|
|
11
|
+
readonly displayName = "Qoder";
|
|
12
|
+
readonly capabilities: ToolCapabilities;
|
|
13
|
+
/** Qoder CLI 可执行名为 qodercli */
|
|
14
|
+
protected getDefaultExecutable(): string;
|
|
15
|
+
buildCommand(prompt: string, _options: RunOptions): string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=qodercode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qodercode.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/qodercode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE3D;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,WAAW;IAC/B,QAAQ,CAAC,WAAW,WAAW;IAC/B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAQrC;IAEF,+BAA+B;IAC/B,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM;CAG3D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QoderCodeAdapter = void 0;
|
|
4
|
+
const base_1 = require("./base");
|
|
5
|
+
/**
|
|
6
|
+
* Adapter for Qoder CLI.
|
|
7
|
+
* - Execute: qodercli -p "prompt" (Print mode, non-interactive)
|
|
8
|
+
* @see https://docs.qoder.com/cli/using-cli
|
|
9
|
+
*/
|
|
10
|
+
class QoderCodeAdapter extends base_1.BaseToolAdapter {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.name = 'qodercode';
|
|
14
|
+
this.commandName = 'qoder';
|
|
15
|
+
this.displayName = 'Qoder';
|
|
16
|
+
this.capabilities = {
|
|
17
|
+
session: false,
|
|
18
|
+
model: false,
|
|
19
|
+
agent: false,
|
|
20
|
+
compact: false,
|
|
21
|
+
listModels: false,
|
|
22
|
+
listSessions: false,
|
|
23
|
+
listAgents: false,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** Qoder CLI 可执行名为 qodercli */
|
|
27
|
+
getDefaultExecutable() {
|
|
28
|
+
return 'qodercli';
|
|
29
|
+
}
|
|
30
|
+
buildCommand(prompt, _options) {
|
|
31
|
+
return `${this.getExecutable()} -p "${this.escapePrompt(prompt)}"`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.QoderCodeAdapter = QoderCodeAdapter;
|
|
35
|
+
//# sourceMappingURL=qodercode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qodercode.js","sourceRoot":"","sources":["../../../src/runtime/tools/qodercode.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAGzC;;;;GAIG;AACH,MAAa,gBAAiB,SAAQ,sBAAe;IAArD;;QACW,SAAI,GAAG,WAAW,CAAC;QACnB,gBAAW,GAAG,OAAO,CAAC;QACtB,gBAAW,GAAG,OAAO,CAAC;QACtB,iBAAY,GAAqB;YACxC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;IAUJ,CAAC;IARC,+BAA+B;IACrB,oBAAoB;QAC5B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,QAAoB;QAC/C,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;IACrE,CAAC;CACF;AAtBD,4CAsBC"}
|
|
@@ -13,7 +13,7 @@ declare class ToolRegistry {
|
|
|
13
13
|
getByCommand(cmd: string): ToolAdapter | undefined;
|
|
14
14
|
/** List all registered adapters */
|
|
15
15
|
list(): ToolAdapter[];
|
|
16
|
-
/** List only enabled adapters
|
|
16
|
+
/** List only enabled adapters, in the order of config.allowedCodeTools */
|
|
17
17
|
getEnabled(): ToolAdapter[];
|
|
18
18
|
}
|
|
19
19
|
export declare const toolRegistry: ToolRegistry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAI1C;;;GAGG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,UAAU,CAAkC;IAEpD,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMpC,mEAAmE;IACnE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI1C,6EAA6E;IAC7E,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIlD,mCAAmC;IACnC,IAAI,IAAI,WAAW,EAAE;IAIrB,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAI1C;;;GAGG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,UAAU,CAAkC;IAEpD,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMpC,mEAAmE;IACnE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI1C,6EAA6E;IAC7E,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIlD,mCAAmC;IACnC,IAAI,IAAI,WAAW,EAAE;IAIrB,0EAA0E;IAC1E,UAAU,IAAI,WAAW,EAAE;CAQ5B;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -32,9 +32,15 @@ class ToolRegistry {
|
|
|
32
32
|
list() {
|
|
33
33
|
return Array.from(this.adapters.values());
|
|
34
34
|
}
|
|
35
|
-
/** List only enabled adapters
|
|
35
|
+
/** List only enabled adapters, in the order of config.allowedCodeTools */
|
|
36
36
|
getEnabled() {
|
|
37
|
-
|
|
37
|
+
const result = [];
|
|
38
|
+
for (const name of config_1.config.allowedCodeTools) {
|
|
39
|
+
const adapter = this.adapters.get(name);
|
|
40
|
+
if (adapter)
|
|
41
|
+
result.push(adapter);
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
46
|
exports.toolRegistry = new ToolRegistry();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/runtime/tools/registry.ts"],"names":[],"mappings":";;;;;;AACA,gDAA6C;AAC7C,gEAAwC;AAExC;;;GAGG;AACH,MAAM,YAAY;IAAlB;QACU,aAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC1C,eAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/runtime/tools/registry.ts"],"names":[],"mappings":";;;;;;AACA,gDAA6C;AAC7C,gEAAwC;AAExC;;;GAGG;AACH,MAAM,YAAY;IAAlB;QACU,aAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC1C,eAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAgCtD,CAAC;IA9BC,QAAQ,CAAC,OAAoB;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,gBAAM,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,WAAW,MAAM,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,mEAAmE;IACnE,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,6EAA6E;IAC7E,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,mCAAmC;IACnC,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAC1E,UAAU;QACR,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,eAAM,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAEY,QAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
package/openbotgate.example.yml
CHANGED
|
@@ -27,24 +27,28 @@ execution:
|
|
|
27
27
|
maxOutputLength: 10000
|
|
28
28
|
shellOutputEncoding: null # Windows 下可设 gbk
|
|
29
29
|
|
|
30
|
+
# 允许的 Code 工具列表(列表中第一个工具为新用户的默认工具)
|
|
30
31
|
allowedCodeTools:
|
|
31
32
|
- opencode
|
|
32
|
-
- cursorcode
|
|
33
33
|
- claudecode
|
|
34
34
|
- openaicodex
|
|
35
|
+
- geminicode
|
|
36
|
+
- cursorcode
|
|
35
37
|
- qwencode
|
|
36
38
|
- kimicode
|
|
37
|
-
- geminicode
|
|
38
39
|
- openclaw
|
|
39
40
|
- nanobot
|
|
41
|
+
- codebuddy
|
|
40
42
|
|
|
41
43
|
allowedShellCommands:
|
|
42
44
|
- git
|
|
43
45
|
- pwd
|
|
44
46
|
|
|
45
47
|
# Code 适配器:使用自定义命令/脚本(如 claude.ps1 替代 claude)
|
|
46
|
-
codeToolOverrides:
|
|
47
|
-
|
|
48
|
+
codeToolOverrides: {}
|
|
49
|
+
# codeToolCommandOverrides:
|
|
50
|
+
# claudecode: claude.ps1
|
|
51
|
+
# cursorcode: agent.ps1
|
|
48
52
|
|
|
49
53
|
# Shell 命令:使用自定义命令/脚本(如 git.ps1 替代 git)
|
|
50
54
|
shellCommandOverrides: {}
|