Skip to content

feat(agents): add reasonix TUI agent provider - #12330

Open
BobcGn wants to merge 1 commit into
stablyai:mainfrom
BobcGn:feat/reasonix-provider
Open

BobcGn wants to merge 1 commit into
stablyai:mainfrom
BobcGn:feat/reasonix-provider

Conversation

@BobcGn

@BobcGn BobcGn commented Aug 3, 2026 •

Copy link
Copy Markdown

Summary

Adds reasonix (npm-installed terminal coding agent, reasonix@1.19.4) as a launchable TUI agent provider in Orca.

reasonix installs via npm install -g reasonix and runs as a terminal TUI (reasonix), matching the same model as claude-code / codex / opencode. Orca detects the npm-installed binary on PATH and launches it in a pty like any other agent:

  • new TuiAgent member 'reasonix' plus a TUI_AGENT_CONFIG entry (detectCmd/launchCmd = reasonix, promptInjectionMode: 'stdin-after-start')
  • telemetry kind (AGENT_KIND_VALUES + TUI_AGENT_KIND_BY_AGENT), display name, skills CLI mapping (falls back to universal), auto-pick order, well-known status labels
  • agent picker catalog entry plus locale strings in all 5 catalogs (en/es/ja/ko/zh)

User-visible change: the agent picker / new-tab flow gains a "Reasonix" option; when installed it is detected and launchable like any other agent.

Screenshots

No screenshots available: the authoring environment could not launch Electron (GitHub network timeouts blocked the Electron binary download). The visual change is a single new "Reasonix" entry (letter "R" glyph fallback) in the agent picker; no other UI changes.

Testing

  • pnpm lint — oxlint 0 warnings / 0 errors; audit:code-quality:native + type-aware 0/0; reliability gates (62) pass; max-lines ratchet OK
  • pnpm typecheck — all 3 tsconfigs (node / cli / web) zero errors; every Record<TuiAgent, …> table exhaustive (compiler-driven)
  • pnpm test (affected suites) — agent-kind / keybindings / agent-detection / agent-type-label / tui-agent-selection: 146 tests pass; localization catalog verified (en synced, es/ja/ko/zh aligned)
  • pnpm build — not run locally: requires the Electron binary, which could not be downloaded in this environment (network timeout); CI package job covers it
  • Tests: existing exhaustive-mapping tests automatically cover the new agent (agent-kind.test.ts sync test, keybindings.test.ts per-agent actions, skills-cli-agent-keys.test.ts); a temp launch-command test verified launchCmd = reasonix on darwin / linux / win32

AI Review Report

Reviewed with an AI coding agent; main risks checked:

  • Cross-platform (macOS/Linux/Windows): detectCmd/launchCmd use the single reasonix bin on all three platforms (npm installs the platform binary via @reasonix/cli-* optionalDependencies); Windows pty spawn goes through the existing shell-fallback chain. No hardcoded paths, shortcuts, or platform-specific shell behavior introduced.
  • SSH / remote / local: no changes to remote or SSH paths; detection uses the same PATH lookup as every other agent.
  • Agent / integration compatibility: declarative TUI_AGENT_CONFIG pattern only; zero behavior change to existing providers; SKILLS_CLI_AGENT_KEY_BY_TUI_AGENT['reasonix'] = null safely drops to the universal target since the skills CLI has no reasonix key.
  • Performance: config-only change; no hot-path or runtime loops.
  • UI quality: single catalog entry; icon falls back to the letter glyph (reasonix publishes no SVG); locale strings added to all 5 catalogs.
  • Review flagged 3 follow-ups, all fixed: missing es.json entry, missing auto-pick order entry, missing well-known status labels (agent-status-types.ts / agent-type-label.ts).

Security Audit

  • Input handling: none — no new user-input paths; the launch command is a static string.
  • Command execution: launchCmd: 'reasonix' runs the user-installed binary, same trust model as every existing agent; no flag-injection surface added.
  • Path handling: no new path logic.
  • Auth / secrets: none.
  • Dependencies: no dependency changes (reasonix is installed by the user, not bundled).
  • IPC: no IPC surface changes.

Notes

  • promptInjectionMode is 'stdin-after-start' (bare launch + paste) because reasonix's prompt contract is not yet verified; if reasonix <prompt> or a --prefill-style flag is confirmed, it can be upgraded to 'argv' / draftPromptFlag in a follow-up.
  • Not verified locally: the full pnpm test suite and an interactive reasonix launch inside a hosted pty (Electron binary unavailable in the authoring environment); CI covers both.
  • No release or version changes.

Register reasonix (npm-installed terminal coding agent, reasonix@1.19.4)
as a launchable TuiAgent: extend the TuiAgent union, TUI_AGENT_CONFIG
with detect/launch on the npm bin, telemetry kind, display names, skills
CLI mapping, auto-pick order, agent status labels, and the UI catalog
plus 5 locale catalogs. promptInjectionMode uses stdin-after-start until
the CLI prompt contract is verified.
@BobcGn
BobcGn requested a review from brennanb2025 as a code owner August 3, 2026 17:04
@coderabbitai

coderabbitai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The change adds Reasonix to shared agent types, telemetry mappings, display names, skills CLI mappings, runtime configuration, automatic selection, renderer catalog data, icon recognition, and English, Spanish, Japanese, Korean, and Chinese locales. It also adds Reasonix detection and launch settings that use the reasonix executable and stdin prompts. The repository now ignores the local /logs/ directory.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely identifies the addition of the Reasonix TUI agent provider.
Description check ✅ Passed The description covers the required sections, explains the unchecked build and unavailable screenshots, and documents testing, review, security, and follow-up risks.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@BobcGn

BobcGn commented Aug 3, 2026

Copy link
Copy Markdown
Author

@brennanb2025
Please approve the pending workflow and complete the issue checks for this PR so that I can receive feedback immediately and proceed with the next steps.
Thanks.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants