terminal-jarvis 0.1.0 → 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 +93 -0
- package/bin/terminal-jarvis +32 -0
- 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 +21 -16
- package/.eslintrc.json +0 -22
- package/lib/index.d.ts +0 -3
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -16
- package/lib/index.js.map +0 -1
- package/src/index.ts +0 -41
- package/tsconfig.json +0 -18
package/README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Terminal Jarvis
|
|
2
|
+
|
|
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.
|
|
5
|
+
|
|
6
|
+
The v0.1 line is a breaking minor revision focused on the harness catalog,
|
|
7
|
+
local release checks, and compact distribution surfaces.
|
|
8
|
+
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
cargo run -- list
|
|
13
|
+
cargo run -- show codex
|
|
14
|
+
cargo run -- plan codex headless
|
|
15
|
+
cargo run -- use opencode
|
|
16
|
+
cargo run -- current
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Run the verification gate with:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
scripts/verify.sh
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Run the stronger local gate with security and package checks:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
scripts/local-ci.sh
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Exercise the local release asset shape without tagging or publishing:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
scripts/local-cd.sh --check-auth
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Development Environment
|
|
38
|
+
|
|
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.
|
|
43
|
+
|
|
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.
|
|
47
|
+
|
|
48
|
+
## New Layout
|
|
49
|
+
|
|
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
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The initial catalog promotes 25 coding-agent harnesses into a shared descriptor
|
|
59
|
+
shape. Each harness owns the same capability folders:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
harnesses/<harness>/{download,update,headless,version,stats,models,security,yolo,ui}/index.toml
|
|
63
|
+
```
|
|
64
|
+
|
|
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.
|
|
68
|
+
|
|
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.
|
|
72
|
+
|
|
73
|
+
## Design Goals
|
|
74
|
+
|
|
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.
|
|
83
|
+
|
|
84
|
+
## Release Path
|
|
85
|
+
|
|
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.
|
|
91
|
+
|
|
92
|
+
See [docs/release-plan.md](docs/release-plan.md) for the v0.1 release checklist and
|
|
93
|
+
auth boundaries.
|
|
@@ -0,0 +1,32 @@
|
|
|
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");
|
|
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);
|
|
15
|
+
|
|
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
|
+
}
|
|
22
|
+
|
|
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
|
+
}
|
|
30
|
+
|
|
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"]
|