agim-cli 1.2.59 → 1.2.61
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 +48 -0
- package/dist/core/llm/policy-approval-gate.d.ts +16 -0
- package/dist/core/llm/policy-approval-gate.d.ts.map +1 -1
- package/dist/core/llm/policy-approval-gate.js +29 -5
- package/dist/core/llm/policy-approval-gate.js.map +1 -1
- 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 +56 -4
- package/dist/plugins/agents/native/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,54 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.2.61] - 2026-05-25
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **2 native web tools** in `src/core/llm/web-dispatcher.ts`:
|
|
12
|
+
- `native_web_fetch(url, format?)` — GET via undici. Default
|
|
13
|
+
`format="reader"` runs the URL through `r.jina.ai/` for clean
|
|
14
|
+
text extraction; `format="raw"` returns the body verbatim
|
|
15
|
+
(useful for JSON APIs). 200KB cap, 30s timeout.
|
|
16
|
+
- `native_web_search(query, n?)` — backend chain: DuckDuckGo HTML
|
|
17
|
+
SERP (no key, scraped) → Metaso fallback (needs
|
|
18
|
+
`METASO_API_KEY`). Returns up to 8 results with title + url +
|
|
19
|
+
snippet by default.
|
|
20
|
+
- **SSRF defense** in `checkUrlSafety`: refuses non-http(s)
|
|
21
|
+
protocols, RFC1918 (10/8, 172.16-31/12, 192.168/16), loopback
|
|
22
|
+
(127/8, ::1, localhost), link-local (169.254/16, fe80::/10), and
|
|
23
|
+
IPv6 ULA (fc00::/7). Operators who genuinely need private targets
|
|
24
|
+
set `IMHUB_NATIVE_WEB_ALLOW_PRIVATE=1`.
|
|
25
|
+
- Both tools added to native's default autoAllow — they're read-only
|
|
26
|
+
and the SSRF block stays in force regardless.
|
|
27
|
+
|
|
28
|
+
## [1.2.60] - 2026-05-25
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **Native non-allowlist tools now ask the user via IM card** instead of
|
|
33
|
+
silent deny. Previously, in the default `allow-list` policy mode any
|
|
34
|
+
tool not in `autoAllow` was silently denied — the model received a
|
|
35
|
+
bare `deny` and often fabricated an explanation ("denied by user")
|
|
36
|
+
that misled the user about who actually said no. `native_write_file`
|
|
37
|
+
in particular was effectively unusable (it's intentionally not in
|
|
38
|
+
autoAllow because writes mutate the workspace).
|
|
39
|
+
- `policy-approval-gate.ts` gains an optional `askUser` callback.
|
|
40
|
+
When the policy would otherwise return `deny` (and the mode is NOT
|
|
41
|
+
`deny-all`), it now routes through `askUser` to fetch a live
|
|
42
|
+
decision. Denylist entries and `deny-all` mode bypass `askUser` —
|
|
43
|
+
those remain non-negotiable kill switches.
|
|
44
|
+
- `native/index.ts` wires `askUser` to `approvalBus.registerSyntheticPending`,
|
|
45
|
+
which uses the same IM card pipeline that claude-code's MCP sidecar
|
|
46
|
+
uses for `Bash`/`Edit`/`Write` approvals. The user sees a card with
|
|
47
|
+
the tool name + inputs, can allow / deny / "allow all for this
|
|
48
|
+
fingerprint", and the gate resolves accordingly. If the bus has no
|
|
49
|
+
notifier (CI / smoke-test path), native silently falls back to the
|
|
50
|
+
legacy silent-deny so tests don't hang.
|
|
51
|
+
- **autoAllow lookup happens BEFORE mode resolution**, so adding a tool
|
|
52
|
+
to `IMHUB_NATIVE_AGENT_AUTOALLOW` always shortcuts the user-prompt
|
|
53
|
+
path regardless of mode.
|
|
54
|
+
|
|
7
55
|
## [1.2.59] - 2026-05-25
|
|
8
56
|
|
|
9
57
|
### Fixed
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ToolCallRequest } from './provider-base.js';
|
|
1
2
|
import type { ApprovalGate } from './agent-loop.js';
|
|
2
3
|
/**
|
|
3
4
|
* Approval mode. Defaults to 'allow-list' which is the safest sane
|
|
@@ -15,6 +16,21 @@ export interface PolicyApprovalGateConfig {
|
|
|
15
16
|
/** Tools that are always denied regardless of mode (even in
|
|
16
17
|
* 'allow-all'). Use this as the operator's emergency brake. */
|
|
17
18
|
denyList?: string[];
|
|
19
|
+
/**
|
|
20
|
+
* v1.2.60 — optional human-in-the-loop callback. When the policy would
|
|
21
|
+
* otherwise return 'deny' (mode='allow-list' and tool not in autoAllow;
|
|
22
|
+
* or mode='read-only' and tool isn't read-shaped), call this callback
|
|
23
|
+
* to ask the user via IM. The callback should send an IM approval card
|
|
24
|
+
* and await the user's reply, then resolve to 'allow' or 'deny'.
|
|
25
|
+
*
|
|
26
|
+
* If `askUser` is NOT provided, the gate falls back to the legacy
|
|
27
|
+
* silent-deny behavior (preserves the v1.2.59 / earlier contract for
|
|
28
|
+
* tests + callers that haven't wired the bus yet).
|
|
29
|
+
*
|
|
30
|
+
* Tools on `denyList` are NEVER routed through askUser — the denylist
|
|
31
|
+
* is an operator-controlled emergency brake.
|
|
32
|
+
*/
|
|
33
|
+
askUser?: (call: ToolCallRequest) => Promise<'allow' | 'deny'>;
|
|
18
34
|
}
|
|
19
35
|
/**
|
|
20
36
|
* Build an ApprovalGate based on the supplied policy. The returned gate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-approval-gate.d.ts","sourceRoot":"","sources":["../../../src/core/llm/policy-approval-gate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy-approval-gate.d.ts","sourceRoot":"","sources":["../../../src/core/llm/policy-approval-gate.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CAAA;AAEhF,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB;;gFAE4E;IAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB;oEACgE;IAChE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAA;CAC/D;AA2BD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,wBAA6B,GAAG,YAAY,CA4CxF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,wBAAwB,GAAG,MAAM,CAKpE"}
|
|
@@ -52,24 +52,48 @@ export function buildPolicyApprovalGate(cfg = {}) {
|
|
|
52
52
|
const mode = cfg.mode ?? 'allow-list';
|
|
53
53
|
const autoAllow = new Set(cfg.autoAllow ?? []);
|
|
54
54
|
const denyList = new Set(cfg.denyList ?? []);
|
|
55
|
+
const askUser = cfg.askUser;
|
|
55
56
|
return async (call) => {
|
|
57
|
+
// denylist is non-negotiable — never escalate to user.
|
|
56
58
|
if (denyList.has(call.name))
|
|
57
59
|
return 'deny';
|
|
60
|
+
// autoAllow short-circuit — never bother the user.
|
|
58
61
|
if (autoAllow.has(call.name))
|
|
59
62
|
return 'allow';
|
|
63
|
+
// Compute the "would-be" decision from the mode rule.
|
|
64
|
+
let modeDecision;
|
|
60
65
|
switch (mode) {
|
|
61
66
|
case 'allow-all':
|
|
62
|
-
|
|
67
|
+
modeDecision = 'allow';
|
|
68
|
+
break;
|
|
63
69
|
case 'deny-all':
|
|
64
|
-
|
|
70
|
+
modeDecision = 'deny';
|
|
71
|
+
break;
|
|
65
72
|
case 'read-only':
|
|
66
|
-
|
|
73
|
+
modeDecision = looksReadOnly(call.name) ? 'allow' : 'deny';
|
|
74
|
+
break;
|
|
67
75
|
case 'allow-list':
|
|
68
|
-
// Outside the allow-list → deny.
|
|
69
|
-
|
|
76
|
+
// Outside the allow-list → would-be deny.
|
|
77
|
+
modeDecision = 'deny';
|
|
78
|
+
break;
|
|
70
79
|
default:
|
|
80
|
+
modeDecision = 'deny';
|
|
81
|
+
}
|
|
82
|
+
// v1.2.60 — escalate "would-be deny" to user via askUser callback
|
|
83
|
+
// (if wired). 'deny-all' is intentional + does NOT escalate. Allow
|
|
84
|
+
// decisions go through unchanged.
|
|
85
|
+
if (modeDecision === 'deny' && askUser && mode !== 'deny-all') {
|
|
86
|
+
try {
|
|
87
|
+
return await askUser(call);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// If the IM card pipeline throws (no notifier, socket closed,
|
|
91
|
+
// ctx missing), fall back to the legacy silent-deny so the
|
|
92
|
+
// agent loop still makes progress.
|
|
71
93
|
return 'deny';
|
|
94
|
+
}
|
|
72
95
|
}
|
|
96
|
+
return modeDecision;
|
|
73
97
|
};
|
|
74
98
|
}
|
|
75
99
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-approval-gate.js","sourceRoot":"","sources":["../../../src/core/llm/policy-approval-gate.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,kCAAkC;AAClC,EAAE;AACF,oEAAoE;AACpE,qCAAqC;AACrC,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,sEAAsE;AACtE,kEAAkE;AAClE,6DAA6D;AAC7D,sEAAsE;AACtE,iCAAiC;AACjC,sEAAsE;AACtE,uEAAuE;AACvE,gEAAgE;AAChE,yEAAyE;AACzE,sDAAsD;AACtD,wEAAwE;AACxE,0DAA0D;AAC1D,oEAAoE;AACpE,oEAAoE;AACpE,2BAA2B;
|
|
1
|
+
{"version":3,"file":"policy-approval-gate.js","sourceRoot":"","sources":["../../../src/core/llm/policy-approval-gate.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;AAmI/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;AAgWD,eAAO,MAAM,kBAAkB,EAAE,YAAuC,CAAA;AAExE;;cAEc;AACd,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C"}
|
|
@@ -45,10 +45,13 @@ 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';
|
|
48
49
|
import { listSkills } from '../../../core/skills/loader.js';
|
|
49
50
|
import { describeRegistry as describeMcpRegistry } from '../../../core/llm/mcp-registry.js';
|
|
50
51
|
import { resolveAgentCwd, defaultAgentCwd } from '../../../core/agent-cwd.js';
|
|
51
52
|
import { handlePushOp } from '../../../core/push-rpc.js';
|
|
53
|
+
import { approvalBus } from '../../../core/approval-bus.js';
|
|
54
|
+
import { randomUUID as _nativeRandomUUID } from 'node:crypto';
|
|
52
55
|
import { maybeCompactHistory } from '../../../core/llm/auto-compact.js';
|
|
53
56
|
import { existsSync as fsExistsSync, statSync as fsStatSync, readFileSync as fsReadFileSync } from 'node:fs';
|
|
54
57
|
import { resolve as pathResolve, sep as pathSep, join as pathJoin } from 'node:path';
|
|
@@ -92,7 +95,7 @@ function buildSystemPrompt(provider, role, cwd) {
|
|
|
92
95
|
lines.push('[/operator role definition]');
|
|
93
96
|
lines.push('');
|
|
94
97
|
}
|
|
95
|
-
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.`);
|
|
98
|
+
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.`, ` - 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.`);
|
|
96
99
|
return lines.join('\n');
|
|
97
100
|
}
|
|
98
101
|
/** Read <cwd>/AGENTS.md (if present) and prepare it for injection into
|
|
@@ -207,6 +210,9 @@ function resolvePolicy() {
|
|
|
207
210
|
// awareness intact. Operators who trust native can add it via
|
|
208
211
|
// IMHUB_NATIVE_AGENT_AUTOALLOW=native_write_file.
|
|
209
212
|
'native_read_file', 'native_list_dir', 'native_glob', 'native_grep',
|
|
213
|
+
// web tools (v1.2.61) — read-only, safe-by-default. SSRF rules
|
|
214
|
+
// still apply to private IPs unless IMHUB_NATIVE_WEB_ALLOW_PRIVATE=1.
|
|
215
|
+
'native_web_fetch', 'native_web_search',
|
|
210
216
|
'mcp__imhub__read_skill', 'mcp__imhub__list_skills',
|
|
211
217
|
'mcp__imhub__save_memo', 'mcp__imhub__search_memos',
|
|
212
218
|
'mcp__imhub__update_memo', 'mcp__imhub__delete_memo',
|
|
@@ -218,6 +224,37 @@ function resolvePolicy() {
|
|
|
218
224
|
: autoAllow;
|
|
219
225
|
return { mode, autoAllow: effectiveAllow, denyList };
|
|
220
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* v1.2.60 — bridge native's policy gate to the approval-bus so tools
|
|
229
|
+
* that the gate would otherwise silently deny instead surface an IM
|
|
230
|
+
* approval card. Mirrors how claude-code's MCP sidecar uses
|
|
231
|
+
* registerSyntheticPending. Resolves to 'allow' / 'deny' from the
|
|
232
|
+
* user's button tap / text reply / auto-allow rule. Throws (caught by
|
|
233
|
+
* the gate) when the bus can't reach the user — caller falls back to
|
|
234
|
+
* silent-deny in that case.
|
|
235
|
+
*/
|
|
236
|
+
function buildNativeAskUser(opts) {
|
|
237
|
+
const baseCtx = {
|
|
238
|
+
platform: opts.platform,
|
|
239
|
+
channelId: opts.channelId,
|
|
240
|
+
threadId: opts.threadId,
|
|
241
|
+
userId: opts.userId,
|
|
242
|
+
callerAgent: 'native',
|
|
243
|
+
};
|
|
244
|
+
return async (call) => {
|
|
245
|
+
const reqId = _nativeRandomUUID();
|
|
246
|
+
return await new Promise((resolve, reject) => {
|
|
247
|
+
void approvalBus.registerSyntheticPending({
|
|
248
|
+
runId: opts.runId,
|
|
249
|
+
reqId,
|
|
250
|
+
toolName: call.name,
|
|
251
|
+
input: call.arguments,
|
|
252
|
+
ctx: baseCtx,
|
|
253
|
+
dispatch: (decision) => resolve(decision.behavior),
|
|
254
|
+
}).catch((err) => reject(err));
|
|
255
|
+
});
|
|
256
|
+
};
|
|
257
|
+
}
|
|
221
258
|
function splitEnvList(raw) {
|
|
222
259
|
if (!raw)
|
|
223
260
|
return [];
|
|
@@ -437,8 +474,8 @@ class NativeAgentAdapter {
|
|
|
437
474
|
// the per-thread workspace subtree. Was previously resolved AFTER
|
|
438
475
|
// dispatch composition; moved up so fs tools see the right root.
|
|
439
476
|
const cwd = resolveAgentCwd('native', opts) || defaultAgentCwd('native');
|
|
440
|
-
const dispatch = combineDispatchers(buildBuiltinDispatcher(), buildFsDispatcher({ cwd }), buildImhubDispatcher(imhubCtx), buildMcpDispatcher());
|
|
441
|
-
// Compose tool list the same way (built-in → fs → imhub → external MCP).
|
|
477
|
+
const dispatch = combineDispatchers(buildBuiltinDispatcher(), buildFsDispatcher({ cwd }), buildWebDispatcher(), buildImhubDispatcher(imhubCtx), buildMcpDispatcher());
|
|
478
|
+
// Compose tool list the same way (built-in → fs → web → imhub → external MCP).
|
|
442
479
|
// Provider tool roster wins on duplicate names via "later
|
|
443
480
|
// definition wins" semantics inside the provider, but our naming
|
|
444
481
|
// is namespaced (`native_*`, `mcp__imhub__*`, `mcp_<server>_*`)
|
|
@@ -446,11 +483,26 @@ class NativeAgentAdapter {
|
|
|
446
483
|
const tools = [
|
|
447
484
|
...getBuiltinTools(),
|
|
448
485
|
...getFsTools(),
|
|
486
|
+
...getWebTools(),
|
|
449
487
|
...getImhubTools(),
|
|
450
488
|
...getAllMcpTools(),
|
|
451
489
|
];
|
|
452
490
|
const policy = resolvePolicy();
|
|
453
|
-
|
|
491
|
+
// v1.2.60 — when the policy would silently deny a tool call,
|
|
492
|
+
// escalate to the user via an IM approval card instead. Only
|
|
493
|
+
// wires when we have an actual IM thread (platform + threadId);
|
|
494
|
+
// CI / smoke-test runs without IM stay silent-deny so they don't
|
|
495
|
+
// hang awaiting a notifier that doesn't exist.
|
|
496
|
+
const askUser = (opts.platform && opts.threadId && approvalBus.hasNotifier())
|
|
497
|
+
? buildNativeAskUser({
|
|
498
|
+
runId: sessionId,
|
|
499
|
+
platform: opts.platform,
|
|
500
|
+
channelId: opts.channelId ?? 'default',
|
|
501
|
+
threadId: opts.threadId,
|
|
502
|
+
userId: opts.userId ?? 'unknown',
|
|
503
|
+
})
|
|
504
|
+
: undefined;
|
|
505
|
+
const approve = buildPolicyApprovalGate({ ...policy, askUser });
|
|
454
506
|
const startedAt = Date.now();
|
|
455
507
|
log.info({
|
|
456
508
|
event: 'native.turn.start',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/agents/native/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,sEAAsE;AACtE,mEAAmE;AACnE,gDAAgD;AAChD,EAAE;AACF,wDAAwD;AACxD,EAAE;AACF,iBAAiB;AACjB,SAAS;AACT,8DAA8D;AAC9D,SAAS;AACT,qEAAqE;AACrE,8CAA8C;AAC9C,2BAA2B;AAC3B,4CAA4C;AAC5C,4DAA4D;AAC5D,gDAAgD;AAChD,qEAAqE;AACrE,yCAAyC;AACzC,EAAE;AACF,wCAAwC;AACxC,qEAAqE;AACrE,wCAAwC;AACxC,+DAA+D;AAC/D,qCAAqC;AACrC,mEAAmE;AACnE,qCAAqC;AACrC,qEAAqE;AACrE,EAAE;AACF,qCAAqC;AACrC,sEAAsE;AACtE,wDAAwD;AACxD,mEAAmE;AACnE,sEAAsE;AACtE,mEAAmE;AACnE,+DAA+D;AAC/D,gCAAgC;AAOhC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,cAAc,GAIf,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,sBAAsB,EACtB,eAAe,GAChB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,uBAAuB,EACvB,cAAc,GAGf,MAAM,2CAA2C,CAAA;AAClD,OAAO,EACL,oBAAoB,EACpB,aAAa,GACd,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,iBAAiB,EACjB,UAAU,GACX,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAC3F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,QAAQ,IAAI,UAAU,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,SAAS,CAAA;AAC5G,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,GAAG,IAAI,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAExG,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAA;AAE3D;;;;;;;;;;;;;GAaG;AACH,SAAS,iBAAiB,CAAC,QAAqB,EAAE,IAAY,EAAE,GAAW;IACzE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM;QAC/B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACjE,CAAC,CAAC,0DAA0D,CAAA;IAC9D,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAA;IACpC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;QACvC,CAAC,CAAC,MAAM,CAAC,OAAO;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC;aACtH,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,qBAAqB,CAAA;IAEzB,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,sEAAsE;IACtE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kDAAkD;IAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QACxC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClB,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;QACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,0FAA0F,EAC1F,EAAE,EACF,UAAU,EACV,wBAAwB,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,IAAI,EAAE,EAChE,wBAAwB,IAAI,EAAE,EAC9B,wBAAwB,GAAG,EAAE,EAC7B,EAAE,EACF,sFAAsF,EACtF,6JAA6J,EAC7J,mLAAmL,EACnL,sDAAsD,EACtD,WAAW,EACX,EAAE,EACF,kFAAkF,EAClF,WAAW,EACX,EAAE,EACF,WAAW,EACX,4DAA4D,EAC5D,yGAAyG,EACzG,6GAA6G,EAC7G,EAAE,EACF,gDAAgD,EAChD,qGAAqG,EACrG,yFAAyF,EACzF,2EAA2E,EAC3E,iGAAiG,EACjG,kGAAkG,EAClG,6FAA6F,EAC7F,yDAAyD,EACzD,EAAE,EACF,mBAAmB,EACnB,oGAAoG,EACpG,iGAAiG,EACjG,2FAA2F,EAC3F,qFAAqF,CACtF,CAAA;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;;;;;;+DAO+D;AAC/D,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAA;IACzD,MAAM,IAAI,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IACpF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAClC,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,CAAC;QAAC,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAA;IAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,oCAAoC;gBAC3C,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,EAAE,GAAG,IAAI,2FAA2F,CAAC,CAAA;QACxG,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACrC,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC;AAED;;iCAEiC;AACjC,MAAM,qBAAqB,GAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AAEhE,SAAS,WAAW;IAClB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA;IAC/C,IAAI,GAAG,EAAE,IAAI,EAAE;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,qBAAqB,CAAC,CAAA;IAC9D,OAAO,qBAAqB,CAAC,KAAK,EAAE,CAAA;AACtC,CAAC;AAED,SAAS,YAAY;IACnB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;IACrC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB;IACxB,MAAM,KAAK,GAAmD,EAAE,CAAA;IAChE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC;YAAE,SAAQ;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChB,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,YAAY,CAAC,CAAC,WAAW,EAAkB,CAAA;IAChG,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACxE,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACtE,wEAAwE;IACxE,oEAAoE;IACpE,sEAAsE;IACtE,uEAAuE;IACvE,kEAAkE;IAClE,6DAA6D;IAC7D,MAAM,eAAe,GAAG;QACtB,aAAa,EAAE,YAAY,EAAE,oBAAoB;QACjD,kEAAkE;QAClE,oEAAoE;QACpE,kEAAkE;QAClE,8DAA8D;QAC9D,kDAAkD;QAClD,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;QACnE,wBAAwB,EAAE,yBAAyB;QACnD,uBAAuB,EAAE,0BAA0B;QACnD,yBAAyB,EAAE,yBAAyB;QACpD,0BAA0B,EAAE,sBAAsB;QAClD,wBAAwB;KACzB,CAAA;IACD,MAAM,cAAc,GAAG,IAAI,KAAK,YAAY;QAC1C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,SAAS,CAAA;IACb,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAA;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC5D,CAAC;AAED;;yDAEyD;AACzD,SAAS,YAAY;IACnB,OAAO,YAAY,EAAE,KAAK,IAAI,CAAA;AAChC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IACtB,iEAAiE;IACjE,sDAAsD;IACtD,MAAM,EAAE,GAAG,+CAA+C,CAAA;IAC1D,MAAM,GAAG,GAA2C,EAAE,CAAA;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAA;IACxC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,IAAI,cAAc,CAAA;IAC1E,oEAAoE;IACpE,0DAA0D;IAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,OAAO,CAAA;IACjF,SAAS,CAAC;QACR,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzB,IAAI,CAAC,KAAK,IAAI;YAAE,MAAK;QACrB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,OAAO;YAAE,SAAQ;QACtB,iEAAiE;QACjE,+DAA+D;QAC/D,+DAA+D;QAC/D,6CAA6C;QAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QACtC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAQ;QAC7E,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;gBAAE,SAAQ;YACvC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;gBAAE,SAAQ;QAChD,CAAC;QAAC,MAAM,CAAC;YAAC,SAAQ;QAAC,CAAC;QACpB,sEAAsE;QACtE,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;QACtC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,SAAQ;QACvD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,eAAe,CAAC,MAMxB;IAIC,0EAA0E;IAC1E,kEAAkE;IAClE,uEAAuE;IACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,0EAA0E;IAC1E,kEAAkE;IAClE,uEAAuE;IACvE,mEAAmE;IACnE,0EAA0E;IAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAA;IACtF,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAE/E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyC,CAAA;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAI,SAAS,GAA0C,IAAI,CAAA;IAE3D,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,CAAA;YAChE,KAAK,YAAY,CACf,EAAE,IAAI,EAAE,YAAY,UAAU,KAAK,EAAE,EACrC,MAAM,CACP,CAAC,KAAK,CAAC,GAAG,EAAE,GAAqC,CAAC,CAAC,CAAA;QACtD,CAAC,EAAE,WAAW,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,CAAC,CAAC,CAAA;QACjD,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,IAAI,SAAS,EAAE,CAAC;YAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAAC,SAAS,GAAG,IAAI,CAAA;QAAC,CAAC;IAC/D,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,GAAS,EAAE,GAAyC,CAAC,CAAA;IAClE,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAA;IACzF,OAAO;QACL,KAAK,EAAE;YACL,WAAW,CAAC,IAAI;gBACd,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,KAAK,YAAY,CACf,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,EAC7E,MAAM,CACP,CAAC,KAAK,CAAC,GAAG,EAAE,GAAqC,CAAC,CAAC,CAAA;oBACpD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACzB,CAAC,EAAE,WAAW,CAAC,CAAA;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC7B,CAAC;YACD,SAAS,CAAC,IAAI;gBACZ,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAC9B,IAAI,CAAC,EAAE,CAAC;oBAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAAC,CAAC;YACrD,CAAC;SACF;QACD,QAAQ;KACT,CAAA;AACH,CAAC;AAED,wEAAwE;AAExE,MAAM,kBAAkB;IACb,IAAI,GAAG,QAAQ,CAAA;IACf,OAAO,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IACrC,IAAI,GAAG,YAAqB,CAAA;IAErC;;kEAE8D;IAC9D,QAAQ;QACN,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;QAC7B,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAA;QAC7B,kEAAkE;QAClE,4CAA4C;QAC5C,OAAO,QAAQ,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IACzF,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,YAAY,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,CAAC,UAAU,CACf,SAAiB,EACjB,MAAc,EACd,UAAyB,EAAE,EAC3B,OAAsB,EAAE;QAExB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,oKAAoK,CAAA;YAChL,MAAM,GAAG,CAAA;YACT,OAAM;QACR,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;QAEjC,oEAAoE;QACpE,kEAAkE;QAClE,kEAAkE;QAClE,8BAA8B;QAC9B,MAAM,QAAQ,GAAiB,EAAE,CAAA;QACjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,8DAA8D;YAC9D,uDAAuD;YACvD,IAAI,CAAC,CAAC,CAAC,OAAO;gBAAE,SAAQ;YACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,mEAAmE;QACnE,iEAAiE;QACjE,kEAAkE;QAClE,gEAAgE;QAChE,gDAAgD;QAChD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAEvG,+DAA+D;QAC/D,+DAA+D;QAC/D,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QACnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC1C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,wBAAwB;gBAC/B,SAAS;gBACT,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,cAAc,EAAE,OAAO,CAAC,cAAc;aACvC,CAAC,CAAA;QACJ,CAAC;QAED,iEAAiE;QACjE,gEAAgE;QAChE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,eAAe;QACf,MAAM,QAAQ,GAAG;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,cAAc;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;YACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;YAChC,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;SACjC,CAAA;QACD,kEAAkE;QAClE,kEAAkE;QAClE,iEAAiE;QACjE,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,kBAAkB,CACjC,sBAAsB,EAAE,EACxB,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,EAC1B,oBAAoB,CAAC,QAAQ,CAAC,EAC9B,kBAAkB,EAAE,CACrB,CAAA;QAED,yEAAyE;QACzE,0DAA0D;QAC1D,iEAAiE;QACjE,gEAAgE;QAChE,8CAA8C;QAC9C,MAAM,KAAK,GAAc;YACvB,GAAG,eAAe,EAAE;YACpB,GAAG,UAAU,EAAE;YACf,GAAG,aAAa,EAAE;YAClB,GAAG,cAAc,EAAE;SACpB,CAAA;QAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;QAC9B,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAA;QAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,mBAAmB;YAC1B,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;YAC9B,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAA;QAEF,kEAAkE;QAClE,gEAAgE;QAChE,iEAAiE;QACjE,8DAA8D;QAC9D,cAAc;QAEd,MAAM,OAAO,GAAG,UAAU,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QACnD,oEAAoE;QACpE,sEAAsE;QACtE,mEAAmE;QACnE,sEAAsE;QACtE,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;QACrE,oEAAoE;QACpE,2DAA2D;QAC3D,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;YAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;YACzE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAA;YAC/C,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAE,6CAA6C;QACtE,CAAC,CAAC,EAAE,CAAA;QACJ,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAA;QACjC,gEAAgE;QAChE,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,sBAAsB;QACtB,IAAI,MAAM,GAAoD,IAAI,CAAA;QAClE,IAAI,QAAQ,GAAG,IAAI,CAAA;QACnB,IAAI,YAAY,GAAG,QAAQ,CAAA;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC1B,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAA;YACjC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAA;YACzB,MAAM,GAAG,MAAM,YAAY,CAAC;gBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,YAAY,EAAE,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;gBACxE,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK;gBACL,QAAQ;gBACR,OAAO;gBACP,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBAClC,SAAS,EAAE,eAAe;gBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE;oBACL,KAAK,EAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACvC,MAAM,EAAE,mBAAmB;oBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,cAAc;oBACzC,OAAO;iBACR;gBACD,KAAK,EAAE,UAAU,CAAC,KAAK;aACxB,CAAC,CAAA;YACF,IAAI,MAAM,CAAC,YAAY,KAAK,OAAO;gBAAE,MAAK;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,WAAW,GAAG,wEAAwE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACzG,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;YACrD,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAK;YAC5D,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI;gBAC7B,OAAO,EAAE,CAAC,GAAG,CAAC;gBACd,GAAG,EAAE,MAAM;aACZ,EAAE,YAAY,SAAS,CAAC,QAAQ,CAAC,IAAI,yCAAyC,CAAC,CAAA;QAClF,CAAC;QACD,UAAU,CAAC,QAAQ,EAAE,CAAA;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,qEAAqE;YACrE,sEAAsE;YACtE,MAAM,0DAA0D,CAAA;YAChE,OAAM;QACR,CAAC;QAED,+DAA+D;QAC/D,iEAAiE;QACjE,kCAAkC;QAClC,IAAI,CAAC;YACH,aAAa,CAAC;gBACZ,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,cAAc;gBACzC,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,MAAM,EAAE,mBAAmB;gBAC3B,SAAS,EAAE,MAAM,CAAC,MAAM;gBACxB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;gBAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,IAAI,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzE,OAAO,EAAE,MAAM,CAAC,YAAY,KAAK,OAAO,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;gBAC7E,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAEnC,kEAAkE;QAClE,mEAAmE;QACnE,oEAAoE;QACpE,4BAA4B;QAC5B,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7D,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACrF,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,kBAAkB;YACzB,SAAS;YACT,OAAO,EAAE,YAAY,CAAC,IAAI;YAC1B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;YAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;YAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SAClC,CAAC,CAAA;QAEF,gEAAgE;QAChE,6DAA6D;QAC7D,uDAAuD;QACvD,8BAA8B;QAC9B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACtB,IAAI,MAAM,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;YACpC,IAAI,GAAG,yBAAyB,MAAM,CAAC,KAAK,IAAI,aAAa,EAAE,CAAA;QACjE,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACpD,IAAI,GAAG,uHAAuH,CAAA;QAChI,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,GAAG,2CAA2C,CAAA;QACpD,CAAC;aAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,GAAG,2CAA2C,CAAA;QACpD,CAAC;QACD,MAAM,IAAI,CAAA;IACZ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAiB,IAAI,kBAAkB,EAAE,CAAA;AAExE;;cAEc;AACd,MAAM,UAAU,mBAAmB;IACjC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,IAAI,CAAC,MAAM;QAAE,OAAO,iEAAiE,CAAA;IACrF,OAAO,yBAAyB,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU,MAAM,CAAC,IAAI,aAAa,cAAc,CAAC,aAAa,EAAE,CAAC,EAAE,CAAA;AACzH,CAAC"}
|
|
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.61",
|
|
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": {
|