@este.systems/dsc 1.1.1 → 1.2.0

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/CHANGELOG.md CHANGED
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.0] - 2026-06-11
11
+
12
+ ### Added
13
+ - `list_dir` tool — non-recursive directory listing (directories first with a `/` suffix, symlinks marked `@`, dotfiles included), defaulting to the cwd. Read-only (no approval) and cross-platform via `fs`, so the agent no longer spends an approval round-trip on `bash ls`/`dir` just to see what's in a directory; `glob` remains for recursive/pattern matching. `read_file`'s "that's a directory" hint now points at `list_dir`. Added to `TOOL_SCHEMAS`, `READ_ONLY_TOOLS`, the system-prompt tool list, and the README. 7 new tests; total 222.
14
+ - `multi_edit` tool — apply a sequence of edits to a single file in one atomic call. Each edit is `{old_string, new_string, replace_all?}` applied in order (each sees the previous edit's result); if any edit fails to match — not found, or non-unique without `replace_all` — nothing is written, so the file is never left half-patched. One approval shows the cumulative diff (reusing the `edit_file` dialog). Cuts the tool-call count for multi-change refactors that previously needed N separate `edit_file` calls. Added to `TOOL_SCHEMAS`, the system-prompt tool list, and the README tool table; gated under its own `multi_edit` approval. 8 new tests; total 215.
15
+ - Multi-provider key management + model availability UX. `/api-key` is now provider-aware: no arg shows every provider's key status + signup URL; `<key>` alone still saves the DeepSeek key (back-compat); `<provider> <key>` saves any provider's key (`deepseek` → top-level `api_key`, others → `providers.<id>.api_key`); `<provider>` alone shows that provider's status. `/model` (and `-m`, and `--help`) now list only the models usable right now — a model surfaces once its provider has a key (DeepSeek always shows for first-launch onboarding), and switching to a model whose key is missing prints how to set it instead of failing on the next turn. New `api.ts` exports: `availableModels()`, `isKnownModel()`, `modelAvailable()`, `providerKeySource()`, `saveProviderKey()`, `PROVIDER_KEY_INFO`. README gains a "Providers & models" section; `config.json.example` shows the `providers.anthropic` block. 11 new tests; total 207.
16
+ - Anthropic (Claude) provider. `claude-sonnet-4-6` is now selectable via `/model` (or `-m`), backed by a dedicated provider in `api.ts` that translates the normalized OpenAI-shaped request/response to Anthropic's Messages API in both directions: the system message lifts to a top-level field; assistant `tool_calls` become `tool_use` content blocks; runs of `tool` messages coalesce into one user turn of `tool_result` blocks; the event-typed SSE stream (`message_start`/`content_block_delta`/`message_delta`) is parsed back into streamed content + assembled tool calls; `thinking` deltas map to reasoning; and Anthropic's split usage (cached-read vs. fresh/cache-write input) maps onto dsc's hit/miss cost model. Auth via `ANTHROPIC_API_KEY` (env) or `providers.anthropic.api_key` (config). 11 new tests (translation units + end-to-end `chat`/`chatStream` over a stubbed transport); total 196. A slash command to save the Anthropic key, `/model` availability filtering by configured key, and docs land with the multi-provider config/UX work; the exact Claude API model string should be confirmed against the live API.
17
+ - Provider abstraction seam in `api.ts` (Phase 1 of multi-provider support; no behavior change). A model registry (`MODEL_REGISTRY`) maps each model id to a `ModelSpec` (`provider` + per-token `rates` + `contextWindow`), and the active model is now the routing key: `chat`/`chatStream`/`computeCostUsd` look up the model's provider and delegate. A `Provider` interface abstracts the transport; `openAICompatProvider(...)` factory implements the OpenAI-compatible wire format (DeepSeek today; OpenAI + Ollama drop in with just a different URL/key). `Model` changed from a hardcoded union to a bare `string` (the provider is implied by the registry), so `/model <name>` stays open-ended and session JSON is unchanged. New exports: `ProviderId`, `ModelSpec`, `ModelRates`, `Provider`, `MODEL_REGISTRY`, `modelSpec()`, `providerFor()`, `DEEPSEEK_API_URL`. `MODEL_RATES`/`API_URL` removed (folded into the registry). 5 new routing tests; total 185.
18
+ - Slash-command dispatcher extracted from `tui.tsx` into `src/slash_dispatch.ts` and given a test suite (`tests/slash_dispatch.test.ts`, 29 tests). The dispatcher (`dispatchSlash(line, ctx)`) owns all command parsing, routing, and user-facing message formatting; it reaches its host front-end only through an injected `SlashContext` — `emit` (the output sink, was the TUI's `info()`), getters for the reassignable session state, and a few action callbacks for genuinely front-end-specific work (`applySession` view rebuild, `runEditor` ink unmount/remount, `exit`, `compact`, `submit`). Everything else (preferences, history, search/api-key config, update, audit, instructions) is now plain module calls shared by any front-end. This shrinks `tui.tsx` from 1,724 to ~880 lines, makes every command unit-testable, and is the seam `dsc serve` Phase 2 needs to run `{type:"slash"}` over the wire. `formatRelative` moved from `tui.tsx` to `history.ts` (exported) since `/list` is its only user. No behavior change. Total now 180 tests across 45 suites.
19
+ - Test coverage for the two highest-risk previously-untested modules: the agent loop (`tests/agent.test.ts`, 23 tests) and the tool executors (`tests/tools.test.ts`, 44 tests). Total now 151 tests across 33 suites (was 84/21). The agent suite pins the loop invariants a silent regression would otherwise hide — `repairToolCallPairing` healing interrupted-turn tool-call/tool-message pairing, the throw→synthetic-error-result + remaining-call stub-fill path, abort→`interrupted`/rejected, the `MAX_TOOL_DEPTH` stop notice, and the `maxAutoContinue` budget-grant loop — plus the pure formatters (`estimateContextTokens`, `formatStatus`, `formatCost`). The tools suite covers every executor: `read_file` (line numbers, paging, directory/long-line handling), `write_file`/`edit_file` (create/overwrite/unique-vs-replace_all/rejection, `filesTouched`), `bash` (stdout + exit code, rejection, non-zero exit), `grep`/`glob` (matches + clean no-match), `web_fetch`/`web_search` validation paths (no network), the `task_*` store mutations, and the static schema/`READ_ONLY_TOOLS` surface. Suites stay hermetic — `DSC_NO_AUDIT=1`, `setAsker`-driven approvals, per-test store reset, temp dirs — and the `grep`-spawning cases skip on Windows where the binary isn't guaranteed.
20
+
21
+ ### Changed
22
+ - `runAgent` gained an optional `chatStream` transport override on `RunOptions`, mirroring the existing `dispatchExtraTool`/`extraTools` injection points. Defaults to the real DeepSeek `chatStream`, so production behavior is unchanged; it lets tests drive the loop with scripted responses (no network) and lets an embedder swap the transport without touching the loop. `repairToolCallPairing` is now exported for direct testing (same pattern as `parseBlocks`/`autoRequiresApproval`/`expandEnv`).
23
+
10
24
  ## [1.1.1] - 2026-05-25
11
25
 
12
26
  ### Documentation
@@ -235,7 +249,10 @@ Initial public release.
235
249
  - DECSTBM-pinned status bar.
236
250
  - Cross-platform packaging (`npm pack` + per-OS installer scripts).
237
251
 
238
- [Unreleased]: https://github.com/EsteSystems/dsc/compare/v1.0.1...HEAD
252
+ [Unreleased]: https://github.com/EsteSystems/dsc/compare/v1.2.0...HEAD
253
+ [1.2.0]: https://github.com/EsteSystems/dsc/compare/v1.1.1...v1.2.0
254
+ [1.1.1]: https://github.com/EsteSystems/dsc/compare/v1.1.0...v1.1.1
255
+ [1.1.0]: https://github.com/EsteSystems/dsc/compare/v1.0.0...v1.1.0
239
256
  [1.0.1]: https://github.com/EsteSystems/dsc/compare/v1.0.0...v1.0.1
240
257
  [1.0.0]: https://github.com/EsteSystems/dsc/compare/v0.6.0...v1.0.0
241
258
  [0.6.0]: https://github.com/EsteSystems/dsc/compare/v0.5.3...v0.6.0
package/README.md CHANGED
@@ -14,8 +14,11 @@ normal scrollback so they stay selectable and copy/paste-able. One-shot
14
14
  mode (`dsc "prompt"`) runs the agent against stdout and exits without
15
15
  rendering ink, so it pipes cleanly into scripts.
16
16
 
17
- Currently powered by [DeepSeek](https://api-docs.deepseek.com/);
18
- multi-provider support (Claude, OpenAI, Ollama) is on the roadmap.
17
+ Powered by [DeepSeek](https://api-docs.deepseek.com/) (default) and
18
+ [Anthropic](https://docs.anthropic.com/) (Claude) pick a model with
19
+ `-m` or `/model` and dsc routes to the right provider automatically.
20
+ OpenAI and Ollama are on the roadmap (the OpenAI-compatible transport is
21
+ already in place). See [Providers & models](#providers--models).
19
22
 
20
23
  ## Install
21
24
 
@@ -248,6 +251,50 @@ setx DEEPSEEK_API_KEY "sk-..." # cmd.exe (persisted)
248
251
  { "env": { "ANTHROPIC_AUTH_TOKEN": "sk-..." } } // claude-switcher compat
249
252
  ```
250
253
 
254
+ ## Providers & models
255
+
256
+ dsc routes by model: each model belongs to a provider, and the active
257
+ model selects the transport, API key, and pricing automatically. Pick a
258
+ model with `-m <name>` at launch or `/model <name>` in the TUI.
259
+
260
+ | Model | Provider | Key |
261
+ |---|---|---|
262
+ | `deepseek-v4-pro` (default) | DeepSeek | `DEEPSEEK_API_KEY` / `api_key` |
263
+ | `deepseek-v4-flash` | DeepSeek | `DEEPSEEK_API_KEY` / `api_key` |
264
+ | `claude-sonnet-4-6` | Anthropic | `ANTHROPIC_API_KEY` / `providers.anthropic.api_key` |
265
+
266
+ `/model` (no arg) lists the models available **right now** — a model
267
+ only shows up once its provider has a key. DeepSeek always shows so the
268
+ first-launch flow has something to select. Switching to a model whose
269
+ key isn't set prints how to set it instead of failing on the next turn.
270
+
271
+ ### Adding an Anthropic (Claude) key
272
+
273
+ Any of:
274
+
275
+ ```sh
276
+ export ANTHROPIC_API_KEY=sk-ant-... # env (any shell)
277
+ ```
278
+ ```
279
+ > /api-key anthropic sk-ant-... # in the TUI → writes config
280
+ ```
281
+ ```jsonc
282
+ // ~/.config/dsc/config.json
283
+ {
284
+ "api_key": "sk-...", // DeepSeek (unchanged)
285
+ "providers": {
286
+ "anthropic": { "api_key": "sk-ant-..." }
287
+ }
288
+ }
289
+ ```
290
+
291
+ Then `dsc -m claude-sonnet-4-6` or `/model claude-sonnet-4-6`. `/api-key`
292
+ with no argument shows every provider's key status at a glance.
293
+
294
+ > OpenAI and Ollama aren't registered yet, but the OpenAI-compatible
295
+ > transport that backs DeepSeek already covers them — they're a model
296
+ > registry entry + key away.
297
+
251
298
  ## Quick start
252
299
 
253
300
  ```sh
@@ -295,7 +342,7 @@ ghost-text suggestion previews the match as you type.
295
342
 
296
343
  | Command | What it does |
297
344
  |---|---|
298
- | `/api-key [key]` | Show where the key is loaded from (env / config file / unset). With a key arg, write it to `~/.config/dsc/config.json` with `0600` perms. When unset, prints the DeepSeek signup URL. |
345
+ | `/api-key [provider] [key]` | No arg: show every provider's key status + signup URL. `<key>` alone saves it as the DeepSeek key (back-compat). `<provider> <key>` saves that provider's key (`deepseek` top-level `api_key`; others → `providers.<id>.api_key`) to `~/.config/dsc/config.json` with `0600` perms. `<provider>` alone shows that provider's status + signup. |
299
346
  | `/search` / `/search use <p>` / `/search key <p> [key]` | Inspect / switch the active search provider, or show / save a per-provider key. No-arg prints active provider + key status + signup URLs. `use brave\|tavily\|ddg` writes `search.provider`. `key <provider> [key]` shows signup URL when no key, saves under `search.<provider>.api_key` when given one. |
300
347
  | `/update` | Force-check npm for a newer release and install it (`npm install -g @este.systems/dsc@latest`). The TUI also checks once a day in the background and surfaces a one-line "X available" notice when behind. |
301
348
  | `/copy` | Copy the most recent assistant response to the OS clipboard (pbcopy / clip / wl-copy / xclip / xsel). |
@@ -303,7 +350,7 @@ ghost-text suggestion previews the match as you type.
303
350
  | `/import <path> [--keep-cwd]` | Load a session from a JSON file as the active session. Rebinds cwd to the current directory by default so auto-resume picks it up here; `--keep-cwd` preserves the original. Mints a fresh id on collision (no overwrites). |
304
351
  | `/clear` | Start a new session. Old session stays on disk. Also drops per-tool "always" approvals. |
305
352
  | `/cost` | Show token usage and estimated cost so far. |
306
- | `/model [name]` | Show or switch model. Available: `deepseek-v4-pro`, `deepseek-v4-flash`. |
353
+ | `/model [name]` | Show or switch model (no arg lists the models available right now). Switching to a provider model whose key isn't set prints how to set it rather than silently failing. See [Providers & models](#providers--models). |
307
354
  | `/yolo` | Toggle approval mode (write/edit/bash/web_fetch). |
308
355
  | `/reasoning [on\|off]` | Show/hide `reasoning_content` from thinking models. Default on. |
309
356
  | `/lang [name\|off]` | Force the model to reply exclusively in a named language. |
@@ -391,6 +438,7 @@ the archived messages from `/transcript`.
391
438
  | Tool | Approval | Notes |
392
439
  |---|---|---|
393
440
  | `read_file(path, offset?, limit?)` | none | 2000 lines default; long lines truncated. |
441
+ | `list_dir(path?)` | none | Non-recursive directory listing (dirs first, `/` suffix; symlinks `@`; dotfiles included). Defaults to cwd. No approval, cross-platform — prefer over `bash ls`/`dir`. |
394
442
  | `grep(pattern, path?, glob?, case_insensitive?)` | none | ripgrep when available, `grep -rn` fallback. |
395
443
  | `glob(pattern, path?)` | none | Node 22+ `fs.glob`, capped at 500. |
396
444
  | `web_search(query, count?, freshness?)` | none | Pluggable backends (Brave / Tavily / DuckDuckGo). |
@@ -399,6 +447,7 @@ the archived messages from `/transcript`.
399
447
  | `task_list()` | none | Returns the current task list with statuses. |
400
448
  | `write_file(path, content)` | yes (unless `--yolo`) | Side-by-side diff inside the approval dialog. |
401
449
  | `edit_file(path, old_string, new_string, replace_all?)` | yes | Exact substring replace; old_string must be unique unless `replace_all=true`. |
450
+ | `multi_edit(path, edits)` | yes | Apply a sequence of edits to one file atomically (all-or-nothing). Each edit is `{old_string, new_string, replace_all?}`, applied in order; one approval shows the cumulative diff. Beats N `edit_file` calls for multi-change refactors. |
402
451
  | `bash(command, description?, timeout_ms?)` | yes | `/bin/sh` on Linux/macOS, `cmd.exe` on Windows. Output capped at 16 KB. |
403
452
  | `web_fetch(url)` | yes | HTML stripped to text, capped at 50 KB. |
404
453
 
package/dist/agent.js CHANGED
@@ -91,6 +91,7 @@ export async function runAgent(opts) {
91
91
  const { messages, model, stats, toolCtx, signal, onTurn, events } = opts;
92
92
  const showReasoning = opts.showReasoning ?? true;
93
93
  const assistantLabel = opts.assistantLabel ?? "assistant:";
94
+ const callChat = opts.chatStream ?? chatStream;
94
95
  // Build the message list to send: drop any leading system entry the caller
95
96
  // may have stashed (e.g. from an older session) and prepend a freshly-built
96
97
  // one so cwd/date/summary/language reflect the current turn. The system
@@ -132,7 +133,7 @@ export async function runAgent(opts) {
132
133
  const handlers = streamHandlers(spinner, showReasoning, assistantLabel, events, turnId);
133
134
  let resp;
134
135
  try {
135
- resp = await chatStream({
136
+ resp = await callChat({
136
137
  model,
137
138
  messages: buildApi(),
138
139
  // Built-in tools first, MCP-provided tools appended. Order
@@ -334,7 +335,7 @@ function truncate(s, n) {
334
335
  * 'tool_calls' must be followed by tool messages responding to each
335
336
  * 'tool_call_id'". This recovers transparently per call.
336
337
  */
337
- function repairToolCallPairing(messages) {
338
+ export function repairToolCallPairing(messages) {
338
339
  const out = [];
339
340
  for (let i = 0; i < messages.length; i++) {
340
341
  const m = messages[i];
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}