clew-code 0.6.0 → 0.6.2
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 +48 -40
- package/dist/main.js +2428 -2511
- package/docs/architecture/provider-system.md +0 -9
- package/package.json +157 -164
- package/scripts/check-shadow-pairs.sh +40 -0
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
Clew Code is a terminal-native AI coding agent that lives in your repo, works with your API keys, and **doesn't phone home**. It reads your code, writes files, runs commands, and talks to any LLM you bring — Claude, GPT, Gemini, DeepSeek, local Ollama models, and
|
|
30
|
+
Clew Code is a terminal-native AI coding agent that lives in your repo, works with your API keys, and **doesn't phone home**. It reads your code, writes files, runs commands, and talks to any LLM you bring — Claude, GPT, Gemini, DeepSeek, local Ollama models, and 25+ other providers — all on your machine, no telemetry, no vendor lock-in.
|
|
31
31
|
|
|
32
32
|
If you want a coding assistant that feels local, fast, and doesn't ship your context to a third-party server, this is it.
|
|
33
33
|
|
|
@@ -168,8 +168,8 @@ Wire in GitHub, Slack, a database, or any [Model Context Protocol](https://model
|
|
|
168
168
|
|
|
169
169
|
<table>
|
|
170
170
|
<tr>
|
|
171
|
-
<td><strong>
|
|
172
|
-
<td>OpenAI, Anthropic, DeepSeek, Groq, Google, Ollama (local), and
|
|
171
|
+
<td><strong>32+ Providers</strong></td>
|
|
172
|
+
<td>OpenAI, Anthropic, DeepSeek, Groq, Google, Ollama (local), OpenGateway, and 25+ more. Switch mid-session with <code>/model</code>. No lock-in.</td>
|
|
173
173
|
</tr>
|
|
174
174
|
<tr>
|
|
175
175
|
<td><strong>Persistent Memory</strong></td>
|
|
@@ -266,6 +266,14 @@ Notable slash commands: `/model`, `/effort`, `/ultracode`, `/memory`, `/rule`, `
|
|
|
266
266
|
|
|
267
267
|
All provider keys can also be set via the `/model` provider setup flow or in `.clew/settings.json` under `env`.
|
|
268
268
|
|
|
269
|
+
### Session Recovery Fallback
|
|
270
|
+
|
|
271
|
+
Clew Code supports resuming sessions from other rebranded or legacy variants of the CLI tool. If a session is not found in the primary `.clew` configuration home directory, the tool automatically scans and loads sessions from the following directories in your user home:
|
|
272
|
+
- `.codex`
|
|
273
|
+
- `.opencode`
|
|
274
|
+
- `.claude`
|
|
275
|
+
- `.gemini`
|
|
276
|
+
|
|
269
277
|
### Project Rules
|
|
270
278
|
|
|
271
279
|
Create `.clew/rules.json` in your repo to define auto-observed behavioral rules — Clew reads them at session start and follows them without being reminded. Manage them interactively with `/rule`. Disable temporarily with `/rule off`.
|
|
@@ -338,37 +346,43 @@ Also available on the [GitHub Wiki](https://github.com/ClewCode/ClewCode/wiki).
|
|
|
338
346
|
## Architecture
|
|
339
347
|
|
|
340
348
|
```
|
|
341
|
-
┌─ REPL
|
|
342
|
-
│ Ink + React 19
|
|
343
|
-
│ Slash commands / skills
|
|
344
|
-
│ Streaming / history
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
│
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
│
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
349
|
+
┌─ REPL ──────────────────────────────────┐
|
|
350
|
+
│ Ink + React 19 ┌──────┐ │
|
|
351
|
+
│ Slash commands / skills │Tools │ │
|
|
352
|
+
│ Streaming / history │ x76 │ │
|
|
353
|
+
│ state/AppState.tsx └──┬───┘ │
|
|
354
|
+
└────────┬─────────────────────────┘ │
|
|
355
|
+
│ ▲ │
|
|
356
|
+
▼ │ │
|
|
357
|
+
┌─ QueryEngine ───────────┴──────────────┘
|
|
358
|
+
│ Streaming · tool loop · compaction
|
|
359
|
+
│ Checkpoints · Max Mode · /rewind
|
|
360
|
+
│
|
|
361
|
+
│ query.ts (non-streaming: subagents)
|
|
362
|
+
└──┬────┬────┬────┬────┬────┬────┐
|
|
363
|
+
▼ ▼ ▼ ▼ ▼ ▼ ▼
|
|
364
|
+
┌────┐┌────┐┌────┐┌────┐┌────┐┌──────────┐
|
|
365
|
+
│ MCP││LSP ││Git ││Web ││Task││ Provider │
|
|
366
|
+
│ ││ ││ ││ ││ ││ Manager │
|
|
367
|
+
└────┘└────┘└────┘└────┘└────┘└──────────┘
|
|
368
|
+
│ LAN │ │
|
|
369
|
+
▼ ▼ ▼ ▼
|
|
370
|
+
┌──────┐┌─────────┐┌──────────┐┌──────────┐
|
|
371
|
+
│ vec ││ Peer ││ Agent ││ Agent │
|
|
372
|
+
│Memory││ Server ││Runtime ││ Subagent │
|
|
373
|
+
└──────┘└─────────┘└──────────┘└──────────┘
|
|
374
|
+
│ Autonomous task queue + cron + DA │
|
|
375
|
+
└──────────────────────────────────────────┘
|
|
362
376
|
```
|
|
363
377
|
|
|
364
378
|
- **Entry**: `src/main.tsx` → `src/replLauncher.tsx` boots the Ink/React 19 REPL
|
|
365
379
|
- **REPL screen**: `src/screens/REPL.tsx` routes input to commands or the query engine
|
|
366
|
-
- **Query
|
|
367
|
-
- **Providers**: `src/services/ai/` —
|
|
368
|
-
- **Tools**: `src/tools/<ToolName>/`,
|
|
369
|
-
- **Services**: `src/services/` — MCP client, autonomous
|
|
380
|
+
- **Query paths**: `src/QueryEngine.ts` (streaming with tool loop) + `src/query.ts` (non-streaming for subagents, background tasks)
|
|
381
|
+
- **Providers**: `src/services/ai/` — 32 providers behind one interface, normalized errors/usage
|
|
382
|
+
- **Tools**: `src/tools/<ToolName>/`, 76 tool packages extending `Tool`, registered in `src/tools.ts`
|
|
383
|
+
- **Services**: `src/services/` — MCP client, autonomous queue, vec memory, session search, plugins, LSP, voice, audit log, and more
|
|
370
384
|
|
|
371
|
-
Full detail, including
|
|
385
|
+
Full detail, including tool inventory and service list: [AGENT.md](AGENT.md).
|
|
372
386
|
|
|
373
387
|
---
|
|
374
388
|
|
|
@@ -382,10 +396,10 @@ bun run dev # Live-reload REPL (with feature flags)
|
|
|
382
396
|
bun run dev:channels # Dev with development channels loaded
|
|
383
397
|
bun run build # Production build to dist/
|
|
384
398
|
bun run start # Run the compiled build
|
|
385
|
-
bun test #
|
|
399
|
+
bun test # Full suite (vitest-compatible runner)
|
|
386
400
|
bun test --bail # Stop on first failure
|
|
387
|
-
|
|
388
|
-
|
|
401
|
+
bun test path/to/file.test.ts # Single file
|
|
402
|
+
bun test -t "test name" # By test name
|
|
389
403
|
bun run check:ci # Biome lint + format check (no autofix)
|
|
390
404
|
bun run lint # Biome lint with autofix
|
|
391
405
|
bun run check # Lint + format with autofix
|
|
@@ -400,15 +414,9 @@ bun run check:ci && bun x tsc --noEmit && bun test --bail
|
|
|
400
414
|
|
|
401
415
|
Or run the `/clew-verify` skill, which runs the full gate and a real CLI smoke test — green tests alone don't prove an Ink TUI feature actually works.
|
|
402
416
|
|
|
403
|
-
### ✅ Shadow `.js` Files — Resolved
|
|
404
|
-
|
|
405
|
-
The JS→TS migration is complete. All 401 `.js` shadow files that sat alongside `.ts`/`.tsx` twins have been removed. **Zero shadow pairs remain** — the `/js-shadow-sync` skill has been removed.
|
|
406
|
-
|
|
407
|
-
Any `.js` file still in `src/` is a genuine JS source module (no `.ts` twin exists).
|
|
408
|
-
|
|
409
417
|
### Release
|
|
410
418
|
|
|
411
|
-
Pushing a `v*` tag triggers the GitHub Actions release and npm publish. Before tagging: bump `package.json`, update `CHANGELOG.md`, run the full gate above. See [
|
|
419
|
+
Pushing a `v*` tag triggers the GitHub Actions release and npm publish. Before tagging: bump `package.json`, update `CHANGELOG.md`, run the full gate above. See [AGENT.md § Release](AGENT.md#release) or run the `/clew-release` skill.
|
|
412
420
|
|
|
413
421
|
---
|
|
414
422
|
|
|
@@ -418,7 +426,7 @@ Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines
|
|
|
418
426
|
|
|
419
427
|
- Report bugs via [GitHub Issues](https://github.com/ClewCode/ClewCode/issues)
|
|
420
428
|
- Discuss ideas in [GitHub Discussions](https://github.com/ClewCode/ClewCode/discussions)
|
|
421
|
-
- Read [
|
|
429
|
+
- Read [AGENT.md](AGENT.md) for full architecture and code conventions
|
|
422
430
|
|
|
423
431
|
---
|
|
424
432
|
|