@pentoshi/clai 0.10.4 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -0
- package/dist/agent/runner.js +41 -3
- package/dist/agent/runner.js.map +1 -1
- package/dist/commands/providers.js +28 -0
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/search-providers.d.ts +50 -0
- package/dist/commands/search-providers.js +134 -0
- package/dist/commands/search-providers.js.map +1 -0
- package/dist/commands/update.js +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/provider.js +9 -6
- package/dist/llm/provider.js.map +1 -1
- package/dist/prompts/index.d.ts +1 -1
- package/dist/prompts/index.js +6 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/repl.d.ts +1 -0
- package/dist/repl.js +139 -113
- package/dist/repl.js.map +1 -1
- package/dist/safety/classifier.js +40 -0
- package/dist/safety/classifier.js.map +1 -1
- package/dist/store/config.d.ts +5 -0
- package/dist/store/config.js +7 -0
- package/dist/store/config.js.map +1 -1
- package/dist/store/keys.d.ts +65 -0
- package/dist/store/keys.js +164 -28
- package/dist/store/keys.js.map +1 -1
- package/dist/tools/http.d.ts +12 -1
- package/dist/tools/http.js +8 -43
- package/dist/tools/http.js.map +1 -1
- package/dist/tools/registry.js +52 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.d.ts +25 -0
- package/dist/tools/shell.js +155 -6
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/web/audit.d.ts +154 -0
- package/dist/tools/web/audit.js +147 -0
- package/dist/tools/web/audit.js.map +1 -0
- package/dist/tools/web/budget.d.ts +76 -0
- package/dist/tools/web/budget.js +187 -0
- package/dist/tools/web/budget.js.map +1 -0
- package/dist/tools/web/capture.d.ts +201 -0
- package/dist/tools/web/capture.js +380 -0
- package/dist/tools/web/capture.js.map +1 -0
- package/dist/tools/web/fetch-core.d.ts +66 -0
- package/dist/tools/web/fetch-core.js +1123 -0
- package/dist/tools/web/fetch-core.js.map +1 -0
- package/dist/tools/web/fetch.d.ts +42 -0
- package/dist/tools/web/fetch.js +115 -0
- package/dist/tools/web/fetch.js.map +1 -0
- package/dist/tools/web/providers/brave.d.ts +46 -0
- package/dist/tools/web/providers/brave.js +263 -0
- package/dist/tools/web/providers/brave.js.map +1 -0
- package/dist/tools/web/providers/duckduckgo.d.ts +47 -0
- package/dist/tools/web/providers/duckduckgo.js +248 -0
- package/dist/tools/web/providers/duckduckgo.js.map +1 -0
- package/dist/tools/web/providers/provider.d.ts +99 -0
- package/dist/tools/web/providers/provider.js +38 -0
- package/dist/tools/web/providers/provider.js.map +1 -0
- package/dist/tools/web/providers/tavily.d.ts +52 -0
- package/dist/tools/web/providers/tavily.js +285 -0
- package/dist/tools/web/providers/tavily.js.map +1 -0
- package/dist/tools/web/readable.d.ts +67 -0
- package/dist/tools/web/readable.js +248 -0
- package/dist/tools/web/readable.js.map +1 -0
- package/dist/tools/web/redact.d.ts +120 -0
- package/dist/tools/web/redact.js +155 -0
- package/dist/tools/web/redact.js.map +1 -0
- package/dist/tools/web/search.d.ts +51 -0
- package/dist/tools/web/search.js +389 -0
- package/dist/tools/web/search.js.map +1 -0
- package/dist/tools/web/ssrf-guard.d.ts +85 -0
- package/dist/tools/web/ssrf-guard.js +265 -0
- package/dist/tools/web/ssrf-guard.js.map +1 -0
- package/dist/tools/web/types.d.ts +331 -0
- package/dist/tools/web/types.js +71 -0
- package/dist/tools/web/types.js.map +1 -0
- package/dist/ui/keys.js +3 -2
- package/dist/ui/keys.js.map +1 -1
- package/dist/ui/spinner.js +87 -14
- package/dist/ui/spinner.js.map +1 -1
- package/package.json +3 -1
package/dist/store/keys.js
CHANGED
|
@@ -87,6 +87,138 @@ async function writeFallback(keys) {
|
|
|
87
87
|
export function getFallbackKeysPath() {
|
|
88
88
|
return keysFile;
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Compose the keychain account name used for a `(namespace, id)` pair.
|
|
92
|
+
* Exposed so tests and callers can inspect the exact account string.
|
|
93
|
+
*/
|
|
94
|
+
export function secretAccount(namespace, id) {
|
|
95
|
+
return `${namespace}:${id}`;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Env-var name used for a search provider's API key, per Requirement 3.3.
|
|
99
|
+
* Returns `undefined` for keyless providers (DuckDuckGo).
|
|
100
|
+
*/
|
|
101
|
+
const searchProviderEnvVars = {
|
|
102
|
+
brave: 'BRAVE_SEARCH_API_KEY',
|
|
103
|
+
tavily: 'TAVILY_API_KEY',
|
|
104
|
+
duckduckgo: undefined,
|
|
105
|
+
};
|
|
106
|
+
export function searchProviderEnvVar(id) {
|
|
107
|
+
return searchProviderEnvVars[id];
|
|
108
|
+
}
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
// Low-level namespaced secret API
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
/**
|
|
113
|
+
* Read a secret out of the OS keychain (preferred) or the restricted-permission
|
|
114
|
+
* plaintext fallback file. Returns `{ source: 'missing' }` when neither
|
|
115
|
+
* backend has a value.
|
|
116
|
+
*
|
|
117
|
+
* Legacy LLM entries that still live under the bare `<provider>` account
|
|
118
|
+
* name (no namespace prefix) are migrated lazily into `llm:<provider>` on
|
|
119
|
+
* first read so older installs keep working without manual intervention.
|
|
120
|
+
*/
|
|
121
|
+
export async function getSecret(namespace, id) {
|
|
122
|
+
const account = secretAccount(namespace, id);
|
|
123
|
+
// Keychain — primary store.
|
|
124
|
+
const keychainResult = await withKeytar((keytar) => keytar.getPassword(serviceName, account));
|
|
125
|
+
if (keychainResult.ok && keychainResult.value) {
|
|
126
|
+
return { value: keychainResult.value, source: 'keychain' };
|
|
127
|
+
}
|
|
128
|
+
// Lazy migration of pre-namespaced LLM entries. Older clai versions
|
|
129
|
+
// wrote `setPassword(serviceName, providerId, ...)` with no `llm:`
|
|
130
|
+
// prefix; pick those up once and copy them into the new account name.
|
|
131
|
+
if (namespace === 'llm') {
|
|
132
|
+
const legacy = await withKeytar((keytar) => keytar.getPassword(serviceName, id));
|
|
133
|
+
if (legacy.ok && legacy.value) {
|
|
134
|
+
const migrated = await withKeytar((keytar) => keytar.setPassword(serviceName, account, legacy.value));
|
|
135
|
+
if (migrated.ok) {
|
|
136
|
+
await withKeytar((keytar) => keytar.deletePassword(serviceName, id));
|
|
137
|
+
}
|
|
138
|
+
return { value: legacy.value, source: 'keychain' };
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Fallback file — accept both namespaced and legacy bare-id keys.
|
|
142
|
+
const fallback = await readFallback();
|
|
143
|
+
const namespacedValue = fallback[account];
|
|
144
|
+
if (namespacedValue) {
|
|
145
|
+
return { value: namespacedValue, source: 'fallback' };
|
|
146
|
+
}
|
|
147
|
+
if (namespace === 'llm') {
|
|
148
|
+
const legacyValue = fallback[id];
|
|
149
|
+
if (legacyValue) {
|
|
150
|
+
// Migrate the legacy key in place so subsequent reads find it
|
|
151
|
+
// under the namespaced account name.
|
|
152
|
+
delete fallback[id];
|
|
153
|
+
fallback[account] = legacyValue;
|
|
154
|
+
await writeFallback(fallback);
|
|
155
|
+
return { value: legacyValue, source: 'fallback' };
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return { source: 'missing' };
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Persist `value` for `(namespace, id)`. Tries the OS keychain first; on
|
|
162
|
+
* failure (module missing, runtime error, or permission denied) writes the
|
|
163
|
+
* value into the restricted-permission plaintext fallback file at
|
|
164
|
+
* `~/.clai/keys.json`. Returns the chosen storage backend so callers can
|
|
165
|
+
* surface the plaintext-fallback warning.
|
|
166
|
+
*/
|
|
167
|
+
export async function setSecret(namespace, id, value) {
|
|
168
|
+
const account = secretAccount(namespace, id);
|
|
169
|
+
const keychainResult = await withKeytar((keytar) => keytar.setPassword(serviceName, account, value));
|
|
170
|
+
if (keychainResult.ok) {
|
|
171
|
+
// Best-effort cleanup of any legacy bare-id entry so the namespaced
|
|
172
|
+
// account is the single source of truth going forward.
|
|
173
|
+
if (namespace === 'llm') {
|
|
174
|
+
await withKeytar((keytar) => keytar.deletePassword(serviceName, id));
|
|
175
|
+
}
|
|
176
|
+
return 'keychain';
|
|
177
|
+
}
|
|
178
|
+
const fallback = await readFallback();
|
|
179
|
+
fallback[account] = value;
|
|
180
|
+
if (namespace === 'llm')
|
|
181
|
+
delete fallback[id];
|
|
182
|
+
await writeFallback(fallback);
|
|
183
|
+
return 'fallback';
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Best-effort delete: removes the secret from both the keychain and the
|
|
187
|
+
* fallback file. Never throws on keychain errors so unset always cleans
|
|
188
|
+
* up the on-disk fallback even when the OS keystore is unreachable.
|
|
189
|
+
*/
|
|
190
|
+
export async function unsetSecret(namespace, id) {
|
|
191
|
+
const account = secretAccount(namespace, id);
|
|
192
|
+
await withKeytar((keytar) => keytar.deletePassword(serviceName, account));
|
|
193
|
+
if (namespace === 'llm') {
|
|
194
|
+
// Sweep the legacy bare-id entry too so partially migrated installs
|
|
195
|
+
// get a clean unset.
|
|
196
|
+
await withKeytar((keytar) => keytar.deletePassword(serviceName, id));
|
|
197
|
+
}
|
|
198
|
+
if (existsSync(keysFile)) {
|
|
199
|
+
const fallback = await readFallback();
|
|
200
|
+
let mutated = false;
|
|
201
|
+
if (account in fallback) {
|
|
202
|
+
delete fallback[account];
|
|
203
|
+
mutated = true;
|
|
204
|
+
}
|
|
205
|
+
if (namespace === 'llm' && id in fallback) {
|
|
206
|
+
delete fallback[id];
|
|
207
|
+
mutated = true;
|
|
208
|
+
}
|
|
209
|
+
if (mutated) {
|
|
210
|
+
if (Object.keys(fallback).length === 0) {
|
|
211
|
+
await rm(keysFile, { force: true });
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
await writeFallback(fallback);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// ---------------------------------------------------------------------------
|
|
220
|
+
// Provider-facing helpers
|
|
221
|
+
// ---------------------------------------------------------------------------
|
|
90
222
|
export function envValue(provider) {
|
|
91
223
|
const envVar = envVars[provider];
|
|
92
224
|
if (!envVar) {
|
|
@@ -95,6 +227,17 @@ export function envValue(provider) {
|
|
|
95
227
|
const value = process.env[envVar];
|
|
96
228
|
return value && value.length > 0 ? value : undefined;
|
|
97
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Resolve an LLM provider's secret using the precedence:
|
|
232
|
+
*
|
|
233
|
+
* 1. Provider env var (e.g. `GROQ_API_KEY`)
|
|
234
|
+
* 2. OS keychain account `llm:<provider>` (with lazy migration of the
|
|
235
|
+
* legacy bare `<provider>` account)
|
|
236
|
+
* 3. Restricted-permission plaintext fallback file
|
|
237
|
+
*
|
|
238
|
+
* `ollama` is special-cased: it has no API key, only a base URL drawn from
|
|
239
|
+
* `OLLAMA_HOST` or the user-config `ollamaHost`.
|
|
240
|
+
*/
|
|
98
241
|
export async function getProviderSecret(provider) {
|
|
99
242
|
const env = envValue(provider);
|
|
100
243
|
if (env) {
|
|
@@ -103,43 +246,32 @@ export async function getProviderSecret(provider) {
|
|
|
103
246
|
if (provider === 'ollama') {
|
|
104
247
|
return { value: getConfig().ollamaHost, source: 'local' };
|
|
105
248
|
}
|
|
106
|
-
|
|
107
|
-
if (keychainResult.ok && keychainResult.value) {
|
|
108
|
-
return { value: keychainResult.value, source: 'keychain' };
|
|
109
|
-
}
|
|
110
|
-
const fallback = await readFallback();
|
|
111
|
-
const fromFallback = fallback[provider];
|
|
112
|
-
if (fromFallback) {
|
|
113
|
-
return { value: fromFallback, source: 'fallback' };
|
|
114
|
-
}
|
|
115
|
-
return { source: 'missing' };
|
|
249
|
+
return getSecret('llm', provider);
|
|
116
250
|
}
|
|
117
251
|
export async function setProviderSecret(provider, secret) {
|
|
118
252
|
if (provider === 'ollama') {
|
|
119
253
|
return 'fallback';
|
|
120
254
|
}
|
|
121
|
-
|
|
122
|
-
if (keychainResult.ok)
|
|
123
|
-
return 'keychain';
|
|
124
|
-
const fallback = await readFallback();
|
|
125
|
-
fallback[provider] = secret;
|
|
126
|
-
await writeFallback(fallback);
|
|
127
|
-
return 'fallback';
|
|
255
|
+
return setSecret('llm', provider, secret);
|
|
128
256
|
}
|
|
129
257
|
export async function unsetProviderSecret(provider) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
258
|
+
await unsetSecret('llm', provider);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Resolve a search-provider's API key using the precedence required by
|
|
262
|
+
* Requirement 3.3: env var → keychain `search:<id>` → fallback file →
|
|
263
|
+
* `undefined`. DuckDuckGo has no env var and no key, so it returns
|
|
264
|
+
* `{ source: 'missing' }` unless a key has been explicitly set.
|
|
265
|
+
*/
|
|
266
|
+
export async function getSearchProviderKey(id) {
|
|
267
|
+
const envVar = searchProviderEnvVars[id];
|
|
268
|
+
if (envVar) {
|
|
269
|
+
const fromEnv = process.env[envVar];
|
|
270
|
+
if (fromEnv && fromEnv.length > 0) {
|
|
271
|
+
return { value: fromEnv, source: 'env' };
|
|
141
272
|
}
|
|
142
273
|
}
|
|
274
|
+
return getSecret('search', id);
|
|
143
275
|
}
|
|
144
276
|
/**
|
|
145
277
|
* Probes the OS keychain by performing a harmless read against a marker
|
|
@@ -180,4 +312,8 @@ export async function listProviderStatuses(activeProvider) {
|
|
|
180
312
|
}
|
|
181
313
|
return statuses;
|
|
182
314
|
}
|
|
315
|
+
// Re-export the mask helper so search-provider listings (and any other
|
|
316
|
+
// consumer that already imports from `./store/keys.js`) use the same
|
|
317
|
+
// masking rule as `clai keys` for LLM entries (Requirement 3.6).
|
|
318
|
+
export { maskSecret };
|
|
183
319
|
//# sourceMappingURL=keys.js.map
|
package/dist/store/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/store/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/store/keys.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/http.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { ToolResult } from "../types.js";
|
|
2
|
+
import { isBlockedAddress } from "./web/ssrf-guard.js";
|
|
3
|
+
/**
|
|
4
|
+
* Block (or require explicit ownership confirmation for) requests that
|
|
5
|
+
* target loopback, private, link-local, or cloud-metadata addresses.
|
|
6
|
+
*
|
|
7
|
+
* The classification logic now lives in {@link "./web/ssrf-guard"} so that
|
|
8
|
+
* `http.fetch` and the new `web.fetch` tool share a single source of truth
|
|
9
|
+
* for SSRF rules. This file re-exports `isBlockedAddress` for callers that
|
|
10
|
+
* still import it from `../tools/http`, but the implementation is the
|
|
11
|
+
* structured classifier in `web/ssrf-guard.ts`.
|
|
12
|
+
*/
|
|
13
|
+
export { isBlockedAddress };
|
|
2
14
|
interface FetchOptions {
|
|
3
15
|
method?: string | undefined;
|
|
4
16
|
body?: string | undefined;
|
|
@@ -7,4 +19,3 @@ interface FetchOptions {
|
|
|
7
19
|
iOwnThis?: boolean | undefined;
|
|
8
20
|
}
|
|
9
21
|
export declare function httpFetch(url: string, options?: FetchOptions): Promise<ToolResult>;
|
|
10
|
-
export {};
|
package/dist/tools/http.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import net from "node:net";
|
|
2
2
|
import { lookup } from "node:dns/promises";
|
|
3
|
+
import { isBlockedAddress } from "./web/ssrf-guard.js";
|
|
3
4
|
const DEFAULT_MAX_BYTES = 256 * 1024;
|
|
4
5
|
const ALLOWED_METHODS = new Set([
|
|
5
6
|
"GET",
|
|
@@ -13,50 +14,14 @@ const ALLOWED_METHODS = new Set([
|
|
|
13
14
|
/**
|
|
14
15
|
* Block (or require explicit ownership confirmation for) requests that
|
|
15
16
|
* target loopback, private, link-local, or cloud-metadata addresses.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
17
|
+
*
|
|
18
|
+
* The classification logic now lives in {@link "./web/ssrf-guard"} so that
|
|
19
|
+
* `http.fetch` and the new `web.fetch` tool share a single source of truth
|
|
20
|
+
* for SSRF rules. This file re-exports `isBlockedAddress` for callers that
|
|
21
|
+
* still import it from `../tools/http`, but the implementation is the
|
|
22
|
+
* structured classifier in `web/ssrf-guard.ts`.
|
|
18
23
|
*/
|
|
19
|
-
|
|
20
|
-
const lower = host.toLowerCase();
|
|
21
|
-
if (lower === "localhost" || lower === "localhost.localdomain")
|
|
22
|
-
return true;
|
|
23
|
-
if (lower === "ip6-localhost" || lower === "ip6-loopback")
|
|
24
|
-
return true;
|
|
25
|
-
if (net.isIPv4(host)) {
|
|
26
|
-
const parts = host.split(".").map((p) => Number(p));
|
|
27
|
-
const [a, b] = parts;
|
|
28
|
-
if (a === 127)
|
|
29
|
-
return true; // loopback
|
|
30
|
-
if (a === 10)
|
|
31
|
-
return true; // RFC1918
|
|
32
|
-
if (a === 172 && b !== undefined && b >= 16 && b <= 31)
|
|
33
|
-
return true; // RFC1918
|
|
34
|
-
if (a === 192 && b === 168)
|
|
35
|
-
return true; // RFC1918
|
|
36
|
-
if (a === 169 && b === 254)
|
|
37
|
-
return true; // link-local + cloud metadata
|
|
38
|
-
if (a === 0)
|
|
39
|
-
return true; // 0.0.0.0/8
|
|
40
|
-
if (a === 100 && b !== undefined && b >= 64 && b <= 127)
|
|
41
|
-
return true; // CGNAT
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
if (net.isIPv6(host)) {
|
|
45
|
-
if (lower === "::1")
|
|
46
|
-
return true;
|
|
47
|
-
if (lower.startsWith("fe80:"))
|
|
48
|
-
return true; // link-local
|
|
49
|
-
if (lower.startsWith("fc") || lower.startsWith("fd"))
|
|
50
|
-
return true; // ULA
|
|
51
|
-
if (lower.startsWith("::ffff:")) {
|
|
52
|
-
// IPv4-mapped IPv6 — re-check the embedded v4 address.
|
|
53
|
-
const v4 = lower.slice("::ffff:".length);
|
|
54
|
-
return isBlockedAddress(v4);
|
|
55
|
-
}
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
24
|
+
export { isBlockedAddress };
|
|
60
25
|
async function resolveHost(host) {
|
|
61
26
|
if (net.isIP(host))
|
|
62
27
|
return host;
|
package/dist/tools/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/tools/http.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/tools/http.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -3,6 +3,9 @@ import { detectPackageManager, assertSafePackageName } from "../os/pkgmgr.js";
|
|
|
3
3
|
import { fsEdit, fsDelete, fsList, fsRead, fsSearch, fsWrite } from "./fs.js";
|
|
4
4
|
import { httpFetch } from "./http.js";
|
|
5
5
|
import { shellExec, spawnArgv } from "./shell.js";
|
|
6
|
+
import { webFetch } from "./web/fetch.js";
|
|
7
|
+
import { webSearch } from "./web/search.js";
|
|
8
|
+
import { RESPONSE_MODES } from "./web/types.js";
|
|
6
9
|
import { classifyToolCall } from "../safety/classifier.js";
|
|
7
10
|
import { loadScope } from "../store/scope.js";
|
|
8
11
|
import { parseHost, parsePortSpec, parseLegacyFlags, profileToNmapArgs, } from "./validate.js";
|
|
@@ -25,6 +28,17 @@ function optionalNumber(args, key) {
|
|
|
25
28
|
const value = args[key];
|
|
26
29
|
return typeof value === "number" ? value : undefined;
|
|
27
30
|
}
|
|
31
|
+
function optionalBoolean(args, key) {
|
|
32
|
+
const value = args[key];
|
|
33
|
+
return typeof value === "boolean" ? value : undefined;
|
|
34
|
+
}
|
|
35
|
+
function optionalResponseMode(args, key) {
|
|
36
|
+
const value = args[key];
|
|
37
|
+
if (typeof value === "string" && RESPONSE_MODES.includes(value)) {
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
28
42
|
export const toolRegistry = {
|
|
29
43
|
async "shell.exec"(args, options) {
|
|
30
44
|
return shellExec({
|
|
@@ -110,6 +124,42 @@ export const toolRegistry = {
|
|
|
110
124
|
iOwnThis: args.iOwnThis === true || args.own === true,
|
|
111
125
|
});
|
|
112
126
|
},
|
|
127
|
+
async "web.search"(args, options) {
|
|
128
|
+
return webSearch({
|
|
129
|
+
query: requireString(args, "query"),
|
|
130
|
+
...(optionalNumber(args, "maxResults") !== undefined
|
|
131
|
+
? { maxResults: optionalNumber(args, "maxResults") }
|
|
132
|
+
: {}),
|
|
133
|
+
}, { ...(options?.signal ? { signal: options.signal } : {}) });
|
|
134
|
+
},
|
|
135
|
+
async "web.fetch"(args, options) {
|
|
136
|
+
const url = requireString(args, "url");
|
|
137
|
+
const fetchArgs = { url };
|
|
138
|
+
const maxBytes = optionalNumber(args, "maxBytes");
|
|
139
|
+
if (maxBytes !== undefined)
|
|
140
|
+
fetchArgs.maxBytes = maxBytes;
|
|
141
|
+
const includeHeaders = optionalBoolean(args, "includeHeaders");
|
|
142
|
+
if (includeHeaders !== undefined)
|
|
143
|
+
fetchArgs.includeHeaders = includeHeaders;
|
|
144
|
+
const includeTls = optionalBoolean(args, "includeTls");
|
|
145
|
+
if (includeTls !== undefined)
|
|
146
|
+
fetchArgs.includeTls = includeTls;
|
|
147
|
+
const includeTiming = optionalBoolean(args, "includeTiming");
|
|
148
|
+
if (includeTiming !== undefined)
|
|
149
|
+
fetchArgs.includeTiming = includeTiming;
|
|
150
|
+
const includeRedirectChain = optionalBoolean(args, "includeRedirectChain");
|
|
151
|
+
if (includeRedirectChain !== undefined)
|
|
152
|
+
fetchArgs.includeRedirectChain = includeRedirectChain;
|
|
153
|
+
const responseMode = optionalResponseMode(args, "responseMode");
|
|
154
|
+
if (responseMode !== undefined)
|
|
155
|
+
fetchArgs.responseMode = responseMode;
|
|
156
|
+
const redactSensitive = optionalBoolean(args, "redactSensitive");
|
|
157
|
+
if (redactSensitive !== undefined)
|
|
158
|
+
fetchArgs.redactSensitive = redactSensitive;
|
|
159
|
+
return webFetch(fetchArgs, {
|
|
160
|
+
...(options?.signal ? { signal: options.signal } : {}),
|
|
161
|
+
});
|
|
162
|
+
},
|
|
113
163
|
async sysinfo() {
|
|
114
164
|
return { ok: true, output: JSON.stringify(detectSystem(), null, 2) };
|
|
115
165
|
},
|
|
@@ -304,6 +354,8 @@ const BATCH_SAFE_TOOLS = new Set([
|
|
|
304
354
|
"whois.lookup",
|
|
305
355
|
"net.context",
|
|
306
356
|
"tool.check",
|
|
357
|
+
"web.search",
|
|
358
|
+
"web.fetch",
|
|
307
359
|
]);
|
|
308
360
|
const BATCH_MAX_CALLS = 8;
|
|
309
361
|
const BATCH_DEFAULT_CONCURRENCY = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/shell.d.ts
CHANGED
|
@@ -15,6 +15,14 @@ export interface ShellExecArgs {
|
|
|
15
15
|
artifactPath?: string | undefined;
|
|
16
16
|
/** When true, do not allocate an artifact file (used by tests / dry runs). */
|
|
17
17
|
noArtifact?: boolean | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Force the child to inherit the parent's stdin so interactive
|
|
20
|
+
* password prompts (sudo, ssh, gpg, doas) can read from the controlling
|
|
21
|
+
* TTY. Defaults to `auto`: enabled for commands {@link looksInteractiveStdin}
|
|
22
|
+
* detects when stdin is a TTY; disabled otherwise. Set explicitly to
|
|
23
|
+
* `true` to force-inherit, `false` to keep stdin closed.
|
|
24
|
+
*/
|
|
25
|
+
interactiveStdin?: boolean | "auto" | undefined;
|
|
18
26
|
}
|
|
19
27
|
export interface SpawnArgvArgs {
|
|
20
28
|
command: string;
|
|
@@ -28,7 +36,24 @@ export interface SpawnArgvArgs {
|
|
|
28
36
|
onLimit?: "terminate" | "continue" | undefined;
|
|
29
37
|
artifactPath?: string | undefined;
|
|
30
38
|
noArtifact?: boolean | undefined;
|
|
39
|
+
/** See {@link ShellExecArgs.interactiveStdin}. */
|
|
40
|
+
interactiveStdin?: boolean | "auto" | undefined;
|
|
31
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Heuristic: does this command line need to read from a real TTY so a
|
|
44
|
+
* password / passphrase / yes-no prompt can reach the user?
|
|
45
|
+
*
|
|
46
|
+
* The classic case is `sudo`: with `stdio: ["ignore", ...]` sudo prints
|
|
47
|
+
* "a terminal is required to read the password" and exits with code 1.
|
|
48
|
+
* We catch the same family of tools (su/doas/ssh/gpg/passwd, plus the
|
|
49
|
+
* Windows elevation helpers `gsudo` / `sudo` / `runas`) so the agent
|
|
50
|
+
* can run them like a human would.
|
|
51
|
+
*
|
|
52
|
+
* Returns `false` when the command explicitly opts out of prompts
|
|
53
|
+
* (`sudo -n`, `sudo --non-interactive`, `sudo -S`, `ssh -o BatchMode=yes`)
|
|
54
|
+
* because in those cases inheriting stdin would only confuse things.
|
|
55
|
+
*/
|
|
56
|
+
export declare function looksInteractiveStdin(command: string): boolean;
|
|
32
57
|
/** A small ring buffer of recent output lines used as the "tail" summary.
|
|
33
58
|
* Exported only for tests. */
|
|
34
59
|
export declare class RingBuffer {
|