aether-code 0.16.0 → 0.16.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.
@@ -26,7 +26,7 @@ import {
26
26
  import readline from "node:readline";
27
27
  import { c, errorLine, divider } from "../src/render.js";
28
28
 
29
- const VERSION = "0.16.0";
29
+ const VERSION = "0.16.1";
30
30
 
31
31
  /**
32
32
  * Try to start MCP servers from ~/.aether/mcp.json. Returns a started
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aether-code",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
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.0";
20
+ const VERSION = "0.16.1";
21
21
  const MODEL_NAME = "Aether Core";
22
22
 
23
23
  const SHORTCUTS = `
@@ -92,6 +92,10 @@ export async function runRepl({ cwd: initialCwd, autoYes: initialAutoYes, maxTur
92
92
  let inkBroken = false;
93
93
  let rl = null;
94
94
 
95
+ // The Ink box carries its own status bar; the plain prompt doesn't, so show a
96
+ // one-line hint up front when we won't be using Ink.
97
+ if (!useInk) console.log(` ${c.cyan("/help")}${c.dim(" shortcuts")} ${c.cyan("/exit")}${c.dim(" quit")}\n`);
98
+
95
99
  function ensureReadline() {
96
100
  if (rl) return rl;
97
101
  rl = readline.createInterface({ input: process.stdin, output: process.stdout, historySize: 200 });
@@ -266,13 +270,10 @@ function printBanner(state) {
266
270
  console.log(` ${c.gray(mode)}${state.balance != null ? c.gray(` · ${state.balance.toLocaleString()} credits`) : ""}`);
267
271
  console.log(` ${c.gray(shortenPath(state.cwd, W - 2))}`);
268
272
  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
273
  console.log("");
274
+ // No bottom status bar here — the Ink input box renders its own persistent
275
+ // status bar beneath it (one bar, Claude-style). The readline fallback prints
276
+ // a one-line hint instead (see runRepl).
276
277
  }
277
278
 
278
279
  function printStatusLine(state) {