@pentoshi/clai 0.10.5 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +32 -0
  2. package/dist/agent/runner.d.ts +2 -0
  3. package/dist/agent/runner.js +124 -21
  4. package/dist/agent/runner.js.map +1 -1
  5. package/dist/commands/providers.js +28 -0
  6. package/dist/commands/providers.js.map +1 -1
  7. package/dist/commands/search-providers.d.ts +50 -0
  8. package/dist/commands/search-providers.js +134 -0
  9. package/dist/commands/search-providers.js.map +1 -0
  10. package/dist/commands/update.js +1 -1
  11. package/dist/index.js +8 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/llm/provider.js +9 -6
  14. package/dist/llm/provider.js.map +1 -1
  15. package/dist/prompts/index.d.ts +1 -1
  16. package/dist/prompts/index.js +7 -1
  17. package/dist/prompts/index.js.map +1 -1
  18. package/dist/safety/classifier.js +40 -0
  19. package/dist/safety/classifier.js.map +1 -1
  20. package/dist/store/config.d.ts +5 -0
  21. package/dist/store/config.js +7 -0
  22. package/dist/store/config.js.map +1 -1
  23. package/dist/store/keys.d.ts +65 -0
  24. package/dist/store/keys.js +164 -28
  25. package/dist/store/keys.js.map +1 -1
  26. package/dist/tools/http.d.ts +12 -1
  27. package/dist/tools/http.js +8 -43
  28. package/dist/tools/http.js.map +1 -1
  29. package/dist/tools/registry.js +52 -0
  30. package/dist/tools/registry.js.map +1 -1
  31. package/dist/tools/shell.d.ts +25 -0
  32. package/dist/tools/shell.js +155 -6
  33. package/dist/tools/shell.js.map +1 -1
  34. package/dist/tools/web/audit.d.ts +154 -0
  35. package/dist/tools/web/audit.js +147 -0
  36. package/dist/tools/web/audit.js.map +1 -0
  37. package/dist/tools/web/budget.d.ts +76 -0
  38. package/dist/tools/web/budget.js +187 -0
  39. package/dist/tools/web/budget.js.map +1 -0
  40. package/dist/tools/web/capture.d.ts +201 -0
  41. package/dist/tools/web/capture.js +380 -0
  42. package/dist/tools/web/capture.js.map +1 -0
  43. package/dist/tools/web/fetch-core.d.ts +66 -0
  44. package/dist/tools/web/fetch-core.js +1123 -0
  45. package/dist/tools/web/fetch-core.js.map +1 -0
  46. package/dist/tools/web/fetch.d.ts +42 -0
  47. package/dist/tools/web/fetch.js +115 -0
  48. package/dist/tools/web/fetch.js.map +1 -0
  49. package/dist/tools/web/providers/brave.d.ts +46 -0
  50. package/dist/tools/web/providers/brave.js +263 -0
  51. package/dist/tools/web/providers/brave.js.map +1 -0
  52. package/dist/tools/web/providers/duckduckgo.d.ts +47 -0
  53. package/dist/tools/web/providers/duckduckgo.js +248 -0
  54. package/dist/tools/web/providers/duckduckgo.js.map +1 -0
  55. package/dist/tools/web/providers/provider.d.ts +99 -0
  56. package/dist/tools/web/providers/provider.js +38 -0
  57. package/dist/tools/web/providers/provider.js.map +1 -0
  58. package/dist/tools/web/providers/tavily.d.ts +52 -0
  59. package/dist/tools/web/providers/tavily.js +285 -0
  60. package/dist/tools/web/providers/tavily.js.map +1 -0
  61. package/dist/tools/web/readable.d.ts +67 -0
  62. package/dist/tools/web/readable.js +248 -0
  63. package/dist/tools/web/readable.js.map +1 -0
  64. package/dist/tools/web/redact.d.ts +120 -0
  65. package/dist/tools/web/redact.js +155 -0
  66. package/dist/tools/web/redact.js.map +1 -0
  67. package/dist/tools/web/search.d.ts +51 -0
  68. package/dist/tools/web/search.js +389 -0
  69. package/dist/tools/web/search.js.map +1 -0
  70. package/dist/tools/web/ssrf-guard.d.ts +85 -0
  71. package/dist/tools/web/ssrf-guard.js +265 -0
  72. package/dist/tools/web/ssrf-guard.js.map +1 -0
  73. package/dist/tools/web/types.d.ts +331 -0
  74. package/dist/tools/web/types.js +71 -0
  75. package/dist/tools/web/types.js.map +1 -0
  76. package/dist/ui/spinner.js +87 -14
  77. package/dist/ui/spinner.js.map +1 -1
  78. package/package.json +3 -1
package/README.md CHANGED
@@ -178,6 +178,38 @@ export OLLAMA_HOST=http://localhost:11434
178
178
 
179
179
  > \* **smart** = read-only commands (`curl`, `ls`, `whoami`, `gobuster`, `dirb`, etc.) auto-execute; mutating commands require confirmation.
180
180
 
181
+ ## Web tools
182
+
183
+ Two higher-level tools sit alongside `http.fetch` for agent-driven web reading:
184
+
185
+ - **`web.search`** — query the public web through a configurable search provider and return structured `{title, url, snippet}` hits. Default provider is **DuckDuckGo** (keyless, works out of the box). **Brave Search** and **Tavily** are supported when an API key is configured. Use this for current-events or post-cutoff information; the agent prompt steers `web.search` toward time-sensitive questions and `web.fetch` toward reading a known URL.
186
+ - **`web.fetch`** — fetch a URL and return readable prose (HTML stripped of `<script>`/`<style>`/chrome) plus rich metadata: response headers, TLS session details (cipher, peer cert SAN list, fingerprint), redirect chain, fine-grained timing, resolved IP. Sensitive headers and cookie values are redacted by default; pass `redactSensitive=false` to expose them in the *output* (the audit log never carries them). Loopback / RFC1918 / link-local / cloud-metadata addresses are blocked by SSRF checks at every redirect hop, with DNS rebinding defeated by IP-pinning the connection to the resolved address.
187
+
188
+ ### Search provider configuration
189
+
190
+ ```sh
191
+ # Set a key for Brave or Tavily (DuckDuckGo is keyless and is a no-op).
192
+ clai set brave bsx-xxxxxxxxxxxxxxxx
193
+ clai set tavily tvly-xxxxxxxxxxxxxxxx
194
+
195
+ # Remove a stored key.
196
+ clai unset brave
197
+
198
+ # Switch the active search provider used by web.search.
199
+ clai search-provider tavily
200
+
201
+ # List configured keys (LLM and search) with the same masking rule.
202
+ clai keys
203
+ ```
204
+
205
+ Environment variables override stored keys at call time:
206
+
207
+ | Provider | Env var |
208
+ |--------------|--------------------------|
209
+ | Brave Search | `BRAVE_SEARCH_API_KEY` |
210
+ | Tavily | `TAVILY_API_KEY` |
211
+ | DuckDuckGo | (none, keyless) |
212
+
181
213
  ## Safety Gate
182
214
 
183
215
  Every tool call passes through a 3-tier classifier:
@@ -30,4 +30,6 @@ export interface ParseToolCallOptions {
30
30
  strict?: boolean | undefined;
31
31
  }
32
32
  export declare function parseToolCall(text: string, options?: ParseToolCallOptions): ToolCall | undefined;
33
+ export declare function requiresFreshWebSearch(prompt: string): boolean;
34
+ export declare function shouldDimToolChatter(call: ToolCall): boolean;
33
35
  export declare function runAgentLoop(prompt: string, options?: AgentRunOptions): Promise<string>;
@@ -8,12 +8,13 @@ import { renderAgentSystemPrompt } from "../prompts/index.js";
8
8
  import { getConfig } from "../store/config.js";
9
9
  import { classifyToolCall, isPentestToolCall, scopeHint, scopeTargetForToolCall, } from "../safety/classifier.js";
10
10
  import { availableToolNames, runToolCall } from "../tools/registry.js";
11
+ import { looksInteractiveStdin } from "../tools/shell.js";
11
12
  import { reduceToolOutput } from "../tools/policies/output-policy.js";
12
13
  import { formatViewportHint, registerViewport } from "../ui/output-pane.js";
13
14
  import { compactMessages, estimateMessagesTokens } from "./context-manager.js";
14
15
  import { auditLog } from "../store/logs.js";
15
16
  import { loadProjectContext } from "../store/project.js";
16
- import { loadScope, isScopeActive, targetInScope, } from "../store/scope.js";
17
+ import { loadScope, isScopeActive, targetInScope } from "../store/scope.js";
17
18
  import { ensureProviderConfigured } from "../commands/providers.js";
18
19
  import { rememberThinkingFromText, renderThinkingSummary, } from "../ui/thinking.js";
19
20
  import { renderMarkdown, indentAndWrapText } from "../ui/markdown.js";
@@ -175,14 +176,45 @@ function formatToolArgs(call) {
175
176
  return String(call.args.path ?? "");
176
177
  if (call.name === "fs.search")
177
178
  return String(call.args.pattern ?? "");
178
- if (call.name === "http.fetch")
179
+ if (call.name === "http.fetch" || call.name === "web.fetch")
179
180
  return String(call.args.url ?? "");
181
+ if (call.name === "web.search")
182
+ return String(call.args.query ?? "");
180
183
  if (call.name === "pkg.install")
181
184
  return String(call.args.tool ?? "");
182
185
  if (call.name === "fs.list")
183
186
  return String(call.args.path ?? process.cwd());
184
187
  return JSON.stringify(call.args);
185
188
  }
189
+ const VOLATILE_SIGNAL_RE = /\b(?:current(?:ly)?|latest|newest|today|now|right now|live|recent|breaking|news|release[sd]?|version|prices?|stocks?|market|rates?|weather|forecast|elections?|results?|rankings?|standings?|stats?|cve|advis(?:ory|ories)|vulnerabilit(?:y|ies))\b/i;
190
+ const VOLATILE_ROLE_QUERY_RE = /\b(?:who(?:\s+is|'s)?|whos|name|tell\s+me|what(?:\s+is|'s)?)\b[\s\S]{0,120}\b(?:cm|chief\s+minister|prime\s+minister|president|governor|mayor|ministers?|cabinet|leader|head\s+of|ceo|cto|cfo|coo|chair(?:man|woman|person)?|coach|captain)\b/i;
191
+ const ROLE_OF_ENTITY_RE = /\b(?:cm|chief\s+minister|prime\s+minister|president|governor|mayor|ministers?|ceo|cto|cfo|coo|chair(?:man|woman|person)?|coach|captain)\s+(?:of|for|in)\b/i;
192
+ const EXPLICIT_WEB_LOOKUP_RE = /\b(?:search\s+(?:the\s+)?(?:web|internet|online)|look\s*up|google|verify\s+(?:online|on\s+the\s+web)|check\s+(?:online|the\s+web|internet))\b/i;
193
+ const STATIC_DISAMBIGUATION_RE = /\b(?:stand\s+for|stands\s+for|meaning|definition|define|abbreviation|centimeters?|centimetres?)\b/i;
194
+ const LOCAL_RUNTIME_RE = /\b(?:current\s+(?:directory|dir|cwd|working\s+directory|folder|path|user|shell|process(?:es)?|branch|git\s+branch|network|ip|interfaces?|working\s+tree)|pwd|whoami)\b/i;
195
+ export function requiresFreshWebSearch(prompt) {
196
+ const text = prompt.replace(/\s+/g, " ").trim();
197
+ if (!text)
198
+ return false;
199
+ if (STATIC_DISAMBIGUATION_RE.test(text) || LOCAL_RUNTIME_RE.test(text)) {
200
+ return false;
201
+ }
202
+ return (VOLATILE_SIGNAL_RE.test(text) ||
203
+ VOLATILE_ROLE_QUERY_RE.test(text) ||
204
+ ROLE_OF_ENTITY_RE.test(text) ||
205
+ EXPLICIT_WEB_LOOKUP_RE.test(text));
206
+ }
207
+ function freshnessGuardMessage() {
208
+ return ("Freshness guard for this turn: the latest user prompt appears to ask for current, volatile, or externally verifiable information. " +
209
+ "Before answering, call web.search FIRST with a concise query derived from the user prompt. " +
210
+ "Use the search results to answer. If web.search fails or has no results, say that current information is unavailable instead of guessing from memory.");
211
+ }
212
+ export function shouldDimToolChatter(call) {
213
+ return call.name === "web.search";
214
+ }
215
+ function styleToolChatter(call, text) {
216
+ return shouldDimToolChatter(call) ? chalk.dim(text) : text;
217
+ }
186
218
  function isAbortError(error, signal) {
187
219
  return (Boolean(signal?.aborted) ||
188
220
  (error instanceof Error && error.name === "AbortError"));
@@ -303,10 +335,16 @@ export async function runAgentLoop(prompt, options = {}) {
303
335
  const config = getConfig();
304
336
  const maxSteps = options.maxSteps ?? 30;
305
337
  const projectContext = await loadProjectContext();
306
- const systemPrompt = renderAgentSystemPrompt(availableToolNames().join(", "));
307
- const fullSystemPrompt = projectContext
308
- ? `${systemPrompt}\n\nProject context from .clai/context.md:\n${projectContext}`
309
- : systemPrompt;
338
+ const toolNames = availableToolNames();
339
+ const freshWebSearchRequired = toolNames.includes("web.search") && requiresFreshWebSearch(prompt);
340
+ const systemSections = [renderAgentSystemPrompt(toolNames.join(", "))];
341
+ if (projectContext) {
342
+ systemSections.push(`Project context from .clai/context.md:\n${projectContext}`);
343
+ }
344
+ if (freshWebSearchRequired) {
345
+ systemSections.push(freshnessGuardMessage());
346
+ }
347
+ const fullSystemPrompt = systemSections.join("\n\n");
310
348
  const messages = [
311
349
  { role: "system", content: fullSystemPrompt },
312
350
  ...(options.history ?? []),
@@ -324,10 +362,16 @@ export async function runAgentLoop(prompt, options = {}) {
324
362
  // Track consecutive thinking-only responses so we can nudge the model
325
363
  // to actually act instead of silently returning an empty answer.
326
364
  let emptyVisibleRetries = 0;
365
+ // For volatile live-info prompts, make one corrective pass if a model
366
+ // ignores the freshness guard and tries to answer from stale memory.
367
+ let sawFreshWebSearch = false;
368
+ let freshnessRetryUsed = false;
327
369
  // ── Complexity-based step limit (no hardcoded plans) ──────────────
328
370
  const analysis = analyzeTask(prompt);
329
- const dynamicMaxSteps = analysis.complexity === "simple" ? 10
330
- : analysis.complexity === "standard" ? 20
371
+ const dynamicMaxSteps = analysis.complexity === "simple"
372
+ ? 10
373
+ : analysis.complexity === "standard"
374
+ ? 20
331
375
  : maxSteps;
332
376
  for (let step = 0; step < dynamicMaxSteps; step += 1) {
333
377
  options.signal?.throwIfAborted();
@@ -439,6 +483,17 @@ export async function runAgentLoop(prompt, options = {}) {
439
483
  // Normal final-answer path: strip any stray sentinel tokens that
440
484
  // somehow leaked into prose so the answer renders cleanly.
441
485
  const cleaned = stripSentinelTokens(assistantText.visible);
486
+ if (freshWebSearchRequired && !sawFreshWebSearch && !freshnessRetryUsed) {
487
+ freshnessRetryUsed = true;
488
+ process.stdout.write(chalk.dim(" ℹ current-info question detected — searching the web before answering\n"));
489
+ messages.push({ role: "assistant", content: assistantText.visible });
490
+ messages.push({
491
+ role: "user",
492
+ content: freshnessGuardMessage() +
493
+ " Reply with ONLY a fenced ```tool block for web.search now.",
494
+ });
495
+ continue;
496
+ }
442
497
  if (cleaned) {
443
498
  process.stdout.write(renderMarkdown(cleaned));
444
499
  if (!cleaned.endsWith("\n"))
@@ -483,12 +538,14 @@ export async function runAgentLoop(prompt, options = {}) {
483
538
  await auditLog("tool.classified", {
484
539
  call,
485
540
  decision,
486
- scope: isScopeActive(scope) ? scope.name ?? "(unnamed)" : "(none)",
541
+ scope: isScopeActive(scope) ? (scope.name ?? "(unnamed)") : "(none)",
487
542
  });
543
+ if (call.name === "web.search") {
544
+ sawFreshWebSearch = true;
545
+ }
488
546
  // Show tool call
489
- process.stdout.write(chalk.cyan(` ▶ ${call.name}`) +
490
- chalk.gray(` ${formatToolArgs(call)}`) +
491
- "\n");
547
+ const toolCallLine = chalk.cyan(` ▶ ${call.name}`) + chalk.gray(` ${formatToolArgs(call)}`);
548
+ process.stdout.write(styleToolChatter(call, toolCallLine) + "\n");
492
549
  const scopeTarget = scopeTargetForToolCall(call);
493
550
  if (scopeTarget &&
494
551
  (!isScopeActive(scope) || !targetInScope(scopeTarget, scope))) {
@@ -509,11 +566,14 @@ export async function runAgentLoop(prompt, options = {}) {
509
566
  // raw mode when it finishes. Re-assert raw mode so the outer keypress
510
567
  // handler (ESC/Ctrl+C abort, Ctrl+O output pane) keeps working during
511
568
  // the next streaming phase.
512
- if (process.stdin.isTTY && !process.stdin.isRaw) {
569
+ if (process.stdin.isTTY &&
570
+ !process.stdin.isRaw) {
513
571
  try {
514
572
  process.stdin.setRawMode(true);
515
573
  }
516
- catch { /* ignore */ }
574
+ catch {
575
+ /* ignore */
576
+ }
517
577
  }
518
578
  if (!authorized) {
519
579
  lastAnswer = "Pentest authorization not confirmed.";
@@ -529,11 +589,14 @@ export async function runAgentLoop(prompt, options = {}) {
529
589
  if (decision.level === "confirm" && !pentestJustConfirmed) {
530
590
  const ok = await confirmToolExecution(call, forceManualConfirm ? false : Boolean(options.autoConfirm), session);
531
591
  // Re-assert raw mode after inquirer's confirm() (see comment above).
532
- if (process.stdin.isTTY && !process.stdin.isRaw) {
592
+ if (process.stdin.isTTY &&
593
+ !process.stdin.isRaw) {
533
594
  try {
534
595
  process.stdin.setRawMode(true);
535
596
  }
536
- catch { /* ignore */ }
597
+ catch {
598
+ /* ignore */
599
+ }
537
600
  }
538
601
  if (!ok) {
539
602
  lastAnswer = "Cancelled.";
@@ -544,11 +607,27 @@ export async function runAgentLoop(prompt, options = {}) {
544
607
  // Execute tool
545
608
  options.signal?.throwIfAborted();
546
609
  options.onToolStart?.(call);
610
+ // Heads-up when the command is about to run something that may pause
611
+ // for a password prompt (sudo, ssh, gpg, ...). The shell tool already
612
+ // routes such commands through inherited stdin so the user can type
613
+ // directly into the controlling TTY; we just warn them to expect it.
614
+ const interactiveCommand = call.name === "shell.exec" &&
615
+ typeof call.args.command === "string" &&
616
+ looksInteractiveStdin(call.args.command);
617
+ if (interactiveCommand && process.stdin.isTTY) {
618
+ process.stdout.write(chalk.yellow(" ⚠ this command may prompt for a password — type it when asked\n"));
619
+ }
547
620
  let result;
548
621
  let liveBytes = 0;
549
622
  const liveCap = 16_000; // Stop streaming after this many bytes to avoid flooding the terminal.
550
623
  let liveTruncatedNotified = false;
551
624
  let lastProgressAt = 0;
625
+ // When the underlying command may pause for a password prompt
626
+ // (sudo / ssh / etc.) we stream the live preview *without* the dim
627
+ // attribute so the prompt is fully readable. Otherwise we keep the
628
+ // dim styling that makes ordinary tool chatter visually distinct
629
+ // from the model's prose.
630
+ const shouldDimLive = !interactiveCommand;
552
631
  const printLive = (chunk) => {
553
632
  // Suppress live preview for fs.read / fs.list — those are read-only
554
633
  // and the final summary is already concise. Stream shell-style tools
@@ -578,9 +657,11 @@ export async function runAgentLoop(prompt, options = {}) {
578
657
  liveBytes += slice.length;
579
658
  // Indent each line so live output lines up under the tool call.
580
659
  const indented = slice.replace(/\r/g, "").replace(/\n(?!$)/g, "\n ");
581
- process.stdout.write(chalk.dim(indented.startsWith("\n")
582
- ? indented
583
- : ` ${indented}`.replace(/^ /, " ")));
660
+ const body = indented.startsWith("\n") ? indented : ` ${indented}`;
661
+ // Skip the dim wrapper for interactive commands so a sudo password
662
+ // prompt is rendered at full brightness; everything else stays dim
663
+ // so tool chatter is visually distinct from the model's prose.
664
+ process.stdout.write(shouldDimLive ? chalk.dim(body) : body);
584
665
  };
585
666
  try {
586
667
  result = await runToolCall(call, {
@@ -633,7 +714,9 @@ export async function runAgentLoop(prompt, options = {}) {
633
714
  if (!result.ok && NOT_FOUND_RE.test(output)) {
634
715
  const cmdName = call.name === "shell.exec"
635
716
  ? String(call.args.command ?? "").split(/\s+/)[0]
636
- : call.name === "net.scan" ? "nmap" : undefined;
717
+ : call.name === "net.scan"
718
+ ? "nmap"
719
+ : undefined;
637
720
  if (cmdName) {
638
721
  process.stdout.write(chalk.yellow(` ⚠ ${cmdName} not found — asking model to install and retry\n`));
639
722
  messages.push({
@@ -645,6 +728,25 @@ export async function runAgentLoop(prompt, options = {}) {
645
728
  continue;
646
729
  }
647
730
  }
731
+ // ── Auto-retry on "a terminal is required" sudo error ──────────────
732
+ // Older Node versions and some non-TTY contexts can still surface the
733
+ // canonical sudo "a terminal is required" or "no askpass program"
734
+ // failure. Tell the model to retry through plain `sudo …` (which the
735
+ // shell tool now inherits stdin for) instead of getting clever with
736
+ // -S / askpass / piping a password.
737
+ const SUDO_NEEDS_TTY_RE = /sudo:\s+a terminal is required to read the password|sudo:\s+a password is required|no askpass program|sudo: \d+ incorrect password attempts|sudo:\s+(?:no tty present|sorry, you must have a tty)/i;
738
+ if (!result.ok && SUDO_NEEDS_TTY_RE.test(output)) {
739
+ process.stdout.write(chalk.yellow(" ⚠ sudo needs an interactive terminal — asking the model to retry without -S/askpass\n"));
740
+ messages.push({
741
+ role: "tool",
742
+ content: "Tool failed: sudo could not read a password.\n" +
743
+ "On the next attempt: call shell.exec with `sudo <command>` directly. " +
744
+ "clai inherits stdin from the user's terminal, so the user can type the password live. " +
745
+ 'DO NOT use `echo "<pwd>" | sudo -S`, DO NOT use SUDO_ASKPASS, DO NOT ask the user for the password in chat. ' +
746
+ "Just run `sudo <command>` and the password prompt will be visible.",
747
+ });
748
+ continue;
749
+ }
648
750
  // Print tool result
649
751
  const statusIcon = result.ok ? chalk.green(" ✓") : chalk.red(" ✗");
650
752
  process.stdout.write(statusIcon + "\n");
@@ -661,7 +763,8 @@ export async function runAgentLoop(prompt, options = {}) {
661
763
  }
662
764
  }
663
765
  else {
664
- process.stdout.write(indentAndWrapText(displayText) + "\n");
766
+ const renderedOutput = indentAndWrapText(displayText);
767
+ process.stdout.write(styleToolChatter(call, renderedOutput) + "\n");
665
768
  }
666
769
  }
667
770
  if (isAbortError(undefined, options.signal)) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,21 @@ function invalidFormatHint(provider) {
35
35
  return "Ollama expects a URL such as http://localhost:11434";
36
36
  }
37
37
  export async function setProviderKey(providerValue, keyArg, options) {
38
+ // Search-provider ids (`brave`, `tavily`, `duckduckgo`) are stored in
39
+ // the `search:` namespace (Requirement 3.1). Dispatch before the LLM
40
+ // path so the matching helper handles the keyless DuckDuckGo no-op.
41
+ if (providerValue === "brave" ||
42
+ providerValue === "tavily" ||
43
+ providerValue === "duckduckgo") {
44
+ const { setSearchProviderKey } = await import("./search-providers.js");
45
+ const opts = {};
46
+ if (options.fromEnv !== undefined)
47
+ opts.fromEnv = options.fromEnv;
48
+ if (options.stdin !== undefined)
49
+ opts.stdin = options.stdin;
50
+ await setSearchProviderKey(providerValue, keyArg, opts);
51
+ return;
52
+ }
38
53
  const provider = assertProvider(providerValue);
39
54
  const providerImpl = getProvider(provider);
40
55
  let secret = options.url ?? keyArg;
@@ -81,6 +96,13 @@ export async function setProviderKey(providerValue, keyArg, options) {
81
96
  console.log(`saved ${provider} ${provider === "ollama" ? secret : maskSecret(secret)}`);
82
97
  }
83
98
  export async function unsetProviderKey(providerValue) {
99
+ if (providerValue === "brave" ||
100
+ providerValue === "tavily" ||
101
+ providerValue === "duckduckgo") {
102
+ const { unsetSearchProviderKey } = await import("./search-providers.js");
103
+ await unsetSearchProviderKey(providerValue);
104
+ return;
105
+ }
84
106
  const provider = assertProvider(providerValue);
85
107
  await unsetProviderSecret(provider);
86
108
  console.log(`unset ${provider}`);
@@ -96,6 +118,12 @@ export async function printProviderKeys() {
96
118
  const note = status.note ? ` ${status.note}` : "";
97
119
  console.log(`${active} ${configured} ${status.provider.padEnd(10)} ${source}${secret}${note} model=${status.model}`);
98
120
  }
121
+ // Search providers are listed under a separate header so users can
122
+ // tell LLM and search keyspaces apart at a glance (Requirement 3.6).
123
+ console.log("");
124
+ console.log(chalk.bold("Search providers:"));
125
+ const { printSearchProviderKeys } = await import("./search-providers.js");
126
+ await printSearchProviderKeys();
99
127
  }
100
128
  export async function ensureProviderConfigured(provider) {
101
129
  const secret = await getProviderSecret(provider);
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/commands/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAU1B,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAoB;IACjD,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,qBAAqB,QAAQ,yCAAyC;QAC/E,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAoB;IAC7C,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,mCAAmC,CAAC;IACpE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,qCAAqC,CAAC;IACxE,IAAI,QAAQ,KAAK,YAAY;QAC3B,OAAO,2CAA2C,CAAC;IACrD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,oCAAoC,CAAC;IACvE,IAAI,QAAQ,KAAK,WAAW;QAC1B,OAAO,2CAA2C,CAAC;IACrD,IAAI,QAAQ,KAAK,QAAQ;QACvB,OAAO,2CAA2C,CAAC;IACrD,IAAI,QAAQ,KAAK,aAAa;QAC5B,OAAO,2FAA2F,CAAC;IACrG,OAAO,qDAAqD,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,MAA0B,EAC1B,OAAsB;IAEtB,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC;IACnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,CAAC,OAAO,sBAAsB,CAC9D,CAAC;IACN,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,WAAW,QAAQ,YAAY,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAC9D,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACrC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,+CAA+C,mBAAmB,EAAE,+BAA+B,CACpG,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACpF,CACF,CAAC;YACF,OAAO;QACT,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,SAAS,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,aAAqB;IAC1D,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,IAAI,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI,UAAU,MAAM,CAAC,KAAK,EAAE,CACxG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO;IACxE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO;IACjC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAqB;IACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,YAAY,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAkC;IAElC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;QAC5B,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;YACxH,KAAK,EAAE,MAAM,CAAC,QAAQ;SACvB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/commands/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * CLI helpers for managing search-provider configuration and keys.
3
+ *
4
+ * Implements Requirements 3.1, 3.2, 3.5–3.7:
5
+ *
6
+ * - `clai set <id> [key]` — store an API key for `brave`/`tavily`
7
+ * (DuckDuckGo is keyless and is a no-op).
8
+ * - `clai unset <id>` — remove a stored key.
9
+ * - `clai search-provider` — set the active provider (`activeSearchProvider`).
10
+ * - `clai keys` — extends the LLM listing with search providers,
11
+ * using the same masking rule.
12
+ *
13
+ * All key entry uses the `password` prompt with no terminal echo
14
+ * (Requirement 3.2). Secrets land in the same keyring service as LLM
15
+ * keys but under the namespaced account `search:<id>` so the two
16
+ * keyspaces never collide (Requirement 3.1).
17
+ */
18
+ import "../tools/web/providers/duckduckgo.js";
19
+ import "../tools/web/providers/brave.js";
20
+ import "../tools/web/providers/tavily.js";
21
+ /**
22
+ * Returns `true` when the supplied id is a known search-provider id.
23
+ * Used by `clai set <id>` to dispatch to the search-provider path
24
+ * before falling through to the LLM-provider path.
25
+ */
26
+ export declare function isSearchProviderId(value: string): boolean;
27
+ export interface SetSearchKeyOptions {
28
+ fromEnv?: string | undefined;
29
+ stdin?: boolean | undefined;
30
+ }
31
+ /**
32
+ * Persist a search-provider API key. DuckDuckGo is keyless and is a no-op.
33
+ *
34
+ * Requirement 3.2: prompts use the hidden-input `password` flow so the
35
+ * entered key never lands in shell history or echo.
36
+ */
37
+ export declare function setSearchProviderKey(providerValue: string, keyArg: string | undefined, options?: SetSearchKeyOptions): Promise<void>;
38
+ export declare function unsetSearchProviderKey(providerValue: string): Promise<void>;
39
+ /**
40
+ * Set the active search provider used by `web.search`. The id is
41
+ * validated through {@link assertSearchProvider} so unsupported ids
42
+ * are rejected with the supported-list message (Requirement 3.7).
43
+ */
44
+ export declare function useSearchProvider(providerValue: string): Promise<void>;
45
+ /**
46
+ * Print every configured search-provider entry next to the LLM
47
+ * listing. Uses the same masking rule as `clai keys` for LLM keys
48
+ * (Requirement 3.6).
49
+ */
50
+ export declare function printSearchProviderKeys(): Promise<void>;