savant-code 0.0.18 → 0.0.20
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 +36 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -138,6 +138,10 @@ COMMAND_CODE_API_KEY=dummy-commandcode-key-replace-me
|
|
|
138
138
|
# Local Ollama override (optional)
|
|
139
139
|
# OLLAMA_HOST=http://localhost:11434
|
|
140
140
|
|
|
141
|
+
# GitHub MCP helper (read-only) and database helper
|
|
142
|
+
# SAVANT_CODE_GITHUB_TOKEN=dummy-github-token-replace-me
|
|
143
|
+
# SAVANT_CODE_DATABASE_URL=sqlite://./local.db
|
|
144
|
+
|
|
141
145
|
# Optional backend and advanced integrations
|
|
142
146
|
# SAVANT_CODE_API_KEY=backend-dummy-replace-me
|
|
143
147
|
# CLOUDFLARE_API_TOKEN=cloudflare-dummy-replace-me
|
|
@@ -147,6 +151,15 @@ AMAZON_WORKER=amazon-worker-dummy-replace-me
|
|
|
147
151
|
|
|
148
152
|
`AMAZON_WORKER` is retained for local deployment integrations. `GITHUB_TOKEN` and `NPM_PUBLISH` are intentionally not part of the public template because they are private release credentials.
|
|
149
153
|
|
|
154
|
+
### Building release binaries
|
|
155
|
+
|
|
156
|
+
Release binaries ship a sibling `env.json` with the canonical production `NEXT_PUBLIC_*` defaults (prod environment, `https://savant-code.com`, `support@savant-code.com`, release placeholders). `cli/scripts/build-binary.ts` fails the build if any dev `NEXT_PUBLIC_*` value — localhost URLs, personal emails, or dummy keys from the build shell or a repo `.env.local` — leaks into that file. Two escape hatches exist for intentional deviations:
|
|
157
|
+
|
|
158
|
+
- `SAVANT_CODE_BUILD_ENV=<env>` — build a local dev binary (skips the integrity check).
|
|
159
|
+
- `SAVANT_CODE_ALLOW_NEXT_PUBLIC_OVERRIDES=1` — CI/release override when injecting real production keys (for example PostHog or Stripe) that intentionally differ from the canonical placeholders.
|
|
160
|
+
|
|
161
|
+
Build release artifacts from a clean shell (no dev `NEXT_PUBLIC_*` exports, no `.env.local` loaded) so `env.json` matches the canonical defaults exactly.
|
|
162
|
+
|
|
150
163
|
## What Makes Savant-Code Different
|
|
151
164
|
|
|
152
165
|
Savant-Code is a multi-agent system rather than a single model guessing at your code. Nine canonical ECHO roles coordinate with strict separation of duties:
|
|
@@ -160,7 +173,7 @@ Savant-Code is a multi-agent system rather than a single model guessing at your
|
|
|
160
173
|
| **Recorder** | Manages FID lifecycle and release tracking |
|
|
161
174
|
| **Thinker** | Performs deep sequential reasoning for complex problems |
|
|
162
175
|
| **Scout** | Explores files and code to gather context |
|
|
163
|
-
| **Researcher** | Performs web search
|
|
176
|
+
| **Researcher** | Performs web search, documentation lookup, and multi-query `deep_research` |
|
|
164
177
|
| **Scribe** | Captures session summaries and durable knowledge |
|
|
165
178
|
|
|
166
179
|
Infrastructure helpers such as terminal execution, browser automation, and web/docs tool libraries support these roles; they are not additional roster members.
|
|
@@ -214,7 +227,7 @@ Retention is bounded to the most recent 20 turns, restore paths are revalidated,
|
|
|
214
227
|
- `--permission-mode safe|prompt|unsafe` selects the startup policy.
|
|
215
228
|
- `/permissions` (aliases `/sandbox` and `/safety`) views or changes the policy.
|
|
216
229
|
- `safe` denies risky tools; `prompt` currently also denies them because interactive confirmations are not yet implemented; `unsafe` allows them explicitly.
|
|
217
|
-
- `
|
|
230
|
+
- `HYBRID`, `SCAFFOLD`, `STRICT`, and `ANALYZE` modes change the execution scope at runtime (hovering the toggle shows each mode's contract). `HYBRID` (default) is the frictionless flow: you write directly while the harness deterministically enforces Law 1/3 and the Verifier criteria at `warn`, and the full Perfection Loop auto-engages past the 20-line threshold. `STRICT` guarantees the full ceremony on **every** code change: Recorder creates a FID, RED (Detective) analyzes, GREEN (Forge) writes, AUDIT (Verifier) double-checks with Law-4 reachability greps, and Recorder archives the FID with a CHANGELOG entry. Use `STRICT` for security-sensitive or long-lived code (auth, payments, migrations); use `HYBRID` for day-to-day building and exploration.
|
|
218
231
|
|
|
219
232
|
### Planning, review, and goals
|
|
220
233
|
|
|
@@ -231,7 +244,21 @@ Retention is bounded to the most recent 20 turns, restore paths are revalidated,
|
|
|
231
244
|
- User-level knowledge can be loaded alongside project knowledge.
|
|
232
245
|
- OpenClaw-format `SKILL.md` files are discovered and exposed as native skills.
|
|
233
246
|
- MCP servers are discovered at startup and their tools are published to the model.
|
|
247
|
+
- The Researcher role ships a mechanical `deep_research` tool: multi-query web research
|
|
248
|
+
with concurrency limits, URL dedup, domain scoring, citations, and graceful
|
|
249
|
+
degradation (`incomplete` + gaps) — a pure search facade, no second LLM.
|
|
250
|
+
- A read-only `github` helper connects to the official GitHub MCP server
|
|
251
|
+
(`SAVANT_CODE_GITHUB_TOKEN`) for PR/issue/CI review, code search, and secret scanning.
|
|
252
|
+
- A `database` helper exposes `list_tables`, `describe_table`, `execute_query`, and
|
|
253
|
+
`analyze_query` over `bun:sqlite` with an adapter-enforced safety contract:
|
|
254
|
+
read-only by default, LIMIT injection, SQL redaction, and destructive-DDL blocking.
|
|
255
|
+
- Browser automation supports `viewport` presets (mobile/tablet/desktop), an offline
|
|
256
|
+
WCAG accessibility scan, and optional session persistence.
|
|
234
257
|
- Gateway model context lengths can be resolved from the live catalog.
|
|
258
|
+
- A harness-side ECHO compliance layer enforces Law 1 (read-before-write) and Law 3
|
|
259
|
+
(verify-after-write) deterministically, mechanically flags the Verifier-criteria
|
|
260
|
+
(10+ lines / 2+ files / new API / security-sensitive / Forge), and escalates when a
|
|
261
|
+
write touches an active FID — non-blocking receipts plus corrective steering.
|
|
235
262
|
|
|
236
263
|
### Terminal UI
|
|
237
264
|
|
|
@@ -244,6 +271,10 @@ Retention is bounded to the most recent 20 turns, restore paths are revalidated,
|
|
|
244
271
|
- Masked provider setup and health diagnostics.
|
|
245
272
|
- Telemetry consent controls through `/telemetry status|enable|disable`.
|
|
246
273
|
- Optional image attachments for multimodal providers.
|
|
274
|
+
- `/export` writes a fully self-contained branded HTML report of the conversation
|
|
275
|
+
(offline fonts, collapsible tool rows, per-message and copy-all buttons).
|
|
276
|
+
- Edit diffs tint added lines 50% neon green and removed lines 50% neon red, with a
|
|
277
|
+
`[-N/+M]` add/remove counter beside the copy button.
|
|
247
278
|
|
|
248
279
|
### SDK and runtime
|
|
249
280
|
|
|
@@ -266,7 +297,8 @@ Commands can be entered with `/`; aliases are shown in parentheses. Some command
|
|
|
266
297
|
| `/help` (`/h`, `/?`) | Show command help and tips |
|
|
267
298
|
| `/new` (`/clear`, `/reset`) | Start a fresh conversation |
|
|
268
299
|
| `/history` (`/chats`) | Browse and resume previous sessions |
|
|
269
|
-
| `/copy` (`/
|
|
300
|
+
| `/copy` (`/copy-chat`) | Copy the complete conversation to the clipboard |
|
|
301
|
+
| `/export` (`/save`) | Write a self-contained branded HTML report of the conversation |
|
|
270
302
|
| `/interview` | Create a structured specification |
|
|
271
303
|
| `/plan` | Create an implementation plan |
|
|
272
304
|
| `/review` | Review code changes |
|
|
@@ -278,6 +310,7 @@ Commands can be entered with `/`; aliases are shown in parentheses. Some command
|
|
|
278
310
|
| `/health` (`/status`, `/check`) | Check provider, Ollama, model, and permission status |
|
|
279
311
|
| `/diagnostics` (`/diag`, `/processes`) | Show local process and resource diagnostics |
|
|
280
312
|
| `/provider` | Configure a hosted provider key with masked input |
|
|
313
|
+
| `/mode` | List the four modes and their contracts, or switch: `/mode <name>` or `/mode:<name>` |
|
|
281
314
|
| `/model` | Select or switch the active model |
|
|
282
315
|
| `/publish` | Publish agent templates through the Savant backend |
|
|
283
316
|
| `/feedback` (`/bug`, `/report`) | Open the feedback flow |
|