mirror of
https://github.com/cline/cline.git
synced 2026-09-19 10:13:34 +08:00
* chore: remove legacy cli/ source and direct references
The legacy React Ink CLI in cli/ has been superseded by the new SDK
CLI at sdk/apps/cli/ (published as cline@nightly today, taking over
the cline npm package on the next latest cut).
This commit deletes the cli/ source tree (~9.5MB, 142 files) and the
remaining references that point at it:
- .clinerules/cli.md (the per-area tribal-knowledge file for working
in cli/)
- package.json workspaces: drop the "cli" entry (root no longer
publishes a workspace from there)
- package.json coverage excludes: drop the stale **/evals/cli/**
paths (the directory does not exist)
- tsconfig.json: drop "cli/src/**/*" from the include list so the
root typecheck stops trying to walk into a missing tree
- .github/copilot-instructions.md: drop the CLI architecture bullet
and the cli/src/components/ModelPicker.tsx mention from the
add-API-provider checklist
Intentionally left alone:
- .claude/hooks/claude-code-for-web-setup.sh references
github.com/cli/cli (the gh CLI), not our deleted cli/
- src/core/locks/SqliteLockManager.ts comments mention
cli/pkg/common/schema.go which is the Go-based cline-core schema,
a different component
- .github/workflows/cline-evals-regression.yml is already disabled
pending rewire at the new SDK CLI
* chore: remove orphaned legacy CLI distribution scripts
With cli/ gone, the public-install path (curl | bash → install.sh →
download CLI binaries from cline/cline GitHub releases) and the
enterprise endpoint-bundling helpers no longer have anything to
install or bundle:
- scripts/install.sh — curl-bash installer that downloaded the old
CLI binary from cline/cline GH releases. The new install path is
npm i -g cline.
- scripts/test-install.sh — only tested install.sh.
- scripts/test-bundled-endpoints.sh — built a VSIX *and* CLI tgz with
bundled staging endpoints for enterprise distribution. The CLI half
is dead; the VSIX half can be done with vsce + add-endpoints-to-vsix.sh
directly. The script as a whole was niche test infra, not production.
- scripts/add-endpoints-to-npm.sh — injected endpoints.json into the
old CLI's npm tarball. Companion add-endpoints-to-vsix.sh and
add-endpoints-to-jetbrains.sh stay (they target the extension and
JetBrains plugin).
- package.json: drop the orphaned `test:install` root script that
wrapped scripts/test-install.sh.
If install.cline.bot (or any public URL) was still serving
scripts/install.sh as a curl|bash target, that URL will 404 after
this lands. Worth checking and either redirecting or stubbing with
a `npm i -g cline` hint.
* chore: clean up legacy CLI references
* chore: disable legacy smoke eval workflow
* Revert "chore: disable legacy smoke eval workflow"
This reverts commit 193ee78718.
* chore: remove disabled smoke eval workflow
* docs: clarify disabled smoke eval CI
Smoke Tests
Curated smoke tests that verify Cline works correctly with LLM providers.
Purpose
These tests catch regressions in:
- Tool execution (read, write, edit files)
- Provider response parsing
- Tool chaining (multiple operations)
- Basic code generation
Quick Start
# One-time auth setup
cline auth
# Run tests (3 trials by default)
npm run eval:smoke:run
Commands
| Command | What it does |
|---|---|
npm run eval:smoke:run |
Run tests (uses installed CLI) |
Options
# Run specific scenario
npm run eval:smoke:run -- --scenario 01-create-file
# Run with fewer trials (faster)
npm run eval:smoke:run -- --trials 1
# Run with specific model (overrides any per-scenario models)
npm run eval:smoke:run -- --model claude-sonnet-4-5-20250929
Authentication
Interactive (recommended for local dev)
cline auth
With API key (for automation)
cline auth -p cline -k "$CLINE_API_KEY" -m anthropic/claude-sonnet-4.5
Scenarios
| ID | Name | What it tests |
|---|---|---|
| 01-create-file | Create a simple file | write_to_file |
| 02-edit-file | Edit existing file | replace_in_file |
| 03-read-summarize | Read and summarize | read_file |
| 04-multi-file | Create multiple files | Multiple tool calls |
| 05-typescript-function | Generate TypeScript | Code generation |
| 06-apply-patch | Edit file (GPT-5) | apply_patch tool, native tool calling |
| 07-edit-gemini | Edit file (Gemini) | Gemini model variant |
Per-Scenario Models
Scenarios can specify their own model(s) via the models field in config.json. This is useful for testing model-specific code paths like apply_patch (GPT-5 only).
If you pass --model, it overrides any per-scenario models list.
Examples:
# Run apply_patch scenario with its default model (GPT-5)
npm run eval:smoke:run -- --scenario 06-apply-patch
# Force that scenario to use a specific model
npm run eval:smoke:run -- --scenario 06-apply-patch --model openai/gpt-4o
Metrics
- pass@k: Probability at least 1 of k trials succeeds
- pass^k: Probability ALL k trials succeed (reliability)
Shows pass@1 when trials < 3, pass@3 otherwise.
Adding New Scenarios
- Create directory:
scenarios/<name>/ - Add
config.json:{ "name": "Human-readable name", "description": "What this tests", "prompt": "The task prompt for Cline", "expectedFiles": ["file1.txt"], "expectedContent": [ { "file": "file1.txt", "contains": "expected text" } ], "timeout": 60 } - (Optional) Add
template/directory with starting files
CI Integration
Smoke test CI is temporarily disabled while the build step is repointed at the SDK CLI. The remaining root script runs the scenarios against whichever cline binary is already on $PATH.
Required Secrets
CLINE_API_KEY- Cline API key, needed when CI is re-enabled
Viewing Results
- Local summaries are written under
evals/smoke-tests/results/latest/
TODO
- Native tool calling tests: Add CLI support for
native_tool_call_enabledsetting, then create a scenario that tests Claude 4 with native tool calling enabled (currently only GPT-5 models automatically use native tools via the Responses API)