heyvm 1.1.1 → 1.2.0
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/heyvm-core +0 -0
- package/package.json +1 -1
- package/ui/dist/App.d.ts.map +1 -1
- package/ui/dist/App.js +1 -6
- package/ui/dist/App.js.map +1 -1
- package/ui/dist/core/ipc.d.ts.map +1 -1
- package/ui/dist/core/ipc.js +3 -10
- package/ui/dist/core/ipc.js.map +1 -1
- package/ui/dist/index.js +32 -36
- package/ui/dist/index.js.map +1 -1
- package/ui/dist/screens/VMDetailScreen.d.ts.map +1 -1
- package/ui/dist/screens/VMDetailScreen.js +14 -1
- package/ui/dist/screens/VMDetailScreen.js.map +1 -1
- package/ui/dist/screens/tabs/FilesTab.d.ts +2 -1
- package/ui/dist/screens/tabs/FilesTab.d.ts.map +1 -1
- package/ui/dist/screens/tabs/FilesTab.js +5 -8
- package/ui/dist/screens/tabs/FilesTab.js.map +1 -1
- package/ui/dist/screens/tabs/TerminalTab.d.ts.map +1 -1
- package/ui/dist/screens/tabs/TerminalTab.js +7 -13
- package/ui/dist/screens/tabs/TerminalTab.js.map +1 -1
- package/ui/package.json +1 -0
- package/ui/dist/screens/tabs/FilesTab.ink-original.d.ts +0 -10
- package/ui/dist/screens/tabs/FilesTab.ink-original.d.ts.map +0 -1
- package/ui/dist/screens/tabs/FilesTab.ink-original.js +0 -420
- package/ui/dist/screens/tabs/FilesTab.ink-original.js.map +0 -1
package/bin/heyvm-core
CHANGED
|
Binary file
|
package/package.json
CHANGED
package/ui/dist/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAQrD,MAAM,CAAC,OAAO,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAQrD,MAAM,CAAC,OAAO,UAAU,GAAG,sBAyM1B"}
|
package/ui/dist/App.js
CHANGED
|
@@ -31,7 +31,7 @@ export default function App() {
|
|
|
31
31
|
setVMListVersion(v => v + 1);
|
|
32
32
|
}
|
|
33
33
|
catch (err) {
|
|
34
|
-
|
|
34
|
+
// Error handled silently
|
|
35
35
|
}
|
|
36
36
|
}, [selectedVM]);
|
|
37
37
|
// Handlers
|
|
@@ -44,16 +44,12 @@ export default function App() {
|
|
|
44
44
|
const handleAddVMSubmit = async (vm, password) => {
|
|
45
45
|
try {
|
|
46
46
|
const newVM = await ipcClient.addVM(vm);
|
|
47
|
-
console.log('[App] VM added successfully:', newVM.id);
|
|
48
47
|
// Store password in keychain after VM is added (now we have ID)
|
|
49
48
|
if (password && newVM.id) {
|
|
50
|
-
console.log('[App] Storing password for VM:', newVM.id);
|
|
51
49
|
try {
|
|
52
50
|
await ipcClient.storePassword(newVM.id, password);
|
|
53
|
-
console.log('[App] Password stored successfully');
|
|
54
51
|
}
|
|
55
52
|
catch (passErr) {
|
|
56
|
-
console.error('[App] Failed to store password:', passErr);
|
|
57
53
|
// Show error to user but don't fail VM creation
|
|
58
54
|
// Password can be re-entered later
|
|
59
55
|
}
|
|
@@ -65,7 +61,6 @@ export default function App() {
|
|
|
65
61
|
// No auto-connect - user must explicitly connect via 'c' key
|
|
66
62
|
}
|
|
67
63
|
catch (err) {
|
|
68
|
-
console.error('Failed to add VM:', err);
|
|
69
64
|
// Error is handled in AddVMScreen, this is just a fallback
|
|
70
65
|
}
|
|
71
66
|
};
|
package/ui/dist/App.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAElD,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,cAAc,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,OAAO,UAAU,GAAG;IAC1B,yBAAyB;IACzB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAY,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAM,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAmB,MAAM,CAAC,CAAC;IAC/E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE,CAAC;gBACf,aAAa,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,8BAA8B;gBAC9B,aAAa,CAAC,IAAI,CAAC,CAAC;gBACpB,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;YAED,0BAA0B;YAC1B,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../src/core/ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,CAAC,MAAM,CAAC;IACd,IAAI,SAAS,EAAE;QACd,KAAK,EAAE,QAAQ,CAAC;QAChB,MAAM,EAAE,QAAQ,CAAC;QACjB,OAAO,EAAE,GAAG,CAAC;KACb,GAAG,SAAS,CAAC;CACd;AAED,qBAAa,SAAU,SAAQ,YAAY;IAC1C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAGlB;IACL,OAAO,CAAC,cAAc,CAAM;;IAU5B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../src/core/ipc.ts"],"names":[],"mappings":"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"}
|
package/ui/dist/core/ipc.js
CHANGED
|
@@ -25,12 +25,12 @@ export class IPCClient extends EventEmitter {
|
|
|
25
25
|
this.handleResponse(response);
|
|
26
26
|
}
|
|
27
27
|
catch (err) {
|
|
28
|
-
|
|
28
|
+
// Parse error - ignore
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
stdout.on('error', (err) => {
|
|
33
|
-
|
|
33
|
+
// Stdout error - ignore
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
handleResponse(response) {
|
|
@@ -46,23 +46,17 @@ export class IPCClient extends EventEmitter {
|
|
|
46
46
|
this.pendingRequests.delete(requestId);
|
|
47
47
|
pending.resolve(response);
|
|
48
48
|
}
|
|
49
|
-
else {
|
|
50
|
-
console.warn('[IPC] Received response with no matching request:', response);
|
|
51
|
-
}
|
|
52
49
|
}
|
|
53
50
|
/**
|
|
54
51
|
* Send a fire-and-forget message (no response expected)
|
|
55
52
|
*/
|
|
56
53
|
send(message) {
|
|
57
54
|
if (!global.heyvmCore) {
|
|
58
|
-
console.warn('[IPC] Core process not available');
|
|
59
55
|
return;
|
|
60
56
|
}
|
|
61
57
|
const messageStr = JSON.stringify(message) + '\n';
|
|
62
58
|
global.heyvmCore.stdin.write(messageStr, (err) => {
|
|
63
|
-
|
|
64
|
-
console.error('[IPC] Failed to send message:', err);
|
|
65
|
-
}
|
|
59
|
+
// Ignore write errors
|
|
66
60
|
});
|
|
67
61
|
}
|
|
68
62
|
/**
|
|
@@ -71,7 +65,6 @@ export class IPCClient extends EventEmitter {
|
|
|
71
65
|
async sendRequest(request) {
|
|
72
66
|
// If core process not available, return mock response
|
|
73
67
|
if (!global.heyvmCore) {
|
|
74
|
-
console.warn('[IPC] Core process not available, using mock response');
|
|
75
68
|
return {
|
|
76
69
|
status: 'success',
|
|
77
70
|
message: `Mock response for ${request.action}`,
|
package/ui/dist/core/ipc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../src/core/ipc.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAWtC,MAAM,OAAO,SAAU,SAAQ,YAAY;IAQ1C;QACC,KAAK,EAAE,CAAC;QARD,cAAS,GAAG,CAAC,CAAC;QACd,oBAAe,GAAG,IAAI,GAAG,EAG7B,CAAC;QACG,mBAAc,GAAG,EAAE,CAAC;QAI3B,uDAAuD;QACvD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7B,CAAC;IACF,CAAC;IAEO,oBAAoB;QAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAU,CAAC,MAAM,CAAC;QAExC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACnC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAExC,uCAAuC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,iCAAiC;YAE1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAE3B,IAAI,CAAC;oBACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,
|
|
1
|
+
{"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../src/core/ipc.ts"],"names":[],"mappings":"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"}
|
package/ui/dist/index.js
CHANGED
|
@@ -35389,7 +35389,7 @@ var require_backend = __commonJS({
|
|
|
35389
35389
|
return false;
|
|
35390
35390
|
}
|
|
35391
35391
|
}
|
|
35392
|
-
function
|
|
35392
|
+
function cleanup2() {
|
|
35393
35393
|
}
|
|
35394
35394
|
function rootSupportsProfiling(root) {
|
|
35395
35395
|
if (root.memoizedInteractions != null) {
|
|
@@ -36666,7 +36666,7 @@ var require_backend = __commonJS({
|
|
|
36666
36666
|
return idToArbitraryFiberMap.has(id);
|
|
36667
36667
|
}
|
|
36668
36668
|
return {
|
|
36669
|
-
cleanup,
|
|
36669
|
+
cleanup: cleanup2,
|
|
36670
36670
|
clearErrorsAndWarnings,
|
|
36671
36671
|
clearErrorsForFiberID,
|
|
36672
36672
|
clearWarningsForFiberID,
|
|
@@ -38568,7 +38568,7 @@ var require_backend = __commonJS({
|
|
|
38568
38568
|
}
|
|
38569
38569
|
});
|
|
38570
38570
|
}
|
|
38571
|
-
function
|
|
38571
|
+
function cleanup2() {
|
|
38572
38572
|
if (oldReconcilerMethods !== null) {
|
|
38573
38573
|
if (renderer2.Component) {
|
|
38574
38574
|
restoreMany(renderer2.Component.Mixin, oldReconcilerMethods);
|
|
@@ -39102,7 +39102,7 @@ var require_backend = __commonJS({
|
|
|
39102
39102
|
clearErrorsAndWarnings,
|
|
39103
39103
|
clearErrorsForFiberID,
|
|
39104
39104
|
clearWarningsForFiberID,
|
|
39105
|
-
cleanup,
|
|
39105
|
+
cleanup: cleanup2,
|
|
39106
39106
|
getSerializedElementValueByPath,
|
|
39107
39107
|
deletePath,
|
|
39108
39108
|
flushInitialOperations,
|
|
@@ -50809,12 +50809,10 @@ var IPCClient = class extends EventEmitter3 {
|
|
|
50809
50809
|
const response = JSON.parse(line);
|
|
50810
50810
|
this.handleResponse(response);
|
|
50811
50811
|
} catch (err) {
|
|
50812
|
-
console.error("[IPC] Failed to parse response:", line, err);
|
|
50813
50812
|
}
|
|
50814
50813
|
}
|
|
50815
50814
|
});
|
|
50816
50815
|
stdout.on("error", (err) => {
|
|
50817
|
-
console.error("[IPC] Stdout error:", err);
|
|
50818
50816
|
});
|
|
50819
50817
|
}
|
|
50820
50818
|
handleResponse(response) {
|
|
@@ -50827,8 +50825,6 @@ var IPCClient = class extends EventEmitter3 {
|
|
|
50827
50825
|
const pending = this.pendingRequests.get(requestId);
|
|
50828
50826
|
this.pendingRequests.delete(requestId);
|
|
50829
50827
|
pending.resolve(response);
|
|
50830
|
-
} else {
|
|
50831
|
-
console.warn("[IPC] Received response with no matching request:", response);
|
|
50832
50828
|
}
|
|
50833
50829
|
}
|
|
50834
50830
|
/**
|
|
@@ -50836,14 +50832,10 @@ var IPCClient = class extends EventEmitter3 {
|
|
|
50836
50832
|
*/
|
|
50837
50833
|
send(message) {
|
|
50838
50834
|
if (!global.heyvmCore) {
|
|
50839
|
-
console.warn("[IPC] Core process not available");
|
|
50840
50835
|
return;
|
|
50841
50836
|
}
|
|
50842
50837
|
const messageStr = JSON.stringify(message) + "\n";
|
|
50843
50838
|
global.heyvmCore.stdin.write(messageStr, (err) => {
|
|
50844
|
-
if (err) {
|
|
50845
|
-
console.error("[IPC] Failed to send message:", err);
|
|
50846
|
-
}
|
|
50847
50839
|
});
|
|
50848
50840
|
}
|
|
50849
50841
|
/**
|
|
@@ -50851,7 +50843,6 @@ var IPCClient = class extends EventEmitter3 {
|
|
|
50851
50843
|
*/
|
|
50852
50844
|
async sendRequest(request) {
|
|
50853
50845
|
if (!global.heyvmCore) {
|
|
50854
|
-
console.warn("[IPC] Core process not available, using mock response");
|
|
50855
50846
|
return {
|
|
50856
50847
|
status: "success",
|
|
50857
50848
|
message: `Mock response for ${request.action}`,
|
|
@@ -51943,9 +51934,7 @@ var TerminalTab = import_react28.default.memo(
|
|
|
51943
51934
|
function TerminalTab2({ vm, isActive }) {
|
|
51944
51935
|
const getTerminalDimensions = () => ({
|
|
51945
51936
|
rows: TERMINAL_ROWS,
|
|
51946
|
-
// Fixed height
|
|
51947
51937
|
cols: process.stdout.columns || 120
|
|
51948
|
-
// Dynamic width
|
|
51949
51938
|
});
|
|
51950
51939
|
const [sessionId, setSessionId] = (0, import_react28.useState)(null);
|
|
51951
51940
|
const [error, setError] = (0, import_react28.useState)(null);
|
|
@@ -51997,17 +51986,14 @@ var TerminalTab = import_react28.default.memo(
|
|
|
51997
51986
|
if (!isActive) return;
|
|
51998
51987
|
if (vm.status !== "connected") return;
|
|
51999
51988
|
if (ptyStartedRef.current) return;
|
|
52000
|
-
console.log("[Terminal] Starting PTY session...");
|
|
52001
51989
|
ptyStartedRef.current = true;
|
|
52002
51990
|
const handleReady = ({ session_id, vm_id }) => {
|
|
52003
51991
|
if (vm_id === vm.id) {
|
|
52004
|
-
console.log("[Terminal] PTY ready:", session_id);
|
|
52005
51992
|
setSessionId(session_id);
|
|
52006
51993
|
}
|
|
52007
51994
|
};
|
|
52008
51995
|
const handleError = ({ vm_id, error: errorMsg }) => {
|
|
52009
51996
|
if (vm_id === vm.id) {
|
|
52010
|
-
console.error("[Terminal] PTY error:", errorMsg);
|
|
52011
51997
|
setError(errorMsg);
|
|
52012
51998
|
}
|
|
52013
51999
|
};
|
|
@@ -52048,7 +52034,6 @@ var TerminalTab = import_react28.default.memo(
|
|
|
52048
52034
|
};
|
|
52049
52035
|
const handleExit = ({ session_id }) => {
|
|
52050
52036
|
if (session_id === sessionId) {
|
|
52051
|
-
console.log("[Terminal] PTY exited");
|
|
52052
52037
|
setSessionId(null);
|
|
52053
52038
|
setError("Terminal session closed");
|
|
52054
52039
|
}
|
|
@@ -52072,12 +52057,11 @@ var TerminalTab = import_react28.default.memo(
|
|
|
52072
52057
|
if (!sessionId || !isActive) return;
|
|
52073
52058
|
const handleResize = () => {
|
|
52074
52059
|
const dims = getTerminalDimensions();
|
|
52075
|
-
const { rows, cols } = dims;
|
|
52076
52060
|
if (emulatorRef.current) {
|
|
52077
|
-
emulatorRef.current.resize(rows, cols);
|
|
52061
|
+
emulatorRef.current.resize(dims.rows, dims.cols);
|
|
52078
52062
|
forceUpdate();
|
|
52079
52063
|
}
|
|
52080
|
-
ipcClient.resizePTY(vm.id, sessionId, rows, cols);
|
|
52064
|
+
ipcClient.resizePTY(vm.id, sessionId, dims.rows, dims.cols);
|
|
52081
52065
|
};
|
|
52082
52066
|
process.stdout.on("resize", handleResize);
|
|
52083
52067
|
return () => {
|
|
@@ -52086,7 +52070,6 @@ var TerminalTab = import_react28.default.memo(
|
|
|
52086
52070
|
}, [sessionId, isActive, vm.id]);
|
|
52087
52071
|
(0, import_react28.useEffect)(() => {
|
|
52088
52072
|
if (vm.status === "disconnected" && sessionId) {
|
|
52089
|
-
console.log("[Terminal] VM disconnected, closing PTY");
|
|
52090
52073
|
ipcClient.closePTY(vm.id, sessionId);
|
|
52091
52074
|
ptyStartedRef.current = false;
|
|
52092
52075
|
setSessionId(null);
|
|
@@ -52195,7 +52178,7 @@ function parseMouseEvent(data) {
|
|
|
52195
52178
|
|
|
52196
52179
|
// src/screens/tabs/FilesTab.tsx
|
|
52197
52180
|
var VISIBLE_FILES = 15;
|
|
52198
|
-
function FilesTab({ vm, isActive }) {
|
|
52181
|
+
function FilesTab({ vm, isActive, headerOffset }) {
|
|
52199
52182
|
const [activePane, setActivePane] = (0, import_react29.useState)("local");
|
|
52200
52183
|
const [localPath, setLocalPath] = (0, import_react29.useState)(process.env.HOME || "/");
|
|
52201
52184
|
const [remotePath, setRemotePath] = (0, import_react29.useState)("/");
|
|
@@ -52318,7 +52301,6 @@ function FilesTab({ vm, isActive }) {
|
|
|
52318
52301
|
visualRow: -1,
|
|
52319
52302
|
isValid: false
|
|
52320
52303
|
};
|
|
52321
|
-
const HEADER_OFFSET = parseInt(process.env.HEYVM_MOUSE_OFFSET || "23", 10);
|
|
52322
52304
|
const PANE_HEADER = 1;
|
|
52323
52305
|
const BORDER_WIDTH = 1;
|
|
52324
52306
|
const vmListWidth = Math.floor(terminalWidth * 0.35);
|
|
@@ -52331,7 +52313,7 @@ function FilesTab({ vm, isActive }) {
|
|
|
52331
52313
|
} else {
|
|
52332
52314
|
result.pane = "remote";
|
|
52333
52315
|
}
|
|
52334
|
-
const fileListTop =
|
|
52316
|
+
const fileListTop = headerOffset + PANE_HEADER + BORDER_WIDTH;
|
|
52335
52317
|
const fileListBottom = fileListTop + VISIBLE_FILES;
|
|
52336
52318
|
if (mouseY < fileListTop || mouseY >= fileListBottom) {
|
|
52337
52319
|
return result;
|
|
@@ -52342,7 +52324,7 @@ function FilesTab({ vm, isActive }) {
|
|
|
52342
52324
|
result.fileIndex = scroll + result.visualRow;
|
|
52343
52325
|
result.isValid = result.fileIndex >= 0 && result.fileIndex < files.length;
|
|
52344
52326
|
return result;
|
|
52345
|
-
}, [localFiles, remoteFiles, localScroll, remoteScroll]);
|
|
52327
|
+
}, [localFiles, remoteFiles, localScroll, remoteScroll, headerOffset]);
|
|
52346
52328
|
const detectClickType = (0, import_react29.useCallback)((currentClick) => {
|
|
52347
52329
|
if (!lastClickState) return "single";
|
|
52348
52330
|
const timeDelta = currentClick.time - lastClickState.time;
|
|
@@ -52711,6 +52693,7 @@ function FilesTab({ vm, isActive }) {
|
|
|
52711
52693
|
|
|
52712
52694
|
// src/screens/VMDetailScreen.tsx
|
|
52713
52695
|
var VMDetailScreen_default = import_react30.default.memo(function VMDetailScreen({ vm, activeTab, onTabChange, isActive, onVMUpdated }) {
|
|
52696
|
+
const filesTabHeaderOffset = 9;
|
|
52714
52697
|
const getStatusColor = () => {
|
|
52715
52698
|
if (vm.status === "connected") return "green";
|
|
52716
52699
|
if (vm.status === "connecting") return "yellow";
|
|
@@ -52754,7 +52737,7 @@ var VMDetailScreen_default = import_react30.default.memo(function VMDetailScreen
|
|
|
52754
52737
|
color: activeTab === "files" ? "cyan" : "gray"
|
|
52755
52738
|
},
|
|
52756
52739
|
"Files"
|
|
52757
|
-
))), /* @__PURE__ */ import_react30.default.createElement(Box_default, { flexGrow: 1, flexDirection: "column" }, activeTab === "overview" ? /* @__PURE__ */ import_react30.default.createElement(OverviewTab_default, { vm, isActive, onVMUpdated }) : activeTab === "terminal" ? /* @__PURE__ */ import_react30.default.createElement(TerminalTab_default, { vm, isActive }) : /* @__PURE__ */ import_react30.default.createElement(FilesTab, { vm, isActive })), /* @__PURE__ */ import_react30.default.createElement(Box_default, { borderStyle: "single", borderColor: "gray", paddingX: 1 }, getContextHelp()));
|
|
52740
|
+
))), /* @__PURE__ */ import_react30.default.createElement(Box_default, { flexGrow: 1, flexDirection: "column" }, activeTab === "overview" ? /* @__PURE__ */ import_react30.default.createElement(OverviewTab_default, { vm, isActive, onVMUpdated }) : activeTab === "terminal" ? /* @__PURE__ */ import_react30.default.createElement(TerminalTab_default, { vm, isActive }) : /* @__PURE__ */ import_react30.default.createElement(FilesTab, { vm, isActive, headerOffset: filesTabHeaderOffset })), /* @__PURE__ */ import_react30.default.createElement(Box_default, { borderStyle: "single", borderColor: "gray", paddingX: 1 }, getContextHelp()));
|
|
52758
52741
|
}, (prevProps, nextProps) => {
|
|
52759
52742
|
return prevProps.activeTab === nextProps.activeTab && prevProps.isActive === nextProps.isActive && prevProps.vm.id === nextProps.vm.id && prevProps.vm.status === nextProps.vm.status && prevProps.vm.name === nextProps.vm.name;
|
|
52760
52743
|
});
|
|
@@ -52780,7 +52763,6 @@ function App2() {
|
|
|
52780
52763
|
}
|
|
52781
52764
|
setVMListVersion((v) => v + 1);
|
|
52782
52765
|
} catch (err) {
|
|
52783
|
-
console.error("Failed to refresh VM:", err);
|
|
52784
52766
|
}
|
|
52785
52767
|
}, [selectedVM]);
|
|
52786
52768
|
const handleSelectVM = (vm) => {
|
|
@@ -52791,14 +52773,10 @@ function App2() {
|
|
|
52791
52773
|
const handleAddVMSubmit = async (vm, password) => {
|
|
52792
52774
|
try {
|
|
52793
52775
|
const newVM = await ipcClient.addVM(vm);
|
|
52794
|
-
console.log("[App] VM added successfully:", newVM.id);
|
|
52795
52776
|
if (password && newVM.id) {
|
|
52796
|
-
console.log("[App] Storing password for VM:", newVM.id);
|
|
52797
52777
|
try {
|
|
52798
52778
|
await ipcClient.storePassword(newVM.id, password);
|
|
52799
|
-
console.log("[App] Password stored successfully");
|
|
52800
52779
|
} catch (passErr) {
|
|
52801
|
-
console.error("[App] Failed to store password:", passErr);
|
|
52802
52780
|
}
|
|
52803
52781
|
}
|
|
52804
52782
|
setShowAddVMModal(false);
|
|
@@ -52806,7 +52784,6 @@ function App2() {
|
|
|
52806
52784
|
setActivePaneSide("right");
|
|
52807
52785
|
setActiveTab("overview");
|
|
52808
52786
|
} catch (err) {
|
|
52809
|
-
console.error("Failed to add VM:", err);
|
|
52810
52787
|
}
|
|
52811
52788
|
};
|
|
52812
52789
|
const handleVMDeleted = () => {
|
|
@@ -52921,11 +52898,30 @@ function App2() {
|
|
|
52921
52898
|
}
|
|
52922
52899
|
|
|
52923
52900
|
// src/index.tsx
|
|
52924
|
-
|
|
52901
|
+
process.stdout.write(base_exports.enterAlternativeScreen);
|
|
52902
|
+
process.stdout.write(base_exports.cursorHide);
|
|
52903
|
+
var { waitUntilExit, cleanup } = render_default(/* @__PURE__ */ import_react32.default.createElement(App2, null), {
|
|
52925
52904
|
exitOnCtrlC: false
|
|
52926
52905
|
// Don't exit on Ctrl+C - let App handle it
|
|
52927
52906
|
});
|
|
52928
|
-
|
|
52907
|
+
var exitHandler = () => {
|
|
52908
|
+
cleanup();
|
|
52909
|
+
process.stdout.write(base_exports.cursorShow);
|
|
52910
|
+
process.stdout.write(base_exports.exitAlternativeScreen);
|
|
52911
|
+
};
|
|
52912
|
+
process.on("SIGINT", exitHandler);
|
|
52913
|
+
process.on("SIGTERM", exitHandler);
|
|
52914
|
+
process.on("exit", exitHandler);
|
|
52915
|
+
process.on("uncaughtException", () => {
|
|
52916
|
+
exitHandler();
|
|
52917
|
+
process.exit(1);
|
|
52918
|
+
});
|
|
52919
|
+
process.on("unhandledRejection", () => {
|
|
52920
|
+
exitHandler();
|
|
52921
|
+
process.exit(1);
|
|
52922
|
+
});
|
|
52923
|
+
await waitUntilExit();
|
|
52924
|
+
exitHandler();
|
|
52929
52925
|
/*! Bundled license information:
|
|
52930
52926
|
|
|
52931
52927
|
react/cjs/react.production.min.js:
|
package/ui/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,2CAA2C;AAC3C,sEAAsE;AACtE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,oBAAC,GAAG,OAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,4CAA4C;AAC5C,oFAAoF;AACpF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE7C,2CAA2C;AAC3C,sEAAsE;AACtE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,oBAAC,GAAG,OAAG,EAAE;IAClD,WAAW,EAAE,KAAK,EAAE,2CAA2C;CAC/D,CAAC,CAAC;AAEH,oCAAoC;AACpC,MAAM,WAAW,GAAG,GAAG,EAAE;IACxB,OAAO,EAAE,CAAC;IACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,8CAA8C;AAC9C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAClC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACnC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEhC,2BAA2B;AAC3B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACpC,WAAW,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACrC,WAAW,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,sBAAsB;AACtB,MAAM,aAAa,EAAE,CAAC;AAEtB,aAAa;AACb,WAAW,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VMDetailScreen.d.ts","sourceRoot":"","sources":["../../src/screens/VMDetailScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAKhD,UAAU,mBAAmB;IAC5B,EAAE,EAAE,EAAE,CAAC;IACP,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;;AAED,
|
|
1
|
+
{"version":3,"file":"VMDetailScreen.d.ts","sourceRoot":"","sources":["../../src/screens/VMDetailScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAKhD,UAAU,mBAAmB;IAC5B,EAAE,EAAE,EAAE,CAAC;IACP,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;;AAED,wBA4HG"}
|
|
@@ -5,6 +5,19 @@ import TerminalTab from './tabs/TerminalTab.js';
|
|
|
5
5
|
import FilesTab from './tabs/FilesTab.js';
|
|
6
6
|
export default React.memo(function VMDetailScreen({ vm, activeTab, onTabChange, isActive, onVMUpdated }) {
|
|
7
7
|
// Tab state is now controlled by parent (no local state or key handlers)
|
|
8
|
+
// Calculate header offset for mouse coordinate mapping in FilesTab
|
|
9
|
+
// With full-screen alternate buffer mode, coordinates always start at (0,0)
|
|
10
|
+
// This offset is now a simple count of UI elements above the file list:
|
|
11
|
+
// - padding(1) empty line
|
|
12
|
+
// - header line 1: "● VM_NAME STATUS"
|
|
13
|
+
// - header line 2: " user@host"
|
|
14
|
+
// - marginTop(1) before separator
|
|
15
|
+
// - separator line: "────────"
|
|
16
|
+
// - marginBottom(1) after header box
|
|
17
|
+
// - tabs line: "Overview | Terminal | Files"
|
|
18
|
+
// - marginBottom(1) after tabs
|
|
19
|
+
// Total: 9 lines before FilesTab content starts
|
|
20
|
+
const filesTabHeaderOffset = 9;
|
|
8
21
|
const getStatusColor = () => {
|
|
9
22
|
if (vm.status === 'connected')
|
|
10
23
|
return 'green';
|
|
@@ -114,7 +127,7 @@ export default React.memo(function VMDetailScreen({ vm, activeTab, onTabChange,
|
|
|
114
127
|
activeTab === 'terminal' ? '▶' : '|',
|
|
115
128
|
" "),
|
|
116
129
|
React.createElement(Text, { bold: activeTab === 'files', color: activeTab === 'files' ? 'cyan' : 'gray' }, "Files"))),
|
|
117
|
-
React.createElement(Box, { flexGrow: 1, flexDirection: "column" }, activeTab === 'overview' ? (React.createElement(OverviewTab, { vm: vm, isActive: isActive, onVMUpdated: onVMUpdated })) : activeTab === 'terminal' ? (React.createElement(TerminalTab, { vm: vm, isActive: isActive })) : (React.createElement(FilesTab, { vm: vm, isActive: isActive }))),
|
|
130
|
+
React.createElement(Box, { flexGrow: 1, flexDirection: "column" }, activeTab === 'overview' ? (React.createElement(OverviewTab, { vm: vm, isActive: isActive, onVMUpdated: onVMUpdated })) : activeTab === 'terminal' ? (React.createElement(TerminalTab, { vm: vm, isActive: isActive })) : (React.createElement(FilesTab, { vm: vm, isActive: isActive, headerOffset: filesTabHeaderOffset }))),
|
|
118
131
|
React.createElement(Box, { borderStyle: "single", borderColor: "gray", paddingX: 1 }, getContextHelp())));
|
|
119
132
|
}, (prevProps, nextProps) => {
|
|
120
133
|
// Only re-render if these critical props change
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VMDetailScreen.js","sourceRoot":"","sources":["../../src/screens/VMDetailScreen.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VMDetailScreen.js","sourceRoot":"","sources":["../../src/screens/VMDetailScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@ import type { VM } from '../../core/types.js';
|
|
|
3
3
|
interface FilesTabProps {
|
|
4
4
|
vm: VM;
|
|
5
5
|
isActive: boolean;
|
|
6
|
+
headerOffset: number;
|
|
6
7
|
}
|
|
7
|
-
export default function FilesTab({ vm, isActive }: FilesTabProps): React.JSX.Element;
|
|
8
|
+
export default function FilesTab({ vm, isActive, headerOffset }: FilesTabProps): React.JSX.Element;
|
|
8
9
|
export {};
|
|
9
10
|
//# sourceMappingURL=FilesTab.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilesTab.d.ts","sourceRoot":"","sources":["../../../src/screens/tabs/FilesTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,KAAK,EAAE,EAAE,EAAY,MAAM,qBAAqB,CAAC;AAIxD,UAAU,aAAa;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FilesTab.d.ts","sourceRoot":"","sources":["../../../src/screens/tabs/FilesTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,KAAK,EAAE,EAAE,EAAY,MAAM,qBAAqB,CAAC;AAIxD,UAAU,aAAa;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,aAAa,qBAwyB7E"}
|
|
@@ -5,7 +5,7 @@ import * as path from 'path';
|
|
|
5
5
|
import { ipcClient } from '../../core/ipc.js';
|
|
6
6
|
import { parseMouseEvent } from '../../utils/mouseParser.js';
|
|
7
7
|
const VISIBLE_FILES = 15;
|
|
8
|
-
export default function FilesTab({ vm, isActive }) {
|
|
8
|
+
export default function FilesTab({ vm, isActive, headerOffset }) {
|
|
9
9
|
const [activePane, setActivePane] = useState('local');
|
|
10
10
|
const [localPath, setLocalPath] = useState(process.env.HOME || '/');
|
|
11
11
|
const [remotePath, setRemotePath] = useState('/');
|
|
@@ -149,11 +149,8 @@ export default function FilesTab({ vm, isActive }) {
|
|
|
149
149
|
isValid: false
|
|
150
150
|
};
|
|
151
151
|
// Calculate layout metrics
|
|
152
|
-
//
|
|
153
|
-
//
|
|
154
|
-
// WARNING: This is layout-dependent and may need adjustment if UI structure changes
|
|
155
|
-
// Can be overridden with HEYVM_MOUSE_OFFSET environment variable
|
|
156
|
-
const HEADER_OFFSET = parseInt(process.env.HEYVM_MOUSE_OFFSET || '23', 10);
|
|
152
|
+
// Use headerOffset prop from parent component (accounts for VMDetailScreen's header, tabs, etc.)
|
|
153
|
+
// Plus FilesTab's own pane header and border
|
|
157
154
|
const PANE_HEADER = 1;
|
|
158
155
|
const BORDER_WIDTH = 1;
|
|
159
156
|
// VM list panel takes up ~35% of terminal width on the left
|
|
@@ -173,7 +170,7 @@ export default function FilesTab({ vm, isActive }) {
|
|
|
173
170
|
result.pane = 'remote';
|
|
174
171
|
}
|
|
175
172
|
// Calculate file list Y bounds
|
|
176
|
-
const fileListTop =
|
|
173
|
+
const fileListTop = headerOffset + PANE_HEADER + BORDER_WIDTH;
|
|
177
174
|
const fileListBottom = fileListTop + VISIBLE_FILES;
|
|
178
175
|
// Check if click is within file list area
|
|
179
176
|
if (mouseY < fileListTop || mouseY >= fileListBottom) {
|
|
@@ -188,7 +185,7 @@ export default function FilesTab({ vm, isActive }) {
|
|
|
188
185
|
// Validate
|
|
189
186
|
result.isValid = result.fileIndex >= 0 && result.fileIndex < files.length;
|
|
190
187
|
return result;
|
|
191
|
-
}, [localFiles, remoteFiles, localScroll, remoteScroll]);
|
|
188
|
+
}, [localFiles, remoteFiles, localScroll, remoteScroll, headerOffset]);
|
|
192
189
|
const detectClickType = useCallback((currentClick) => {
|
|
193
190
|
if (!lastClickState)
|
|
194
191
|
return 'single';
|