terminal-jarvis 0.0.82 → 0.1.1
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 +62 -143
- package/bin/terminal-jarvis +28 -29
- package/bin/terminal-jarvis-bin +0 -0
- package/harnesses/aider/download/index.toml +3 -0
- package/harnesses/aider/headless/index.toml +3 -0
- package/harnesses/aider/index.toml +6 -0
- package/harnesses/aider/models/index.toml +3 -0
- package/harnesses/aider/security/index.toml +3 -0
- package/harnesses/aider/stats/index.toml +3 -0
- package/harnesses/aider/ui/index.toml +3 -0
- package/harnesses/aider/update/index.toml +3 -0
- package/harnesses/aider/version/index.toml +3 -0
- package/harnesses/aider/yolo/index.toml +3 -0
- package/harnesses/amp/download/index.toml +3 -0
- package/harnesses/amp/headless/index.toml +3 -0
- package/harnesses/amp/index.toml +6 -0
- package/harnesses/amp/models/index.toml +3 -0
- package/harnesses/amp/security/index.toml +3 -0
- package/harnesses/amp/stats/index.toml +3 -0
- package/harnesses/amp/ui/index.toml +3 -0
- package/harnesses/amp/update/index.toml +3 -0
- package/harnesses/amp/version/index.toml +3 -0
- package/harnesses/amp/yolo/index.toml +3 -0
- package/harnesses/claude/download/index.toml +3 -0
- package/harnesses/claude/headless/index.toml +3 -0
- package/harnesses/claude/index.toml +6 -0
- package/harnesses/claude/models/index.toml +3 -0
- package/harnesses/claude/security/index.toml +3 -0
- package/harnesses/claude/stats/index.toml +3 -0
- package/harnesses/claude/ui/index.toml +3 -0
- package/harnesses/claude/update/index.toml +3 -0
- package/harnesses/claude/version/index.toml +3 -0
- package/harnesses/claude/yolo/index.toml +3 -0
- package/harnesses/code/download/index.toml +3 -0
- package/harnesses/code/headless/index.toml +3 -0
- package/harnesses/code/index.toml +6 -0
- package/harnesses/code/models/index.toml +3 -0
- package/harnesses/code/security/index.toml +3 -0
- package/harnesses/code/stats/index.toml +3 -0
- package/harnesses/code/ui/index.toml +3 -0
- package/harnesses/code/update/index.toml +3 -0
- package/harnesses/code/version/index.toml +3 -0
- package/harnesses/code/yolo/index.toml +3 -0
- package/harnesses/codex/download/index.toml +3 -0
- package/harnesses/codex/headless/index.toml +3 -0
- package/harnesses/codex/index.toml +6 -0
- package/harnesses/codex/models/index.toml +3 -0
- package/harnesses/codex/security/index.toml +3 -0
- package/harnesses/codex/stats/index.toml +3 -0
- package/harnesses/codex/ui/index.toml +3 -0
- package/harnesses/codex/update/index.toml +3 -0
- package/harnesses/codex/version/index.toml +3 -0
- package/harnesses/codex/yolo/index.toml +3 -0
- package/harnesses/copilot/download/index.toml +3 -0
- package/harnesses/copilot/headless/index.toml +3 -0
- package/harnesses/copilot/index.toml +6 -0
- package/harnesses/copilot/models/index.toml +3 -0
- package/harnesses/copilot/security/index.toml +3 -0
- package/harnesses/copilot/stats/index.toml +3 -0
- package/harnesses/copilot/ui/index.toml +3 -0
- package/harnesses/copilot/update/index.toml +3 -0
- package/harnesses/copilot/version/index.toml +3 -0
- package/harnesses/copilot/yolo/index.toml +3 -0
- package/harnesses/crush/download/index.toml +3 -0
- package/harnesses/crush/headless/index.toml +3 -0
- package/harnesses/crush/index.toml +6 -0
- package/harnesses/crush/models/index.toml +3 -0
- package/harnesses/crush/security/index.toml +3 -0
- package/harnesses/crush/stats/index.toml +3 -0
- package/harnesses/crush/ui/index.toml +3 -0
- package/harnesses/crush/update/index.toml +3 -0
- package/harnesses/crush/version/index.toml +3 -0
- package/harnesses/crush/yolo/index.toml +3 -0
- package/harnesses/cursor-agent/download/index.toml +3 -0
- package/harnesses/cursor-agent/headless/index.toml +3 -0
- package/harnesses/cursor-agent/index.toml +6 -0
- package/harnesses/cursor-agent/models/index.toml +3 -0
- package/harnesses/cursor-agent/security/index.toml +3 -0
- package/harnesses/cursor-agent/stats/index.toml +3 -0
- package/harnesses/cursor-agent/ui/index.toml +3 -0
- package/harnesses/cursor-agent/update/index.toml +3 -0
- package/harnesses/cursor-agent/version/index.toml +3 -0
- package/harnesses/cursor-agent/yolo/index.toml +3 -0
- package/harnesses/droid/download/index.toml +3 -0
- package/harnesses/droid/headless/index.toml +3 -0
- package/harnesses/droid/index.toml +6 -0
- package/harnesses/droid/models/index.toml +3 -0
- package/harnesses/droid/security/index.toml +3 -0
- package/harnesses/droid/stats/index.toml +3 -0
- package/harnesses/droid/ui/index.toml +3 -0
- package/harnesses/droid/update/index.toml +3 -0
- package/harnesses/droid/version/index.toml +3 -0
- package/harnesses/droid/yolo/index.toml +3 -0
- package/harnesses/eca/download/index.toml +3 -0
- package/harnesses/eca/headless/index.toml +3 -0
- package/harnesses/eca/index.toml +6 -0
- package/harnesses/eca/models/index.toml +3 -0
- package/harnesses/eca/security/index.toml +3 -0
- package/harnesses/eca/stats/index.toml +3 -0
- package/harnesses/eca/ui/index.toml +3 -0
- package/harnesses/eca/update/index.toml +3 -0
- package/harnesses/eca/version/index.toml +3 -0
- package/harnesses/eca/yolo/index.toml +3 -0
- package/harnesses/forge/download/index.toml +3 -0
- package/harnesses/forge/headless/index.toml +3 -0
- package/harnesses/forge/index.toml +6 -0
- package/harnesses/forge/models/index.toml +3 -0
- package/harnesses/forge/security/index.toml +3 -0
- package/harnesses/forge/stats/index.toml +3 -0
- package/harnesses/forge/ui/index.toml +3 -0
- package/harnesses/forge/update/index.toml +3 -0
- package/harnesses/forge/version/index.toml +3 -0
- package/harnesses/forge/yolo/index.toml +3 -0
- package/harnesses/gemini/download/index.toml +3 -0
- package/harnesses/gemini/headless/index.toml +3 -0
- package/harnesses/gemini/index.toml +6 -0
- package/harnesses/gemini/models/index.toml +3 -0
- package/harnesses/gemini/security/index.toml +3 -0
- package/harnesses/gemini/stats/index.toml +3 -0
- package/harnesses/gemini/ui/index.toml +3 -0
- package/harnesses/gemini/update/index.toml +3 -0
- package/harnesses/gemini/version/index.toml +3 -0
- package/harnesses/gemini/yolo/index.toml +3 -0
- package/harnesses/goose/download/index.toml +3 -0
- package/harnesses/goose/headless/index.toml +3 -0
- package/harnesses/goose/index.toml +6 -0
- package/harnesses/goose/models/index.toml +3 -0
- package/harnesses/goose/security/index.toml +3 -0
- package/harnesses/goose/stats/index.toml +3 -0
- package/harnesses/goose/ui/index.toml +3 -0
- package/harnesses/goose/update/index.toml +3 -0
- package/harnesses/goose/version/index.toml +3 -0
- package/harnesses/goose/yolo/index.toml +3 -0
- package/harnesses/hermes/download/index.toml +3 -0
- package/harnesses/hermes/headless/index.toml +3 -0
- package/harnesses/hermes/index.toml +6 -0
- package/harnesses/hermes/models/index.toml +3 -0
- package/harnesses/hermes/security/index.toml +3 -0
- package/harnesses/hermes/stats/index.toml +3 -0
- package/harnesses/hermes/ui/index.toml +3 -0
- package/harnesses/hermes/update/index.toml +3 -0
- package/harnesses/hermes/version/index.toml +3 -0
- package/harnesses/hermes/yolo/index.toml +3 -0
- package/harnesses/jules/download/index.toml +3 -0
- package/harnesses/jules/headless/index.toml +3 -0
- package/harnesses/jules/index.toml +6 -0
- package/harnesses/jules/models/index.toml +3 -0
- package/harnesses/jules/security/index.toml +3 -0
- package/harnesses/jules/stats/index.toml +3 -0
- package/harnesses/jules/ui/index.toml +3 -0
- package/harnesses/jules/update/index.toml +3 -0
- package/harnesses/jules/version/index.toml +3 -0
- package/harnesses/jules/yolo/index.toml +3 -0
- package/harnesses/kilocode/download/index.toml +3 -0
- package/harnesses/kilocode/headless/index.toml +3 -0
- package/harnesses/kilocode/index.toml +6 -0
- package/harnesses/kilocode/models/index.toml +3 -0
- package/harnesses/kilocode/security/index.toml +3 -0
- package/harnesses/kilocode/stats/index.toml +3 -0
- package/harnesses/kilocode/ui/index.toml +3 -0
- package/harnesses/kilocode/update/index.toml +3 -0
- package/harnesses/kilocode/version/index.toml +3 -0
- package/harnesses/kilocode/yolo/index.toml +3 -0
- package/harnesses/letta/download/index.toml +3 -0
- package/harnesses/letta/headless/index.toml +3 -0
- package/harnesses/letta/index.toml +6 -0
- package/harnesses/letta/models/index.toml +3 -0
- package/harnesses/letta/security/index.toml +3 -0
- package/harnesses/letta/stats/index.toml +3 -0
- package/harnesses/letta/ui/index.toml +3 -0
- package/harnesses/letta/update/index.toml +3 -0
- package/harnesses/letta/version/index.toml +3 -0
- package/harnesses/letta/yolo/index.toml +3 -0
- package/harnesses/llxprt/download/index.toml +3 -0
- package/harnesses/llxprt/headless/index.toml +3 -0
- package/harnesses/llxprt/index.toml +6 -0
- package/harnesses/llxprt/models/index.toml +3 -0
- package/harnesses/llxprt/security/index.toml +3 -0
- package/harnesses/llxprt/stats/index.toml +3 -0
- package/harnesses/llxprt/ui/index.toml +3 -0
- package/harnesses/llxprt/update/index.toml +3 -0
- package/harnesses/llxprt/version/index.toml +3 -0
- package/harnesses/llxprt/yolo/index.toml +3 -0
- package/harnesses/nanocoder/download/index.toml +3 -0
- package/harnesses/nanocoder/headless/index.toml +3 -0
- package/harnesses/nanocoder/index.toml +6 -0
- package/harnesses/nanocoder/models/index.toml +3 -0
- package/harnesses/nanocoder/security/index.toml +3 -0
- package/harnesses/nanocoder/stats/index.toml +3 -0
- package/harnesses/nanocoder/ui/index.toml +3 -0
- package/harnesses/nanocoder/update/index.toml +3 -0
- package/harnesses/nanocoder/version/index.toml +3 -0
- package/harnesses/nanocoder/yolo/index.toml +3 -0
- package/harnesses/ollama/download/index.toml +3 -0
- package/harnesses/ollama/headless/index.toml +3 -0
- package/harnesses/ollama/index.toml +6 -0
- package/harnesses/ollama/models/index.toml +3 -0
- package/harnesses/ollama/security/index.toml +3 -0
- package/harnesses/ollama/stats/index.toml +3 -0
- package/harnesses/ollama/ui/index.toml +3 -0
- package/harnesses/ollama/update/index.toml +3 -0
- package/harnesses/ollama/version/index.toml +3 -0
- package/harnesses/ollama/yolo/index.toml +3 -0
- package/harnesses/openclaw/download/index.toml +3 -0
- package/harnesses/openclaw/headless/index.toml +3 -0
- package/harnesses/openclaw/index.toml +6 -0
- package/harnesses/openclaw/models/index.toml +3 -0
- package/harnesses/openclaw/security/index.toml +3 -0
- package/harnesses/openclaw/stats/index.toml +3 -0
- package/harnesses/openclaw/ui/index.toml +3 -0
- package/harnesses/openclaw/update/index.toml +3 -0
- package/harnesses/openclaw/version/index.toml +3 -0
- package/harnesses/openclaw/yolo/index.toml +3 -0
- package/harnesses/opencode/download/index.toml +3 -0
- package/harnesses/opencode/headless/index.toml +3 -0
- package/harnesses/opencode/index.toml +6 -0
- package/harnesses/opencode/models/index.toml +3 -0
- package/harnesses/opencode/security/index.toml +3 -0
- package/harnesses/opencode/stats/index.toml +3 -0
- package/harnesses/opencode/ui/index.toml +3 -0
- package/harnesses/opencode/update/index.toml +3 -0
- package/harnesses/opencode/version/index.toml +3 -0
- package/harnesses/opencode/yolo/index.toml +3 -0
- package/harnesses/pi/download/index.toml +3 -0
- package/harnesses/pi/headless/index.toml +3 -0
- package/harnesses/pi/index.toml +6 -0
- package/harnesses/pi/models/index.toml +3 -0
- package/harnesses/pi/security/index.toml +3 -0
- package/harnesses/pi/stats/index.toml +3 -0
- package/harnesses/pi/ui/index.toml +3 -0
- package/harnesses/pi/update/index.toml +3 -0
- package/harnesses/pi/version/index.toml +3 -0
- package/harnesses/pi/yolo/index.toml +3 -0
- package/harnesses/qwen/download/index.toml +3 -0
- package/harnesses/qwen/headless/index.toml +3 -0
- package/harnesses/qwen/index.toml +6 -0
- package/harnesses/qwen/models/index.toml +3 -0
- package/harnesses/qwen/security/index.toml +3 -0
- package/harnesses/qwen/stats/index.toml +3 -0
- package/harnesses/qwen/ui/index.toml +3 -0
- package/harnesses/qwen/update/index.toml +3 -0
- package/harnesses/qwen/version/index.toml +3 -0
- package/harnesses/qwen/yolo/index.toml +3 -0
- package/harnesses/vibe/download/index.toml +3 -0
- package/harnesses/vibe/headless/index.toml +3 -0
- package/harnesses/vibe/index.toml +6 -0
- package/harnesses/vibe/models/index.toml +3 -0
- package/harnesses/vibe/security/index.toml +3 -0
- package/harnesses/vibe/stats/index.toml +3 -0
- package/harnesses/vibe/ui/index.toml +3 -0
- package/harnesses/vibe/update/index.toml +3 -0
- package/harnesses/vibe/version/index.toml +3 -0
- package/harnesses/vibe/yolo/index.toml +3 -0
- package/package.json +9 -48
- package/config/evals/criteria.toml +0 -73
- package/config/evals/evaluations/aider-metrics.toml +0 -83
- package/config/evals/evaluations/amp-metrics.toml +0 -80
- package/config/evals/evaluations/claude-metrics.toml +0 -83
- package/config/evals/evaluations/code-metrics.toml +0 -80
- package/config/evals/evaluations/codex-metrics.toml +0 -91
- package/config/evals/evaluations/crush-metrics.toml +0 -82
- package/config/evals/evaluations/cursor-agent-metrics.toml +0 -80
- package/config/evals/evaluations/droid-metrics.toml +0 -80
- package/config/evals/evaluations/eca-metrics.toml +0 -80
- package/config/evals/evaluations/forge-metrics.toml +0 -80
- package/config/evals/evaluations/gemini-metrics.toml +0 -88
- package/config/evals/evaluations/goose-metrics.toml +0 -83
- package/config/evals/evaluations/jules-metrics.toml +0 -80
- package/config/evals/evaluations/kilocode-metrics.toml +0 -80
- package/config/evals/evaluations/letta-metrics.toml +0 -80
- package/config/evals/evaluations/llxprt-metrics.toml +0 -83
- package/config/evals/evaluations/nanocoder-metrics.toml +0 -80
- package/config/evals/evaluations/ollama-metrics.toml +0 -80
- package/config/evals/evaluations/opencode-metrics.toml +0 -83
- package/config/evals/evaluations/pi-metrics.toml +0 -80
- package/config/evals/evaluations/qwen-metrics.toml +0 -145
- package/config/evals/evaluations/vibe-metrics.toml +0 -80
- package/config/evals/x-factor.toml +0 -109
- package/config/tools/aider.toml +0 -78
- package/config/tools/amp.toml +0 -58
- package/config/tools/claude.toml +0 -52
- package/config/tools/code.toml +0 -40
- package/config/tools/codex.toml +0 -56
- package/config/tools/copilot.toml +0 -61
- package/config/tools/crush.toml +0 -58
- package/config/tools/cursor-agent.toml +0 -42
- package/config/tools/droid.toml +0 -46
- package/config/tools/eca.toml +0 -45
- package/config/tools/forge.toml +0 -44
- package/config/tools/gemini.toml +0 -52
- package/config/tools/goose.toml +0 -61
- package/config/tools/hermes.toml +0 -60
- package/config/tools/jules.toml +0 -38
- package/config/tools/kilocode.toml +0 -44
- package/config/tools/letta.toml +0 -44
- package/config/tools/llxprt.toml +0 -52
- package/config/tools/nanocoder.toml +0 -38
- package/config/tools/ollama.toml +0 -43
- package/config/tools/openclaw.toml +0 -44
- package/config/tools/opencode.toml +0 -50
- package/config/tools/pi.toml +0 -42
- package/config/tools/qwen.toml +0 -55
- package/config/tools/vibe.toml +0 -47
- package/config/user-preferences.toml +0 -41
- package/index.d.ts +0 -103
- package/scripts/build-binaries.js +0 -4
- package/scripts/copy-configs.js +0 -65
- package/scripts/postinstall.js +0 -350
package/README.md
CHANGED
|
@@ -1,174 +1,93 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
1
|
# Terminal Jarvis
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Manage Claude, Gemini, Qwen, and 22 more AI assistants from one terminal interface.
|
|
8
|
-
|
|
9
|
-
[](https://www.npmjs.com/package/terminal-jarvis)
|
|
10
|
-
[](https://crates.io/crates/terminal-jarvis)
|
|
11
|
-
[](https://github.com/BA-CalderonMorales/homebrew-terminal-jarvis)
|
|
12
|
-
[](https://opensource.org/licenses/MIT)
|
|
13
|
-
[](https://github.com/Piebald-AI/awesome-gemini-cli)
|
|
14
|
-
[](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/)
|
|
15
|
-
[](/coverage)
|
|
16
|
-
|
|
17
|
-
<img src="https://raw.githubusercontent.com/BA-CalderonMorales/terminal-jarvis/docs/screenshots_and_demos/screenshots_and_demo/promo_image_for_readme.png" alt="Terminal Jarvis Interface" width="100%">
|
|
18
|
-
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
> **Safe Testing Recommended**: Terminal Jarvis is a harness for AI coding tools that can modify files and execute commands. For the safest experience, we recommend testing in a remote development environment such as [GitHub Codespaces](https://github.com/codespaces), [Coder](https://coder.com/), [DevPod](https://devpod.sh/), or [Google Colab](https://colab.research.google.com/). These environments provide isolation from your local machine while offering full development capabilities.
|
|
24
|
-
|
|
25
|
-
---
|
|
3
|
+
Terminal Jarvis is being simplified into a small Rust CLI that switches between
|
|
4
|
+
coding-agent harnesses through data contracts instead of hard-coded tool logic.
|
|
26
5
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- [Quick Start](#quick-start)
|
|
30
|
-
- [What It Does](#what-it-does)
|
|
31
|
-
- [Documentation](#documentation)
|
|
32
|
-
- [Project Structure](#project-structure)
|
|
33
|
-
- [Development](#development)
|
|
34
|
-
- [Contributing](#contributing)
|
|
35
|
-
- [License](#license)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
> *Note: If these links do not respond in the GitHub Mobile app, try viewing in a browser. This is a known platform limitation.*
|
|
6
|
+
The v0.1 line is a breaking minor revision focused on the harness catalog,
|
|
7
|
+
local release checks, and compact distribution surfaces.
|
|
39
8
|
|
|
40
9
|
## Quick Start
|
|
41
10
|
|
|
42
11
|
```bash
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
cargo install terminal-jarvis # Cargo
|
|
49
|
-
brew tap ba-calderonmorales/terminal-jarvis && brew install terminal-jarvis # Homebrew
|
|
12
|
+
cargo run -- list
|
|
13
|
+
cargo run -- show codex
|
|
14
|
+
cargo run -- plan codex headless
|
|
15
|
+
cargo run -- use opencode
|
|
16
|
+
cargo run -- current
|
|
50
17
|
```
|
|
51
18
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
| Feature | Description |
|
|
55
|
-
|:--------|:------------|
|
|
56
|
-
| **Interactive Interface** | Beautiful terminal UI with ASCII art, themed menus, and keyboard navigation for a polished command-line experience. |
|
|
57
|
-
| **25 AI Tools Supported** | Claude, Gemini, Qwen, OpenCode, Codex, Aider, Goose, Amp, Crush, LLXPRT, and many more - all manageable from a single interface. |
|
|
58
|
-
| **Integrated Installation** | Install, update, or uninstall any supported AI tool directly from the menu without leaving the terminal. |
|
|
59
|
-
| **Session Continuity** | Preserves your terminal session state during browser-based authentication flows. Currently in development with expanding coverage. |
|
|
60
|
-
|
|
61
|
-
<p align="center">
|
|
62
|
-
<img src="https://raw.githubusercontent.com/BA-CalderonMorales/terminal-jarvis/docs/screenshots_and_demos/screenshots_and_demo/Terminal%20Jarvis%20Demo.gif" alt="Demo" width="100%">
|
|
63
|
-
</p>
|
|
64
|
-
|
|
65
|
-
## Documentation
|
|
66
|
-
|
|
67
|
-
Full guides at **[Terminal Jarvis Docs](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/)**
|
|
19
|
+
Run the verification gate with:
|
|
68
20
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
| [Installation](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/quick_start/installation/) | Step-by-step platform setup for NPM, Cargo, and Homebrew with troubleshooting tips for common issues. |
|
|
72
|
-
| [AI Tools](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/quick_start/ai-tools/) | Detailed overview of all 25 supported AI coding assistants including authentication requirements and capabilities. |
|
|
73
|
-
| [Configuration](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/quick_start/configuration/) | Customize themes, keybindings, default tools, and environment variables to match your workflow. |
|
|
74
|
-
| [Architecture](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/details/architecture/) | Technical deep-dive into the Rust codebase, module organization, and design decisions. |
|
|
75
|
-
|
|
76
|
-
## Project Structure
|
|
77
|
-
|
|
78
|
-
<details open>
|
|
79
|
-
<summary><strong>Expand/Collapse</strong></summary>
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
terminal-jarvis/
|
|
83
|
-
├── src/ # Rust application
|
|
84
|
-
│ ├── main.rs # Entry point
|
|
85
|
-
│ ├── cli.rs # CLI definitions
|
|
86
|
-
│ ├── cli_logic/ # Business logic (19 modules)
|
|
87
|
-
│ ├── auth_manager/ # Authentication (8 modules)
|
|
88
|
-
│ ├── config/ # Configuration (6 modules)
|
|
89
|
-
│ ├── services/ # External integrations (6 modules)
|
|
90
|
-
│ ├── tools/ # Tool management (14 modules)
|
|
91
|
-
│ ├── theme/ # UI theming (9 modules)
|
|
92
|
-
│ └── api/ # API framework (4 modules)
|
|
93
|
-
│
|
|
94
|
-
├── config/ # Configuration files
|
|
95
|
-
│ ├── tools/ # Per-tool configs (*.toml)
|
|
96
|
-
│ ├── evals/ # Evaluation metrics
|
|
97
|
-
│ └── *.toml # Global settings
|
|
98
|
-
│
|
|
99
|
-
├── scripts/ # Automation
|
|
100
|
-
│ ├── cicd/ # CI/CD (local-ci.sh, local-cd.sh)
|
|
101
|
-
│ └── verify/ # Verification feedback loop
|
|
102
|
-
│
|
|
103
|
-
├── .github/ # GitHub integrations
|
|
104
|
-
│ └── skills/ # AI agent skills (17 modules)
|
|
105
|
-
│ ├── verification/ # Quality verification
|
|
106
|
-
│ ├── release-checklist/ # Pre-release automation
|
|
107
|
-
│ ├── qa-testing/ # Minimal QA branch testing
|
|
108
|
-
│ ├── deployment/ # Release workflows
|
|
109
|
-
│ └── ... # 13 more skills
|
|
110
|
-
│
|
|
111
|
-
├── tests/ # Rust tests (cargo test)
|
|
112
|
-
├── e2e/ # E2E tests (TypeScript/Vitest)
|
|
113
|
-
├── npm/terminal-jarvis/ # NPM wrapper
|
|
114
|
-
└── homebrew/ # Homebrew Formula
|
|
21
|
+
```bash
|
|
22
|
+
scripts/verify.sh
|
|
115
23
|
```
|
|
116
24
|
|
|
117
|
-
|
|
25
|
+
Run the stronger local gate with security and package checks:
|
|
118
26
|
|
|
119
|
-
|
|
27
|
+
```bash
|
|
28
|
+
scripts/local-ci.sh
|
|
29
|
+
```
|
|
120
30
|
|
|
121
|
-
|
|
31
|
+
Exercise the local release asset shape without tagging or publishing:
|
|
122
32
|
|
|
123
|
-
|
|
33
|
+
```bash
|
|
34
|
+
scripts/local-cd.sh --check-auth
|
|
35
|
+
```
|
|
124
36
|
|
|
125
|
-
|
|
126
|
-
|:------------|:------------|
|
|
127
|
-
| [GitHub Codespaces](https://github.com/codespaces/new?template_repository=BA-CalderonMorales/terminal-jarvis) | Zero-setup cloud development with VS Code integration. Pre-configured with all dependencies. |
|
|
128
|
-
| [Coder](https://coder.com/) | Self-hosted or cloud workspaces with full IDE support. Great for teams with custom infrastructure. |
|
|
129
|
-
| [DevPod](https://devpod.sh/) | Open-source, client-only solution that works with any cloud provider or local Docker. |
|
|
130
|
-
| [Google Colab](https://colab.research.google.com/) | Free cloud notebooks with terminal access. Useful for quick experimentation. |
|
|
37
|
+
## Development Environment
|
|
131
38
|
|
|
132
|
-
|
|
39
|
+
Prefer a remote or disposable Linux workspace for Terminal Jarvis development:
|
|
40
|
+
Codespaces, a short-lived VM/container, or an SSH development host. Coding-agent
|
|
41
|
+
harnesses install binaries, inspect repositories, and can run delegated commands,
|
|
42
|
+
so avoid testing new harness plans directly on a daily-driver machine.
|
|
133
43
|
|
|
134
|
-
|
|
44
|
+
Keep provider tokens scoped to the work, mount only the repositories being
|
|
45
|
+
tested, and treat `headless`, `install`, `update`, and `yolo` capability plans as
|
|
46
|
+
commands to review before execution.
|
|
135
47
|
|
|
136
|
-
|
|
48
|
+
## New Layout
|
|
137
49
|
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
#
|
|
143
|
-
|
|
144
|
-
./scripts/verify/verify-quality.sh # Clippy + formatting
|
|
145
|
-
./scripts/verify/verify-tests.sh # Unit + integration tests
|
|
146
|
-
./scripts/verify/verify-cli.sh # CLI smoke tests
|
|
50
|
+
```text
|
|
51
|
+
terminal-jarvis/
|
|
52
|
+
├── docs/ # redesign notes and migration guidance
|
|
53
|
+
├── harnesses/ # data contracts for coding-agent harness capabilities
|
|
54
|
+
├── src/ # slim Rust CLI
|
|
55
|
+
└── tests/ # behavior and contract tests
|
|
147
56
|
```
|
|
148
57
|
|
|
149
|
-
|
|
58
|
+
The initial catalog promotes 25 coding-agent harnesses into a shared descriptor
|
|
59
|
+
shape. Each harness owns the same capability folders:
|
|
150
60
|
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
cd e2e && npm test # End-to-end tests with Vitest
|
|
61
|
+
```text
|
|
62
|
+
harnesses/<harness>/{download,update,headless,version,stats,models,security,yolo,ui}/index.toml
|
|
154
63
|
```
|
|
155
64
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
## License
|
|
65
|
+
The CLI loads those files, validates that every harness exposes the full
|
|
66
|
+
capability contract, prints setup guidance, stores the active harness, and can
|
|
67
|
+
run a selected capability command when the user asks for it.
|
|
161
68
|
|
|
162
|
-
|
|
69
|
+
Auth setup is tracked at the harness level. A harness can require no key, one of
|
|
70
|
+
several provider keys, or all listed keys. That keeps setup guidance accurate
|
|
71
|
+
without forcing users to configure every provider a tool supports.
|
|
163
72
|
|
|
164
|
-
|
|
73
|
+
## Design Goals
|
|
165
74
|
|
|
166
|
-
|
|
75
|
+
- Keep Rust source files at 100 lines or fewer.
|
|
76
|
+
- Keep dependencies at zero until a dependency proves its value.
|
|
77
|
+
- Keep user context local and explicit.
|
|
78
|
+
- Prefer harness data over Rust conditionals.
|
|
79
|
+
- Keep the v0.1 root easy to inspect while this minor revision breaks old
|
|
80
|
+
interfaces deliberately.
|
|
81
|
+
- Aim for 90 percent or better line coverage and mutation score as the CLI
|
|
82
|
+
stabilizes.
|
|
167
83
|
|
|
168
|
-
|
|
169
|
-
**[Issues](https://github.com/BA-CalderonMorales/terminal-jarvis/issues)** |
|
|
170
|
-
**[Changelog](CHANGELOG.md)**
|
|
84
|
+
## Release Path
|
|
171
85
|
|
|
172
|
-
|
|
86
|
+
Cargo is the active development surface. Minimal npm and Homebrew source-build
|
|
87
|
+
surfaces are included for smoke testing, while `scripts/package-release.sh`
|
|
88
|
+
builds versioned archives, checksums, npm staging files, and generated Homebrew
|
|
89
|
+
formula output. Tagged releases use `.github/workflows/cd-multiplatform.yml` to
|
|
90
|
+
publish the crate, GitHub release assets, Homebrew tap update, and npm package.
|
|
173
91
|
|
|
174
|
-
|
|
92
|
+
See [docs/release-plan.md](docs/release-plan.md) for the v0.1 release checklist and
|
|
93
|
+
auth boundaries.
|
package/bin/terminal-jarvis
CHANGED
|
@@ -1,33 +1,32 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const { existsSync } = require("node:fs");
|
|
3
|
+
const { dirname, resolve } = require("node:path");
|
|
4
|
+
const { spawnSync } = require("node:child_process");
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
const args = process.argv.slice(2);
|
|
7
|
+
const here = dirname(__filename);
|
|
8
|
+
const repo = resolve(here, "../../..");
|
|
9
|
+
const candidates = [
|
|
10
|
+
process.env.TERMINAL_JARVIS_BIN,
|
|
11
|
+
resolve(here, "terminal-jarvis-bin"),
|
|
12
|
+
resolve(repo, "target/release/terminal-jarvis"),
|
|
13
|
+
resolve(repo, "target/debug/terminal-jarvis"),
|
|
14
|
+
].filter(Boolean);
|
|
6
15
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
[[ $SCRIPT_PATH != /* ]] && SCRIPT_PATH="$SCRIPT_DIR/$SCRIPT_PATH"
|
|
14
|
-
done
|
|
15
|
-
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
16
|
+
for (const binary of candidates) {
|
|
17
|
+
if (existsSync(binary)) {
|
|
18
|
+
const result = spawnSync(binary, args, { stdio: "inherit" });
|
|
19
|
+
process.exit(result.status ?? 1);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
16
22
|
|
|
17
|
-
|
|
23
|
+
if (existsSync(resolve(repo, "Cargo.toml"))) {
|
|
24
|
+
const result = spawnSync("cargo", ["run", "--quiet", "--", ...args], {
|
|
25
|
+
cwd: repo,
|
|
26
|
+
stdio: "inherit",
|
|
27
|
+
});
|
|
28
|
+
process.exit(result.status ?? 1);
|
|
29
|
+
}
|
|
18
30
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
echo "[terminal-jarvis] Binary not found. Running postinstall..." >&2
|
|
22
|
-
node "$SCRIPT_DIR/../scripts/postinstall.js" || true
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
# Verify binary exists
|
|
26
|
-
if [ ! -x "$BIN_PATH" ]; then
|
|
27
|
-
echo "[terminal-jarvis] Error: Binary is missing or not executable." >&2
|
|
28
|
-
echo "[terminal-jarvis] Try reinstalling: npm install terminal-jarvis" >&2
|
|
29
|
-
exit 1
|
|
30
|
-
fi
|
|
31
|
-
|
|
32
|
-
# Execute the binary
|
|
33
|
-
exec "$BIN_PATH" "$@"
|
|
31
|
+
console.error("terminal-jarvis binary is missing; reinstall or set TERMINAL_JARVIS_BIN");
|
|
32
|
+
process.exit(1);
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
name = "aider"
|
|
2
|
+
display = "Aider"
|
|
3
|
+
description = "AI pair programming assistant that edits code in your local git repository"
|
|
4
|
+
binary = "aider"
|
|
5
|
+
env_mode = "any"
|
|
6
|
+
env = ["OPENROUTER_API_KEY", "OPENAI_API_KEY", "ANTHROPIC_API_KEY", "GEMINI_API_KEY", "AZURE_API_KEY"]
|