@nomad-e/bluma-cli 0.0.25 → 0.0.27
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 +1 -1
- package/dist/main.js +57 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://shields.io/)
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<img src="docs\assets\
|
|
8
|
+
<img src="docs\assets\bluma.png" alt="Tela inicial BluMa CLI" width="1000"/>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
BluMa CLI is an independent agent for automation and advanced software engineering. The project is a conversational assistant that interacts via terminal (CLI), built with React/Ink, supporting smart agents (LLM, OpenAI Azure), tool execution, persistent history, session management, and extensibility through external plugins/tools.
|
package/dist/main.js
CHANGED
|
@@ -2876,7 +2876,64 @@ var AppComponent = ({ eventBus: eventBus2, sessionId: sessionId2 }) => {
|
|
|
2876
2876
|
var App = memo4(AppComponent);
|
|
2877
2877
|
var App_default = App;
|
|
2878
2878
|
|
|
2879
|
+
// src/app/ui/utils/terminalTitle.ts
|
|
2880
|
+
import { exec as exec2 } from "child_process";
|
|
2881
|
+
var intervalHandle = null;
|
|
2882
|
+
var lastTitle = null;
|
|
2883
|
+
function setTerminalTitle(title) {
|
|
2884
|
+
try {
|
|
2885
|
+
try {
|
|
2886
|
+
process.title = title;
|
|
2887
|
+
} catch {
|
|
2888
|
+
}
|
|
2889
|
+
if (process.stdout && process.stdout.isTTY) {
|
|
2890
|
+
process.stdout.write(`\x1B]0;${title}\x07`);
|
|
2891
|
+
}
|
|
2892
|
+
if (process.platform === "win32") {
|
|
2893
|
+
try {
|
|
2894
|
+
exec2(`title ${title}`);
|
|
2895
|
+
} catch {
|
|
2896
|
+
}
|
|
2897
|
+
}
|
|
2898
|
+
} catch {
|
|
2899
|
+
}
|
|
2900
|
+
}
|
|
2901
|
+
function startTitleKeeper(title, opts = {}) {
|
|
2902
|
+
const intervalMs = typeof opts.intervalMs === "number" ? opts.intervalMs : 2e3;
|
|
2903
|
+
const strictEnv = process.env.BLUMA_TITLE_STRICT;
|
|
2904
|
+
const strict = typeof opts.strict === "boolean" ? opts.strict : strictEnv ? strictEnv !== "false" : true;
|
|
2905
|
+
setTerminalTitle(title);
|
|
2906
|
+
lastTitle = title;
|
|
2907
|
+
if (intervalHandle) {
|
|
2908
|
+
clearInterval(intervalHandle);
|
|
2909
|
+
}
|
|
2910
|
+
intervalHandle = setInterval(() => {
|
|
2911
|
+
if (strict) {
|
|
2912
|
+
setTerminalTitle(title);
|
|
2913
|
+
lastTitle = title;
|
|
2914
|
+
} else {
|
|
2915
|
+
setTerminalTitle(title);
|
|
2916
|
+
lastTitle = title;
|
|
2917
|
+
}
|
|
2918
|
+
}, intervalMs);
|
|
2919
|
+
const reapply = () => setTerminalTitle(title);
|
|
2920
|
+
process.on("beforeExit", reapply);
|
|
2921
|
+
process.on("exit", reapply);
|
|
2922
|
+
process.on("SIGWINCH", reapply);
|
|
2923
|
+
process.on("uncaughtException", reapply);
|
|
2924
|
+
process.on("unhandledRejection", reapply);
|
|
2925
|
+
return () => stopTitleKeeper();
|
|
2926
|
+
}
|
|
2927
|
+
function stopTitleKeeper() {
|
|
2928
|
+
if (intervalHandle) {
|
|
2929
|
+
clearInterval(intervalHandle);
|
|
2930
|
+
intervalHandle = null;
|
|
2931
|
+
}
|
|
2932
|
+
}
|
|
2933
|
+
|
|
2879
2934
|
// src/main.ts
|
|
2935
|
+
var BLUMA_TITLE = process.env.BLUMA_TITLE || "BluMa - NomadEngenuity";
|
|
2936
|
+
startTitleKeeper(BLUMA_TITLE);
|
|
2880
2937
|
var eventBus = new EventEmitter2();
|
|
2881
2938
|
var sessionId = uuidv42();
|
|
2882
2939
|
var props = {
|