aether-code 0.33.7 → 0.33.9
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 +38 -38
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.33.
|
|
31
|
+
const VERSION = "0.33.9";
|
|
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.33.
|
|
3
|
+
"version": "0.33.9",
|
|
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.33.
|
|
12
|
+
const VERSION = "0.33.9";
|
|
13
13
|
const MODEL_NAME = "Aether Core";
|
|
14
14
|
|
|
15
15
|
const MODEL_ALIASES = {
|
|
@@ -238,6 +238,13 @@ function padRight(str, width) {
|
|
|
238
238
|
return str + " ".repeat(need);
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
+
function centerIn(str, width) {
|
|
242
|
+
const visible = stripAnsi(str).length;
|
|
243
|
+
if (visible >= width) return str;
|
|
244
|
+
const left = Math.floor((width - visible) / 2);
|
|
245
|
+
return " ".repeat(left) + str;
|
|
246
|
+
}
|
|
247
|
+
|
|
241
248
|
function printBanner(state) {
|
|
242
249
|
const cols = process.stdout.columns || 80;
|
|
243
250
|
const credits = state.balance != null ? `${state.balance.toLocaleString()} credits` : "";
|
|
@@ -252,53 +259,46 @@ function printBanner(state) {
|
|
|
252
259
|
if (plan) modelParts.push(c.cyan(plan));
|
|
253
260
|
const modelLine = modelParts.join(c.dim(" \xB7 "));
|
|
254
261
|
|
|
262
|
+
const ruleW = Math.min(cols - 2, 76);
|
|
255
263
|
const leftW = Math.min(Math.floor(cols * 0.5), 45);
|
|
264
|
+
const twoCol = cols >= 70;
|
|
256
265
|
|
|
257
|
-
//
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
const
|
|
261
|
-
c.dim("──") + " " + c.bold("Aether Code") + " " + c.dim("v" + VERSION),
|
|
262
|
-
" " + c.bold("Welcome back!"),
|
|
263
|
-
"",
|
|
264
|
-
` ${C}${B} ${C}`,
|
|
265
|
-
` ${B}${C} ${B}`,
|
|
266
|
-
` ${C}${B} ${C}`,
|
|
267
|
-
];
|
|
268
|
-
|
|
269
|
-
const pairedRight = [
|
|
270
|
-
c.bold("Tips for getting started"),
|
|
271
|
-
c.dim("Ask Aether to build, debug, or refactor code"),
|
|
272
|
-
"",
|
|
273
|
-
c.yellow("What's new"),
|
|
274
|
-
c.dim("Creative thinking words while processing"),
|
|
275
|
-
c.dim("Prompt pins to bottom, content scrolls up"),
|
|
276
|
-
];
|
|
266
|
+
// Colored top rule with version (cyan — matches brand)
|
|
267
|
+
const titleText = " Aether Code v" + VERSION + " ";
|
|
268
|
+
const titleRuleRight = Math.max(0, ruleW - 3 - titleText.length);
|
|
269
|
+
const topRule = c.cyan("──" + titleText + "─".repeat(titleRuleRight));
|
|
277
270
|
|
|
278
|
-
const twoCol = cols >= 70;
|
|
279
271
|
let printed = 0;
|
|
272
|
+
const pr = (s) => { console.log(s); printed++; };
|
|
280
273
|
|
|
281
|
-
|
|
282
|
-
|
|
274
|
+
pr("");
|
|
275
|
+
pr(" " + topRule);
|
|
276
|
+
pr("");
|
|
283
277
|
|
|
284
278
|
if (twoCol) {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
}
|
|
279
|
+
// Left column: centered welcome + logo. Right column: tips + changelog.
|
|
280
|
+
pr(" " + padRight(centerIn(c.bold("Welcome back!"), leftW), leftW) + c.bold("Tips for getting started"));
|
|
281
|
+
pr(" " + padRight("", leftW) + c.dim("Ask Aether to build, debug, or refactor code"));
|
|
282
|
+
pr(" " + padRight(centerIn(`${C}${B} ${C}`, leftW), leftW) + "");
|
|
283
|
+
pr(" " + padRight(centerIn(`${B}${C} ${B}`, leftW), leftW) + c.yellow("What's new"));
|
|
284
|
+
pr(" " + padRight(centerIn(`${C}${B} ${C}`, leftW), leftW) + c.dim("Creative thinking words while processing"));
|
|
285
|
+
pr(" " + padRight("", leftW) + c.dim("Prompt pins to bottom, content scrolls up"));
|
|
286
|
+
pr("");
|
|
287
|
+
// Model + path: centered under left column (full-width rows)
|
|
288
|
+
pr(centerIn(modelLine, leftW));
|
|
289
|
+
pr(centerIn(c.dim(shortenPath(state.cwd, 50)), leftW));
|
|
289
290
|
} else {
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}
|
|
291
|
+
pr(centerIn(c.bold("Welcome back!"), cols - 4));
|
|
292
|
+
pr("");
|
|
293
|
+
pr(centerIn(`${C}${B} ${C}`, cols - 4));
|
|
294
|
+
pr(centerIn(`${B}${C} ${B}`, cols - 4));
|
|
295
|
+
pr(centerIn(`${C}${B} ${C}`, cols - 4));
|
|
296
|
+
pr("");
|
|
297
|
+
pr(centerIn(modelLine, cols - 4));
|
|
298
|
+
pr(centerIn(c.dim(shortenPath(state.cwd, 50)), cols - 4));
|
|
294
299
|
}
|
|
295
300
|
|
|
296
|
-
|
|
297
|
-
console.log("");
|
|
298
|
-
console.log(" " + modelLine);
|
|
299
|
-
console.log(" " + c.dim(shortenPath(state.cwd, 60)));
|
|
300
|
-
console.log("");
|
|
301
|
-
printed += 4;
|
|
301
|
+
pr("");
|
|
302
302
|
|
|
303
303
|
return printed;
|
|
304
304
|
}
|