@mmmbuto/nexuscrew 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/README.md +122 -67
- package/bin/nexuscrew.js +194 -470
- package/frontend/dist/assets/{index-BG1N7bSL.js → index-BsldfYnr.js} +1704 -1711
- package/frontend/dist/assets/index-DcQGg3dp.css +1 -0
- package/frontend/dist/index.html +3 -11
- package/lib/server/routes/hosts.js +22 -12
- package/lib/server/routes/launchers.js +12 -0
- package/lib/server/routes/models.js +16 -63
- package/lib/server/routes/runtime.js +10 -0
- package/lib/server/routes/send.js +97 -258
- package/lib/server/routes/sessions.js +13 -42
- package/lib/server/routes/status.js +18 -22
- package/lib/server/routes/tmux.js +88 -0
- package/lib/server/server.js +60 -81
- package/lib/services/engine-discovery.js +192 -445
- package/lib/services/log-watcher.js +22 -40
- package/lib/services/session-store.js +88 -62
- package/lib/services/tmux-manager.js +111 -173
- package/package.json +6 -10
- package/frontend/dist/apple-touch-icon.png +0 -0
- package/frontend/dist/assets/index-CiAtinNP.css +0 -1
- package/frontend/dist/favicon.svg +0 -20
- package/frontend/dist/icon-192.png +0 -0
- package/frontend/dist/icon-512.png +0 -0
- package/frontend/dist/site.webmanifest +0 -29
- package/lib/config/hosts.js +0 -67
- package/lib/config/manager.js +0 -379
- package/lib/config/models.js +0 -408
- package/lib/server/db/adapter.js +0 -274
- package/lib/server/db/drivers/sql-js.js +0 -75
- package/lib/server/db/migrate.js +0 -174
- package/lib/server/db/migrations/001_base_schema.sql +0 -70
- package/lib/server/middleware/auth.js +0 -134
- package/lib/server/middleware/rate-limit.js +0 -63
- package/lib/server/models/User.js +0 -128
- package/lib/server/routes/auth.js +0 -168
- package/lib/server/routes/keys.js +0 -28
- package/lib/server/routes/runtimes.js +0 -34
- package/lib/server/routes/speech.js +0 -46
- package/lib/server/routes/upload.js +0 -135
- package/lib/server/routes/wake-lock.js +0 -95
- package/lib/server/routes/workspaces.js +0 -101
- package/lib/server/services/attachment-manager.js +0 -57
- package/lib/server/services/context-bridge.js +0 -425
- package/lib/server/services/runtime-manager.js +0 -462
- package/lib/server/services/speech-manager.js +0 -76
- package/lib/server/services/summary-generator.js +0 -309
- package/lib/server/services/workspace-manager.js +0 -79
- package/lib/services/remote-pane-watcher.js +0 -155
- package/lib/setup/postinstall.js +0 -38
- package/lib/utils/paths.js +0 -124
- package/lib/utils/termux.js +0 -182
package/lib/utils/termux.js
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Termux Detection and Utilities
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
const fs = require('fs');
|
|
6
|
-
const path = require('path');
|
|
7
|
-
const { execSync, spawn } = require('child_process');
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Check if running in Termux environment
|
|
11
|
-
*/
|
|
12
|
-
function isTermux() {
|
|
13
|
-
return (
|
|
14
|
-
process.platform === 'android' ||
|
|
15
|
-
process.env.PREFIX?.includes('com.termux') ||
|
|
16
|
-
process.env.TERMUX_VERSION !== undefined
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Get Termux prefix path
|
|
22
|
-
*/
|
|
23
|
-
function getPrefix() {
|
|
24
|
-
return process.env.PREFIX || '/data/data/com.termux/files/usr';
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function getServiceDir(serviceName = 'nexuscrew') {
|
|
28
|
-
return path.join(getPrefix(), 'var', 'service', serviceName);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function getStartServicesScript() {
|
|
32
|
-
return path.join(getPrefix(), 'etc', 'profile.d', 'start-services.sh');
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Check if a Termux package is installed
|
|
37
|
-
*/
|
|
38
|
-
function isPackageInstalled(pkg) {
|
|
39
|
-
try {
|
|
40
|
-
execSync(`which ${pkg}`, { stdio: 'ignore' });
|
|
41
|
-
return true;
|
|
42
|
-
} catch {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Install a Termux package
|
|
49
|
-
*/
|
|
50
|
-
function installPackage(pkg) {
|
|
51
|
-
try {
|
|
52
|
-
execSync(`pkg install -y ${pkg}`, { stdio: 'inherit' });
|
|
53
|
-
return true;
|
|
54
|
-
} catch (error) {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Check if Termux:API app is working
|
|
61
|
-
*/
|
|
62
|
-
function isTermuxApiWorking() {
|
|
63
|
-
try {
|
|
64
|
-
execSync('termux-battery-status', { timeout: 5000, stdio: 'ignore' });
|
|
65
|
-
return true;
|
|
66
|
-
} catch {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Check if Termux:Boot is available
|
|
73
|
-
*/
|
|
74
|
-
function isTermuxBootAvailable() {
|
|
75
|
-
const bootDir = path.join(process.env.HOME, '.termux', 'boot');
|
|
76
|
-
return fs.existsSync(bootDir);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function isTermuxServicesAvailable() {
|
|
80
|
-
return fs.existsSync(getStartServicesScript()) && isPackageInstalled('sv');
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Acquire Termux wake lock
|
|
85
|
-
*/
|
|
86
|
-
function acquireWakeLock() {
|
|
87
|
-
if (!isTermux()) return false;
|
|
88
|
-
try {
|
|
89
|
-
spawn('termux-wake-lock', [], { detached: true, stdio: 'ignore' }).unref();
|
|
90
|
-
return true;
|
|
91
|
-
} catch {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Release Termux wake lock
|
|
98
|
-
*/
|
|
99
|
-
function releaseWakeLock() {
|
|
100
|
-
if (!isTermux()) return false;
|
|
101
|
-
try {
|
|
102
|
-
spawn('termux-wake-unlock', [], { detached: true, stdio: 'ignore' }).unref();
|
|
103
|
-
return true;
|
|
104
|
-
} catch {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Send Termux notification
|
|
111
|
-
*/
|
|
112
|
-
function sendNotification(title, content, id = 'nexuscrew') {
|
|
113
|
-
if (!isTermux()) return false;
|
|
114
|
-
try {
|
|
115
|
-
execSync(`termux-notification --id ${id} --title "${title}" --content "${content}"`, {
|
|
116
|
-
stdio: 'ignore'
|
|
117
|
-
});
|
|
118
|
-
return true;
|
|
119
|
-
} catch {
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Get required Termux packages
|
|
126
|
-
*/
|
|
127
|
-
function getRequiredPackages() {
|
|
128
|
-
return ['termux-api', 'termux-tools'];
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Check all required packages
|
|
133
|
-
*/
|
|
134
|
-
function checkRequiredPackages() {
|
|
135
|
-
const packages = getRequiredPackages();
|
|
136
|
-
const status = {};
|
|
137
|
-
|
|
138
|
-
for (const pkg of packages) {
|
|
139
|
-
status[pkg] = isPackageInstalled(pkg);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return status;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function openUrl(url) {
|
|
146
|
-
try {
|
|
147
|
-
if (isTermux() && isPackageInstalled('termux-open-url')) {
|
|
148
|
-
spawn('termux-open-url', [url], { detached: true, stdio: 'ignore' }).unref();
|
|
149
|
-
return true;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (process.platform === 'darwin') {
|
|
153
|
-
spawn('open', [url], { detached: true, stdio: 'ignore' }).unref();
|
|
154
|
-
return true;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
if (isPackageInstalled('xdg-open')) {
|
|
158
|
-
spawn('xdg-open', [url], { detached: true, stdio: 'ignore' }).unref();
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
} catch {}
|
|
162
|
-
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
module.exports = {
|
|
167
|
-
isTermux,
|
|
168
|
-
getPrefix,
|
|
169
|
-
getServiceDir,
|
|
170
|
-
getStartServicesScript,
|
|
171
|
-
isPackageInstalled,
|
|
172
|
-
installPackage,
|
|
173
|
-
isTermuxApiWorking,
|
|
174
|
-
isTermuxBootAvailable,
|
|
175
|
-
isTermuxServicesAvailable,
|
|
176
|
-
acquireWakeLock,
|
|
177
|
-
releaseWakeLock,
|
|
178
|
-
sendNotification,
|
|
179
|
-
getRequiredPackages,
|
|
180
|
-
checkRequiredPackages,
|
|
181
|
-
openUrl
|
|
182
|
-
};
|