| Initial commit: Reasonix v0.0.1 — DeepSeek-native agent framework
Three-pillar design optimized for DeepSeek's economic and behavioral profile:
- Pillar 1: Cache-First Loop (immutable prefix + append-only log + volatile scratch)
- Pillar 2: R1 Thought Harvesting (stub surface, full impl in v0.2)
- Pillar 3: Tool-Call Repair (scavenge + truncation + storm + flatten — complete)
Stack: TypeScript / Node 20+ / ESM. Ink + React TUI with live cache-hit and
cost panel. Streaming via SSE. Vitest (41 passing tests), tsup, biome.
| 1 个月前 |
| fix(loop): surface StormBreaker suppression as a visible warning + reset on user turn
A silent storm-break was indistinguishable from a stalled turn — the
model would look like it gave up when really we'd suppressed its
repeat tool call. Now step() emits a dedicated warning event when
report.stormsBroken > 0, with distinct messages for the two cases:
- All calls suppressed (stuck retry): tell the user the model is
looping on the same (tool, args) and point them at /retry or
rewording the instruction. This is the case that used to dead-end
the turn with nothing on screen.
- Some calls suppressed (one redundant): the rest of the turn
proceeds; the warning is informational.
Also reset the StormBreaker's sliding window at the top of every
step() so a new user message doesn't inherit last turn's repeat
patterns (false-positive blocks on legitimate "try again" flows).
Part of the 0.4.19 batch — tag will be moved to this commit.
| 1 个月前 |
| feat(repair+mcp): DSML scavenge + MCP resources/prompts (0.4.5)
Two protocol-level completions bundled:
1. DSML tool-call recovery. scavengeToolCalls gains a DSML invoke
parser (<|DSML|invoke>/<|DSML|parameter string="true|false">).
ToolCallRepair.process now scans both reasoning AND content
channels — before, DSML in a regular turn was stripped from
display but the tool never actually ran.
2. MCP resources + prompts. McpClient gains resources/list,
resources/read, prompts/list, prompts/get with full types and
cursor pagination. Initialize now advertises all three
capability families.
353 tests (+13: scavenge +5, pipeline +2, mcp +6).
| 1 个月前 |
| feat(storm): add stormExempt flag to exempt obvious reads from the loop guard (#388)
Co-authored-by: Charles H <contact@ctharvey.me> | 22 天前 |
| Initial commit: Reasonix v0.0.1 — DeepSeek-native agent framework
Three-pillar design optimized for DeepSeek's economic and behavioral profile:
- Pillar 1: Cache-First Loop (immutable prefix + append-only log + volatile scratch)
- Pillar 2: R1 Thought Harvesting (stub surface, full impl in v0.2)
- Pillar 3: Tool-Call Repair (scavenge + truncation + storm + flatten — complete)
Stack: TypeScript / Node 20+ / ESM. Ink + React TUI with live cache-hit and
cost panel. Streaming via SSE. Vitest (41 passing tests), tsup, biome.
| 1 个月前 |