Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- **Dynamic model catalog synchronization.** OrbCode now fetches the active model catalog dynamically from the backend (`/v1/models`) on startup and when refreshing usage (`fetchDynamicModels`), registering returned OSS models into `BUILTIN_AXON_MODELS` and `AXON_MODELS` so newly added models appear in the picker without requiring hardcoded updates. Models the backend retires are pruned after a successful fetch (empty or failed responses never wipe the offline fallback), and the catalog's `iconUrl` / `costMultiplier` fields are captured on each model.
- **Provider badges in the model picker.** Terminals can't render the catalog's SVG provider icons, so picker rows show a text badge (`[Z.ai]`, `[Meta]`, `[DeepSeek]`, `[OpenAI]`, `[Google]`) — the TUI equivalent of the webapp's provider logos.
- **`orbcode usage` command.** Prints the weekly/monthly plan usage windows
(percentage bars with reset times) and each tracked OSS model's share of
the shared plan pool as weekly/monthly percentages, alongside the model's
plan-cost multiplier (e.g. `5x cost`). The TUI's `/usage` and `/status`
commands show the same per-model block. Percentages only — no credit
amounts are exposed. Requires a logged-in token (`orbcode login`).

### Changed

- **Built-in model catalog is now OSS-first.** The built-in registry replaces
the Axon models with seven OSS models served through the MatterAI gateway:
`zai/glm-5.3-flash` (the new default), `zai/glm-5.3`,
`deepseek/deepseek-v4-flash-0731`, `meta/muse-spark-1.3-contributor`,
`gpt-5.6-luna`, `gpt-5.6-sol`, and `gemini-3.8-flash`. All seven expose a
232K context window with 64K max output, are available on every plan, and
carry their published per-token pricing. The 400K
context variants and `axon-auto` are gone from the picker; a stored Axon
model selection auto-resets to the new default on next launch, and a
requested Axon id (`--model` / `MATTERAI_MODEL`) now warns and falls back
to the default.

## [6.8.0] - 2026-08-28

### Changed

- **Ported the 6.8.2 coding-harness update from the Orbital extension.**
- `search_files` is now one-shot: ripgrep-first with FFF fallback, results bounded to the first 100 matches (default `max_results` 100), and cursor pagination removed from the model-facing schema and output. Capped results tell the model to refine the query instead of paginating.
- Independent read-only tool calls (`read_file`, `search_files`, `list_files`, `list_code_definition_names`, `codebase_search`, `lsp`) at the start of an assistant response now execute concurrently (max 4) with results committed in model order; mutating and interactive tools stay serialized.
- Malformed tool-call JSON now returns a corrective tool result that includes the raw arguments, so the model can re-issue the call with valid JSON instead of dead-ending.
- Native tool schemas tightened for strict mode: optional parameters are now required with nullable types (`replace_all`, `recursive`, `follow_up`, `offset`/`limit`, `cwd`/`message`/`isDangerous`, and the inactive-in-CLI tool schemas), and `execute_command` guidance asks for an explicit safety classification.
- System-prompt `search_files` guidance updated to the bounded one-shot behavior.

### Added

- **Investigation efficiency guidance in system prompt.** Added an "Investigation efficiency" section to the tool guide (`src/prompts/system.ts`) that directs the agent to classify comprehension questions separately from implementation tasks, form a one-line hypothesis before searching, read call sites rather than implementation internals, avoid reading prose/content when the question is about control flow, and stop exploring as soon as it can answer.
- **Zero-result guidance in `search_files`.** `searchFiles.ts` executor now appends actionable guidance when a search returns 0 matches, directing the model to tighten or simplify the regex, widen the path scope, try a different glob, or stop searching after 2+ failed attempts.
- **Native tool description improvements.** The `read_file` schema description now tells the model not to read file contents (prompt text, config values, prose) when investigating control flow, and not to re-read regions already read earlier. The `search_files` schema description now tells the model to scope the path to the narrowest plausible directory and to stop after 2+ zero-result searches.
Expand Down
55 changes: 23 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ runtime — bumping the version there is all that's needed.
orbcode start an interactive session in the current directory
orbcode "<prompt>" start an interactive session with an initial prompt
orbcode login sign in to MatterAI (browser device flow)
orbcode usage show plan usage windows and per-model usage
orbcode -p "<prompt>" run a single prompt non-interactively, print only the final response
orbcode -p "…" --yolo non-interactive with edits/commands auto-approved
orbcode --model <id> use a specific model for this run (also -m)
Expand Down Expand Up @@ -177,40 +178,30 @@ Sign out with `/logout` (removes the saved token).

## Models

The built-in Axon models are listed below; `/model` opens a scroll-and-select
picker (`/model <id>` still selects directly). Additional models can be
declared via `customModels` in settings.json. The choice persists across
sessions.

| id | context | max output | pricing |
| ------------------------------ | ------- | ---------- | ---------------------- |
| `axon-auto-232k` | 232k | 64k | dynamic pricing |
| `axon-auto-400k` | 400k | 64k | dynamic pricing |
| `axon-eido-3.2-flash` | 232k | 64k | $0.6/M in · $1.8/M out |
| `axon-eido-3.2-flash-400k` | 400k | 64k | $0.6/M in · $1.8/M out |
| `axon-eido-3.2-code-232k` | 232k | 64k | $2/M in · $6/M out |
| `axon-eido-3.2-code-400k` | 400k | 64k | $2/M in · $6/M out |
| `axon-eido-3.2-code-pro-232k` | 232k | 64k | $3/M in · $9/M out |
| `axon-eido-3.2-code-pro-400k` | 400k | 64k | $3/M in · $9/M out |
| `axon-lumen-4-code-232k` | 232k | 128k | $5/M in · $25/M out |
| `axon-lumen-4-code-400k` | 400k | 128k | $5/M in · $25/M out |

`axon-auto-232k` is the default. The context suffix controls OrbCode's local
context window; requests still send the underlying base model ID to the
MatterAI gateway. Plan gating:

- **Free**: `axon-eido-3.2-flash` (232K) only.
- **Pro**: adds `axon-eido-3.2-code-{232k,400k}` and `axon-eido-3.2-code-pro-{232k,400k}`.
- **Pro Plus / Ultra**: adds `axon-lumen-4-code-{232k,400k}` and unlocks every 400K variant (including `axon-eido-3.2-flash-400k`).

Every 400K option — `axon-eido-3.2-flash-400k` included — is gated to Pro Plus
and Ultra. All five options support native JSON tool calls and image input.
Cost comes from the API's usage chunks (`is_byok`-aware) and is shown in the
status bar.
The built-in models are listed below; `/model` opens a scroll-and-select
picker (`/model <id>` still selects directly). The live catalog is fetched
from the backend at startup and kept in sync while the session runs — the
table below is the offline fallback. Additional models can be declared via
`customModels` in settings.json. The choice persists across sessions.

| id | context | max output | pricing |
| --------------------------------- | ------- | ---------- | ------------------------ |
| `zai/glm-5.3-flash` | 232k | 64k | $0.15/M in · $0.5/M out |
| `zai/glm-5.3` | 232k | 64k | $1.4/M in · $4.4/M out |
| `deepseek/deepseek-v4-flash-0731` | 232k | 64k | $0.14/M in · $0.28/M out |
| `meta/muse-spark-1.3-contributor` | 232k | 64k | $0.1/M in · $0.2/M out |
| `gpt-5.6-luna` | 232k | 64k | $0.2/M in · $1.2/M out |
| `gpt-5.6-sol` | 232k | 64k | $5/M in · $30/M out |
| `gemini-3.8-flash` | 232k | 64k | $0.75/M in · $3.75/M out |

`zai/glm-5.3-flash` is the default. Every model is available on every plan,
supports native JSON tool calls and image input, and is served through the
MatterAI gateway. Cost comes from the API's usage chunks (`is_byok`-aware)
and is shown in the status bar.

### Other providers (Anthropic, OpenAI-compatible)

The Axon models go through the MatterAI gateway as before. A `customModels`
The built-in models go through the MatterAI gateway as before. A `customModels`
entry that sets a `provider` is instead served through the
[Vercel AI SDK](https://sdk.vercel.ai), reusing the same agent loop, tools, and
approvals — auth is the provider's own key (env var or `apiKey`), not the
Expand Down Expand Up @@ -412,7 +403,7 @@ Two kinds of files under `~/.orbcode/`:
```

All keys are optional. `customModels` entries appear in the `/model` picker
alongside the built-in Axon models; `baseUrl` points the chat client at any
alongside the built-in models; `baseUrl` points the chat client at any
OpenAI-compatible gateway; `env` is applied to the process at startup; `hooks`
configures lifecycle hooks (see [Hooks](#hooks)). Precedence: env vars > project
settings.json > user settings.json > config.json.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@matterailab/orbcode",
"version": "6.7.9",
"version": "6.8.0",
"description": "OrbCode CLI — agentic coding in your terminal, powered by Axon models by MatterAI",
"type": "module",
"bin": {
Expand Down
Loading