aether-code 0.16.0 → 0.16.2
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/bin/aether-code.js +1 -1
- package/package.json +1 -1
- package/src/repl.js +22 -11
package/bin/aether-code.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aether-code",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.2",
|
|
4
4
|
"description": "Uncensored AI coding agent for your terminal — Claude Code alternative with MCP support. Reads code, writes files, runs commands. Drives IDA Pro, Roblox Studio, Wireshark, Blender, and any MCP server. No refusal layer.",
|
|
5
5
|
"homepage": "https://trynoguard.com",
|
|
6
6
|
"repository": {
|
package/src/repl.js
CHANGED
|
@@ -17,7 +17,7 @@ import { c, errorLine } from "./render.js";
|
|
|
17
17
|
import { checkForUpdate } from "./update-check.js";
|
|
18
18
|
import { promptBoxed, EXIT_SIGNAL } from "./ink-input.js";
|
|
19
19
|
|
|
20
|
-
const VERSION = "0.16.
|
|
20
|
+
const VERSION = "0.16.2";
|
|
21
21
|
const MODEL_NAME = "Aether Core";
|
|
22
22
|
|
|
23
23
|
const SHORTCUTS = `
|
|
@@ -84,14 +84,28 @@ export async function runRepl({ cwd: initialCwd, autoYes: initialAutoYes, maxTur
|
|
|
84
84
|
const updateNudge = await updatePromise;
|
|
85
85
|
if (updateNudge) console.log(updateNudge + "\n");
|
|
86
86
|
|
|
87
|
-
// Input: the Ink boxed input (bordered, Claude-style) when
|
|
88
|
-
// with a readline fallback
|
|
89
|
-
//
|
|
87
|
+
// Input: the Ink boxed input (bordered, Claude-style) when the terminal
|
|
88
|
+
// renders it cleanly, with a readline fallback otherwise.
|
|
89
|
+
//
|
|
90
|
+
// The legacy Windows console (cmd.exe / conhost) mishandles Ink's live
|
|
91
|
+
// redraw + raw-mode: typed characters ghost (the console echoes what Ink
|
|
92
|
+
// already drew) and the box border tears on each keystroke. Windows Terminal
|
|
93
|
+
// (sets WT_SESSION) and non-Windows render Ink correctly. So we default to
|
|
94
|
+
// the clean prompt on legacy Windows console; AETHER_INK=1 forces Ink there
|
|
95
|
+
// for anyone who wants to try it, AETHER_NO_INK=1 forces the plain prompt.
|
|
90
96
|
const inputHistory = [];
|
|
91
|
-
const
|
|
97
|
+
const legacyWinConsole = process.platform === "win32" && !process.env.WT_SESSION;
|
|
98
|
+
const useInk =
|
|
99
|
+
!!process.stdin.isTTY &&
|
|
100
|
+
process.env.AETHER_NO_INK !== "1" &&
|
|
101
|
+
(process.env.AETHER_INK === "1" || !legacyWinConsole);
|
|
92
102
|
let inkBroken = false;
|
|
93
103
|
let rl = null;
|
|
94
104
|
|
|
105
|
+
// The Ink box carries its own status bar; the plain prompt doesn't, so show a
|
|
106
|
+
// one-line hint up front when we won't be using Ink.
|
|
107
|
+
if (!useInk) console.log(` ${c.cyan("/help")}${c.dim(" shortcuts")} ${c.cyan("/exit")}${c.dim(" quit")}\n`);
|
|
108
|
+
|
|
95
109
|
function ensureReadline() {
|
|
96
110
|
if (rl) return rl;
|
|
97
111
|
rl = readline.createInterface({ input: process.stdin, output: process.stdout, historySize: 200 });
|
|
@@ -266,13 +280,10 @@ function printBanner(state) {
|
|
|
266
280
|
console.log(` ${c.gray(mode)}${state.balance != null ? c.gray(` · ${state.balance.toLocaleString()} credits`) : ""}`);
|
|
267
281
|
console.log(` ${c.gray(shortenPath(state.cwd, W - 2))}`);
|
|
268
282
|
console.log(rule);
|
|
269
|
-
|
|
270
|
-
// Bottom status bar: shortcuts on the left, mode on the right (Claude-style).
|
|
271
|
-
const left = ` ${c.cyan("/help")}${c.dim(" shortcuts")} ${c.cyan("/exit")}${c.dim(" quit")}`;
|
|
272
|
-
const right = `${c.cyan(mode)}${c.dim(" · ")}${c.gray(MODEL_NAME)} `;
|
|
273
|
-
const gap = Math.max(3, cols - visLen(left) - visLen(right) - 1);
|
|
274
|
-
console.log(left + " ".repeat(gap) + right);
|
|
275
283
|
console.log("");
|
|
284
|
+
// No bottom status bar here — the Ink input box renders its own persistent
|
|
285
|
+
// status bar beneath it (one bar, Claude-style). The readline fallback prints
|
|
286
|
+
// a one-line hint instead (see runRepl).
|
|
276
287
|
}
|
|
277
288
|
|
|
278
289
|
function printStatusLine(state) {
|