aether-code 0.33.9 → 0.34.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/bin/aether-code.js +1 -1
- package/package.json +1 -1
- package/src/repl.js +25 -16
package/bin/aether-code.js
CHANGED
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
import readline from "node:readline";
|
|
29
29
|
import { c, errorLine, divider, setTerminalTitle } from "../src/render.js";
|
|
30
30
|
|
|
31
|
-
const VERSION = "0.
|
|
31
|
+
const VERSION = "0.34.1";
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* 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.
|
|
3
|
+
"version": "0.34.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
|
@@ -9,7 +9,7 @@ import { c, errorLine } from "./render.js";
|
|
|
9
9
|
import { autoUpdate } from "./update-check.js";
|
|
10
10
|
import { promptBox, EXIT_SIGNAL } from "./box-input.js";
|
|
11
11
|
|
|
12
|
-
const VERSION = "0.
|
|
12
|
+
const VERSION = "0.34.1";
|
|
13
13
|
const MODEL_NAME = "Aether Core";
|
|
14
14
|
|
|
15
15
|
const MODEL_ALIASES = {
|
|
@@ -90,9 +90,13 @@ export async function runRepl({ cwd: initialCwd, autoYes: initialAutoYes, unsafe
|
|
|
90
90
|
|
|
91
91
|
// Push prompt to bottom of screen — big empty gap like Claude Code
|
|
92
92
|
const rows = process.stdout.rows || 24;
|
|
93
|
+
const cols = process.stdout.columns || 80;
|
|
94
|
+
const promptRuleW = Math.min(cols - 2, 76);
|
|
93
95
|
const promptLines = 2; // "> " input + status bar
|
|
94
|
-
const
|
|
96
|
+
const bottomRuleLine = 1;
|
|
97
|
+
const filler = Math.max(0, rows - bannerLineCount - extraLines - promptLines - bottomRuleLine - 1);
|
|
95
98
|
for (let i = 0; i < filler; i++) console.log("");
|
|
99
|
+
console.log(c.cyan(" " + "─".repeat(promptRuleW)));
|
|
96
100
|
|
|
97
101
|
const inputHistory = [];
|
|
98
102
|
|
|
@@ -263,31 +267,36 @@ function printBanner(state) {
|
|
|
263
267
|
const leftW = Math.min(Math.floor(cols * 0.5), 45);
|
|
264
268
|
const twoCol = cols >= 70;
|
|
265
269
|
|
|
266
|
-
// Colored top rule with version (cyan — matches brand)
|
|
267
270
|
const titleText = " Aether Code v" + VERSION + " ";
|
|
268
271
|
const titleRuleRight = Math.max(0, ruleW - 3 - titleText.length);
|
|
269
272
|
const topRule = c.cyan("──" + titleText + "─".repeat(titleRuleRight));
|
|
270
273
|
|
|
274
|
+
const VL = c.cyan("│");
|
|
275
|
+
|
|
271
276
|
let printed = 0;
|
|
272
277
|
const pr = (s) => { console.log(s); printed++; };
|
|
273
278
|
|
|
274
279
|
pr("");
|
|
275
280
|
pr(" " + topRule);
|
|
276
|
-
|
|
281
|
+
|
|
282
|
+
const bottomRule = c.cyan(" " + "─".repeat(ruleW));
|
|
277
283
|
|
|
278
284
|
if (twoCol) {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
285
|
+
const row = (left, right) => {
|
|
286
|
+
pr(" " + padRight(left, leftW) + " " + VL + " " + right);
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
row(centerIn(c.bold("Welcome back!"), leftW), c.bold("Tips for getting started"));
|
|
290
|
+
row("", c.dim("Ask Aether to build, debug, or refactor code"));
|
|
291
|
+
row(centerIn(`${C}${B} ${C}`, leftW), "");
|
|
292
|
+
row(centerIn(`${B}${C} ${B}`, leftW), c.yellow("What's new"));
|
|
293
|
+
row(centerIn(`${C}${B} ${C}`, leftW), c.dim("Creative thinking words while processing"));
|
|
294
|
+
row("", c.dim("Prompt pins to bottom, content scrolls up"));
|
|
295
|
+
row("", "");
|
|
296
|
+
row(centerIn(modelLine, leftW), "");
|
|
297
|
+
row(centerIn(c.dim(shortenPath(state.cwd, 50)), leftW), "");
|
|
290
298
|
} else {
|
|
299
|
+
pr("");
|
|
291
300
|
pr(centerIn(c.bold("Welcome back!"), cols - 4));
|
|
292
301
|
pr("");
|
|
293
302
|
pr(centerIn(`${C}${B} ${C}`, cols - 4));
|
|
@@ -298,7 +307,7 @@ function printBanner(state) {
|
|
|
298
307
|
pr(centerIn(c.dim(shortenPath(state.cwd, 50)), cols - 4));
|
|
299
308
|
}
|
|
300
309
|
|
|
301
|
-
pr(
|
|
310
|
+
pr(bottomRule);
|
|
302
311
|
|
|
303
312
|
return printed;
|
|
304
313
|
}
|