@rilaptra/digester 17.4.2-ai → 17.5.1-ai
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/README.md +10 -9
- package/dist/index.js +201 -9
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
# ⚡ DIGESTER
|
|
2
2
|
|
|
3
|
+
|
|
3
4
|
<div align="center">
|
|
4
5
|
|
|
5
6
|
```text
|
|
6
|
-
░███████ ░██ ░██
|
|
7
|
-
░██ ░██ ░██
|
|
7
|
+
░███████ ░██ ░██
|
|
8
|
+
░██ ░██ ░██
|
|
8
9
|
░██ ░██ ░██ ░████████ ░███████ ░███████ ░████████ ░███████ ░██░████
|
|
9
|
-
░██ ░██ ░██░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██ ░███
|
|
10
|
-
░██ ░██ ░██░██ ░██ ░█████████ ░███████ ░██ ░█████████ ░██
|
|
11
|
-
░██ ░██ ░██░██ ░███ ░██ ░██ ░██ ░██ ░██
|
|
12
|
-
░███████ ░██ ░█████░██ ░███████ ░███████ ░████ ░███████ ░██
|
|
13
|
-
░██
|
|
14
|
-
░███████
|
|
10
|
+
░██ ░██ ░██░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██ ░███
|
|
11
|
+
░██ ░██ ░██░██ ░██ ░█████████ ░███████ ░██ ░█████████ ░██
|
|
12
|
+
░██ ░██ ░██░██ ░███ ░██ ░██ ░██ ░██ ░██
|
|
13
|
+
░███████ ░██ ░█████░██ ░███████ ░███████ ░████ ░███████ ░██
|
|
14
|
+
░██
|
|
15
|
+
░███████
|
|
15
16
|
```
|
|
16
17
|
|
|
17
|
-

|
|
18
19
|

|
|
19
20
|

|
|
20
21
|

|
package/dist/index.js
CHANGED
|
@@ -6872,6 +6872,8 @@ Generate beautiful gradient ANSI text files.`, "ANSI Generator");
|
|
|
6872
6872
|
outputFile = arg.split("=")[1];
|
|
6873
6873
|
} else if (arg.startsWith("--file=")) {
|
|
6874
6874
|
inputFilePath = arg.split("=")[1];
|
|
6875
|
+
} else if (arg.startsWith("--text=")) {
|
|
6876
|
+
text = arg.split("=")[1];
|
|
6875
6877
|
} else if (arg === "--from" && args[i + 1]) {
|
|
6876
6878
|
fromColor = args[++i];
|
|
6877
6879
|
} else if (arg === "--to" && args[i + 1]) {
|
|
@@ -6958,9 +6960,9 @@ Generate beautiful gradient ANSI text files.`, "ANSI Generator");
|
|
|
6958
6960
|
outputBuffer.push("");
|
|
6959
6961
|
continue;
|
|
6960
6962
|
}
|
|
6961
|
-
const chars = [...line];
|
|
6962
6963
|
let lineResult = "";
|
|
6963
|
-
|
|
6964
|
+
let x = 0;
|
|
6965
|
+
for (const char of line) {
|
|
6964
6966
|
const t = maxWidth > 1 ? x / (maxWidth - 1) : 0;
|
|
6965
6967
|
const rgbObj = {
|
|
6966
6968
|
r: this.lerp(c1.r, c2.r, t),
|
|
@@ -6969,7 +6971,8 @@ Generate beautiful gradient ANSI text files.`, "ANSI Generator");
|
|
|
6969
6971
|
};
|
|
6970
6972
|
const ansi = color(rgbObj, "ansi");
|
|
6971
6973
|
lineResult += `${ansi}${char}`;
|
|
6972
|
-
|
|
6974
|
+
x++;
|
|
6975
|
+
}
|
|
6973
6976
|
outputBuffer.push(lineResult);
|
|
6974
6977
|
}
|
|
6975
6978
|
outputBuffer.push("\x1B[0m");
|
|
@@ -6996,7 +6999,7 @@ import { fileURLToPath } from "url";
|
|
|
6996
6999
|
// package.json
|
|
6997
7000
|
var package_default = {
|
|
6998
7001
|
name: "@rilaptra/digester",
|
|
6999
|
-
version: "17.
|
|
7002
|
+
version: "17.5.1-ai",
|
|
7000
7003
|
description: "High-performance codebase context generator and AI operations toolkit optimized for Bun.",
|
|
7001
7004
|
module: "dist/index.js",
|
|
7002
7005
|
main: "dist/index.js",
|
|
@@ -7028,7 +7031,7 @@ var package_default = {
|
|
|
7028
7031
|
"productivity"
|
|
7029
7032
|
],
|
|
7030
7033
|
author: {
|
|
7031
|
-
name: "
|
|
7034
|
+
name: "Rilaptra",
|
|
7032
7035
|
url: "https://erzysh.vercel.app"
|
|
7033
7036
|
},
|
|
7034
7037
|
license: "MIT",
|
|
@@ -7163,7 +7166,7 @@ class AutoBuildCommand extends BaseCommand {
|
|
|
7163
7166
|
const watcher = watch(SYSTEM.ROOT_DIR, { recursive: true }, (event, filename) => {
|
|
7164
7167
|
if (!filename)
|
|
7165
7168
|
return;
|
|
7166
|
-
if (filename.includes("node_modules") || filename.includes(".git") || filename.includes("dist") || filename.includes("generated") || filename.includes("bin")) {
|
|
7169
|
+
if (filename.includes("node_modules") || filename.includes(".git") || filename.includes("dist") || filename.includes("generated") || filename.includes("src\\commands\\index.ts") || filename.includes("bin")) {
|
|
7167
7170
|
return;
|
|
7168
7171
|
}
|
|
7169
7172
|
if (!filename.endsWith(".ts") && !filename.endsWith("json")) {
|
|
@@ -8711,7 +8714,6 @@ class SetModelCommand extends BaseCommand {
|
|
|
8711
8714
|
spinner.stop();
|
|
8712
8715
|
if (models.length === 0)
|
|
8713
8716
|
throw new Error("No models found.");
|
|
8714
|
-
console.log(models);
|
|
8715
8717
|
const selection = await this.promptSelectV2(source_default.cyan("\uD83E\uDD16 Choose AI Model"), models, { columns: 1 });
|
|
8716
8718
|
await ConfigManager.saveAuth({ model: selection });
|
|
8717
8719
|
this.success(`Model set to: ${source_default.bold(selection)}`);
|
|
@@ -10179,6 +10181,193 @@ class CommandLoader {
|
|
|
10179
10181
|
}
|
|
10180
10182
|
}
|
|
10181
10183
|
|
|
10184
|
+
// src/managers/SystemManager.ts
|
|
10185
|
+
import { join as join16 } from "path";
|
|
10186
|
+
var import_cli_table37 = __toESM(require_table(), 1);
|
|
10187
|
+
var META_FILE = join16(SYSTEM.BIN_DIR, "system.meta.json");
|
|
10188
|
+
var CHECK_INTERVAL = 1000 * 60 * 60 * 12;
|
|
10189
|
+
var TIMEOUT_MS = 2500;
|
|
10190
|
+
|
|
10191
|
+
class SystemManager {
|
|
10192
|
+
static auditPromise = null;
|
|
10193
|
+
static meta = { lastUpdateCheck: 0 };
|
|
10194
|
+
static async init() {
|
|
10195
|
+
await SystemManager.loadMeta();
|
|
10196
|
+
const now = Date.now();
|
|
10197
|
+
if (now - SystemManager.meta.lastUpdateCheck < CHECK_INTERVAL) {
|
|
10198
|
+
return;
|
|
10199
|
+
}
|
|
10200
|
+
SystemManager.auditPromise = SystemManager.performAudit();
|
|
10201
|
+
SystemManager.meta.lastUpdateCheck = now;
|
|
10202
|
+
SystemManager.saveMeta();
|
|
10203
|
+
}
|
|
10204
|
+
static async loadMeta() {
|
|
10205
|
+
try {
|
|
10206
|
+
const file2 = Bun.file(META_FILE);
|
|
10207
|
+
if (await file2.exists()) {
|
|
10208
|
+
SystemManager.meta = await file2.json();
|
|
10209
|
+
}
|
|
10210
|
+
} catch {
|
|
10211
|
+
SystemManager.meta = { lastUpdateCheck: 0 };
|
|
10212
|
+
}
|
|
10213
|
+
}
|
|
10214
|
+
static async saveMeta() {
|
|
10215
|
+
try {
|
|
10216
|
+
const { mkdir } = await import("fs/promises");
|
|
10217
|
+
await mkdir(SYSTEM.BIN_DIR, { recursive: true });
|
|
10218
|
+
await Bun.write(META_FILE, JSON.stringify(SystemManager.meta));
|
|
10219
|
+
} catch {}
|
|
10220
|
+
}
|
|
10221
|
+
static async performAudit() {
|
|
10222
|
+
const checks = [];
|
|
10223
|
+
checks.push(SystemManager.checkPackage("@rilaptra/digester", SYSTEM.VERSION, "cli"));
|
|
10224
|
+
checks.push(SystemManager.checkPackage("bun", Bun.version, "runtime"));
|
|
10225
|
+
const projectChecks = await SystemManager.prepareProjectDeps();
|
|
10226
|
+
checks.push(...projectChecks);
|
|
10227
|
+
const results = await Promise.all(checks);
|
|
10228
|
+
return results.filter((r) => r !== null && r.current !== r.latest && SystemManager.isNewer(r.latest, r.current));
|
|
10229
|
+
}
|
|
10230
|
+
static async prepareProjectDeps() {
|
|
10231
|
+
try {
|
|
10232
|
+
const pkgPath = join16(process.cwd(), "package.json");
|
|
10233
|
+
const file2 = Bun.file(pkgPath);
|
|
10234
|
+
if (!await file2.exists())
|
|
10235
|
+
return [];
|
|
10236
|
+
const pkg = await file2.json();
|
|
10237
|
+
const requests = [];
|
|
10238
|
+
const addDeps = (deps, type) => {
|
|
10239
|
+
if (!deps)
|
|
10240
|
+
return;
|
|
10241
|
+
Object.entries(deps).forEach(([name, version]) => {
|
|
10242
|
+
const cleanVer = version.replace(/^[\^~]/, "");
|
|
10243
|
+
if (!/^\d/.test(cleanVer))
|
|
10244
|
+
return;
|
|
10245
|
+
requests.push(SystemManager.checkPackage(name, cleanVer, type));
|
|
10246
|
+
});
|
|
10247
|
+
};
|
|
10248
|
+
addDeps(pkg.dependencies, "dependency");
|
|
10249
|
+
addDeps(pkg.devDependencies, "dev-dependency");
|
|
10250
|
+
return requests;
|
|
10251
|
+
} catch {
|
|
10252
|
+
return [];
|
|
10253
|
+
}
|
|
10254
|
+
}
|
|
10255
|
+
static async checkPackage(name, currentVer, type) {
|
|
10256
|
+
try {
|
|
10257
|
+
const controller = new AbortController;
|
|
10258
|
+
const id = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
10259
|
+
const res = await fetch(`https://registry.npmjs.org/${name}/latest`, {
|
|
10260
|
+
signal: controller.signal,
|
|
10261
|
+
headers: { Accept: "application/json" }
|
|
10262
|
+
});
|
|
10263
|
+
clearTimeout(id);
|
|
10264
|
+
if (!res.ok)
|
|
10265
|
+
return null;
|
|
10266
|
+
const data = await res.json();
|
|
10267
|
+
let severity = "info";
|
|
10268
|
+
if (type === "cli")
|
|
10269
|
+
severity = "critical";
|
|
10270
|
+
if (type === "runtime")
|
|
10271
|
+
severity = "warn";
|
|
10272
|
+
return {
|
|
10273
|
+
name,
|
|
10274
|
+
current: currentVer,
|
|
10275
|
+
latest: data.version,
|
|
10276
|
+
type,
|
|
10277
|
+
severity
|
|
10278
|
+
};
|
|
10279
|
+
} catch {
|
|
10280
|
+
return null;
|
|
10281
|
+
}
|
|
10282
|
+
}
|
|
10283
|
+
static async notify() {
|
|
10284
|
+
if (!SystemManager.auditPromise)
|
|
10285
|
+
return;
|
|
10286
|
+
try {
|
|
10287
|
+
const updates = await Promise.race([
|
|
10288
|
+
SystemManager.auditPromise,
|
|
10289
|
+
new Promise((r) => setTimeout(() => r([]), 800))
|
|
10290
|
+
]);
|
|
10291
|
+
if (!updates || updates.length === 0)
|
|
10292
|
+
return;
|
|
10293
|
+
SystemManager.renderReport(updates);
|
|
10294
|
+
} catch {}
|
|
10295
|
+
}
|
|
10296
|
+
static renderReport(updates) {
|
|
10297
|
+
generateLog({ type: "info", raw: true }, "");
|
|
10298
|
+
const cli = updates.find((u) => u.type === "cli");
|
|
10299
|
+
const runtime = updates.find((u) => u.type === "runtime");
|
|
10300
|
+
const deps = updates.filter((u) => u.type.includes("dependency"));
|
|
10301
|
+
if (cli) {
|
|
10302
|
+
generateLog({ type: "info", raw: true }, boxen(source_default.white(`New version available: `) + source_default.dim(cli.current) + source_default.reset(" \u279C ") + source_default.green.bold(cli.latest) + `
|
|
10303
|
+
|
|
10304
|
+
` + source_default.cyan("Run: ") + source_default.white.bold("digest update") + source_default.cyan(" or ") + source_default.white.bold("bun i -g @rilaptra/digester"), {
|
|
10305
|
+
padding: 1,
|
|
10306
|
+
margin: 0,
|
|
10307
|
+
borderStyle: "round",
|
|
10308
|
+
borderColor: "green",
|
|
10309
|
+
title: "\uD83D\uDE80 Digester Update",
|
|
10310
|
+
titleAlignment: "center"
|
|
10311
|
+
}));
|
|
10312
|
+
generateLog({ type: "info", raw: true }, "");
|
|
10313
|
+
}
|
|
10314
|
+
if (runtime) {
|
|
10315
|
+
const platform = `${process.platform}-${process.arch}`;
|
|
10316
|
+
generateLog({ type: "warn", raw: true }, source_default.bgYellow.black.bold(" BUN UPDATE ") + source_default.yellow(` v${runtime.current} \u279C v${runtime.latest} `) + source_default.dim(`[${platform}]`));
|
|
10317
|
+
generateLog({ type: "info", raw: true }, source_default.dim(` Run 'bun upgrade' to optimize performance.
|
|
10318
|
+
`));
|
|
10319
|
+
}
|
|
10320
|
+
if (deps.length > 0) {
|
|
10321
|
+
const table = new import_cli_table37.default({
|
|
10322
|
+
head: [
|
|
10323
|
+
source_default.bold("Pkg"),
|
|
10324
|
+
source_default.bold("Type"),
|
|
10325
|
+
source_default.bold("Curr"),
|
|
10326
|
+
source_default.bold("Latest")
|
|
10327
|
+
],
|
|
10328
|
+
chars: {
|
|
10329
|
+
mid: "",
|
|
10330
|
+
"left-mid": "",
|
|
10331
|
+
"mid-mid": "",
|
|
10332
|
+
"right-mid": "",
|
|
10333
|
+
top: "",
|
|
10334
|
+
bottom: "",
|
|
10335
|
+
left: "",
|
|
10336
|
+
right: ""
|
|
10337
|
+
},
|
|
10338
|
+
style: { "padding-left": 1, "padding-right": 1 }
|
|
10339
|
+
});
|
|
10340
|
+
const limit = 5;
|
|
10341
|
+
deps.slice(0, limit).forEach((u) => {
|
|
10342
|
+
table.push([
|
|
10343
|
+
source_default.cyan(u.name),
|
|
10344
|
+
u.type === "dependency" ? "prod" : source_default.dim("dev"),
|
|
10345
|
+
source_default.red(u.current),
|
|
10346
|
+
source_default.green(u.latest)
|
|
10347
|
+
]);
|
|
10348
|
+
});
|
|
10349
|
+
generateLog({ type: "info", raw: true }, source_default.bold.white(`\uD83D\uDCE6 Project Dependencies (${deps.length} outdated):`));
|
|
10350
|
+
generateLog({ type: "info", raw: true }, table.toString());
|
|
10351
|
+
if (deps.length > limit) {
|
|
10352
|
+
generateLog({ type: "info", raw: true }, source_default.dim(` ... and ${deps.length - limit} more.`));
|
|
10353
|
+
}
|
|
10354
|
+
generateLog({ type: "info", raw: true }, source_default.dim(` Run 'bun update' to fix.
|
|
10355
|
+
`));
|
|
10356
|
+
}
|
|
10357
|
+
}
|
|
10358
|
+
static isNewer(latest, current) {
|
|
10359
|
+
const c = current.replace(/^[^\d]+/, "").split(".").map(Number);
|
|
10360
|
+
const l = latest.replace(/^[^\d]+/, "").split(".").map(Number);
|
|
10361
|
+
for (let i = 0;i < 3; i++) {
|
|
10362
|
+
if ((l[i] || 0) > (c[i] || 0))
|
|
10363
|
+
return true;
|
|
10364
|
+
if ((l[i] || 0) < (c[i] || 0))
|
|
10365
|
+
return false;
|
|
10366
|
+
}
|
|
10367
|
+
return false;
|
|
10368
|
+
}
|
|
10369
|
+
}
|
|
10370
|
+
|
|
10182
10371
|
// src/core/AppController.ts
|
|
10183
10372
|
class AppController {
|
|
10184
10373
|
loader;
|
|
@@ -10186,6 +10375,7 @@ class AppController {
|
|
|
10186
10375
|
this.loader = new CommandLoader;
|
|
10187
10376
|
}
|
|
10188
10377
|
async run() {
|
|
10378
|
+
SystemManager.init();
|
|
10189
10379
|
console.clear();
|
|
10190
10380
|
this.loader.registerCommands(Object.values(exports_commands));
|
|
10191
10381
|
const args = Bun.argv.slice(2);
|
|
@@ -10199,16 +10389,18 @@ class AppController {
|
|
|
10199
10389
|
}
|
|
10200
10390
|
command = this.loader.getCommand("scan");
|
|
10201
10391
|
commandArgs = [commandName, ...commandArgs];
|
|
10202
|
-
}
|
|
10392
|
+
}
|
|
10203
10393
|
if (command) {
|
|
10204
10394
|
try {
|
|
10205
10395
|
await command.execute(commandArgs, { loader: this.loader });
|
|
10206
10396
|
} catch (error2) {
|
|
10207
10397
|
generateLog({ type: "error" }, source_default.red("Command execution failed:"), error2.message);
|
|
10208
10398
|
process.exit(1);
|
|
10399
|
+
} finally {
|
|
10400
|
+
await SystemManager.notify();
|
|
10209
10401
|
}
|
|
10210
10402
|
} else {
|
|
10211
|
-
generateLog({ type: "error" }, source_default.red("Critical Error:
|
|
10403
|
+
generateLog({ type: "error" }, source_default.red("Critical Error: Command not found."));
|
|
10212
10404
|
process.exit(1);
|
|
10213
10405
|
}
|
|
10214
10406
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rilaptra/digester",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.5.1-ai",
|
|
4
4
|
"description": "High-performance codebase context generator and AI operations toolkit optimized for Bun.",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"productivity"
|
|
33
33
|
],
|
|
34
34
|
"author": {
|
|
35
|
-
"name": "
|
|
35
|
+
"name": "Rilaptra",
|
|
36
36
|
"url": "https://erzysh.vercel.app"
|
|
37
37
|
},
|
|
38
38
|
"license": "MIT",
|