rantera 0.1.3 → 0.1.5

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/dist/ui.js DELETED
@@ -1,326 +0,0 @@
1
- import chalk from "chalk";
2
- import ora from "ora";
3
- // ─── Palette ──────────────────────────────────────────────────────────────────
4
- const GREEN = "#006B3F";
5
- const GOLD = "#FCD116";
6
- const RED = "#CE1126";
7
- const VERSION = "0.1.2";
8
- let spinner = null;
9
- // ─── Models ───────────────────────────────────────────────────────────────────
10
- export const MODELS = [
11
- { id: "hira", display: "Hira", desc: "The motherland's voice", available: true },
12
- { id: "tera", display: "Tera", desc: "Orchestrator — routes to best specialist", available: false },
13
- { id: "akili", display: "Akili", desc: "Code intelligence", available: false },
14
- { id: "ilimi", display: "Ilimi", desc: "Knowledge & research", available: false },
15
- ];
16
- // ─── Box drawing ──────────────────────────────────────────────────────────────
17
- function visLen(s) {
18
- return s.replace(/\x1b\[[0-9;]*m/g, "").length;
19
- }
20
- const BOX_W = 64;
21
- function boxTop(title) {
22
- const fill = Math.max(0, BOX_W - 3 - title.length);
23
- return (chalk.hex(GOLD).dim("╭─ ") +
24
- chalk.white.bold(title) +
25
- chalk.hex(GOLD).dim(" " + "─".repeat(fill) + "╮"));
26
- }
27
- function boxRow(row) {
28
- const pad = Math.max(0, BOX_W - 2 - visLen(row));
29
- return chalk.hex(GOLD).dim("│") + " " + row + " ".repeat(pad) + " " + chalk.hex(GOLD).dim("│");
30
- }
31
- function boxBottom() {
32
- return chalk.hex(GOLD).dim("╰" + "─".repeat(BOX_W) + "╯");
33
- }
34
- // ─── Flag mosaic ──────────────────────────────────────────────────────────────
35
- const FLAGS = [
36
- ["#CE1126", "#FCD116", "#078930"], // Ethiopia
37
- ["#006B3F", "#FFFFFF", "#006B3F"], // Nigeria
38
- ["#000000", "#CE1126", "#006600"], // Kenya
39
- ["#078930", "#FCD116", "#CE1126"], // Cameroon
40
- ["#DE3831", "#FFB612", "#007A4D"], // South Africa
41
- ["#CE1126", "#FFFFFF", "#000000"], // Egypt
42
- ["#3A75C4", "#000000", "#1EB53A"], // Tanzania
43
- ["#FCDC04", "#DE3108", "#000000"], // Uganda
44
- ["#00853F", "#FDEF42", "#E31B23"], // Senegal
45
- ["#007FFF", "#F7D618", "#CE1126"], // DRC
46
- ["#FAD201", "#19B3EE", "#20603D"], // Rwanda
47
- ["#CC0000", "#000000", "#FCDD00"], // Angola
48
- ];
49
- function flagMosaicRows() {
50
- let row1 = " ";
51
- let row2 = " ";
52
- for (const [top, mid, bot] of FLAGS) {
53
- row1 += chalk.bgHex(mid).hex(top)("▀▀▀▀");
54
- row2 += chalk.bgHex(bot).hex(mid)("▀▀▀▀");
55
- }
56
- return [row1, row2];
57
- }
58
- // ─── Kente divider ────────────────────────────────────────────────────────────
59
- function kenteDivider(units = 28) {
60
- let row = " ";
61
- for (let i = 0; i < units; i++) {
62
- switch (i % 4) {
63
- case 0:
64
- row += chalk.hex(GOLD)("◆");
65
- break;
66
- case 1:
67
- row += chalk.dim("─");
68
- break;
69
- case 2:
70
- row += chalk.hex(GREEN)("◇");
71
- break;
72
- case 3:
73
- row += chalk.dim("─");
74
- break;
75
- }
76
- }
77
- return row;
78
- }
79
- // ─── Token formatting ─────────────────────────────────────────────────────────
80
- function fmtK(n) {
81
- return n >= 1000 ? `${(n / 1000).toFixed(1)}k` : String(n);
82
- }
83
- // ─── Banner ───────────────────────────────────────────────────────────────────
84
- export function printBanner() {
85
- const [r1, r2] = flagMosaicRows();
86
- console.log();
87
- console.log(r1);
88
- console.log(r2);
89
- console.log();
90
- console.log(" " + chalk.hex(GOLD).bold("RANTERA") +
91
- " " + chalk.dim("·") + " " +
92
- chalk.hex(GREEN).bold("Wakanda") +
93
- " " + chalk.dim(VERSION));
94
- console.log(" " + chalk.dim("African Intelligence. Global Tools."));
95
- console.log();
96
- console.log(kenteDivider());
97
- console.log();
98
- }
99
- // ─── Command list (shown with no-args rantera before login) ──────────────────
100
- export function printCommandList() {
101
- const cmd = (name) => " " + chalk.hex(GOLD)(name.padEnd(32));
102
- const desc = (s) => chalk.dim(s);
103
- console.log(" " + chalk.white.bold("Commands"));
104
- console.log();
105
- console.log(cmd("rantera [prompt]") + desc("Start the AI workspace (or run a one-shot task)"));
106
- console.log(cmd("rantera init") + desc("Create RANTERA.md project memory file"));
107
- console.log(cmd("rantera auth login") + desc("Log in to your Rantera account"));
108
- console.log(cmd("rantera auth logout") + desc("Remove stored credentials"));
109
- console.log(cmd("rantera auth status") + desc("Check authentication status"));
110
- console.log(cmd("rantera config show") + desc("Show current configuration"));
111
- console.log(cmd("rantera config set-key <k>") + desc("Set API key manually"));
112
- console.log(cmd("rantera config set-url <u>") + desc("Override the API URL"));
113
- console.log();
114
- console.log(" " + chalk.dim("Flags: ") + chalk.dim.underline("-p, --print") + chalk.dim(" (non-interactive output) ") + chalk.dim.underline("-d, --dir <path>"));
115
- console.log();
116
- console.log(" " + chalk.dim("Run ") + chalk.dim.underline("rantera <command> --help") + chalk.dim(" for details."));
117
- console.log();
118
- }
119
- // ─── Wakanda session welcome ──────────────────────────────────────────────────
120
- export function printWelcome(cwd, model, memoryLoaded) {
121
- printBanner();
122
- const parts = cwd.replace(/\\/g, "/").split("/").filter(Boolean);
123
- const shortDir = parts.length >= 2 ? parts.slice(-2).join("/") : cwd;
124
- const m = MODELS.find(x => x.id === model) ?? MODELS[0];
125
- const rows = [
126
- chalk.dim("Model ") + chalk.white(m.display) + chalk.dim(" (Rantera AI)"),
127
- chalk.dim("Dir ") + chalk.white(shortDir),
128
- ...(memoryLoaded ? [chalk.dim("Memory ") + chalk.hex(GREEN)("✓ RANTERA.md")] : []),
129
- "",
130
- chalk.dim("Task, ") +
131
- chalk.hex(GOLD)("/help") +
132
- chalk.dim(" for commands, ") +
133
- chalk.hex(GOLD)("/model") +
134
- chalk.dim(" to switch."),
135
- ];
136
- console.log(" " + boxTop("Wakanda"));
137
- for (const r of rows) {
138
- console.log(" " + boxRow(r));
139
- }
140
- console.log(" " + boxBottom());
141
- console.log();
142
- }
143
- // ─── /help ────────────────────────────────────────────────────────────────────
144
- export function printHelp() {
145
- const slot = (name) => " " + chalk.hex(GOLD)(name.padEnd(20));
146
- const tip = (s) => " " + chalk.hex(GREEN)("◆") + " " + chalk.dim(s);
147
- const sep = () => console.log(" " + kenteDivider(26));
148
- console.log();
149
- console.log(" " + chalk.white.bold("Slash Commands"));
150
- sep();
151
- console.log(slot("/help") + chalk.dim("Show this message"));
152
- console.log(slot("/model [name]") + chalk.dim("List models or switch (e.g. /model hira)"));
153
- console.log(slot("/compact") + chalk.dim("Trim history — keep last 3 exchanges"));
154
- console.log(slot("/cost") + chalk.dim("Show estimated token usage for this session"));
155
- console.log(slot("/clear") + chalk.dim("Erase all conversation history"));
156
- console.log(slot("/history") + chalk.dim("Show recent messages"));
157
- console.log(slot("/status") + chalk.dim("Auth, model, context and config info"));
158
- console.log(slot("/login") + chalk.dim("Log in (or switch to a different account)"));
159
- console.log(slot("/logout") + chalk.dim("Log out of current account"));
160
- console.log(slot("/exit") + chalk.dim("Exit Wakanda"));
161
- console.log();
162
- console.log(" " + chalk.white.bold("Input"));
163
- sep();
164
- console.log(tip("End a line with \\ to continue on the next line (multi-line)"));
165
- console.log(tip("Press ↑ / ↓ to scroll through your input history"));
166
- console.log(tip("Ctrl+C cancels a running task"));
167
- console.log();
168
- console.log(" " + chalk.white.bold("Tips"));
169
- sep();
170
- console.log(tip("Just type your task — Tera understands natural language"));
171
- console.log(tip("Reference files directly: \"fix the bug in auth.ts\""));
172
- console.log(tip("Give feedback: \"try again, make it simpler\""));
173
- console.log(tip("Add RANTERA.md in your project root for persistent context"));
174
- console.log();
175
- }
176
- // ─── /model ───────────────────────────────────────────────────────────────────
177
- export function printModelList(current = "hira") {
178
- const slot = (name) => " " + chalk.hex(GOLD)(name.padEnd(10));
179
- console.log();
180
- console.log(" " + chalk.white.bold("Models"));
181
- console.log(" " + kenteDivider(26));
182
- for (const m of MODELS) {
183
- const mark = m.id === current
184
- ? chalk.hex(GREEN)("◆ ")
185
- : " ";
186
- const status = m.available
187
- ? chalk.dim(m.desc)
188
- : chalk.dim(m.desc) + " " + chalk.hex("#334155")("[coming soon]");
189
- console.log(mark + slot(m.display) + status);
190
- }
191
- console.log();
192
- console.log(chalk.dim(" Current: ") + chalk.white(current));
193
- console.log(chalk.dim(" Switch: ") + chalk.hex(GOLD)("/model <name>") + chalk.dim(" e.g. /model hira"));
194
- console.log();
195
- }
196
- // ─── /cost ────────────────────────────────────────────────────────────────────
197
- export function printCost(estTokens, msgCount) {
198
- const LIMIT = 200_000;
199
- const pct = Math.min(100, Math.round((estTokens / LIMIT) * 1000) / 10);
200
- const label = (s) => " " + chalk.dim(s.padEnd(12));
201
- console.log();
202
- console.log(" " + chalk.white.bold("Token Usage ") + chalk.dim("(estimated)"));
203
- console.log(" " + kenteDivider(26));
204
- console.log(label("Messages") + chalk.white(String(msgCount)));
205
- console.log(label("Tokens") + chalk.white(`~${fmtK(estTokens)}`));
206
- console.log(label("Context") + chalk.white(`${pct}%`) + chalk.dim(` of 200k (~${fmtK(estTokens)} / 200k tokens)`));
207
- if (pct > 80) {
208
- console.log();
209
- console.log(chalk.hex("#FCD116")(" ⚠ Context is over 80%. Use /compact to trim history."));
210
- }
211
- console.log();
212
- }
213
- // ─── /status ──────────────────────────────────────────────────────────────────
214
- export function printStatus(apiKey, apiUrl, historyCount, cwd, model, estTokens) {
215
- const LIMIT = 200_000;
216
- const pct = Math.min(100, Math.round((estTokens / LIMIT) * 1000) / 10);
217
- const label = (s) => " " + chalk.dim(s.padEnd(10));
218
- const parts = cwd.replace(/\\/g, "/").split("/").filter(Boolean);
219
- const shortDir = parts.length >= 2 ? parts.slice(-2).join("/") : cwd;
220
- const m = MODELS.find(x => x.id === model) ?? MODELS[0];
221
- console.log();
222
- console.log(" " + chalk.white.bold("Status"));
223
- console.log(" " + kenteDivider(26));
224
- console.log(label("Auth") +
225
- (apiKey
226
- ? chalk.hex(GREEN).bold("✓ Logged in") + chalk.dim(` (${apiKey.slice(0, 16)}…)`)
227
- : chalk.hex(RED).bold("✗ Not logged in") + chalk.dim(" Run `rantera auth login`")));
228
- console.log(label("API URL") + chalk.white(apiUrl ?? "https://rantera.ai"));
229
- console.log(label("Model") + chalk.white(m.display) + chalk.dim(` ${m.desc}`));
230
- console.log(label("Dir") + chalk.white(shortDir));
231
- console.log(label("History") + chalk.dim(`${historyCount} message${historyCount !== 1 ? "s" : ""}`));
232
- console.log(label("Context") + chalk.white(`~${fmtK(estTokens)} tokens`) + chalk.dim(` (${pct}% of 200k)`));
233
- console.log();
234
- }
235
- // ─── /history ─────────────────────────────────────────────────────────────────
236
- export function printHistory(history) {
237
- if (history.length === 0) {
238
- console.log();
239
- console.log(chalk.dim(" No conversation history yet."));
240
- console.log();
241
- return;
242
- }
243
- console.log();
244
- console.log(" " + chalk.white.bold("History") + " " +
245
- chalk.dim(`${history.length} message${history.length !== 1 ? "s" : ""}`));
246
- console.log(" " + kenteDivider(26));
247
- for (const msg of history) {
248
- const isUser = msg.role === "user";
249
- const label = isUser
250
- ? " " + chalk.hex(GOLD).bold("you ")
251
- : " " + chalk.hex(GREEN).bold("tera");
252
- const text = msg.content?.replace(/\n/g, " ") ?? "";
253
- const preview = text.length > 80 ? text.slice(0, 80) + chalk.dim("…") : text;
254
- console.log(label + " " + chalk.dim(preview));
255
- }
256
- console.log();
257
- }
258
- // ─── Spinner ──────────────────────────────────────────────────────────────────
259
- export function startSpinner(text) {
260
- spinner = ora({
261
- text: chalk.hex(GOLD)(text),
262
- color: "yellow",
263
- spinner: "dots",
264
- }).start();
265
- }
266
- export function updateSpinner(text) {
267
- if (spinner)
268
- spinner.text = chalk.hex(GOLD)(text);
269
- }
270
- export function stopSpinner(success = true, text) {
271
- if (!spinner)
272
- return;
273
- if (success) {
274
- spinner.succeed(text ? chalk.hex(GREEN)(text) : undefined);
275
- }
276
- else {
277
- spinner.fail(text ? chalk.dim(text) : undefined);
278
- }
279
- spinner = null;
280
- }
281
- export function clearSpinner() {
282
- if (spinner) {
283
- spinner.stop();
284
- spinner = null;
285
- }
286
- }
287
- // ─── Streaming output ─────────────────────────────────────────────────────────
288
- export function printText(text) {
289
- process.stdout.write(text);
290
- }
291
- export function printToolCall(name, args) {
292
- const argsStr = formatArgs(args);
293
- console.log("\n " + chalk.hex(GOLD).bold(`◆ ${name}`) + " " + chalk.dim(argsStr));
294
- }
295
- export function printToolResult(_name, output, ok) {
296
- const icon = ok ? chalk.hex(GREEN)("✓") : chalk.hex(RED)("✗");
297
- const preview = output.length > 240
298
- ? output.slice(0, 240).replace(/\n/g, " ") + chalk.dim("…")
299
- : output.replace(/\n/g, " ");
300
- console.log(" " + icon + " " + chalk.dim(preview) + "\n");
301
- }
302
- // ─── Alerts ───────────────────────────────────────────────────────────────────
303
- export function printError(message) {
304
- console.error("\n " + chalk.hex(RED).bold("✗") + " " + chalk.white.bold("Error:") + " " + message);
305
- }
306
- export function printSuccess(message) {
307
- console.log(" " + chalk.hex(GREEN).bold("✓") + " " + message);
308
- }
309
- // ─── Structural ───────────────────────────────────────────────────────────────
310
- export function printDivider() {
311
- console.log(kenteDivider(28));
312
- }
313
- export function printAssistantPrefix(model = "hira") {
314
- const m = MODELS.find(x => x.id === model) ?? MODELS[0];
315
- process.stdout.write("\n " + chalk.hex(GREEN).bold(`${m.display} ❯`) + " ");
316
- }
317
- // ─── Internal helpers ─────────────────────────────────────────────────────────
318
- function formatArgs(args) {
319
- const parts = [];
320
- for (const [k, v] of Object.entries(args)) {
321
- const val = typeof v === "string" && v.length > 60 ? v.slice(0, 60) + "…" : String(v);
322
- parts.push(`${k}=${val}`);
323
- }
324
- return parts.join(" ");
325
- }
326
- //# sourceMappingURL=ui.js.map
package/dist/ui.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}