@protolabsai/proto 0.26.9 → 0.26.13

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.
Files changed (4) hide show
  1. package/README.md +38 -13
  2. package/cli.js +793 -273
  3. package/locales/en.js +272 -142
  4. package/package.json +2 -2
package/README.md CHANGED
@@ -9,14 +9,27 @@ proto is a fork of [Qwen Code](https://github.com/QwenLM/qwen-code) (itself fork
9
9
 
10
10
  ## What's Different
11
11
 
12
- | Feature | Qwen Code | proto |
13
- | ---------------- | ----------------------- | ------------------------------------------------------------------------------ |
14
- | Default model | Qwen3-Coder | Any (configurable) |
15
- | Task management | In-memory JSON | [beads_rust](https://github.com/Dicklesworthstone/beads_rust) (SQLite + JSONL) |
16
- | Memory | Single append-only file | File-per-memory with YAML frontmatter, 4-type taxonomy, auto-extraction |
17
- | MCP servers | None | Configurable via `~/.proto/settings.json` |
18
- | Plugin discovery | Qwen only | Auto-discovers Claude Code plugins from `~/.claude/plugins/` |
19
- | Skills | Nested superpowers | Flat bundled skills (16 skills, all discoverable) |
12
+ At-a-glance overview vs. upstream Qwen Code. For the full architectural breakdown see [`docs/architecture/divergence-from-upstream.md`](./docs/architecture/divergence-from-upstream.md).
13
+
14
+ | Category | Qwen Code | proto |
15
+ | --------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
16
+ | Default model | Qwen3-Coder | Any (LiteLLM / OpenAI-compat / Anthropic / Gemini) |
17
+ | Agent harness | | Sprint contracts + scope lock, behavior-verify gate, multi-sample selector, doom-loop reminders, session memory + evolve, checkpoint/rewind, speculation |
18
+ | Bundled skills | 0 (use external) | 22 (sprint-contract, verification-before-completion, systematic-debugging, …) |
19
+ | Subagent execution | Sequential | Concurrent batched Agent calls run in parallel; tool ordering preserved |
20
+ | Tool-call streaming | Per-converter parser | Per-stream parser context (no cross-stream corruption); malformed JSON → UI-hidden recovery note |
21
+ | Reasoning models | Basic `reasoning_content` | Inline `<think>`-tag extraction (Minimax/QwQ); reasoning-only `content: ""` fix; preserved on session resume |
22
+ | Truncation handling | Best-effort | MAX_TOKENS cascade detection + tool-response trimming; rejected truncated edits |
23
+ | Task management | In-memory JSON | [beads_rust](https://github.com/Dicklesworthstone/beads_rust) (SQLite + JSONL) |
24
+ | Memory | Single append-only file | File-per-memory with YAML frontmatter, 4-type taxonomy, auto-extraction |
25
+ | MCP servers | None | Configurable via `~/.proto/settings.json`; SSE/HTTP/stdio in ACP mode |
26
+ | Plugin discovery | Qwen only | Auto-discovers Claude Code plugins from `~/.claude/plugins/` |
27
+ | Ignore files | `.qwenignore` | `.protoignore` + inherits `.claudeignore` patterns |
28
+ | ACP / Zed integration | Stock | Cron-in-Session, concurrent Agent calls, SSE/HTTP MCP, internal-part filtering |
29
+ | Extra built-in tools | Standard set | + browser automation, repo-map (PageRank), task tools, mailbox, LSP, voice/STT |
30
+ | Observability | Console | Langfuse OTLP traces with harness-intervention spans (SFT-ready) |
31
+ | Release pipeline | Manual | Conventional-commit auto-release (`feat:` → minor, `fix:` → patch) |
32
+ | VS Code companion | Included | Removed (focus on TUI + ACP/Zed) |
20
33
 
21
34
  ## Installation
22
35
 
@@ -161,11 +174,23 @@ proto auto-discovers Claude Code plugins installed at `~/.claude/plugins/`. Any
161
174
 
162
175
  ### Environment variable overrides
163
176
 
164
- | Variable | Default | Description |
165
- | ------------------------------- | ------- | ----------------------------------------------------------------------------------------------- |
166
- | `PROTO_STREAM_STALL_TIMEOUT_MS` | `90000` | Max ms to wait between streaming chunks before declaring the connection stalled (then retrying) |
167
- | `PROTO_SYSTEM_DEFAULTS_PATH` | — | Override path to the system defaults settings file |
168
- | `PROTO_SYSTEM_SETTINGS_PATH` | — | Override path to the system settings override file |
177
+ | Variable | Default | Description |
178
+ | ----------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
179
+ | `PROTO_STREAM_STALL_TIMEOUT_MS` | `90000` | Max ms to wait between streaming chunks before declaring the connection stalled (then retrying) |
180
+ | `PROTO_SYSTEM_DEFAULTS_PATH` | — | Override path to the system defaults settings file |
181
+ | `PROTO_SYSTEM_SETTINGS_PATH` | — | Override path to the system settings override file |
182
+ | `PROTO_LEGACY_ERASE_LINES` | — | Set to `1` to disable the cursor-collapse optimizer that prevents Ink scrollback bouncing during streaming renders. Only set this if it interferes with your terminal. |
183
+ | `PROTO_FORCE_SYNCHRONIZED_OUTPUT` | — | Set to `1` to force-enable BSU/ESU atomic-frame escape codes regardless of terminal auto-detect (useful if your terminal supports DEC mode 2026 but isn't on the allowlist below). |
184
+ | `PROTO_DISABLE_SYNCHRONIZED_OUTPUT` | — | Set to `1` to opt out of synchronized output even on supported terminals. |
185
+
186
+ ### TUI flicker mitigation
187
+
188
+ proto installs two stdout interventions to reduce flicker during streaming renders:
189
+
190
+ 1. **Cursor-collapse optimizer** — collapses Ink's per-line `{ERASE_LINE, CURSOR_UP_ONE}` sequences into a single bounded erase. Universal; bypass via `PROTO_LEGACY_ERASE_LINES=1`.
191
+ 2. **Synchronized output** — wraps each render frame in BSU/ESU escape codes (DEC mode 2026) on terminals that support it. Auto-detected for: **Alacritty (≥0.14), Ghostty, Kitty, WezTerm, iTerm2**. For other DEC-2026-capable terminals, set `PROTO_FORCE_SYNCHRONIZED_OUTPUT=1`.
192
+
193
+ Both no-op outside a TTY, in screen-reader mode, or under tmux/SSH.
169
194
 
170
195
  ## Observability
171
196