@runfusion/fusion 0.2.1 → 0.2.3
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/bin.js +27 -30
- package/package.json +2 -2
package/dist/bin.js
CHANGED
|
@@ -136551,7 +136551,7 @@ function SplashScreen({ loadingStatus }) {
|
|
|
136551
136551
|
] });
|
|
136552
136552
|
}
|
|
136553
136553
|
function MiniLogo() {
|
|
136554
|
-
return /* @__PURE__ */ jsx(Box, { flexDirection: "row", gap: 0, children: /* @__PURE__ */ jsx(Text, { color: "cyanBright", bold: true, children: "FUSION" }) });
|
|
136554
|
+
return /* @__PURE__ */ jsx(Box, { flexDirection: "row", gap: 0, flexShrink: 0, children: /* @__PURE__ */ jsx(Text, { color: "cyanBright", bold: true, wrap: "truncate-end", children: "FUSION" }) });
|
|
136555
136555
|
}
|
|
136556
136556
|
function Panel({ title, isFocused, children, flexGrow, flexShrink, width }) {
|
|
136557
136557
|
return /* @__PURE__ */ jsxs(
|
|
@@ -137003,51 +137003,40 @@ function StatusBar({ state, controller: _controller }) {
|
|
|
137003
137003
|
}
|
|
137004
137004
|
function MainHeader({ state }) {
|
|
137005
137005
|
const inInteractive = state.mode === "interactive";
|
|
137006
|
-
const focused = state.activeSection;
|
|
137007
137006
|
const interactiveView = state.interactiveView;
|
|
137008
137007
|
const { stdout } = useStdout();
|
|
137009
137008
|
const cols = stdout?.columns ?? 80;
|
|
137010
137009
|
const rows = stdout?.rows ?? 24;
|
|
137011
|
-
const
|
|
137012
|
-
{ key: "
|
|
137013
|
-
{ key: "
|
|
137014
|
-
{ key: "
|
|
137015
|
-
{ key: "
|
|
137016
|
-
{ key: "
|
|
137010
|
+
const tabs = [
|
|
137011
|
+
{ key: "m", label: "Main", kind: "main" },
|
|
137012
|
+
{ key: "b", label: "Board", kind: "interactive", view: "board" },
|
|
137013
|
+
{ key: "a", label: "Agents", kind: "interactive", view: "agents" },
|
|
137014
|
+
{ key: "g", label: "Settings", kind: "interactive", view: "settings" },
|
|
137015
|
+
{ key: "t", label: "Git", kind: "interactive", view: "git" },
|
|
137016
|
+
{ key: "e", label: "Explorer", kind: "interactive", view: "files" }
|
|
137017
137017
|
];
|
|
137018
137018
|
if (rows < 10) return null;
|
|
137019
137019
|
const showHelpHint = cols >= 110;
|
|
137020
|
-
const
|
|
137021
|
-
const compactSections = cols < 90;
|
|
137022
|
-
const minimal = cols < 70;
|
|
137020
|
+
const fullLabels = cols >= 90;
|
|
137023
137021
|
const tiny = cols < 50;
|
|
137022
|
+
const compact = !fullLabels && !tiny;
|
|
137023
|
+
const isActive = (t) => t.kind === "main" ? !inInteractive : inInteractive && t.view === interactiveView;
|
|
137024
137024
|
if (tiny) {
|
|
137025
|
-
const
|
|
137026
|
-
const activeSectionLabel = activeSectionIdx >= 0 ? SECTION_ORDER[activeSectionIdx].charAt(0).toUpperCase() + SECTION_ORDER[activeSectionIdx].slice(1) : null;
|
|
137027
|
-
const activeInteractive = inInteractive ? interactiveTabs.find((t) => t.view === interactiveView) ?? null : null;
|
|
137025
|
+
const active = tabs.find(isActive);
|
|
137028
137026
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "row", gap: 1, paddingX: 1, children: [
|
|
137029
137027
|
/* @__PURE__ */ jsx(MiniLogo, {}),
|
|
137030
|
-
|
|
137031
|
-
activeInteractive && /* @__PURE__ */ jsx(Text, { backgroundColor: "cyan", color: "black", bold: true, children: ` ${activeInteractive.key} ${activeInteractive.label} ` })
|
|
137028
|
+
active && /* @__PURE__ */ jsx(Box, { flexShrink: 0, children: /* @__PURE__ */ jsx(Text, { backgroundColor: "cyan", color: "black", bold: true, children: ` ${active.key} ${active.label} ` }) })
|
|
137032
137029
|
] });
|
|
137033
137030
|
}
|
|
137034
137031
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "row", gap: 1, paddingX: 1, paddingY: 0, children: [
|
|
137035
137032
|
/* @__PURE__ */ jsx(MiniLogo, {}),
|
|
137036
|
-
|
|
137037
|
-
|
|
137038
|
-
const
|
|
137039
|
-
|
|
137040
|
-
if (minimal && !isActive) return null;
|
|
137041
|
-
return /* @__PURE__ */ jsx(Box, { marginRight: 1, children: isActive ? /* @__PURE__ */ jsx(Text, { backgroundColor: "cyan", color: "black", bold: true, children: compactSections ? ` ${i + 1} ${label} ` : ` [${i + 1}] ${label} ` }) : compactSections ? /* @__PURE__ */ jsx(Text, { dimColor: true, children: `[${i + 1}]` }) : /* @__PURE__ */ jsx(Text, { dimColor: true, children: `[${i + 1}] ${label}` }) }, section);
|
|
137042
|
-
}),
|
|
137043
|
-
!minimal && /* @__PURE__ */ jsx(Text, { dimColor: true, children: "\u2502" }),
|
|
137044
|
-
interactiveTabs.map(({ key, label, view }) => {
|
|
137045
|
-
const isActive = inInteractive && view === interactiveView;
|
|
137046
|
-
if (minimal && !isActive) return null;
|
|
137047
|
-
return /* @__PURE__ */ jsx(Box, { marginRight: 1, children: isActive ? /* @__PURE__ */ jsx(Text, { backgroundColor: "cyan", color: "black", bold: true, children: compactInteractive ? ` ${key} ${label} ` : ` [${key}] ${label} ` }) : compactInteractive ? /* @__PURE__ */ jsx(Text, { dimColor: true, children: `[${key}]` }) : /* @__PURE__ */ jsx(Text, { dimColor: true, children: `[${key}] ${label}` }) }, view);
|
|
137033
|
+
/* @__PURE__ */ jsx(Box, { flexShrink: 0, children: /* @__PURE__ */ jsx(Text, { dimColor: true, children: "\u2502" }) }),
|
|
137034
|
+
tabs.map((t) => {
|
|
137035
|
+
const active = isActive(t);
|
|
137036
|
+
return /* @__PURE__ */ jsx(Box, { marginRight: 1, flexShrink: 0, children: active ? /* @__PURE__ */ jsx(Text, { backgroundColor: "cyan", color: "black", bold: true, children: compact ? ` ${t.key} ` : ` [${t.key}] ${t.label} ` }) : compact ? /* @__PURE__ */ jsx(Text, { dimColor: true, children: `[${t.key}]` }) : /* @__PURE__ */ jsx(Text, { dimColor: true, children: `[${t.key}] ${t.label}` }) }, t.key);
|
|
137048
137037
|
}),
|
|
137049
137038
|
/* @__PURE__ */ jsx(Box, { flexGrow: 1 }),
|
|
137050
|
-
showHelpHint && /* @__PURE__ */ jsx(Text, { dimColor: true, children: "[?] help [q] quit" })
|
|
137039
|
+
showHelpHint && /* @__PURE__ */ jsx(Box, { flexShrink: 0, children: /* @__PURE__ */ jsx(Text, { dimColor: true, children: "[?] help [q] quit" }) })
|
|
137051
137040
|
] });
|
|
137052
137041
|
}
|
|
137053
137042
|
function columnLabel(col) {
|
|
@@ -137935,6 +137924,14 @@ function SettingsInteractiveView({ state }) {
|
|
|
137935
137924
|
setDetailFocused((f) => !f);
|
|
137936
137925
|
return;
|
|
137937
137926
|
}
|
|
137927
|
+
if (key.leftArrow) {
|
|
137928
|
+
setDetailFocused(false);
|
|
137929
|
+
return;
|
|
137930
|
+
}
|
|
137931
|
+
if (key.rightArrow) {
|
|
137932
|
+
setDetailFocused(true);
|
|
137933
|
+
return;
|
|
137934
|
+
}
|
|
137938
137935
|
if (!detailFocused) {
|
|
137939
137936
|
if (key.upArrow || input === "k") {
|
|
137940
137937
|
setSelectedIndex((i) => Math.max(0, i - 1));
|
|
@@ -139112,7 +139109,7 @@ function DashboardApp({ controller }) {
|
|
|
139112
139109
|
controller.setInteractiveView("files");
|
|
139113
139110
|
return;
|
|
139114
139111
|
}
|
|
139115
|
-
if (input === "
|
|
139112
|
+
if (input === "m" || input === "s") {
|
|
139116
139113
|
if (state.mode === "interactive") {
|
|
139117
139114
|
controller.setMode("status");
|
|
139118
139115
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runfusion/fusion",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Fusion CLI: HTTP API server, daemon, dashboard launcher, and task tooling for the Fusion AI coding agent.",
|
|
6
6
|
"homepage": "https://github.com/Runfusion/Fusion#readme",
|
|
@@ -75,9 +75,9 @@
|
|
|
75
75
|
"typescript": "^5.7.0",
|
|
76
76
|
"vitest": "^3.1.0",
|
|
77
77
|
"yaml": "^2.8.3",
|
|
78
|
-
"@fusion/dashboard": "0.1.0",
|
|
79
78
|
"@fusion/core": "0.1.0",
|
|
80
79
|
"@fusion/pi-claude-cli": "0.3.1",
|
|
80
|
+
"@fusion/dashboard": "0.1.0",
|
|
81
81
|
"@fusion/engine": "0.1.0"
|
|
82
82
|
},
|
|
83
83
|
"repository": {
|