clew-code 0.2.21 → 0.2.22

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 (66) hide show
  1. package/dist/main.js +1861 -1856
  2. package/docs/architecture.html +91 -148
  3. package/docs/assets/clew-agent-loop.png +0 -0
  4. package/docs/assets/clew-general-architecture.png +0 -0
  5. package/docs/assets/clew-mcp-architecture.png +0 -0
  6. package/docs/assets/clew-p2p-swarm.png +0 -0
  7. package/docs/changelog.html +150 -0
  8. package/docs/cli-reference.html +90 -0
  9. package/docs/commands.html +156 -265
  10. package/docs/configuration.html +85 -147
  11. package/docs/contributing.html +91 -0
  12. package/docs/css/styles.css +425 -425
  13. package/docs/daemon.html +62 -129
  14. package/docs/features/bridge-mode.html +61 -66
  15. package/docs/features/evals.html +57 -149
  16. package/docs/features/searxng-search.html +58 -118
  17. package/docs/features/sentry-setup.html +61 -124
  18. package/docs/index.html +137 -125
  19. package/docs/installation.html +77 -105
  20. package/docs/internals/growthbook-ab-testing.html +69 -91
  21. package/docs/internals/hidden-features.html +81 -143
  22. package/docs/js/main.js +29 -0
  23. package/docs/loop.html +69 -181
  24. package/docs/mcp.html +99 -247
  25. package/docs/models.html +69 -110
  26. package/docs/permission-model.html +86 -102
  27. package/docs/plugins.html +84 -102
  28. package/docs/providers.html +87 -127
  29. package/docs/quick-start.html +81 -93
  30. package/docs/research-memory.html +71 -102
  31. package/docs/security.html +71 -0
  32. package/docs/skills.html +67 -117
  33. package/docs/swarm.html +78 -236
  34. package/docs/tools.html +152 -151
  35. package/docs/troubleshooting.html +86 -106
  36. package/docs/voice-mode.html +79 -0
  37. package/package.json +1 -1
  38. package/docs/architecture.th.html +0 -79
  39. package/docs/clew-code-architecture.html +0 -1126
  40. package/docs/commands.th.html +0 -269
  41. package/docs/configuration.th.html +0 -108
  42. package/docs/daemon.th.html +0 -73
  43. package/docs/features/bridge-mode.th.html +0 -62
  44. package/docs/features/evals.th.html +0 -62
  45. package/docs/features/searxng-search.th.html +0 -67
  46. package/docs/features/sentry-setup.th.html +0 -69
  47. package/docs/features/swarm.html +0 -156
  48. package/docs/generated/providers.html +0 -625
  49. package/docs/generated/tools.html +0 -558
  50. package/docs/index.th.html +0 -292
  51. package/docs/installation.th.html +0 -105
  52. package/docs/internals/growthbook-ab-testing.th.html +0 -60
  53. package/docs/internals/hidden-features.th.html +0 -107
  54. package/docs/loop.th.html +0 -227
  55. package/docs/mcp.th.html +0 -207
  56. package/docs/models.th.html +0 -61
  57. package/docs/permission-model.th.html +0 -67
  58. package/docs/plugins.th.html +0 -79
  59. package/docs/prompts-and-features.html +0 -806
  60. package/docs/providers.th.html +0 -81
  61. package/docs/quick-start.th.html +0 -89
  62. package/docs/research-memory.th.html +0 -72
  63. package/docs/skills.th.html +0 -90
  64. package/docs/swarm.th.html +0 -280
  65. package/docs/tools.th.html +0 -84
  66. package/docs/troubleshooting.th.html +0 -85
@@ -1,119 +1,59 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>SearXNG Search — Clew</title>
7
- <meta name="description" content="Self-hosted privacy-respecting web search via Docker SearXNG.">
8
- <link rel="preconnect" href="https://fonts.googleapis.com">
9
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
- <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
11
- <link rel="stylesheet" href="../css/styles.css">
12
- <link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
13
- </head>
14
- <body>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>SearXNG Search — Clew Code</title>
7
+ <meta name="description" content="Private, self-hosted web search via SearXNG integration.">
8
+ <link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
9
+ <link rel="preconnect" href="https://fonts.googleapis.com">
10
+ <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
11
+ <link rel="stylesheet" href="../css/styles.css">
12
+ </head>
13
+ <body>
15
14
  <header class="header"></header>
16
- <div class="app">
17
- <aside class="sidebar" id="sidebar"></aside>
18
- <div class="sidebar-overlay" id="sidebarOverlay"></div>
19
- <div class="content-wrap">
20
- <main class="content">
21
- <div class="breadcrumbs"><a href="../index.html">Home</a><span class="sep">/</span><a href="../index.html#features">Features</a><span class="sep">/</span><span>SearXNG Search</span></div>
22
- <h1>SearXNG Search</h1>
23
- <p class="section-subtitle">Self-hosted, privacy-respecting web search via Docker</p>
24
-
25
- <div class="callout callout-tip">
26
- <strong>TL;DR</strong>
27
- Run <code>cd searxng && start.bat</code> to start the search engine, then use <code>/searxng on</code> from the CLI.
28
- </div>
29
-
30
- <h2>Overview</h2>
31
- <p>SearXNG is a free, privacy-respecting metasearch engine. This project provides a Docker-based setup so you can run your own instance locally, avoiding reliance on public instances (which increasingly return 403/429 due to Cloudflare/anti-bot protection).</p>
32
-
33
- <h2>Quick Start</h2>
34
- <pre><code>cd searxng
35
- start.bat</code></pre>
36
- <p>Starts SearXNG on <a href="http://localhost:18889">http://localhost:18889</a>.</p>
37
-
38
- <h3>Slash Command</h3>
39
- <table>
40
- <tr><th>Command</th><th>Action</th></tr>
41
- <tr><td><code>/searxng on</code></td><td>Start the Docker container</td></tr>
42
- <tr><td><code>/searxng off</code></td><td>Stop the Docker container</td></tr>
43
- <tr><td><code>/searxng status</code></td><td>Check if running</td></tr>
44
- <tr><td><code>/searxng restart</code></td><td>Restart the container</td></tr>
45
- </table>
46
-
47
- <h3>Manual Docker Commands</h3>
48
- <pre><code>docker compose -f searxng/docker-compose.yml up -d
49
- docker compose -f searxng/docker-compose.yml down
50
- docker compose -f searxng/docker-compose.yml logs -f</code></pre>
51
-
52
- <h2>Files</h2>
53
- <table>
54
- <tr><th>File</th><th>Purpose</th></tr>
55
- <tr><td><code>searxng/docker-compose.yml</code></td><td>Container definition, port 188899 8080</td></tr>
56
- <tr><td><code>searxng/.env</code></td><td>Host, port, and secret key</td></tr>
57
- <tr><td><code>searxng/config/settings.yml</code></td><td>SearXNG configuration with JSON API enabled</td></tr>
58
- <tr><td><code>searxng/limiter.toml</code></td><td>Rate limiter — relaxed for local network IPs</td></tr>
59
- <tr><td><code>searxng/start.bat</code></td><td>Start wrapper</td></tr>
60
- <tr><td><code>searxng/stop.bat</code></td><td>Stop wrapper</td></tr>
61
- <tr><td><code>searxng/restart.bat</code></td><td>Restart wrapper</td></tr>
62
- <tr><td><code>searxng/logs.bat</code></td><td>Log tail wrapper</td></tr>
63
- </table>
64
-
65
- <h2>How It Works</h2>
66
- <ol>
67
- <li>SearXNG runs in Docker on <code>localhost:18889</code></li>
68
- <li>The project's <code>.env</code> sets <code>SEARXNG_INSTANCE_URL=http://localhost:18889</code></li>
69
- <li><code>selectBestDirectProvider()</code> in <code>WebSearchTool.ts</code> auto-detects this and prioritises SearXNG</li>
70
- <li>The <code>SearXNGProvider</code> sends GET requests with <code>format=json</code> and parses results</li>
71
- </ol>
72
-
73
- <h2>Engines Enabled</h2>
74
- <ul>
75
- <li><strong>DuckDuckGo</strong> — primary general search (no API key needed)</li>
76
- <li><strong>Google</strong> — general search</li>
77
- <li><strong>Wikipedia</strong> — infobox and article results</li>
78
- <li><strong>StackOverflow</strong> — technical Q&amp;A</li>
79
- <li><strong>GitHub</strong> — repository search</li>
80
- <li><strong>Wikidata</strong> — structured data infoboxes</li>
81
- </ul>
82
-
83
- <h2>Provider Selection Priority</h2>
84
- <ol>
85
- <li><strong>Tavily</strong> — requires <code>TAVILY_API_KEY</code></li>
86
- <li><strong>Brave</strong> — requires <code>BRAVE_API_KEY</code></li>
87
- <li><strong>Serper</strong> — requires <code>SERPER_API_KEY</code></li>
88
- <li><strong>SearXNG</strong> — only if <code>SEARXNG_INSTANCE_URL</code> is explicitly set</li>
89
- <li><strong>DuckDuckGo</strong> — always available, free, no API key</li>
90
- </ol>
91
-
92
- <h2>Troubleshooting</h2>
93
- <h3>Container won't start</h3>
94
- <pre><code>docker compose -f searxng/docker-compose.yml logs</code></pre>
95
- <h3>No results returned</h3>
96
- <p>Check that engines are not failing by visiting <a href="http://localhost:18889">http://localhost:18889</a> and performing a search in the web UI.</p>
97
- <h3>Port conflict</h3>
98
- <p>Change <code>SEARXNG_PORT</code> in <code>searxng/.env</code> and update <code>SEARXNG_INSTANCE_URL</code> in <code>.env</code> to match.</p>
99
-
100
- <h2>Updating</h2>
101
- <pre><code>cd searxng
102
- docker compose pull
103
- docker compose up -d</code></pre>
104
-
105
- <footer class="footer">
106
- <span>Clew Code 0.2.14</span>
107
- <div class="footer-links">
108
- <a href="https://github.com/ClewCode/ClewCode">GitHub</a>
109
- <a href="https://github.com/ClewCode/ClewCode/issues">Issues</a>
110
- </div>
111
- </footer>
112
- </main>
113
- <nav class="toc-sidebar"></nav>
114
- </div>
115
- </div>
116
- <script src="../js/main.js"></script>
117
- </body>
118
- </html>
119
-
15
+ <div id="sidebarOverlay" class="sidebar-overlay"></div>
16
+ <aside id="sidebar" class="sidebar"></aside>
17
+
18
+ <div class="content-wrap">
19
+ <div class="content">
20
+
21
+ <div class="breadcrumbs"><a href="../index.html">Home</a><span class="sep">/</span><span class="current">SearXNG Search</span></div>
22
+
23
+ <h1>SearXNG Search</h1>
24
+ <p class="sub">Private, self-hosted web search integration using SearXNG.</p>
25
+
26
+ <h2 id="overview">Overview</h2>
27
+ <p>Clew Code integrates with <a href="https://docs.searxng.org/">SearXNG</a>, a privacy-respecting, self-hosted metasearch engine. This gives the AI access to web search results without relying on third-party search APIs.</p>
28
+
29
+ <h2 id="setup">Setup</h2>
30
+ <ol>
31
+ <li>Deploy SearXNG (Docker is recommended):<pre><code class="language-bash">docker run --name searxng -d -p 8888:8080 \
32
+ -e BASE_URL=http://localhost:8888/ \
33
+ searxng/searxng</code></pre></li>
34
+ <li>Configure SearXNG to enable JSON API:<pre><code class="language-yaml"># /etc/searxng/settings.yml
35
+ search:
36
+ formats:
37
+ - html
38
+ - json</code></pre></li>
39
+ <li>Set the SearXNG URL in Clew Code:<pre><code class="language-bash">export SEARXNG_URL=http://localhost:8888</code></pre></li>
40
+ </ol>
41
+
42
+ <h2 id="using">Using SearXNG</h2>
43
+ <pre><code class="language-bash">❯ /searxng search "your query here"
44
+ </code></pre>
45
+ <p>The search results are automatically available to the AI as context.</p>
46
+
47
+ <h2 id="benefits">Benefits</h2>
48
+ <ul>
49
+ <li>Complete privacy no search data sent to third parties</li>
50
+ <li>Aggregates results from multiple engines (Google, Bing, DuckDuckGo, etc.)</li>
51
+ <li>Self-hosted and fully可控</li>
52
+ <li>Works offline or on air-gapped networks</li>
53
+ </ul>
54
+ </div>
55
+ </div>
56
+
57
+ <script src="../js/main.js"></script>
58
+ </body>
59
+ </html>
@@ -1,125 +1,62 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Sentry Error Reporting — Clew</title>
7
- <meta name="description" content="Opt-in Sentry crash/error telemetry for Clew — default off, privacy-first.">
8
- <link rel="preconnect" href="https://fonts.googleapis.com">
9
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
- <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
11
- <link rel="stylesheet" href="../css/styles.css">
12
- <link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
13
- </head>
14
- <body>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Sentry Setup — Clew Code</title>
7
+ <meta name="description" content="Error tracking and performance monitoring with Sentry.">
8
+ <link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
9
+ <link rel="preconnect" href="https://fonts.googleapis.com">
10
+ <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
11
+ <link rel="stylesheet" href="../css/styles.css">
12
+ </head>
13
+ <body>
15
14
  <header class="header"></header>
16
- <div class="app">
17
- <aside class="sidebar" id="sidebar"></aside>
18
- <div class="sidebar-overlay" id="sidebarOverlay"></div>
19
- <div class="content-wrap">
20
- <main class="content">
21
- <div class="breadcrumbs"><a href="../index.html">Home</a><span class="sep">/</span><a href="../index.html#features">Features</a><span class="sep">/</span><span>Sentry Setup</span></div>
22
- <h1>Sentry Error Reporting</h1>
23
- <p class="section-subtitle">Optional, opt-in crash and error telemetry — <strong>completely disabled by default</strong>. No data leaves your machine unless you explicitly set <code>SENTRY_DSN</code>.</p>
24
-
25
- <div class="callout callout-tip">
26
- <strong>TL;DR</strong>
27
- <code>SENTRY_DSN=https://key@sentry.io/123 claude</code> — that's it. Without it, zero network requests, zero telemetry.
28
- </div>
29
-
30
- <h2>Quick Start</h2>
31
- <h3>Self-hosted Sentry</h3>
32
- <pre><code>SENTRY_DSN=https://public_key@your-sentry.example.com/123 claude</code></pre>
33
-
34
- <h3>Sentry Cloud</h3>
35
- <pre><code>SENTRY_DSN=https://public_key@o123456.ingest.sentry.io/789 claude</code></pre>
36
-
37
- <h3>Disable (default)</h3>
38
- <pre><code>clew</code></pre>
39
-
40
- <h2>Environment Variables</h2>
41
- <table>
42
- <tr><th>Variable</th><th>Required</th><th>Default</th><th>Description</th></tr>
43
- <tr><td><code>SENTRY_DSN</code></td><td><strong>yes</strong></td><td>—</td><td>Sentry DSN to enable. Without this, everything is no-op.</td></tr>
44
- <tr><td><code>SENTRY_ENVIRONMENT</code></td><td>no</td><td><code>NODE_ENV</code> or <code>production</code></td><td>Environment tag in Sentry dashboard</td></tr>
45
- <tr><td><code>SENTRY_RELEASE</code></td><td>no</td><td>auto from package.json</td><td>Release version tag</td></tr>
46
- <tr><td><code>SENTRY_SAMPLE_RATE</code></td><td>no</td><td><code>1.0</code></td><td>Error sample rate (0.0–1.0)</td></tr>
47
- </table>
48
-
49
- <h2>What Gets Sent</h2>
50
- <p>Only error metadata — <strong>never prompts, responses, file contents, or command output</strong>:</p>
51
- <ul>
52
- <li>Error name, message, and stack trace (without local variable values)</li>
53
- <li>Runtime info: OS platform, Node/Bun version</li>
54
- <li>Mode: REPL, non-interactive, MCP server</li>
55
- <li>Provider and model name (when applicable)</li>
56
- <li>Version and release tag</li>
57
- </ul>
58
-
59
- <h2>What Does NOT Get Sent</h2>
60
- <table>
61
- <tr><th>Category</th><th>Examples</th></tr>
62
- <tr><td><strong>Prompts</strong></td><td>user input, AI system prompts</td></tr>
63
- <tr><td><strong>Responses</strong></td><td>model output, streaming chunks</td></tr>
64
- <tr><td><strong>File content</strong></td><td>Read/Edit/Write payload, command stdout/stderr</td></tr>
65
- <tr><td><strong>Credentials</strong></td><td>API keys, tokens, passwords, cookies</td></tr>
66
- <tr><td><strong>Auth headers</strong></td><td>Authorization, x-api-key, Cookie, Set-Cookie</td></tr>
67
- <tr><td><strong>OAuth tokens</strong></td><td>access_token, refresh_token, id_token</td></tr>
68
- <tr><td><strong>Environment dump</strong></td><td>entire env block (individual vars may appear as tags)</td></tr>
69
- <tr><td><strong>Local paths</strong></td><td>home directory anonymized to <code>[HOME]</code></td></tr>
70
- <tr><td><strong>Breadcrumbs</strong></td><td>user actions are not tracked</td></tr>
71
- <tr><td><strong>User identity</strong></td><td>user field stripped from all events</td></tr>
72
- </table>
73
-
74
- <h2>Privacy Scrubber</h2>
75
- <p>Every event passes through a <code>beforeSend</code> hook that:</p>
76
- <ol>
77
- <li><strong>Scrubs strings</strong> — removes API key patterns (<code>sk-*</code>, <code>Bearer</code> tokens), auth headers, cookie values</li>
78
- <li><strong>Strips stack frame variables</strong> — removes <code>vars</code>, <code>pre_context</code>, <code>context_line</code>, <code>post_context</code></li>
79
- <li><strong>Removes breadcrumbs</strong> — user actions are never tracked</li>
80
- <li><strong>Cleans request data</strong> — removes headers, cookies, query strings</li>
81
- <li><strong>Anonymizes home directory</strong> — replaces paths with <code>[HOME]</code></li>
82
- <li><strong>Drops oversized strings</strong> — over 2000 chars truncated</li>
83
- <li><strong>Recursively scrubs nested objects</strong> — drops keys named prompt, response, content, message, input, output, text, body, data, payload, token, key, secret, password, auth, cookie</li>
84
- </ol>
85
-
86
- <h2>Checking Status</h2>
87
- <pre><code># When disabled
88
- Sentry Telemetry: Disabled (set SENTRY_DSN to enable)
89
-
90
- # When enabled
91
- Sentry Telemetry: Enabled</code></pre>
92
-
93
- <div class="callout callout-info">
94
- <strong>DSN Masking</strong>
95
- The DSN is masked in the UI — only the first 8 and last 4 characters of the key are shown. The full DSN is never displayed in any output.
96
- </div>
97
-
98
- <h2>Files</h2>
99
- <table>
100
- <tr><th>File</th><th>Purpose</th></tr>
101
- <tr><td><code>src/utils/sentry.ts</code></td><td>Core wrapper — init, capture, close, scrubber</td></tr>
102
- <tr><td><code>src/utils/sentry.test.ts</code></td><td>Unit tests (11 tests)</td></tr>
103
- <tr><td><code>src/entrypoints/init.ts</code></td><td>Calls <code>initSentry()</code> at startup</td></tr>
104
- <tr><td><code>src/utils/gracefulShutdown.ts</code></td><td>Calls <code>closeSentry()</code> before exit</td></tr>
105
- <tr><td><code>src/utils/log.ts</code></td><td><code>logError()</code> sends to Sentry when enabled</td></tr>
106
- <tr><td><code>src/components/SentryErrorBoundary.tsx</code></td><td>React error boundary for render crashes</td></tr>
107
- <tr><td><code>src/components/App.tsx</code></td><td>Wraps app tree in <code>SentryErrorBoundary</code></td></tr>
108
- <tr><td><code>src/utils/doctorDiagnostic.ts</code></td><td><code>/doctor</code> Sentry status display</td></tr>
109
- </table>
110
-
111
- <footer class="footer">
112
- <span>Clew Code 0.2.14</span>
113
- <div class="footer-links">
114
- <a href="https://github.com/ClewCode/ClewCode">GitHub</a>
115
- <a href="https://github.com/ClewCode/ClewCode/issues">Issues</a>
116
- </div>
117
- </footer>
118
- </main>
119
- <nav class="toc-sidebar"></nav>
120
- </div>
121
- </div>
122
- <script src="../js/main.js"></script>
123
- </body>
124
- </html>
125
-
15
+ <div id="sidebarOverlay" class="sidebar-overlay"></div>
16
+ <aside id="sidebar" class="sidebar"></aside>
17
+
18
+ <div class="content-wrap">
19
+ <div class="content">
20
+
21
+ <div class="breadcrumbs"><a href="../index.html">Home</a><span class="sep">/</span><span class="current">Sentry Setup</span></div>
22
+
23
+ <h1>Sentry Setup</h1>
24
+ <p class="sub">Error tracking and performance monitoring via Sentry integration.</p>
25
+
26
+ <h2 id="overview">Overview</h2>
27
+ <p>Clew Code integrates with <a href="https://sentry.io/">Sentry</a> for error tracking, crash reporting, and performance monitoring. This helps developers identify and fix issues in production deployments.</p>
28
+
29
+ <h2 id="configuration">Configuration</h2>
30
+ <p>Set your Sentry DSN as an environment variable:</p>
31
+ <pre><code class="language-bash">export SENTRY_DSN=https://your-dsn@sentry.io/your-project
32
+ </code></pre>
33
+
34
+ <p>Or configure it in <code>.clew/settings.json</code>:</p>
35
+ <pre><code class="language-json">{
36
+ "sentry": {
37
+ "dsn": "https://your-dsn@sentry.io/your-project",
38
+ "environment": "production",
39
+ "tracesSampleRate": 0.1
40
+ }
41
+ }
42
+ </code></pre>
43
+
44
+ <h2 id="features">What's Tracked</h2>
45
+ <ul>
46
+ <li>Unhandled exceptions and promise rejections</li>
47
+ <li>Provider API errors with contextual information</li>
48
+ <li>Tool execution failures</li>
49
+ <li>Session-level performance traces</li>
50
+ <li>MCP server connection errors</li>
51
+ </ul>
52
+
53
+ <h2 id="verify">Verifying Setup</h2>
54
+ <p>Run the doctor command to verify Sentry is connected:</p>
55
+ <pre><code class="language-bash">❯ /doctor
56
+ </code></pre>
57
+ </div>
58
+ </div>
59
+
60
+ <script src="../js/main.js"></script>
61
+ </body>
62
+ </html>