agim-cli 1.2.60 → 1.2.62
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/CHANGELOG.md +42 -0
- package/dist/core/llm/exec-dispatcher.d.ts +9 -0
- package/dist/core/llm/exec-dispatcher.d.ts.map +1 -0
- package/dist/core/llm/exec-dispatcher.js +223 -0
- package/dist/core/llm/exec-dispatcher.js.map +1 -0
- package/dist/core/llm/web-dispatcher.d.ts +27 -0
- package/dist/core/llm/web-dispatcher.d.ts.map +1 -0
- package/dist/core/llm/web-dispatcher.js +401 -0
- package/dist/core/llm/web-dispatcher.js.map +1 -0
- package/dist/plugins/agents/native/index.d.ts.map +1 -1
- package/dist/plugins/agents/native/index.js +10 -3
- package/dist/plugins/agents/native/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,48 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.2.62] - 2026-05-25
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`native_exec(command, timeout_ms?, cwd?)`** — shell execution
|
|
12
|
+
tool in `src/core/llm/exec-dispatcher.ts`. Default timeout 60s
|
|
13
|
+
(hard cap 600s via `IMHUB_EXEC_TIMEOUT_MS`), per-stream output
|
|
14
|
+
capped at 32KB (override via `IMHUB_EXEC_MAX_OUTPUT`). Returns
|
|
15
|
+
JSON `{ exit_code, signal, timed_out, stdout, stderr,
|
|
16
|
+
stdout_truncated, stderr_truncated }`. SIGTERM at timeout with a
|
|
17
|
+
3s grace before SIGKILL.
|
|
18
|
+
- **Optional bubblewrap sandbox** when `IMHUB_EXEC_SANDBOX=bwrap`
|
|
19
|
+
(Linux + `/usr/bin/bwrap` required). Read-only binds the host's
|
|
20
|
+
`/usr`, `/lib`, `/lib64`, `/etc/ssl`, `/etc/resolv.conf`; rw-binds
|
|
21
|
+
the agent's cwd; tmpfs `/tmp`; isolated proc/dev. Net stays on by
|
|
22
|
+
default; set `IMHUB_EXEC_SANDBOX_NET=off` to add `--unshare-net`
|
|
23
|
+
for fully offline execution.
|
|
24
|
+
- `native_exec` is **NOT** in the default autoAllow — each invocation
|
|
25
|
+
routes through the v1.2.60 IM approval card. Same-fingerprint
|
|
26
|
+
follow-ups are auto-allowed via the existing card UI.
|
|
27
|
+
|
|
28
|
+
## [1.2.61] - 2026-05-25
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- **2 native web tools** in `src/core/llm/web-dispatcher.ts`:
|
|
33
|
+
- `native_web_fetch(url, format?)` — GET via undici. Default
|
|
34
|
+
`format="reader"` runs the URL through `r.jina.ai/` for clean
|
|
35
|
+
text extraction; `format="raw"` returns the body verbatim
|
|
36
|
+
(useful for JSON APIs). 200KB cap, 30s timeout.
|
|
37
|
+
- `native_web_search(query, n?)` — backend chain: DuckDuckGo HTML
|
|
38
|
+
SERP (no key, scraped) → Metaso fallback (needs
|
|
39
|
+
`METASO_API_KEY`). Returns up to 8 results with title + url +
|
|
40
|
+
snippet by default.
|
|
41
|
+
- **SSRF defense** in `checkUrlSafety`: refuses non-http(s)
|
|
42
|
+
protocols, RFC1918 (10/8, 172.16-31/12, 192.168/16), loopback
|
|
43
|
+
(127/8, ::1, localhost), link-local (169.254/16, fe80::/10), and
|
|
44
|
+
IPv6 ULA (fc00::/7). Operators who genuinely need private targets
|
|
45
|
+
set `IMHUB_NATIVE_WEB_ALLOW_PRIVATE=1`.
|
|
46
|
+
- Both tools added to native's default autoAllow — they're read-only
|
|
47
|
+
and the SSRF block stays in force regardless.
|
|
48
|
+
|
|
7
49
|
## [1.2.60] - 2026-05-25
|
|
8
50
|
|
|
9
51
|
### Changed
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolDef } from './provider-base.js';
|
|
2
|
+
import type { ToolDispatcher } from './tool-dispatcher.js';
|
|
3
|
+
export declare function isExecToolName(name: string): boolean;
|
|
4
|
+
export declare function getExecTools(): ToolDef[];
|
|
5
|
+
export interface ExecContext {
|
|
6
|
+
cwd: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function buildExecDispatcher(ctx: ExecContext): ToolDispatcher;
|
|
9
|
+
//# sourceMappingURL=exec-dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/core/llm/exec-dispatcher.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAS5E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAsBxC;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAapE"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
// exec-dispatcher — native_exec(cmd) for the native agent (v1.2.62).
|
|
2
|
+
//
|
|
3
|
+
// Spawns a shell command, captures stdout/stderr, returns JSON. Always
|
|
4
|
+
// goes through the policy gate (NOT in default autoAllow), so the user
|
|
5
|
+
// sees an IM approval card per command per fingerprint.
|
|
6
|
+
//
|
|
7
|
+
// Sandbox:
|
|
8
|
+
// IMHUB_EXEC_SANDBOX=bwrap (Linux only) wraps the command in
|
|
9
|
+
// bubblewrap with:
|
|
10
|
+
// --ro-bind /usr /usr
|
|
11
|
+
// --ro-bind /lib /lib
|
|
12
|
+
// --ro-bind /lib64 /lib64
|
|
13
|
+
// --ro-bind /etc/resolv.conf /etc/resolv.conf
|
|
14
|
+
// --proc /proc
|
|
15
|
+
// --dev /dev
|
|
16
|
+
// --bind <cwd> <cwd> (writable workspace)
|
|
17
|
+
// --tmpfs /tmp
|
|
18
|
+
// --unshare-net? — kept ON (allows net so
|
|
19
|
+
// curl/git work)
|
|
20
|
+
// --die-with-parent
|
|
21
|
+
// i.e. process sees the host's read-only
|
|
22
|
+
// userland but cannot touch home dirs /
|
|
23
|
+
// ~/.agim/ / /root outside cwd. Pure UID
|
|
24
|
+
// isolation. No net isolation by default
|
|
25
|
+
// (operators who want it set
|
|
26
|
+
// IMHUB_EXEC_SANDBOX_NET=off).
|
|
27
|
+
// IMHUB_EXEC_SANDBOX=off | unset → plain spawn, no isolation.
|
|
28
|
+
//
|
|
29
|
+
// Other env knobs:
|
|
30
|
+
// IMHUB_EXEC_TIMEOUT_MS default 60_000, hard cap 600_000
|
|
31
|
+
// IMHUB_EXEC_MAX_OUTPUT default 32_768 bytes per stream
|
|
32
|
+
import { spawn } from 'node:child_process';
|
|
33
|
+
import { existsSync } from 'node:fs';
|
|
34
|
+
import { logger as rootLogger } from '../logger.js';
|
|
35
|
+
const log = rootLogger.child({ component: 'exec-dispatcher' });
|
|
36
|
+
const DEFAULT_TIMEOUT_MS = 60_000;
|
|
37
|
+
const HARD_TIMEOUT_CAP_MS = 600_000;
|
|
38
|
+
const DEFAULT_MAX_OUTPUT = 32 * 1024;
|
|
39
|
+
const EXEC_TOOL_NAMES = ['native_exec'];
|
|
40
|
+
export function isExecToolName(name) {
|
|
41
|
+
return EXEC_TOOL_NAMES.includes(name);
|
|
42
|
+
}
|
|
43
|
+
export function getExecTools() {
|
|
44
|
+
return [
|
|
45
|
+
{
|
|
46
|
+
name: 'native_exec',
|
|
47
|
+
description: 'Execute a shell command in the agent\'s workspace. cwd defaults to the agent workspace; ' +
|
|
48
|
+
'optional timeout_ms (default 60000, max 600000). Returns stdout, stderr, exit_code. ' +
|
|
49
|
+
'Each invocation is approval-gated by default — the user sees an IM card with the command ' +
|
|
50
|
+
'and must allow. When IMHUB_EXEC_SANDBOX=bwrap (Linux), runs under bubblewrap so the ' +
|
|
51
|
+
'command can\'t touch home dirs outside cwd.',
|
|
52
|
+
parameters: {
|
|
53
|
+
type: 'object',
|
|
54
|
+
properties: {
|
|
55
|
+
command: { type: 'string', description: 'Shell command. Will be invoked via /bin/sh -c.' },
|
|
56
|
+
timeout_ms: { type: 'number', description: 'Per-call timeout in ms (default 60000, max 600000).' },
|
|
57
|
+
cwd: { type: 'string', description: 'Override cwd. Defaults to the agent workspace.' },
|
|
58
|
+
},
|
|
59
|
+
required: ['command'],
|
|
60
|
+
additionalProperties: false,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
export function buildExecDispatcher(ctx) {
|
|
66
|
+
return async (call, signal) => {
|
|
67
|
+
if (!isExecToolName(call.name)) {
|
|
68
|
+
return { text: `not handled: ${call.name}`, isError: true, source: 'unknown' };
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
return await runExec(call.arguments, ctx, signal);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
75
|
+
log.warn({ event: 'exec.tool.error', err: msg });
|
|
76
|
+
return { text: `native_exec failed: ${msg}`, isError: true, source: 'exec' };
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
async function runExec(args, ctx, signal) {
|
|
81
|
+
const command = typeof args.command === 'string' ? args.command : '';
|
|
82
|
+
if (!command.trim())
|
|
83
|
+
return { text: 'command required', isError: true, source: 'exec' };
|
|
84
|
+
const timeoutMs = clampTimeout(args.timeout_ms);
|
|
85
|
+
const cwd = typeof args.cwd === 'string' && args.cwd.length > 0 ? args.cwd : ctx.cwd;
|
|
86
|
+
const sandboxMode = (process.env.IMHUB_EXEC_SANDBOX || '').toLowerCase();
|
|
87
|
+
const useSandbox = sandboxMode === 'bwrap' && existsSync('/usr/bin/bwrap');
|
|
88
|
+
const sandboxNetOff = (process.env.IMHUB_EXEC_SANDBOX_NET || '').toLowerCase() === 'off';
|
|
89
|
+
const { bin, argv } = useSandbox
|
|
90
|
+
? buildBwrapInvocation(command, cwd, sandboxNetOff)
|
|
91
|
+
: { bin: '/bin/sh', argv: ['-c', command] };
|
|
92
|
+
log.info({
|
|
93
|
+
event: 'exec.spawn',
|
|
94
|
+
bin,
|
|
95
|
+
cwd,
|
|
96
|
+
sandbox: useSandbox ? `bwrap${sandboxNetOff ? '+no-net' : ''}` : 'none',
|
|
97
|
+
timeoutMs,
|
|
98
|
+
commandPreview: command.slice(0, 120),
|
|
99
|
+
});
|
|
100
|
+
return await runChild(bin, argv, { cwd, timeoutMs, signal });
|
|
101
|
+
}
|
|
102
|
+
function buildBwrapInvocation(command, cwd, netOff) {
|
|
103
|
+
const argv = [
|
|
104
|
+
'--die-with-parent',
|
|
105
|
+
'--ro-bind', '/usr', '/usr',
|
|
106
|
+
'--ro-bind-try', '/lib', '/lib',
|
|
107
|
+
'--ro-bind-try', '/lib64', '/lib64',
|
|
108
|
+
'--ro-bind-try', '/bin', '/bin',
|
|
109
|
+
'--ro-bind-try', '/sbin', '/sbin',
|
|
110
|
+
'--ro-bind-try', '/etc/resolv.conf', '/etc/resolv.conf',
|
|
111
|
+
'--ro-bind-try', '/etc/ssl', '/etc/ssl',
|
|
112
|
+
'--ro-bind-try', '/etc/ca-certificates', '/etc/ca-certificates',
|
|
113
|
+
'--proc', '/proc',
|
|
114
|
+
'--dev', '/dev',
|
|
115
|
+
'--tmpfs', '/tmp',
|
|
116
|
+
'--bind', cwd, cwd,
|
|
117
|
+
'--chdir', cwd,
|
|
118
|
+
];
|
|
119
|
+
if (netOff)
|
|
120
|
+
argv.push('--unshare-net');
|
|
121
|
+
argv.push('/bin/sh', '-c', command);
|
|
122
|
+
return { bin: '/usr/bin/bwrap', argv };
|
|
123
|
+
}
|
|
124
|
+
function runChild(bin, argv, opts) {
|
|
125
|
+
return new Promise((resolve) => {
|
|
126
|
+
const maxOutput = clampNumber(process.env.IMHUB_EXEC_MAX_OUTPUT, DEFAULT_MAX_OUTPUT, 1024, 1024 * 1024);
|
|
127
|
+
let stdout = '';
|
|
128
|
+
let stderr = '';
|
|
129
|
+
let stdoutTruncated = false;
|
|
130
|
+
let stderrTruncated = false;
|
|
131
|
+
let timedOut = false;
|
|
132
|
+
const child = spawn(bin, argv, { cwd: opts.cwd, env: process.env, signal: opts.signal });
|
|
133
|
+
const timer = setTimeout(() => {
|
|
134
|
+
timedOut = true;
|
|
135
|
+
try {
|
|
136
|
+
child.kill('SIGTERM');
|
|
137
|
+
}
|
|
138
|
+
catch { /* ignore */ }
|
|
139
|
+
// Hard SIGKILL after a 3s grace period so the dispatcher doesn't
|
|
140
|
+
// hang on a process that ignores SIGTERM.
|
|
141
|
+
setTimeout(() => { try {
|
|
142
|
+
child.kill('SIGKILL');
|
|
143
|
+
}
|
|
144
|
+
catch { /* ignore */ } }, 3_000).unref();
|
|
145
|
+
}, opts.timeoutMs);
|
|
146
|
+
timer.unref();
|
|
147
|
+
child.stdout?.setEncoding('utf-8');
|
|
148
|
+
child.stderr?.setEncoding('utf-8');
|
|
149
|
+
child.stdout?.on('data', (chunk) => {
|
|
150
|
+
if (stdout.length >= maxOutput) {
|
|
151
|
+
stdoutTruncated = true;
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const room = maxOutput - stdout.length;
|
|
155
|
+
stdout += chunk.length > room ? chunk.slice(0, room) : chunk;
|
|
156
|
+
if (chunk.length > room)
|
|
157
|
+
stdoutTruncated = true;
|
|
158
|
+
});
|
|
159
|
+
child.stderr?.on('data', (chunk) => {
|
|
160
|
+
if (stderr.length >= maxOutput) {
|
|
161
|
+
stderrTruncated = true;
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const room = maxOutput - stderr.length;
|
|
165
|
+
stderr += chunk.length > room ? chunk.slice(0, room) : chunk;
|
|
166
|
+
if (chunk.length > room)
|
|
167
|
+
stderrTruncated = true;
|
|
168
|
+
});
|
|
169
|
+
child.on('close', (code, signalName) => {
|
|
170
|
+
clearTimeout(timer);
|
|
171
|
+
const exitCode = code ?? -1;
|
|
172
|
+
const payload = {
|
|
173
|
+
exit_code: exitCode,
|
|
174
|
+
signal: signalName ?? null,
|
|
175
|
+
timed_out: timedOut,
|
|
176
|
+
stdout,
|
|
177
|
+
stderr,
|
|
178
|
+
stdout_truncated: stdoutTruncated,
|
|
179
|
+
stderr_truncated: stderrTruncated,
|
|
180
|
+
};
|
|
181
|
+
// Treat non-zero as error so the model sees `isError: true` and
|
|
182
|
+
// can react (e.g. retry with different args). Timed-out gets a
|
|
183
|
+
// dedicated message at the top.
|
|
184
|
+
const isError = timedOut || (exitCode !== 0 && exitCode !== null);
|
|
185
|
+
const summary = timedOut
|
|
186
|
+
? `command timed out after ${opts.timeoutMs}ms; partial output below.\n`
|
|
187
|
+
: '';
|
|
188
|
+
resolve({
|
|
189
|
+
text: summary + JSON.stringify(payload, null, 2),
|
|
190
|
+
isError,
|
|
191
|
+
source: 'exec',
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
child.on('error', (err) => {
|
|
195
|
+
clearTimeout(timer);
|
|
196
|
+
resolve({
|
|
197
|
+
text: `spawn failed: ${err.message}`,
|
|
198
|
+
isError: true,
|
|
199
|
+
source: 'exec',
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function clampTimeout(raw) {
|
|
205
|
+
const fromArg = typeof raw === 'number' ? raw : Number(raw);
|
|
206
|
+
if (Number.isFinite(fromArg) && fromArg > 0) {
|
|
207
|
+
return Math.min(HARD_TIMEOUT_CAP_MS, Math.floor(fromArg));
|
|
208
|
+
}
|
|
209
|
+
const env = process.env.IMHUB_EXEC_TIMEOUT_MS;
|
|
210
|
+
if (env) {
|
|
211
|
+
const n = Number(env);
|
|
212
|
+
if (Number.isFinite(n) && n > 0)
|
|
213
|
+
return Math.min(HARD_TIMEOUT_CAP_MS, Math.floor(n));
|
|
214
|
+
}
|
|
215
|
+
return DEFAULT_TIMEOUT_MS;
|
|
216
|
+
}
|
|
217
|
+
function clampNumber(input, dflt, min, max) {
|
|
218
|
+
const n = typeof input === 'number' ? input : Number(input);
|
|
219
|
+
if (!Number.isFinite(n))
|
|
220
|
+
return dflt;
|
|
221
|
+
return Math.max(min, Math.min(max, Math.floor(n)));
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=exec-dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-dispatcher.js","sourceRoot":"","sources":["../../../src/core/llm/exec-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ToolDef } from './provider-base.js';
|
|
2
|
+
import type { ToolDispatcher } from './tool-dispatcher.js';
|
|
3
|
+
export declare function isWebToolName(name: string): boolean;
|
|
4
|
+
export declare function getWebTools(): ToolDef[];
|
|
5
|
+
export declare function buildWebDispatcher(): ToolDispatcher;
|
|
6
|
+
interface SearchHit {
|
|
7
|
+
title: string;
|
|
8
|
+
url: string;
|
|
9
|
+
snippet: string;
|
|
10
|
+
}
|
|
11
|
+
/** Tiny extractor for the DuckDuckGo HTML SERP. The DDG HTML page wraps
|
|
12
|
+
* each result in `<div class="result">` with `<a class="result__a" href="...">title</a>`
|
|
13
|
+
* + `<a class="result__snippet">snippet</a>`. We don't use a DOM parser
|
|
14
|
+
* (no dep), just regex — robust enough for SERPs (DDG is stable about
|
|
15
|
+
* these classes). */
|
|
16
|
+
export declare function parseDdgHtml(html: string, max: number): SearchHit[];
|
|
17
|
+
/** Best-effort metaso response normaliser. Field names from metaso vary
|
|
18
|
+
* with API version; we look at common shapes. Adjust here if metaso
|
|
19
|
+
* changes their schema. */
|
|
20
|
+
export declare function parseMetasoResults(data: unknown, max: number): SearchHit[];
|
|
21
|
+
interface SafetyResult {
|
|
22
|
+
ok: boolean;
|
|
23
|
+
reason?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function checkUrlSafety(raw: string): SafetyResult;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=web-dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/core/llm/web-dispatcher.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAY5E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAwCvC;AAED,wBAAgB,kBAAkB,IAAI,cAAc,CAcnD;AA8DD,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AA2CD;;;;sBAIsB;AACtB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAgBnE;AA6CD;;4BAE4B;AAC5B,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAwB1E;AAID,UAAU,YAAY;IAAG,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAEvD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAoCxD"}
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
// web-dispatcher — read-only web tools for the native agent (v1.2.61).
|
|
2
|
+
//
|
|
3
|
+
// Two tools shipped:
|
|
4
|
+
// - native_web_fetch(url, format?) GET + optional Jina Reader text extract
|
|
5
|
+
// - native_web_search(query, n?) duckduckgo HTML scrape, metaso fallback
|
|
6
|
+
//
|
|
7
|
+
// Both have:
|
|
8
|
+
// * 30s default per-call timeout (override via IMHUB_NATIVE_WEB_TIMEOUT_MS)
|
|
9
|
+
// * SSRF block — RFC1918 / localhost / link-local are denied unless
|
|
10
|
+
// IMHUB_NATIVE_WEB_ALLOW_PRIVATE=1
|
|
11
|
+
// * Body / result size cap to keep the model context manageable
|
|
12
|
+
//
|
|
13
|
+
// Backend selection for web_search:
|
|
14
|
+
// 1. duckduckgo — primary, no API key, scrapes the HTML SERP
|
|
15
|
+
// 2. metaso — fallback when ddg returns 0/error, uses METASO_API_KEY
|
|
16
|
+
//
|
|
17
|
+
// Both tools are read-only and safe to default-allow in native's policy.
|
|
18
|
+
import { logger as rootLogger } from '../logger.js';
|
|
19
|
+
const log = rootLogger.child({ component: 'web-dispatcher' });
|
|
20
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
21
|
+
const DEFAULT_FETCH_MAX_BYTES = 200 * 1024; // 200 KB after extract
|
|
22
|
+
const DEFAULT_SEARCH_RESULTS = 8;
|
|
23
|
+
const DDG_SEARCH_URL = 'https://duckduckgo.com/html/?q=';
|
|
24
|
+
const METASO_API_BASE = 'https://metaso.cn/api/v1'; // adapt if path differs
|
|
25
|
+
const JINA_READER_BASE = 'https://r.jina.ai/';
|
|
26
|
+
const WEB_TOOL_NAMES = ['native_web_fetch', 'native_web_search'];
|
|
27
|
+
export function isWebToolName(name) {
|
|
28
|
+
return WEB_TOOL_NAMES.includes(name);
|
|
29
|
+
}
|
|
30
|
+
export function getWebTools() {
|
|
31
|
+
return [
|
|
32
|
+
{
|
|
33
|
+
name: 'native_web_fetch',
|
|
34
|
+
description: 'Fetch a URL and return its body as text. Default uses the Jina Reader (r.jina.ai) to ' +
|
|
35
|
+
'extract readable text from HTML; pass format="raw" to get the response body verbatim ' +
|
|
36
|
+
'(useful for JSON APIs). 200KB max, 30s timeout. Private IP ranges are blocked unless ' +
|
|
37
|
+
'IMHUB_NATIVE_WEB_ALLOW_PRIVATE=1.',
|
|
38
|
+
parameters: {
|
|
39
|
+
type: 'object',
|
|
40
|
+
properties: {
|
|
41
|
+
url: { type: 'string', description: 'http(s) URL to fetch.' },
|
|
42
|
+
format: {
|
|
43
|
+
type: 'string',
|
|
44
|
+
enum: ['reader', 'raw'],
|
|
45
|
+
description: 'reader (default): r.jina.ai text extract. raw: response body as-is.',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
required: ['url'],
|
|
49
|
+
additionalProperties: false,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'native_web_search',
|
|
54
|
+
description: 'Web search. Backend chain: DuckDuckGo HTML (no key) → Metaso fallback on failure (needs ' +
|
|
55
|
+
'METASO_API_KEY). Returns up to 8 results by default with title + url + snippet. ' +
|
|
56
|
+
'Use this for "search the web for …" / "what does X say about …" / "find the docs for …".',
|
|
57
|
+
parameters: {
|
|
58
|
+
type: 'object',
|
|
59
|
+
properties: {
|
|
60
|
+
query: { type: 'string', description: 'Search query.' },
|
|
61
|
+
n: { type: 'number', description: 'Max results (default 8, hard cap 20).' },
|
|
62
|
+
},
|
|
63
|
+
required: ['query'],
|
|
64
|
+
additionalProperties: false,
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
export function buildWebDispatcher() {
|
|
70
|
+
return async (call, signal) => {
|
|
71
|
+
if (!isWebToolName(call.name)) {
|
|
72
|
+
return { text: `not handled: ${call.name}`, isError: true, source: 'unknown' };
|
|
73
|
+
}
|
|
74
|
+
const timeoutMs = resolveTimeoutMs();
|
|
75
|
+
try {
|
|
76
|
+
return await raceTimeout(runOne(call.name, call.arguments, signal), timeoutMs, call.name);
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
80
|
+
log.warn({ event: 'web.tool.error', tool: call.name, err: msg });
|
|
81
|
+
return { text: `${call.name} failed: ${msg}`, isError: true, source: 'web' };
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
async function runOne(name, args, signal) {
|
|
86
|
+
switch (name) {
|
|
87
|
+
case 'native_web_fetch': return runWebFetch(args, signal);
|
|
88
|
+
case 'native_web_search': return runWebSearch(args, signal);
|
|
89
|
+
default:
|
|
90
|
+
return { text: `unknown web tool: ${name}`, isError: true, source: 'web' };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// ─── web_fetch ───────────────────────────────────────────────────────
|
|
94
|
+
async function runWebFetch(args, signal) {
|
|
95
|
+
const url = typeof args.url === 'string' ? args.url : '';
|
|
96
|
+
if (!url)
|
|
97
|
+
return { text: 'url required', isError: true, source: 'web' };
|
|
98
|
+
const format = args.format === 'raw' ? 'raw' : 'reader';
|
|
99
|
+
const safe = checkUrlSafety(url);
|
|
100
|
+
if (!safe.ok)
|
|
101
|
+
return { text: `web_fetch refused: ${safe.reason}`, isError: true, source: 'web' };
|
|
102
|
+
const target = format === 'reader'
|
|
103
|
+
? `${JINA_READER_BASE}${url}`
|
|
104
|
+
: url;
|
|
105
|
+
try {
|
|
106
|
+
const res = await fetch(target, {
|
|
107
|
+
method: 'GET',
|
|
108
|
+
redirect: 'follow',
|
|
109
|
+
signal,
|
|
110
|
+
headers: {
|
|
111
|
+
'User-Agent': 'agim-native/1.2.61 (+https://github.com/benking007/agim)',
|
|
112
|
+
'Accept': format === 'reader' ? 'text/plain' : '*/*',
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
if (!res.ok) {
|
|
116
|
+
return {
|
|
117
|
+
text: JSON.stringify({ url, format, status: res.status, statusText: res.statusText, body: '' }, null, 2),
|
|
118
|
+
isError: true,
|
|
119
|
+
source: 'web',
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
const body = await readCapped(res, DEFAULT_FETCH_MAX_BYTES);
|
|
123
|
+
return {
|
|
124
|
+
text: JSON.stringify({
|
|
125
|
+
url,
|
|
126
|
+
format,
|
|
127
|
+
status: res.status,
|
|
128
|
+
contentType: res.headers.get('content-type') ?? null,
|
|
129
|
+
bytes: body.text.length,
|
|
130
|
+
truncated: body.truncated,
|
|
131
|
+
body: body.text,
|
|
132
|
+
}, null, 2),
|
|
133
|
+
isError: false,
|
|
134
|
+
source: 'web',
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
return { text: `web_fetch failed: ${errMsg(err)}`, isError: true, source: 'web' };
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async function runWebSearch(args, signal) {
|
|
142
|
+
const query = typeof args.query === 'string' ? args.query.trim() : '';
|
|
143
|
+
if (!query)
|
|
144
|
+
return { text: 'query required', isError: true, source: 'web' };
|
|
145
|
+
const n = clampNumber(args.n, DEFAULT_SEARCH_RESULTS, 1, 20);
|
|
146
|
+
// 1) DuckDuckGo first.
|
|
147
|
+
try {
|
|
148
|
+
const ddg = await searchDuckDuckGo(query, n, signal);
|
|
149
|
+
if (ddg.length > 0) {
|
|
150
|
+
return ok({ query, backend: 'duckduckgo', count: ddg.length, results: ddg });
|
|
151
|
+
}
|
|
152
|
+
log.info({ event: 'web.search.ddg_empty', query }, 'duckduckgo returned 0 results, falling back to metaso');
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
log.warn({ event: 'web.search.ddg_failed', err: errMsg(err) });
|
|
156
|
+
}
|
|
157
|
+
// 2) Metaso fallback.
|
|
158
|
+
try {
|
|
159
|
+
const meta = await searchMetaso(query, n, signal);
|
|
160
|
+
if (meta.length > 0) {
|
|
161
|
+
return ok({ query, backend: 'metaso', count: meta.length, results: meta });
|
|
162
|
+
}
|
|
163
|
+
return err('web_search: both duckduckgo and metaso returned no results');
|
|
164
|
+
}
|
|
165
|
+
catch (err2) {
|
|
166
|
+
return err(`web_search: ddg failed and metaso fallback failed: ${errMsg(err2)}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
async function searchDuckDuckGo(query, n, signal) {
|
|
170
|
+
const url = DDG_SEARCH_URL + encodeURIComponent(query);
|
|
171
|
+
const res = await fetch(url, {
|
|
172
|
+
method: 'GET',
|
|
173
|
+
redirect: 'follow',
|
|
174
|
+
signal,
|
|
175
|
+
headers: {
|
|
176
|
+
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) agim-native/1.2.61',
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
if (!res.ok)
|
|
180
|
+
throw new Error(`ddg http ${res.status}`);
|
|
181
|
+
const html = await res.text();
|
|
182
|
+
return parseDdgHtml(html, n);
|
|
183
|
+
}
|
|
184
|
+
/** Tiny extractor for the DuckDuckGo HTML SERP. The DDG HTML page wraps
|
|
185
|
+
* each result in `<div class="result">` with `<a class="result__a" href="...">title</a>`
|
|
186
|
+
* + `<a class="result__snippet">snippet</a>`. We don't use a DOM parser
|
|
187
|
+
* (no dep), just regex — robust enough for SERPs (DDG is stable about
|
|
188
|
+
* these classes). */
|
|
189
|
+
export function parseDdgHtml(html, max) {
|
|
190
|
+
const out = [];
|
|
191
|
+
const blockRe = /<div\s+class="result[^"]*"[^>]*>([\s\S]*?)<\/div>\s*<\/div>/g;
|
|
192
|
+
for (let m = blockRe.exec(html); m !== null; m = blockRe.exec(html)) {
|
|
193
|
+
if (out.length >= max)
|
|
194
|
+
break;
|
|
195
|
+
const block = m[1];
|
|
196
|
+
const aMatch = /<a[^>]+class="result__a"[^>]+href="([^"]+)"[^>]*>([\s\S]*?)<\/a>/.exec(block);
|
|
197
|
+
if (!aMatch)
|
|
198
|
+
continue;
|
|
199
|
+
const rawHref = aMatch[1];
|
|
200
|
+
const url = unwrapDdgRedirect(rawHref);
|
|
201
|
+
const title = stripTags(aMatch[2]).trim();
|
|
202
|
+
const sMatch = /<a[^>]+class="result__snippet"[^>]*>([\s\S]*?)<\/a>/.exec(block);
|
|
203
|
+
const snippet = sMatch ? stripTags(sMatch[1]).trim() : '';
|
|
204
|
+
if (url && title)
|
|
205
|
+
out.push({ title, url, snippet });
|
|
206
|
+
}
|
|
207
|
+
return out;
|
|
208
|
+
}
|
|
209
|
+
function unwrapDdgRedirect(href) {
|
|
210
|
+
// DDG wraps result URLs as `/l/?uddg=<encoded>&rut=…` or `//duckduckgo.com/l/?…`.
|
|
211
|
+
// Pull out the uddg param if present.
|
|
212
|
+
try {
|
|
213
|
+
const u = new URL(href, 'https://duckduckgo.com');
|
|
214
|
+
const inner = u.searchParams.get('uddg');
|
|
215
|
+
if (inner)
|
|
216
|
+
return decodeURIComponent(inner);
|
|
217
|
+
return href.startsWith('http') ? href : `https:${href}`;
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return href;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
function stripTags(s) {
|
|
224
|
+
return s
|
|
225
|
+
.replace(/<[^>]+>/g, '')
|
|
226
|
+
.replace(/&/g, '&')
|
|
227
|
+
.replace(/</g, '<')
|
|
228
|
+
.replace(/>/g, '>')
|
|
229
|
+
.replace(/"/g, '"')
|
|
230
|
+
.replace(/'/g, "'")
|
|
231
|
+
.replace(/ /g, ' ');
|
|
232
|
+
}
|
|
233
|
+
async function searchMetaso(query, n, signal) {
|
|
234
|
+
const key = process.env.METASO_API_KEY;
|
|
235
|
+
if (!key)
|
|
236
|
+
throw new Error('METASO_API_KEY not set (configure in agim env)');
|
|
237
|
+
const url = `${METASO_API_BASE}/search`;
|
|
238
|
+
const res = await fetch(url, {
|
|
239
|
+
method: 'POST',
|
|
240
|
+
signal,
|
|
241
|
+
headers: {
|
|
242
|
+
'Content-Type': 'application/json',
|
|
243
|
+
'Authorization': `Bearer ${key}`,
|
|
244
|
+
'User-Agent': 'agim-native/1.2.61',
|
|
245
|
+
},
|
|
246
|
+
body: JSON.stringify({ q: query, size: n }),
|
|
247
|
+
});
|
|
248
|
+
if (!res.ok)
|
|
249
|
+
throw new Error(`metaso http ${res.status}`);
|
|
250
|
+
const data = await res.json();
|
|
251
|
+
return parseMetasoResults(data, n);
|
|
252
|
+
}
|
|
253
|
+
/** Best-effort metaso response normaliser. Field names from metaso vary
|
|
254
|
+
* with API version; we look at common shapes. Adjust here if metaso
|
|
255
|
+
* changes their schema. */
|
|
256
|
+
export function parseMetasoResults(data, max) {
|
|
257
|
+
if (!data || typeof data !== 'object')
|
|
258
|
+
return [];
|
|
259
|
+
const d = data;
|
|
260
|
+
// common keys: `data.list[]`, `results[]`, `items[]`
|
|
261
|
+
const candidates = (Array.isArray(d.data?.list) && d.data.list) ||
|
|
262
|
+
(Array.isArray(d.results) && d.results) ||
|
|
263
|
+
(Array.isArray(d.items) && d.items) ||
|
|
264
|
+
[];
|
|
265
|
+
const out = [];
|
|
266
|
+
for (const item of candidates) {
|
|
267
|
+
if (out.length >= max)
|
|
268
|
+
break;
|
|
269
|
+
if (!item || typeof item !== 'object')
|
|
270
|
+
continue;
|
|
271
|
+
const it = item;
|
|
272
|
+
const title = typeof it.title === 'string' ? it.title
|
|
273
|
+
: typeof it.name === 'string' ? it.name : '';
|
|
274
|
+
const url = typeof it.url === 'string' ? it.url
|
|
275
|
+
: typeof it.link === 'string' ? it.link : '';
|
|
276
|
+
const snippet = typeof it.snippet === 'string' ? it.snippet
|
|
277
|
+
: typeof it.summary === 'string' ? it.summary
|
|
278
|
+
: typeof it.content === 'string' ? it.content : '';
|
|
279
|
+
if (title && url)
|
|
280
|
+
out.push({ title, url, snippet });
|
|
281
|
+
}
|
|
282
|
+
return out;
|
|
283
|
+
}
|
|
284
|
+
export function checkUrlSafety(raw) {
|
|
285
|
+
let u;
|
|
286
|
+
try {
|
|
287
|
+
u = new URL(raw);
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
return { ok: false, reason: `invalid URL: ${raw}` };
|
|
291
|
+
}
|
|
292
|
+
if (!/^https?:$/.test(u.protocol)) {
|
|
293
|
+
return { ok: false, reason: `protocol "${u.protocol}" not allowed (only http/https)` };
|
|
294
|
+
}
|
|
295
|
+
if (process.env.IMHUB_NATIVE_WEB_ALLOW_PRIVATE === '1')
|
|
296
|
+
return { ok: true };
|
|
297
|
+
const host = u.hostname.toLowerCase();
|
|
298
|
+
if (host === 'localhost' || host === '::1' || host.endsWith('.localhost')) {
|
|
299
|
+
return { ok: false, reason: 'localhost is private (set IMHUB_NATIVE_WEB_ALLOW_PRIVATE=1 to allow)' };
|
|
300
|
+
}
|
|
301
|
+
// IPv4 numeric check
|
|
302
|
+
const v4 = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(host);
|
|
303
|
+
if (v4) {
|
|
304
|
+
const [a, b] = [Number(v4[1]), Number(v4[2])];
|
|
305
|
+
if (a === 10)
|
|
306
|
+
return { ok: false, reason: 'RFC1918 10.0.0.0/8 private' };
|
|
307
|
+
if (a === 172 && b >= 16 && b <= 31)
|
|
308
|
+
return { ok: false, reason: 'RFC1918 172.16.0.0/12 private' };
|
|
309
|
+
if (a === 192 && b === 168)
|
|
310
|
+
return { ok: false, reason: 'RFC1918 192.168.0.0/16 private' };
|
|
311
|
+
if (a === 127)
|
|
312
|
+
return { ok: false, reason: '127.0.0.0/8 loopback' };
|
|
313
|
+
if (a === 169 && b === 254)
|
|
314
|
+
return { ok: false, reason: '169.254.0.0/16 link-local' };
|
|
315
|
+
if (a === 0)
|
|
316
|
+
return { ok: false, reason: '0.0.0.0/8 invalid' };
|
|
317
|
+
}
|
|
318
|
+
// IPv6 — Node's URL.hostname keeps the brackets ("[fe80::1]"). Strip
|
|
319
|
+
// for prefix matching. Block link-local (fe80::/10) and ULA
|
|
320
|
+
// (fc00::/7 — covers fc**/fd**). Also block ::1 loopback.
|
|
321
|
+
const v6 = host.startsWith('[') && host.endsWith(']') ? host.slice(1, -1) : host;
|
|
322
|
+
if (v6 === '::1')
|
|
323
|
+
return { ok: false, reason: 'IPv6 loopback ::1' };
|
|
324
|
+
if (v6.startsWith('fe80:') || v6.startsWith('fe80::')) {
|
|
325
|
+
return { ok: false, reason: 'IPv6 link-local fe80::/10' };
|
|
326
|
+
}
|
|
327
|
+
if (v6.startsWith('fc') || v6.startsWith('fd')) {
|
|
328
|
+
if (/^f[cd][0-9a-f]{2}:/i.test(v6)) {
|
|
329
|
+
return { ok: false, reason: 'IPv6 ULA fc00::/7' };
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return { ok: true };
|
|
333
|
+
}
|
|
334
|
+
// ─── helpers ─────────────────────────────────────────────────────────
|
|
335
|
+
function ok(payload) {
|
|
336
|
+
return { text: JSON.stringify(payload, null, 2), isError: false, source: 'web' };
|
|
337
|
+
}
|
|
338
|
+
function err(msg) {
|
|
339
|
+
return { text: msg, isError: true, source: 'web' };
|
|
340
|
+
}
|
|
341
|
+
async function readCapped(res, cap) {
|
|
342
|
+
const reader = res.body?.getReader();
|
|
343
|
+
if (!reader) {
|
|
344
|
+
const t = await res.text();
|
|
345
|
+
return t.length > cap
|
|
346
|
+
? { text: t.slice(0, cap), truncated: true }
|
|
347
|
+
: { text: t, truncated: false };
|
|
348
|
+
}
|
|
349
|
+
const decoder = new TextDecoder('utf-8', { fatal: false });
|
|
350
|
+
let out = '';
|
|
351
|
+
let truncated = false;
|
|
352
|
+
while (out.length < cap) {
|
|
353
|
+
const { value, done } = await reader.read();
|
|
354
|
+
if (done)
|
|
355
|
+
break;
|
|
356
|
+
out += decoder.decode(value, { stream: true });
|
|
357
|
+
if (out.length >= cap) {
|
|
358
|
+
out = out.slice(0, cap);
|
|
359
|
+
truncated = true;
|
|
360
|
+
try {
|
|
361
|
+
await reader.cancel();
|
|
362
|
+
}
|
|
363
|
+
catch { /* ignore */ }
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
out += decoder.decode();
|
|
368
|
+
return { text: out, truncated };
|
|
369
|
+
}
|
|
370
|
+
function resolveTimeoutMs() {
|
|
371
|
+
const raw = process.env.IMHUB_NATIVE_WEB_TIMEOUT_MS;
|
|
372
|
+
if (raw) {
|
|
373
|
+
const n = Number(raw);
|
|
374
|
+
if (Number.isFinite(n) && n > 0 && n <= 120_000)
|
|
375
|
+
return n;
|
|
376
|
+
}
|
|
377
|
+
return DEFAULT_TIMEOUT_MS;
|
|
378
|
+
}
|
|
379
|
+
async function raceTimeout(p, ms, tag) {
|
|
380
|
+
let timer;
|
|
381
|
+
const timeout = new Promise((_, reject) => {
|
|
382
|
+
timer = setTimeout(() => reject(new Error(`${tag} timed out after ${ms}ms`)), ms);
|
|
383
|
+
});
|
|
384
|
+
try {
|
|
385
|
+
return await Promise.race([p, timeout]);
|
|
386
|
+
}
|
|
387
|
+
finally {
|
|
388
|
+
if (timer)
|
|
389
|
+
clearTimeout(timer);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
function clampNumber(input, dflt, min, max) {
|
|
393
|
+
const n = typeof input === 'number' ? input : Number(input);
|
|
394
|
+
if (!Number.isFinite(n))
|
|
395
|
+
return dflt;
|
|
396
|
+
return Math.max(min, Math.min(max, Math.floor(n)));
|
|
397
|
+
}
|
|
398
|
+
function errMsg(e) {
|
|
399
|
+
return e instanceof Error ? e.message : String(e);
|
|
400
|
+
}
|
|
401
|
+
//# sourceMappingURL=web-dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-dispatcher.js","sourceRoot":"","sources":["../../../src/core/llm/web-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/native/index.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/native/index.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,wBAAwB,CAAA;AAwI/B;;;;;;;+DAO+D;AAC/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmBpD;AA+ID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkCvF;AAkWD,eAAO,MAAM,kBAAkB,EAAE,YAAuC,CAAA;AAExE;;cAEc;AACd,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C"}
|
|
@@ -45,6 +45,8 @@ import { buildBuiltinDispatcher, getBuiltinTools, } from '../../../core/llm/buil
|
|
|
45
45
|
import { buildPolicyApprovalGate, describePolicy, } from '../../../core/llm/policy-approval-gate.js';
|
|
46
46
|
import { buildImhubDispatcher, getImhubTools, } from '../../../core/llm/imhub-dispatcher.js';
|
|
47
47
|
import { buildFsDispatcher, getFsTools, } from '../../../core/llm/fs-dispatcher.js';
|
|
48
|
+
import { buildWebDispatcher, getWebTools, } from '../../../core/llm/web-dispatcher.js';
|
|
49
|
+
import { buildExecDispatcher, getExecTools, } from '../../../core/llm/exec-dispatcher.js';
|
|
48
50
|
import { listSkills } from '../../../core/skills/loader.js';
|
|
49
51
|
import { describeRegistry as describeMcpRegistry } from '../../../core/llm/mcp-registry.js';
|
|
50
52
|
import { resolveAgentCwd, defaultAgentCwd } from '../../../core/agent-cwd.js';
|
|
@@ -94,7 +96,7 @@ function buildSystemPrompt(provider, role, cwd) {
|
|
|
94
96
|
lines.push('[/operator role definition]');
|
|
95
97
|
lines.push('');
|
|
96
98
|
}
|
|
97
|
-
lines.push(`You are agim native — agim's in-process LLM agent talking to a user over an IM platform.`, ``, `Runtime:`, ` Backend: ${provider.providerType}:${provider.name}`, ` Role: ${role}`, ` Working directory: ${cwd}`, ``, `Tools available beyond the four native built-ins (echo / now / sleep / random_uuid):`, ` - agim built-in MCP tools (mcp__imhub__*): read_skill, list_skills, save_memo, search_memos, update_memo, delete_memo, push_message, ask_user, call_agent`, ` - native filesystem tools: native_read_file, native_write_file, native_list_dir, native_glob, native_grep — constrained to your workspace cwd unless IMHUB_NATIVE_FS_RESTRICT=0`, ` - External MCP servers configured by the operator:`, externalMcp, ``, `Available skill cards (call mcp__imhub__read_skill('<name>') for the full body):`, skillsBlock, ``, `Guidance:`, ` - Be terse; avoid filler. Prefer tool use over guessing.`, ` - When uncertain, call mcp__imhub__ask_user(question, choices[]) instead of free-form back-and-forth.`, ` - When the user references something they told the bot before, search memos via mcp__imhub__search_memos.`, ``, `Tool selection priority (HARD RULE — v1.2.59):`, ` - For "read this file / list this dir / search this content / fetch this URL", you MUST FIRST try`, ` your own native tools: native_read_file, native_list_dir, native_glob, native_grep,`, ` native_web_fetch (if available). Do NOT delegate these to call_agent.`, ` - call_agent is reserved for tasks that genuinely need a CLI agent's specialised capabilities`, ` (writing/editing source code in a real repo → claude-code; long-running plans → codex; etc).`, ` - You have a per-turn call_agent cap (default 2). Burning it on file reads will leave you`, ` unable to delegate later when you actually need to.`, ``, `Short-input rule:`, ` - If the user's message is ONLY a slash command alias for an agent name (e.g. "/native", "/llm",`, ` "/na", "/cc", "/oc") and you are already that agent, respond with ONE short line confirming`, ` your identity (e.g. "我是 native,正在听。"). Do NOT call any tool. The slash router handles`, ` actual agent switching; if it didn't switch, the user is already on this agent.`);
|
|
99
|
+
lines.push(`You are agim native — agim's in-process LLM agent talking to a user over an IM platform.`, ``, `Runtime:`, ` Backend: ${provider.providerType}:${provider.name}`, ` Role: ${role}`, ` Working directory: ${cwd}`, ``, `Tools available beyond the four native built-ins (echo / now / sleep / random_uuid):`, ` - agim built-in MCP tools (mcp__imhub__*): read_skill, list_skills, save_memo, search_memos, update_memo, delete_memo, push_message, ask_user, call_agent`, ` - native filesystem tools: native_read_file, native_write_file, native_list_dir, native_glob, native_grep — constrained to your workspace cwd unless IMHUB_NATIVE_FS_RESTRICT=0`, ` - native web tools: native_web_fetch (r.jina.ai reader by default), native_web_search (duckduckgo → metaso fallback). Private IPs blocked.`, ` - native_exec(command, timeout_ms?, cwd?): run shell commands. Always approval-gated; bwrap sandbox when IMHUB_EXEC_SANDBOX=bwrap.`, ` - External MCP servers configured by the operator:`, externalMcp, ``, `Available skill cards (call mcp__imhub__read_skill('<name>') for the full body):`, skillsBlock, ``, `Guidance:`, ` - Be terse; avoid filler. Prefer tool use over guessing.`, ` - When uncertain, call mcp__imhub__ask_user(question, choices[]) instead of free-form back-and-forth.`, ` - When the user references something they told the bot before, search memos via mcp__imhub__search_memos.`, ``, `Tool selection priority (HARD RULE — v1.2.59):`, ` - For "read this file / list this dir / search this content / fetch this URL", you MUST FIRST try`, ` your own native tools: native_read_file, native_list_dir, native_glob, native_grep,`, ` native_web_fetch (if available). Do NOT delegate these to call_agent.`, ` - call_agent is reserved for tasks that genuinely need a CLI agent's specialised capabilities`, ` (writing/editing source code in a real repo → claude-code; long-running plans → codex; etc).`, ` - You have a per-turn call_agent cap (default 2). Burning it on file reads will leave you`, ` unable to delegate later when you actually need to.`, ``, `Short-input rule:`, ` - If the user's message is ONLY a slash command alias for an agent name (e.g. "/native", "/llm",`, ` "/na", "/cc", "/oc") and you are already that agent, respond with ONE short line confirming`, ` your identity (e.g. "我是 native,正在听。"). Do NOT call any tool. The slash router handles`, ` actual agent switching; if it didn't switch, the user is already on this agent.`);
|
|
98
100
|
return lines.join('\n');
|
|
99
101
|
}
|
|
100
102
|
/** Read <cwd>/AGENTS.md (if present) and prepare it for injection into
|
|
@@ -209,6 +211,9 @@ function resolvePolicy() {
|
|
|
209
211
|
// awareness intact. Operators who trust native can add it via
|
|
210
212
|
// IMHUB_NATIVE_AGENT_AUTOALLOW=native_write_file.
|
|
211
213
|
'native_read_file', 'native_list_dir', 'native_glob', 'native_grep',
|
|
214
|
+
// web tools (v1.2.61) — read-only, safe-by-default. SSRF rules
|
|
215
|
+
// still apply to private IPs unless IMHUB_NATIVE_WEB_ALLOW_PRIVATE=1.
|
|
216
|
+
'native_web_fetch', 'native_web_search',
|
|
212
217
|
'mcp__imhub__read_skill', 'mcp__imhub__list_skills',
|
|
213
218
|
'mcp__imhub__save_memo', 'mcp__imhub__search_memos',
|
|
214
219
|
'mcp__imhub__update_memo', 'mcp__imhub__delete_memo',
|
|
@@ -470,8 +475,8 @@ class NativeAgentAdapter {
|
|
|
470
475
|
// the per-thread workspace subtree. Was previously resolved AFTER
|
|
471
476
|
// dispatch composition; moved up so fs tools see the right root.
|
|
472
477
|
const cwd = resolveAgentCwd('native', opts) || defaultAgentCwd('native');
|
|
473
|
-
const dispatch = combineDispatchers(buildBuiltinDispatcher(), buildFsDispatcher({ cwd }), buildImhubDispatcher(imhubCtx), buildMcpDispatcher());
|
|
474
|
-
// Compose tool list the same way (built-in → fs → imhub → external MCP).
|
|
478
|
+
const dispatch = combineDispatchers(buildBuiltinDispatcher(), buildFsDispatcher({ cwd }), buildWebDispatcher(), buildExecDispatcher({ cwd }), buildImhubDispatcher(imhubCtx), buildMcpDispatcher());
|
|
479
|
+
// Compose tool list the same way (built-in → fs → web → exec → imhub → external MCP).
|
|
475
480
|
// Provider tool roster wins on duplicate names via "later
|
|
476
481
|
// definition wins" semantics inside the provider, but our naming
|
|
477
482
|
// is namespaced (`native_*`, `mcp__imhub__*`, `mcp_<server>_*`)
|
|
@@ -479,6 +484,8 @@ class NativeAgentAdapter {
|
|
|
479
484
|
const tools = [
|
|
480
485
|
...getBuiltinTools(),
|
|
481
486
|
...getFsTools(),
|
|
487
|
+
...getWebTools(),
|
|
488
|
+
...getExecTools(),
|
|
482
489
|
...getImhubTools(),
|
|
483
490
|
...getAllMcpTools(),
|
|
484
491
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/agents/native/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/agents/native/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agim-cli",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.62",
|
|
4
4
|
"description": "Agim (阿吉姆) — universal messenger-to-agent bridge. Connect WeChat / Feishu / DingTalk / Email to Claude Code / Codex / OpenCode, or any custom agent via ACP. Installs the `agim` command.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|